summaryrefslogtreecommitdiff
path: root/addons/escoria-core/game/esc_inputs_manager.gd
diff options
context:
space:
mode:
Diffstat (limited to 'addons/escoria-core/game/esc_inputs_manager.gd')
-rw-r--r--addons/escoria-core/game/esc_inputs_manager.gd36
1 files changed, 22 insertions, 14 deletions
diff --git a/addons/escoria-core/game/esc_inputs_manager.gd b/addons/escoria-core/game/esc_inputs_manager.gd
index 762da5e..b2d8b5b 100644
--- a/addons/escoria-core/game/esc_inputs_manager.gd
+++ b/addons/escoria-core/game/esc_inputs_manager.gd
@@ -2,8 +2,11 @@
##
## Catches, handles and distributes input events for the game.
## @MANAGER
-extends Resource
class_name ESCInputsManager
+extends Resource
+
+## Emitted when input mode changes.
+signal input_mode_changed(new_mode: int)
## Valid input flags[br]
@@ -27,7 +30,12 @@ const ESC_UI_PRIMARY_ACTION = "esc_ui_primary_action"
## The current input mode
-var input_mode = INPUT_ALL
+var input_mode = INPUT_ALL:
+ get:
+ return input_mode
+ set(new_mode):
+ input_mode = new_mode
+ input_mode_changed.emit(new_mode)
## A LIFO stack of hovered items
var hover_stack: HoverStack
@@ -43,7 +51,7 @@ var hotspot_focused: String = ""
## #### Parameters[br]
##[br]
## - event: The event to process[br]
-## - is_default_state: Whether the current state is escoria.GAME_STATE.DEFAULT[br]
+## - is_default_state: Whether the current state is escoria.GameState.DEFAULT[br]
##[br]
## **Returns** Whether the function processed the event.
var custom_input_handler = null
@@ -77,7 +85,7 @@ func _init():
## #### Returns[br]
## [br]
## Returns nothing.
-func _on_event_finished(return_code: int, event_name: String):
+func _on_event_finished(_return_code: int, _event_name: String):
if _hovered_element == null:
hotspot_focused = ""
@@ -138,7 +146,7 @@ func register_background(background: ESCBackground):
## [br]
## | Name | Type | Description | Required? |[br]
## |:-----|:-----|:------------|:----------|[br]
-## |callback|`Variant`|Function reference satisfying the above contract event The event to process is_default_state Whether the current state is escoria.GAME_STATE.DEFAULT returns whether the function processed the event `callback` is responsible for calling `get_tree().set_input_as_handled()`, if appropriate.|yes|[br]
+## |callback|`Variant`|Function reference satisfying the above contract event The event to process is_default_state Whether the current state is escoria.GameState.DEFAULT returns whether the function processed the event `callback` is responsible for calling `get_tree().set_input_as_handled()`, if appropriate.|yes|[br]
## [br]
## #### Returns[br]
## [br]
@@ -154,7 +162,7 @@ func register_custom_input_handler(callback) -> void:
## | Name | Type | Description | Required? |[br]
## |:-----|:-----|:------------|:----------|[br]
## |event|`InputEvent`|The event to process|yes|[br]
-## |is_default_state|`bool`|Whether the current state is escoria.GAME_STATE.DEFAULT|yes|[br]
+## |is_default_state|`bool`|Whether the current state is escoria.GameState.DEFAULT|yes|[br]
## [br]
## #### Returns[br]
## [br]
@@ -162,8 +170,8 @@ func register_custom_input_handler(callback) -> void:
func try_custom_input_handler(event: InputEvent, is_default_state: bool) -> bool:
if custom_input_handler:
return custom_input_handler.call(event, is_default_state)
- else:
- return false
+
+ return false
## Callback called by hover stack content change.[br]
## [br]
@@ -209,9 +217,9 @@ func set_hovered_node(item: ESCItem) -> bool:
_hovered_element = item
_hovered_element.mouse_entered()
return true
+
# Else, the tested item is currently on top of hover stack, then do nothing
- else:
- return false
+ return false
## Unsets the hovered node.[br]
@@ -506,10 +514,10 @@ func on_item_non_interactive(item: ESCItem) -> void:
if hover_stack.is_empty():
return
- else:
- var new_item = hover_stack.get_top_item()
- escoria.action_manager.set_action_input_state(ESCActionManager.ACTION_INPUT_STATE.AWAITING_VERB_OR_ITEM)
- new_item.mouse_entered()
+
+ var new_item = hover_stack.get_top_item()
+ escoria.action_manager.set_action_input_state(ESCActionManager.ActionInputState.AWAITING_VERB_OR_ITEM)
+ new_item.mouse_entered()
# An Escoria item was clicked with the LMB