From c20964a17c0b4ee020c7c52015f773a00489ab5e Mon Sep 17 00:00:00 2001 From: oier Date: Sun, 27 Aug 2023 16:37:43 +0200 Subject: [PATCH] set_tooltip esc command --- .../esc/commands/set_tooltip.gd | 52 +++++++++++++++++++ .../esc_item_with_tooltip.gd | 4 +- .../turno_cocina/despensa/esc/bidon_cntr.esc | 2 + project.godot | 8 +-- 4 files changed, 61 insertions(+), 5 deletions(-) create mode 100644 gymkhana/addons/escoria-ui-return-monkey-island/esc/commands/set_tooltip.gd diff --git a/gymkhana/addons/escoria-ui-return-monkey-island/esc/commands/set_tooltip.gd b/gymkhana/addons/escoria-ui-return-monkey-island/esc/commands/set_tooltip.gd new file mode 100644 index 00000000..ba968b40 --- /dev/null +++ b/gymkhana/addons/escoria-ui-return-monkey-island/esc/commands/set_tooltip.gd @@ -0,0 +1,52 @@ +# `set_tooltip object action text` +# +# Sets the tooltip text for the given `ESCItemWithTooltip` and action. +# +# **Parameters** +# +# - *object*: Global ID of the object whose toolitp is to be updated +# - *action*: ID of the action, action1, action2, action3 or action4. +# - *toolip*: The tooltip text string +# +# @ESC +extends ESCBaseCommand +class_name SetTooltipCommand + + +# Return the descriptor of the arguments of this command +func configure() -> ESCCommandArgumentDescriptor: + return ESCCommandArgumentDescriptor.new( + 2, + [TYPE_STRING,TYPE_STRING, TYPE_STRING], + [null, "action1", ""] + ) + + +# Validate whether the given arguments match the command descriptor +func validate(arguments: Array): + if not .validate(arguments): + return false + + if not escoria.object_manager.has(arguments[0]): + escoria.logger.error( + self, + "[%s]: invalid object. Object with global id %s not found." + % [get_command_name(), arguments[0]] + ) + return false + + return true + + +# Run the command +func run(command_params: Array) -> int: + (escoria.object_manager.get_object(command_params[0]).node as ESCItemWithTooltip)\ + .set_tooltip(command_params[1],command_params[2]) + return ESCExecution.RC_OK + + +# Function called when the command is interrupted. +func interrupt(): + # Do nothing + pass + diff --git a/gymkhana/addons/escoria-ui-return-monkey-island/esc_item_with_tooltip.gd b/gymkhana/addons/escoria-ui-return-monkey-island/esc_item_with_tooltip.gd index 2f0a22cb..73381484 100644 --- a/gymkhana/addons/escoria-ui-return-monkey-island/esc_item_with_tooltip.gd +++ b/gymkhana/addons/escoria-ui-return-monkey-island/esc_item_with_tooltip.gd @@ -64,4 +64,6 @@ func _ready(): pass - +func set_tooltip(action: String, text: String): + set(action + "_text", text) + diff --git a/gymkhana/rooms/turno_cocina/despensa/esc/bidon_cntr.esc b/gymkhana/rooms/turno_cocina/despensa/esc/bidon_cntr.esc index d6b7ebe6..817ea8b1 100644 --- a/gymkhana/rooms/turno_cocina/despensa/esc/bidon_cntr.esc +++ b/gymkhana/rooms/turno_cocina/despensa/esc/bidon_cntr.esc @@ -1,5 +1,7 @@ :action1 say player "Hay muchas lentejas." + set_tooltip turno_cocina_despensa_bidon_cntr action1 "Mirar bidon con lentejas" + set_tooltip turno_cocina_despensa_bidon_cntr action2 "Coger lentejas" :action2 say player "Necesito cogerlas con algo." diff --git a/project.godot b/project.godot index 33e4665e..b3d3a739 100644 --- a/project.godot +++ b/project.godot @@ -204,7 +204,7 @@ _global_script_classes=[ { "language": "GDScript", "path": "res://addons/escoria-core/game/scenes/dialogs/esc_dialog_options_chooser.gd" }, { -"base": "StateMachine", +"base": "Node", "class": "ESCDialogPlayer", "language": "GDScript", "path": "res://addons/escoria-core/game/scenes/dialogs/esc_dialog_player.gd" @@ -344,7 +344,7 @@ _global_script_classes=[ { "language": "GDScript", "path": "res://addons/escoria-core/game/esc_project_settings_manager.gd" }, { -"base": "Reference", +"base": "Node", "class": "ESCResourceCache", "language": "GDScript", "path": "res://addons/escoria-core/game/core-scripts/esc_resource_cache.gd" @@ -557,7 +557,7 @@ _global_script_classes=[ { "base": "ESCBaseCommand", "class": "SetAnimationsCommand", "language": "GDScript", -"path": "res://addons/escoria-core/game/core-scripts/esc/commands/set_animations.gd" +"path": "res://gymkhana/addons/escoria-ui-return-monkey-island/esc/commands/set_tooltip.gd" }, { "base": "ESCBaseCommand", "class": "SetGlobalCommand", @@ -861,7 +861,7 @@ enabled=PoolStringArray( "res://addons/escoria-core/plugin.cfg", "res://gymkhana main/game_version="0.1.0" main/game_start_script="res://gymkhana/start_game.esc" main/force_quit=true -main/command_directories=[ "res://addons/escoria-core/game/core-scripts/esc/commands" ] +main/command_directories=[ "res://addons/escoria-core/game/core-scripts/esc/commands", "res://gymkhana/addons/escoria-ui-return-monkey-island/esc/commands" ] main/text_lang="fr_FR" main/voice_lang="fr_FR" main/savegames_path="res://saves/"