init
This commit is contained in:
commit
b99855351d
434 changed files with 50357 additions and 0 deletions
106
addons/inkgd/editor/panel/ink_bottom_panel.gd
Normal file
106
addons/inkgd/editor/panel/ink_bottom_panel.gd
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
@tool
|
||||
# warning-ignore-all:return_value_discarded
|
||||
|
||||
# ############################################################################ #
|
||||
# Copyright © 2019-2022 Frédéric Maquin <fred@ephread.com>
|
||||
# Licensed under the MIT License.
|
||||
# See LICENSE in the project root for license information.
|
||||
# ############################################################################ #
|
||||
|
||||
extends Control
|
||||
|
||||
# Hiding this type to prevent registration of "private" nodes.
|
||||
# See https://github.com/godotengine/godot-proposals/issues/1047
|
||||
# class_name InkBottomPanel
|
||||
|
||||
# ############################################################################ #
|
||||
# Imports
|
||||
# ############################################################################ #
|
||||
|
||||
var InkStoryPanelScene = load("res://addons/inkgd/editor/panel/stories/ink_story_panel.tscn")
|
||||
var InkPreviewPanelScene = load("res://addons/inkgd/editor/panel/preview/ink_preview_panel.tscn")
|
||||
var InkConfigurationPanelScene = load("res://addons/inkgd/editor/panel/configuration/ink_configuration_panel.tscn")
|
||||
|
||||
# ############################################################################ #
|
||||
# Properties
|
||||
# ############################################################################ #
|
||||
|
||||
var editor_interface: InkEditorInterface = null
|
||||
var configuration: InkConfiguration = null
|
||||
|
||||
# ############################################################################ #
|
||||
# Private Properties
|
||||
# ############################################################################ #
|
||||
|
||||
var _progress_texture: AnimatedTexture
|
||||
|
||||
# ############################################################################ #
|
||||
# Hierarchy Nodes
|
||||
# ############################################################################ #
|
||||
|
||||
@onready var _tab_container: TabContainer = $TabContainer
|
||||
@onready var _beta_button: LinkButton = $MarginContainer/LinkButton
|
||||
|
||||
@onready var _story_panel = InkStoryPanelScene.instantiate()
|
||||
@onready var _preview_panel = InkPreviewPanelScene.instantiate()
|
||||
@onready var _configuration_panel = InkConfigurationPanelScene.instantiate()
|
||||
|
||||
# ############################################################################ #
|
||||
# Overrides
|
||||
# ############################################################################ #
|
||||
|
||||
func _ready():
|
||||
# FIXME: This needs investigating.
|
||||
# Sanity check. It seems the editor instantiates tools script on their
|
||||
# own, probably to add them to its tree. In that case, they won't have
|
||||
# their dependencies injected, so we're not doing anything.
|
||||
if editor_interface == null || configuration == null:
|
||||
print("[inkgd] [INFO] Ink Bottom Panel: dependencies not met, ignoring.")
|
||||
return
|
||||
|
||||
_progress_texture = _create_progress_texture()
|
||||
|
||||
_story_panel.editor_interface = editor_interface
|
||||
_story_panel.configuration = configuration
|
||||
_story_panel.progress_texture = _progress_texture
|
||||
|
||||
_preview_panel.editor_interface = editor_interface
|
||||
_preview_panel.configuration = configuration
|
||||
_preview_panel.progress_texture = _progress_texture
|
||||
|
||||
_configuration_panel.editor_interface = editor_interface
|
||||
_configuration_panel.configuration = configuration
|
||||
|
||||
_tab_container.add_child(_story_panel)
|
||||
_tab_container.add_child(_preview_panel)
|
||||
_tab_container.add_child(_configuration_panel)
|
||||
|
||||
_beta_button.connect("pressed", Callable(self, "_open_github_issues"))
|
||||
|
||||
_set_minimum_panel_size()
|
||||
|
||||
|
||||
# ############################################################################ #
|
||||
# Signals Receivers
|
||||
# ############################################################################ #
|
||||
|
||||
func _open_github_issues():
|
||||
OS.shell_open("https://github.com/ephread/inkgd/issues/new?assignees=&labels=&template=bug_report.md")
|
||||
|
||||
# ############################################################################ #
|
||||
# Private helpers
|
||||
# ############################################################################ #
|
||||
|
||||
func _create_progress_texture() -> AnimatedTexture:
|
||||
var animated_texture = AnimatedTexture.new()
|
||||
animated_texture.frames = 8
|
||||
|
||||
for index in range(8):
|
||||
var texture = get_theme_icon(str("Progress", (index + 1)), "EditorIcons")
|
||||
animated_texture.set_frame_texture(index, texture)
|
||||
|
||||
return animated_texture
|
||||
|
||||
func _set_minimum_panel_size():
|
||||
# Adapting the minimum size of the panel to the scale of the editor.
|
||||
custom_minimum_size = Vector2(900, 245) * editor_interface.scale
|
||||
Loading…
Add table
Add a link
Reference in a new issue