netfishing/tests/android_readiness_validation.gd

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