feat: integrate inventory with cursor system, scene input, and GameScript
- ActionState: add ITEM action (value 4) to enum and get_action_name() - MainGame: right-click cycles through all 5 actions including ITEM; skips ITEM if nothing selected; clears selection when cycling away - Scene: guard _unhandled_input() against active inventory overlay; handle ITEM action for world-wide item use; add give_item(), remove_item(), strip_items() helper methods - SetPiece: handle ITEM action by calling scene's _use_item_on_setpiece() - GameScript: add GiveItem and GiveItemDeferred script step classes for item acquisition during cutscenes
This commit is contained in:
14
MainGame.gd
14
MainGame.gd
@@ -78,5 +78,15 @@ func _input(event):
|
||||
if event.is_action_released("quit"):
|
||||
get_tree().quit()
|
||||
if event.is_action_released("right_click") and not is_cursor_locked:
|
||||
ActionState.current_action = (ActionState.current_action + 1) % 4
|
||||
Input.set_custom_mouse_cursor(cursors[ActionState.current_action], Input.CursorShape.CURSOR_ARROW, Vector2(0,0))
|
||||
var prev_action = ActionState.current_action
|
||||
ActionState.current_action = (ActionState.current_action + 1) % 5
|
||||
if ActionState.current_action == ActionState.Action.ITEM:
|
||||
if InventoryManager.selected_item:
|
||||
Input.set_custom_mouse_cursor(cursors[ActionState.current_action], Input.CursorShape.CURSOR_ARROW, Vector2(0,0))
|
||||
else:
|
||||
ActionState.current_action = (ActionState.current_action + 1) % 5
|
||||
Input.set_custom_mouse_cursor(cursors[ActionState.current_action], Input.CursorShape.CURSOR_ARROW, Vector2(0,0))
|
||||
else:
|
||||
if prev_action == ActionState.Action.ITEM:
|
||||
InventoryManager.clear_selection()
|
||||
Input.set_custom_mouse_cursor(cursors[ActionState.current_action], Input.CursorShape.CURSOR_ARROW, Vector2(0,0))
|
||||
|
||||
Reference in New Issue
Block a user