mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-01 09:45:33 +00:00
86 lines
3.3 KiB
GDScript
86 lines
3.3 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 enemies_dir: String = "res://Resources/Enemies/"
|
|
@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"
|
|
|
|
# Default enemy paths
|
|
@export var default_enemy_prefab_3d: String = "res://Scenes/Actors/Generic_Enemy_FSM_3D.tscn"
|
|
|
|
# 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 enemy_dialog_size: Vector2i = Vector2i(750, 950)
|
|
@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 enemy_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 = ""
|
|
@export var enemy_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/"
|
|
enemies_dir = "res://Resources/Enemies/"
|
|
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"
|
|
default_enemy_prefab_3d = "res://Scenes/Actors/Generic_Enemy_FSM_3D.tscn"
|
|
weapon_dialog_size = Vector2i(750, 950)
|
|
bullet_dialog_size = Vector2i(750, 850)
|
|
item_dialog_size = Vector2i(750, 850)
|
|
enemy_dialog_size = Vector2i(750, 950)
|
|
settings_dialog_size = Vector2i(600, 600)
|
|
weapon_dialog_position = Vector2i.ZERO
|
|
bullet_dialog_position = Vector2i.ZERO
|
|
item_dialog_position = Vector2i.ZERO
|
|
enemy_dialog_position = Vector2i.ZERO
|
|
settings_dialog_position = Vector2i.ZERO
|
|
weapon_viewer_filter = ""
|
|
bullet_viewer_filter = ""
|
|
item_viewer_filter = ""
|
|
enemy_viewer_filter = ""
|
|
save_settings()
|
|
|
|
|
|
|
|
|