109 lines
3.5 KiB
GDScript
109 lines
3.5 KiB
GDScript
extends SceneTree
|
|
|
|
const GameUIType = preload("res://ui/game_ui.gd")
|
|
const PlayerType = preload("res://player/player.gd")
|
|
|
|
|
|
func _init() -> void:
|
|
assert(
|
|
ProjectSettings.get_setting("display/window/handheld/orientation", -1) == 0
|
|
)
|
|
assert(
|
|
ProjectSettings.get_setting(
|
|
"input_devices/pointing/emulate_mouse_from_touch", false
|
|
)
|
|
)
|
|
assert(_has_joypad_motion(&"move_forward", JOY_AXIS_LEFT_Y, -1.0))
|
|
assert(_has_joypad_motion(&"move_backward", JOY_AXIS_LEFT_Y, 1.0))
|
|
assert(_has_joypad_motion(&"move_left", JOY_AXIS_LEFT_X, -1.0))
|
|
assert(_has_joypad_motion(&"move_right", JOY_AXIS_LEFT_X, 1.0))
|
|
assert(_has_joypad_button(&"jump", JOY_BUTTON_A))
|
|
assert(_has_joypad_button(&"ui_accept", JOY_BUTTON_A))
|
|
assert(_has_joypad_button(&"ui_cancel", JOY_BUTTON_B))
|
|
assert(_has_joypad_button(&"interact", JOY_BUTTON_Y))
|
|
assert(_has_joypad_button(&"fish_primary", JOY_BUTTON_RIGHT_SHOULDER))
|
|
assert(not _has_joypad_motion(
|
|
&"fish_primary", JOY_AXIS_TRIGGER_LEFT, 1.0
|
|
))
|
|
assert(not _has_joypad_motion(
|
|
&"fish_primary", JOY_AXIS_TRIGGER_RIGHT, 1.0
|
|
))
|
|
assert(_has_joypad_button(&"sprint", JOY_BUTTON_LEFT_STICK))
|
|
assert(not _has_joypad_button(
|
|
&"camera_zoom_out", JOY_BUTTON_LEFT_SHOULDER
|
|
))
|
|
assert(not _has_joypad_button(
|
|
&"camera_zoom_in", JOY_BUTTON_RIGHT_SHOULDER
|
|
))
|
|
assert(_has_joypad_button(&"hotbar_previous", JOY_BUTTON_DPAD_LEFT))
|
|
assert(_has_joypad_button(&"hotbar_next", JOY_BUTTON_DPAD_RIGHT))
|
|
assert(_has_joypad_button(&"open_backpack", JOY_BUTTON_X))
|
|
assert(_has_joypad_button(&"open_system_menu", JOY_BUTTON_START))
|
|
assert(_has_joypad_button(&"open_emotes", JOY_BUTTON_DPAD_UP))
|
|
assert(_has_joypad_button(&"open_quick_actions", JOY_BUTTON_DPAD_DOWN))
|
|
assert(_has_joypad_button(&"open_chat", JOY_BUTTON_BACK))
|
|
assert(_has_joypad_button(&"focus_gameplay", JOY_BUTTON_LEFT_SHOULDER))
|
|
assert(
|
|
GameUIType.VIRTUAL_MOUSE_TRIGGER_AXIS == JOY_AXIS_TRIGGER_RIGHT
|
|
)
|
|
assert(
|
|
GameUIType.VIRTUAL_MOUSE_SHARED_TRIGGER_AXIS
|
|
== JOY_AXIS_TRIGGER_LEFT
|
|
)
|
|
assert(
|
|
GameUIType.VIRTUAL_MOUSE_SECONDARY_CLICK_AXIS
|
|
== JOY_AXIS_TRIGGER_LEFT
|
|
)
|
|
assert(PlayerType.CONTROLLER_ZOOM_TRIGGER_AXIS == JOY_AXIS_TRIGGER_LEFT)
|
|
assert(is_zero_approx(
|
|
GameUIType.normalized_trigger_strength(-1.0, -1.0)
|
|
))
|
|
assert(is_equal_approx(
|
|
GameUIType.normalized_trigger_strength(1.0, -1.0),
|
|
1.0,
|
|
))
|
|
assert(is_equal_approx(
|
|
GameUIType.normalized_trigger_strength(-1.0, 0.0),
|
|
1.0,
|
|
))
|
|
assert(is_equal_approx(
|
|
GameUIType.normalized_trigger_strength(-1.0, 1.0),
|
|
1.0,
|
|
))
|
|
assert(is_equal_approx(
|
|
GameUIType.directional_trigger_strength(-1.0, 0.0, -1.0),
|
|
1.0,
|
|
))
|
|
assert(is_zero_approx(
|
|
GameUIType.directional_trigger_strength(1.0, 0.0, -1.0)
|
|
))
|
|
assert(is_equal_approx(
|
|
GameUIType.directional_trigger_strength(1.0, 0.0, 1.0),
|
|
1.0,
|
|
))
|
|
print("android readiness validation passed")
|
|
quit()
|
|
|
|
|
|
func _has_joypad_button(action: StringName, button_index: JoyButton) -> bool:
|
|
for event: InputEvent in InputMap.action_get_events(action):
|
|
var button_event: InputEventJoypadButton = event as InputEventJoypadButton
|
|
if button_event != null and button_event.button_index == button_index:
|
|
return true
|
|
return false
|
|
|
|
|
|
func _has_joypad_motion(
|
|
action: StringName,
|
|
axis: JoyAxis,
|
|
direction: float,
|
|
) -> bool:
|
|
for event: InputEvent in InputMap.action_get_events(action):
|
|
var motion_event: InputEventJoypadMotion = event as InputEventJoypadMotion
|
|
if (
|
|
motion_event != null
|
|
and motion_event.axis == axis
|
|
and is_equal_approx(motion_event.axis_value, direction)
|
|
):
|
|
return true
|
|
return false
|