init
This commit is contained in:
commit
b99855351d
434 changed files with 50357 additions and 0 deletions
105
addons/inkgd/runtime/state_patch.gd
Normal file
105
addons/inkgd/runtime/state_patch.gd
Normal file
|
@ -0,0 +1,105 @@
|
|||
# warning-ignore-all:shadowed_variable
|
||||
# warning-ignore-all:unused_class_variable
|
||||
# ############################################################################ #
|
||||
# Copyright © 2015-2021 inkle Ltd.
|
||||
# Copyright © 2019-2022 Frédéric Maquin <fred@ephread.com>
|
||||
# All Rights Reserved
|
||||
#
|
||||
# This file is part of inkgd.
|
||||
# inkgd is licensed under the terms of the MIT license.
|
||||
# ############################################################################ #
|
||||
|
||||
extends InkBase
|
||||
|
||||
class_name InkStatePatch
|
||||
|
||||
# ############################################################################ #
|
||||
# Imports
|
||||
# ############################################################################ #
|
||||
|
||||
var InkTryGetResult := preload("res://addons/inkgd/runtime/extra/try_get_result.gd") as GDScript
|
||||
var InkStringSet := preload("res://addons/inkgd/runtime/extra/string_set.gd") as GDScript
|
||||
|
||||
# ############################################################################ #
|
||||
|
||||
# Dictionary<String, InkObject>
|
||||
var globals: Dictionary: get = get_globals
|
||||
func get_globals() -> Dictionary:
|
||||
return _globals
|
||||
|
||||
# StringSet
|
||||
var changed_variables: InkStringSet: get = get_changed_variables
|
||||
func get_changed_variables() -> InkStringSet:
|
||||
return _changed_variables
|
||||
|
||||
# Dictionary<InkContainer, int>
|
||||
var visit_counts: Dictionary: get = get_visit_counts
|
||||
func get_visit_counts() -> Dictionary:
|
||||
return _visit_counts
|
||||
|
||||
# Dictionary<InkContainer, int>
|
||||
var turn_indices : get = get_turn_indices
|
||||
func get_turn_indices() -> Dictionary:
|
||||
return _turn_indices
|
||||
|
||||
# ############################################################################ #
|
||||
|
||||
func _init(to_copy: InkStatePatch):
|
||||
if to_copy != null:
|
||||
_globals = to_copy._globals.duplicate()
|
||||
_changed_variables = to_copy._changed_variables.duplicate()
|
||||
_visit_counts = to_copy._visit_counts.duplicate()
|
||||
_turn_indices = to_copy._turn_indices.duplicate()
|
||||
else:
|
||||
_globals = {}
|
||||
_changed_variables = InkStringSet.new()
|
||||
_visit_counts = {}
|
||||
_turn_indices = {}
|
||||
|
||||
# (String) -> { exists: bool, result: InkObject }
|
||||
func try_get_global(name) -> InkTryGetResult:
|
||||
if _globals.has(name):
|
||||
return InkTryGetResult.new(true, _globals[name])
|
||||
|
||||
return InkTryGetResult.new(false, null)
|
||||
|
||||
func set_global(name: String, value: InkObject) -> void:
|
||||
_globals[name] = value
|
||||
|
||||
func add_changed_variable(name: String) -> void:
|
||||
_changed_variables.append(name)
|
||||
|
||||
# (InkContainer) -> { exists: bool, result: int }
|
||||
func try_get_visit_count(container) -> InkTryGetResult:
|
||||
if _visit_counts.has(container):
|
||||
return InkTryGetResult.new(true, _visit_counts[container])
|
||||
|
||||
return InkTryGetResult.new(false, 0)
|
||||
|
||||
func set_visit_count(container: InkContainer, index: int) -> void:
|
||||
_visit_counts[container] = index
|
||||
|
||||
func set_turn_index(container: InkContainer, index: int) -> void:
|
||||
_turn_indices[container] = index
|
||||
|
||||
# (InkContainer) -> { exists: bool, result: int }
|
||||
func try_get_turn_index(container) -> InkTryGetResult:
|
||||
if _turn_indices.has(container):
|
||||
return InkTryGetResult.new(true, _turn_indices[container])
|
||||
|
||||
return InkTryGetResult.new(false, 0)
|
||||
|
||||
var _globals: Dictionary
|
||||
var _changed_variables: InkStringSet
|
||||
var _visit_counts: Dictionary
|
||||
var _turn_indices: Dictionary
|
||||
|
||||
# ############################################################################ #
|
||||
# GDScript extra methods
|
||||
# ############################################################################ #
|
||||
|
||||
func is_ink_class(type: String) -> bool:
|
||||
return type == "StatePatch" || super.is_ink_class(type)
|
||||
|
||||
func get_ink_class() -> String:
|
||||
return "StatePatch"
|
Loading…
Add table
Add a link
Reference in a new issue