Skip to content

Commit

Permalink
Fix inkgd script templates
Browse files Browse the repository at this point in the history
  • Loading branch information
manuq committed Feb 25, 2025
1 parent 4c2ffe9 commit dc91efc
Show file tree
Hide file tree
Showing 5 changed files with 162 additions and 162 deletions.
8 changes: 4 additions & 4 deletions addons/inkgd/editor/ink_editor_plugin.gd
Original file line number Diff line number Diff line change
Expand Up @@ -200,11 +200,11 @@ func _add_templates():
# Setup the templates folder for the project
var template_dir_path = ProjectSettings.get_setting("editor/script/templates_search_path")
if !DirAccess.dir_exists_absolute(template_dir_path):
DirAccess.make_dir_absolute(template_dir_path)
DirAccess.make_dir_recursive_absolute(template_dir_path + "/Node")

for template_name in names:
var template_file_path = template_dir_path + "/" + template_name
DirAccess.copy_absolute("res://addons/inkgd/editor/templates/" + template_name, template_file_path)
var template_file_path = template_dir_path + "/Node/" + template_name
DirAccess.copy_absolute("res://addons/inkgd/editor/templates/Node/" + template_name, template_file_path)


## Unregisters the script templates provided by the plugin.
Expand All @@ -222,7 +222,7 @@ func _remove_templates():
func _get_plugin_templates_names() -> Array:
var plugin_template_names = []

var dir = DirAccess.open("res://addons/inkgd/editor/templates/")
var dir = DirAccess.open("res://addons/inkgd/editor/templates/Node")
if dir:
dir.list_dir_begin()
var temp = dir.get_next()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# warning-ignore-all:return_value_discarded

extends %BASE%
extends _BASE_

# ############################################################################ #
# Imports
Expand All @@ -21,81 +21,81 @@ var InkPlayer = load("res://addons/inkgd/ink_player.gd")
# ############################################################################ #

func _ready():
%TS%# Adds the player to the tree.
%TS%add_child(_ink_player)
_TS_# Adds the player to the tree.
_TS_add_child(_ink_player)

%TS%# Replace the example path with the path to your story.
%TS%# Remove this line if you set 'ink_file' in the inspector.
%TS%_ink_player.ink_file = load("res://path/to/file.ink.json")
_TS_# Replace the example path with the path to your story.
_TS_# Remove this line if you set 'ink_file' in the inspector.
_TS__ink_player.ink_file = load("res://path/to/file.ink.json")

%TS%# It's recommended to load the story in the background. On platforms that
%TS%# don't support threads, the value of this variable is ignored.
%TS%_ink_player.loads_in_background = true
_TS_# It's recommended to load the story in the background. On platforms that
_TS_# don't support threads, the value of this variable is ignored.
_TS__ink_player.loads_in_background = true

%TS%_ink_player.connect("loaded", Callable(self, "_story_loaded"))
_TS__ink_player.connect("loaded", Callable(self, "_story_loaded"))

%TS%# Creates the story. 'loaded' will be emitted once Ink is ready
%TS%# continue the story.
%TS%_ink_player.create_story()
_TS_# Creates the story. 'loaded' will be emitted once Ink is ready
_TS_# continue the story.
_TS__ink_player.create_story()


# ############################################################################ #
# Signal Receivers
# ############################################################################ #

func _story_loaded(successfully: bool):
%TS%if !successfully:
%TS%%TS%return
_TS_if !successfully:
_TS__TS_return

%TS%# _observe_variables()
%TS%# _bind_externals()
_TS_# _observe_variables()
_TS_# _bind_externals()

%TS%_continue_story()
_TS__continue_story()


# ############################################################################ #
# Private Methods
# ############################################################################ #

func _continue_story():
%TS%while _ink_player.can_continue:
%TS%%TS%var text = _ink_player.continue_story()
%TS%%TS%# This text is a line of text from the ink story.
%TS%%TS%# Set the text of a Label to this value to display it in your game.
%TS%%TS%print(text)
%TS%if _ink_player.has_choices:
%TS%%TS%# 'current_choices' contains a list of the choices, as strings.
%TS%%TS%for choice in _ink_player.current_choices:
%TS%%TS%%TS%print(choice.text)
%TS%%TS%%TS%print(choice.tags)
%TS%%TS%# '_select_choice' is a function that will take the index of
%TS%%TS%# your selection and continue the story.
%TS%%TS%_select_choice(0)
%TS%else:
%TS%%TS%# This code runs when the story reaches it's end.
%TS%%TS%print("The End")
_TS_while _ink_player.can_continue:
_TS__TS_var text = _ink_player.continue_story()
_TS__TS_# This text is a line of text from the ink story.
_TS__TS_# Set the text of a Label to this value to display it in your game.
_TS__TS_print(text)
_TS_if _ink_player.has_choices:
_TS__TS_# 'current_choices' contains a list of the choices, as strings.
_TS__TS_for choice in _ink_player.current_choices:
_TS__TS__TS_print(choice.text)
_TS__TS__TS_print(choice.tags)
_TS__TS_# '_select_choice' is a function that will take the index of
_TS__TS_# your selection and continue the story.
_TS__TS__select_choice(0)
_TS_else:
_TS__TS_# This code runs when the story reaches it's end.
_TS__TS_print("The End")


func _select_choice(index):
%TS%_ink_player.choose_choice_index(index)
%TS%_continue_story()
_TS__ink_player.choose_choice_index(index)
_TS__continue_story()


# Uncomment to bind an external function.
#
# func _bind_externals():
# %TS%_ink_player.bind_external_function("<function_name>", self, "_external_function")
# _TS__ink_player.bind_external_function("<function_name>", self, "_external_function")
#
#
# func _external_function(arg1, arg2):
# %TS%pass
# _TS_pass


# Uncomment to observe the variables from your ink story.
# You can observe multiple variables by putting adding them in the array.
# func _observe_variables():
# %TS%_ink_player.observe_variables(["var1", "var2"], self, "_variable_changed")
# _TS__ink_player.observe_variables(["var1", "var2"], self, "_variable_changed")
#
#
# func _variable_changed(variable_name, new_value):
# %TS%print("Variable '%s' changed to: %s" %[variable_name, new_value])
# _TS_print("Variable '%s' changed to: %s" %[variable_name, new_value])
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# warning-ignore-all:return_value_discarded

extends %BASE%
extends _BASE_

# ############################################################################ #
# Imports
Expand All @@ -22,86 +22,86 @@ var InkPlayer = load("res://addons/inkgd/ink_player.gd")
# ############################################################################ #

func _ready():
%TS%# Adds the player to the tree.
%TS%add_child(_ink_player)
_TS_# Adds the player to the tree.
_TS_add_child(_ink_player)

%TS%# Replace the example path with the path to your story.
%TS%# Remove this line if you set 'ink_file' in the inspector.
%TS%_ink_player.ink_file = load("res://path/to/file.ink.json")
_TS_# Replace the example path with the path to your story.
_TS_# Remove this line if you set 'ink_file' in the inspector.
_TS__ink_player.ink_file = load("res://path/to/file.ink.json")

%TS%# It's recommended to load the story in the background. On platforms that
%TS%# don't support threads, the value of this variable is ignored.
%TS%_ink_player.loads_in_background = true
_TS_# It's recommended to load the story in the background. On platforms that
_TS_# don't support threads, the value of this variable is ignored.
_TS__ink_player.loads_in_background = true

%TS%_ink_player.connect("loaded", Callable(self, "_story_loaded"))
%TS%_ink_player.connect("continued", Callable(self, "_continued"))
%TS%_ink_player.connect("prompt_choices", Callable(self, "_prompt_choices"))
%TS%_ink_player.connect("ended", Callable(self, "_ended"))
_TS__ink_player.connect("loaded", Callable(self, "_story_loaded"))
_TS__ink_player.connect("continued", Callable(self, "_continued"))
_TS__ink_player.connect("prompt_choices", Callable(self, "_prompt_choices"))
_TS__ink_player.connect("ended", Callable(self, "_ended"))

%TS%# Creates the story. 'loaded' will be emitted once Ink is ready
%TS%# continue the story.
%TS%_ink_player.create_story()
_TS_# Creates the story. 'loaded' will be emitted once Ink is ready
_TS_# continue the story.
_TS__ink_player.create_story()

# ############################################################################ #
# Signal Receivers
# ############################################################################ #

func _story_loaded(successfully: bool):
%TS%if !successfully:
%TS%%TS%return
_TS_if !successfully:
_TS__TS_return

%TS%# _observe_variables()
%TS%# _bind_externals()
_TS_# _observe_variables()
_TS_# _bind_externals()

%TS%# Here, the story is started immediately, but it could be started
%TS%# at a later time.
%TS%_ink_player.continue_story()
_TS_# Here, the story is started immediately, but it could be started
_TS_# at a later time.
_TS__ink_player.continue_story()


func _continued(text, tags):
%TS%print(text)
%TS%# Here you could yield for an hypothetical signal, before continuing.
%TS%# await self.event
%TS%_ink_player.continue_story()
_TS_print(text)
_TS_# Here you could yield for an hypothetical signal, before continuing.
_TS_# await self.event
_TS__ink_player.continue_story()


# ############################################################################ #
# Private Methods
# ############################################################################ #

func _prompt_choices(choices):
%TS%if !choices.is_empty():
%TS%%TS%print(choices)
_TS_if !choices.is_empty():
_TS__TS_print(choices)

%TS%%TS%# In a real world scenario, _select_choice' could be
%TS%%TS%# connected to a signal, like 'Button.pressed'.
%TS%%TS%_select_choice(0)
_TS__TS_# In a real world scenario, _select_choice' could be
_TS__TS_# connected to a signal, like 'Button.pressed'.
_TS__TS__select_choice(0)


func _ended():
%TS%print("The End")
_TS_print("The End")


func _select_choice(index):
%TS%_ink_player.choose_choice_index(index)
%TS%_ink_player.continue_story()
_TS__ink_player.choose_choice_index(index)
_TS__ink_player.continue_story()


# Uncomment to bind an external function.
#
# func _bind_externals():
# %TS%_ink_player.bind_external_function("<function_name>", self, "_external_function")
# _TS__ink_player.bind_external_function("<function_name>", self, "_external_function")
#
#
# func _external_function(arg1, arg2):
# %TS%pass
# _TS_pass


# Uncomment to observe the variables from your ink story.
# You can observe multiple variables by putting adding them in the array.
# func _observe_variables():
# %TS%_ink_player.observe_variables(["var1", "var2"], self, "_variable_changed")
# _TS__ink_player.observe_variables(["var1", "var2"], self, "_variable_changed")
#
#
# func _variable_changed(variable_name, new_value):
# %TS%print("Variable '%s' changed to: %s" %[variable_name, new_value])
# _TS_print("Variable '%s' changed to: %s" %[variable_name, new_value])
Loading

0 comments on commit dc91efc

Please sign in to comment.