feat: Introduce player character with input management and gridmap interaction visuals.
This commit is contained in:
@@ -93,10 +93,7 @@ func handle_unhandled_input(event):
|
||||
get_viewport().set_input_as_handled()
|
||||
|
||||
elif event.is_action_pressed("action_grab_tekton"):
|
||||
if player.is_carrying_tekton:
|
||||
if player.powerup_manager and player.powerup_manager.has_method("spawn_boost_reward"):
|
||||
player.powerup_manager.spawn_boost_reward()
|
||||
else:
|
||||
if not player.is_carrying_tekton:
|
||||
if player.powerup_manager and player.powerup_manager.has_method("can_use_special"):
|
||||
player.grab_tekton()
|
||||
get_viewport().set_input_as_handled()
|
||||
|
||||
@@ -390,12 +390,8 @@ func _on_button_pressed(button_name: String):
|
||||
# if local_player.powerup_manager and local_player.powerup_manager.has_method("spawn_boost_reward"):
|
||||
# local_player.powerup_manager.spawn_boost_reward()
|
||||
"TektonGrab":
|
||||
if local_player.is_carrying_tekton:
|
||||
if local_player.powerup_manager and local_player.powerup_manager.has_method("spawn_boost_reward"):
|
||||
local_player.powerup_manager.spawn_boost_reward()
|
||||
else:
|
||||
if not local_player.is_carrying_tekton and local_player.has_method("grab_tekton"):
|
||||
local_player.grab_tekton()
|
||||
if not local_player.is_carrying_tekton and local_player.has_method("grab_tekton"):
|
||||
local_player.grab_tekton()
|
||||
|
||||
|
||||
func _on_button_released(button_name: String):
|
||||
@@ -597,25 +593,12 @@ func _on_boost_points_changed(current_points: int, max_points: int):
|
||||
# var can_spawn = local_player and local_player.is_carrying_tekton
|
||||
# _update_boost_button_state(spawn_boost_button, can_spawn)
|
||||
|
||||
# Tekton Grab (👋) is only enabled if full AND not already carrying one
|
||||
# Now modified: If CARRYING, it is ALWAYS enabled to act as SpawnBoost. If NOT carrying, needs to be full.
|
||||
var can_grab_or_spawn = (local_player and local_player.is_carrying_tekton) or (is_full)
|
||||
_update_boost_button_state(tekton_grab_button, can_grab_or_spawn)
|
||||
# Tekton Grab is only enabled if full AND not already carrying one
|
||||
var can_grab = not (local_player and local_player.is_carrying_tekton) and (is_full)
|
||||
_update_boost_button_state(tekton_grab_button, can_grab)
|
||||
|
||||
func _on_tekton_carried_changed(_is_carrying: bool):
|
||||
# Refresh button states when player grabs/throws a tekton
|
||||
if tekton_grab_button:
|
||||
if _is_carrying:
|
||||
# Swapping to Spawn function (Hotkey E)
|
||||
tekton_grab_button.icon = load("res://assets/graphics/touch_control/spawn_tile.png")
|
||||
if SettingsManager:
|
||||
_ensure_shortcut_label(tekton_grab_button, "TektonGrab")
|
||||
else:
|
||||
# Swapping back to Grab function (Hotkey G)
|
||||
tekton_grab_button.icon = load("res://assets/graphics/touch_control/grab_tekton.png")
|
||||
if SettingsManager:
|
||||
_ensure_shortcut_label(tekton_grab_button, "TektonGrab")
|
||||
|
||||
# Refresh button states
|
||||
var powerup_mgr = local_player.get_node_or_null("PowerUpManager")
|
||||
if powerup_mgr:
|
||||
_on_boost_points_changed(powerup_mgr.current_boost, powerup_mgr.MAX_BOOST)
|
||||
|
||||
Reference in New Issue
Block a user