mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-30 09:31:16 +00:00
Refactor creator dialogs to use centralized settings management and improve UI state handling
This commit is contained in:
parent
5a8ccbe51b
commit
99281deef4
12 changed files with 510 additions and 242 deletions
74
addons/weapon_creator/WeaponCreatorSettings.gd
Normal file
74
addons/weapon_creator/WeaponCreatorSettings.gd
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
@tool
|
||||
class_name WeaponCreatorSettings
|
||||
extends Resource
|
||||
|
||||
# Settings manager for the Weapon Creator plugin
|
||||
# Stores configurable defaults and persists user preferences
|
||||
|
||||
const SETTINGS_PATH = "user://weapon_creator_settings.tres"
|
||||
|
||||
# Resource paths
|
||||
@export var weapons_dir: String = "res://Resources/Weapons/"
|
||||
@export var items_dir: String = "res://Resources/Items/"
|
||||
@export var bullets_dir: String = "res://Resources/Bullets/"
|
||||
@export var bullets_3d_dir: String = "res://Resources/Bullets/3D/"
|
||||
@export var items_database_path: String = "res://Resources/ItemsDatabase.tres"
|
||||
|
||||
# Default bullet paths
|
||||
@export var default_bullet_2d: String = "res://Resources/Bullets/simple_ice_bullet.tres"
|
||||
@export var default_bullet_3d: String = "res://Resources/Bullets/3D/icicle_repeater_bullets_3D.tres"
|
||||
|
||||
# Dialog sizes (saved automatically)
|
||||
@export var weapon_dialog_size: Vector2i = Vector2i(750, 950)
|
||||
@export var bullet_dialog_size: Vector2i = Vector2i(750, 850)
|
||||
@export var item_dialog_size: Vector2i = Vector2i(750, 850)
|
||||
@export var settings_dialog_size: Vector2i = Vector2i(600, 600)
|
||||
|
||||
# Dialog positions (saved automatically)
|
||||
@export var weapon_dialog_position: Vector2i = Vector2i.ZERO
|
||||
@export var bullet_dialog_position: Vector2i = Vector2i.ZERO
|
||||
@export var item_dialog_position: Vector2i = Vector2i.ZERO
|
||||
@export var settings_dialog_position: Vector2i = Vector2i.ZERO
|
||||
|
||||
# Viewer filters (saved automatically)
|
||||
@export var weapon_viewer_filter: String = ""
|
||||
@export var bullet_viewer_filter: String = ""
|
||||
@export var item_viewer_filter: String = ""
|
||||
|
||||
static func load_settings():
|
||||
if ResourceLoader.exists(SETTINGS_PATH):
|
||||
var loaded = ResourceLoader.load(SETTINGS_PATH)
|
||||
if loaded != null:
|
||||
return loaded
|
||||
var new_settings = WeaponCreatorSettings.new()
|
||||
return new_settings
|
||||
|
||||
func save_settings() -> void:
|
||||
var err = ResourceSaver.save(self, SETTINGS_PATH)
|
||||
if err != OK:
|
||||
push_error("Failed to save weapon creator settings: " + str(err))
|
||||
|
||||
func reset_to_defaults() -> void:
|
||||
weapons_dir = "res://Resources/Weapons/"
|
||||
items_dir = "res://Resources/Items/"
|
||||
bullets_dir = "res://Resources/Bullets/"
|
||||
bullets_3d_dir = "res://Resources/Bullets/3D/"
|
||||
items_database_path = "res://Resources/ItemsDatabase.tres"
|
||||
default_bullet_2d = "res://Resources/Bullets/simple_ice_bullet.tres"
|
||||
default_bullet_3d = "res://Resources/Bullets/3D/icicle_repeater_bullets_3D.tres"
|
||||
weapon_dialog_size = Vector2i(750, 950)
|
||||
bullet_dialog_size = Vector2i(750, 850)
|
||||
item_dialog_size = Vector2i(750, 850)
|
||||
settings_dialog_size = Vector2i(600, 600)
|
||||
weapon_dialog_position = Vector2i.ZERO
|
||||
bullet_dialog_position = Vector2i.ZERO
|
||||
item_dialog_position = Vector2i.ZERO
|
||||
settings_dialog_position = Vector2i.ZERO
|
||||
weapon_viewer_filter = ""
|
||||
bullet_viewer_filter = ""
|
||||
item_viewer_filter = ""
|
||||
save_settings()
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue