Improve Android controller and chat support
This commit is contained in:
parent
3dc8ced5d2
commit
ceef03eba5
24 changed files with 2485 additions and 128 deletions
21
main/main.gd
21
main/main.gd
|
|
@ -16,6 +16,9 @@ const PlayerSettingsManagerType = preload(
|
|||
"res://settings/player_settings_manager.gd"
|
||||
)
|
||||
const PlayerSettingsType = preload("res://settings/player_settings.gd")
|
||||
const ControllerMappingManagerType = preload(
|
||||
"res://settings/controller_mapping_manager.gd"
|
||||
)
|
||||
const TitleScreenType = preload("res://ui/title_screen.gd")
|
||||
const PauseMenuType = preload("res://ui/pause_menu.gd")
|
||||
const ItemCatalogType = preload("res://items/item_catalog.gd")
|
||||
|
|
@ -111,6 +114,9 @@ const SHOP_PATTERN_SCALE: float = 1.75
|
|||
@onready var _water_recovery: WaterRecoveryControllerType = %WaterRecovery
|
||||
@onready var _save_manager: PlayerSaveManagerType = %PlayerSaveManager
|
||||
@onready var _settings_manager: PlayerSettingsManagerType = %PlayerSettingsManager
|
||||
@onready var _controller_mapping_manager: ControllerMappingManagerType = (
|
||||
%ControllerMappingManager
|
||||
)
|
||||
@onready var _interface_fonts: InterfaceFontController = %InterfaceFontController
|
||||
@onready var _title_music: AudioStreamPlayer = %TitleMusic
|
||||
@onready var _ui_pixelation: UIPixelationPresenterType = %UIPresentation
|
||||
|
|
@ -534,6 +540,7 @@ func _initialize_after_data_root() -> void:
|
|||
_network_session,
|
||||
_interface_fonts,
|
||||
)
|
||||
_game_ui.setup_controller_mapping(_controller_mapping_manager)
|
||||
_data_root.conflict_detected.connect(_on_portable_conflict)
|
||||
_data_root.status_changed.connect(_on_data_root_status)
|
||||
if (
|
||||
|
|
@ -927,6 +934,8 @@ func _on_peer_identity_observed(_peer_id: int, status: String) -> void:
|
|||
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if _game_ui.is_controller_mapping_capturing():
|
||||
return
|
||||
if (
|
||||
not (
|
||||
event.is_action_pressed("ui_cancel")
|
||||
|
|
@ -935,6 +944,7 @@ func _input(event: InputEvent) -> void:
|
|||
or (event is InputEventKey and event.echo)
|
||||
):
|
||||
return
|
||||
var pause_open_requested: bool = _is_pause_open_request(event)
|
||||
var title_screen: TitleScreenType = _game_ui.get_title_screen()
|
||||
if title_screen.visible or not _gameplay_started:
|
||||
return
|
||||
|
|
@ -953,7 +963,8 @@ func _input(event: InputEvent) -> void:
|
|||
get_viewport().set_input_as_handled()
|
||||
return
|
||||
if (
|
||||
not _water_recovery.is_recovery_active()
|
||||
pause_open_requested
|
||||
and not _water_recovery.is_recovery_active()
|
||||
and _fishing_spot.can_open_system_menu()
|
||||
):
|
||||
_game_ui.close_player_menu_for_game_menu()
|
||||
|
|
@ -961,6 +972,13 @@ func _input(event: InputEvent) -> void:
|
|||
get_viewport().set_input_as_handled()
|
||||
|
||||
|
||||
func _is_pause_open_request(event: InputEvent) -> bool:
|
||||
return (
|
||||
event.is_action_pressed("open_system_menu")
|
||||
or event is InputEventKey
|
||||
)
|
||||
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if (
|
||||
not _gameplay_started
|
||||
|
|
@ -1002,6 +1020,7 @@ func _apply_runtime_settings(settings: PlayerSettingsType) -> void:
|
|||
_game_ui.set_edge_docks(
|
||||
settings.chat_dock_right,
|
||||
settings.paint_dock_right,
|
||||
settings.chat_mobile_mode,
|
||||
)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@
|
|||
[ext_resource type="Script" path="res://network/network_job_service.gd" id="53_network_jobs"]
|
||||
[ext_resource type="Script" path="res://world/shoreline_ambience.gd" id="54_shoreline_ambience"]
|
||||
[ext_resource type="AudioStream" path="res://audio/ambience/waves.wav" id="55_waves"]
|
||||
[ext_resource type="Script" path="res://settings/controller_mapping_manager.gd" id="56_controller_mapping"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_title_water_native"]
|
||||
shader = ExtResource("40_title_water")
|
||||
|
|
@ -273,6 +274,10 @@ script = ExtResource("9_save")
|
|||
unique_name_in_owner = true
|
||||
script = ExtResource("10_settings")
|
||||
|
||||
[node name="ControllerMappingManager" type="Node" parent="."]
|
||||
unique_name_in_owner = true
|
||||
script = ExtResource("56_controller_mapping")
|
||||
|
||||
[node name="TitleMusic" type="AudioStreamPlayer" parent="." unique_id=1292939956]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("13_title_music")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue