cirnogodot/addons/weapon_creator/WeaponCreatorSettings.gd

74 lines
2.7 KiB
GDScript

@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()