init
This commit is contained in:
commit
b99855351d
434 changed files with 50357 additions and 0 deletions
122
addons/inkgd/runtime/content/choices/ink_choice_point.gd
Normal file
122
addons/inkgd/runtime/content/choices/ink_choice_point.gd
Normal file
|
@ -0,0 +1,122 @@
|
|||
# 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 InkObject
|
||||
|
||||
class_name InkChoicePoint
|
||||
|
||||
# ############################################################################ #
|
||||
|
||||
# () -> InkPath
|
||||
# (InkPath) -> void
|
||||
var path_on_choice: InkPath:
|
||||
get:
|
||||
if self._path_on_choice != null && self._path_on_choice.is_relative:
|
||||
var choice_target_obj := self.choice_target
|
||||
if choice_target_obj:
|
||||
self._path_on_choice = choice_target_obj.path
|
||||
|
||||
return _path_on_choice
|
||||
|
||||
set(value):
|
||||
_path_on_choice = value
|
||||
|
||||
var _path_on_choice: InkPath = null
|
||||
|
||||
|
||||
# ############################################################################ #
|
||||
|
||||
var choice_target: InkContainer:
|
||||
get:
|
||||
var cont: InkContainer = resolve_path(self._path_on_choice).container
|
||||
return cont
|
||||
|
||||
|
||||
# ############################################################################ #
|
||||
|
||||
var path_string_on_choice: String:
|
||||
get:
|
||||
return compact_path_string(self.path_on_choice)
|
||||
|
||||
set(value):
|
||||
self.path_on_choice = InkPath.new_with_components_string(value)
|
||||
|
||||
|
||||
# ############################################################################ #
|
||||
|
||||
var has_condition: bool
|
||||
|
||||
|
||||
var has_start_content: bool
|
||||
|
||||
|
||||
var has_choice_only_content: bool
|
||||
|
||||
|
||||
var once_only: bool
|
||||
|
||||
|
||||
var is_invisible_default: bool
|
||||
|
||||
|
||||
# ############################################################################ #
|
||||
|
||||
var flags: int:
|
||||
get:
|
||||
var flags: int = 0
|
||||
|
||||
if has_condition:
|
||||
flags |= 1
|
||||
if has_start_content:
|
||||
flags |= 2
|
||||
if has_choice_only_content:
|
||||
flags |= 4
|
||||
if is_invisible_default:
|
||||
flags |= 8
|
||||
if once_only:
|
||||
flags |= 16
|
||||
|
||||
return flags
|
||||
|
||||
set(value):
|
||||
has_condition = (value & 1) > 0
|
||||
has_start_content = (value & 2) > 0
|
||||
has_choice_only_content = (value & 4) > 0
|
||||
is_invisible_default = (value & 8) > 0
|
||||
once_only = (value & 16) > 0
|
||||
|
||||
|
||||
# ############################################################################ #
|
||||
|
||||
func _init(once_only: bool = true):
|
||||
self.once_only = once_only
|
||||
|
||||
|
||||
func _to_string() -> String:
|
||||
var target_line_num = debug_line_number_of_path(self.path_on_choice)
|
||||
var target_string := self.path_on_choice._to_string()
|
||||
|
||||
if target_line_num != null:
|
||||
target_string = " line %d(%s)" % [target_line_num, target_string]
|
||||
|
||||
return "Choice: -> %s" % target_string
|
||||
|
||||
|
||||
# ############################################################################ #
|
||||
# GDScript extra methods
|
||||
# ############################################################################ #
|
||||
|
||||
func is_ink_class(type: String) -> bool:
|
||||
return type == "ChoicePoint" || super.is_ink_class(type)
|
||||
|
||||
|
||||
func get_ink_class() -> String:
|
||||
return "ChoicePoint"
|
Loading…
Add table
Add a link
Reference in a new issue