diff --git a/components/Bullets/BossAttack/Bear/ArrowSeven.tscn b/components/Bullets/ArrowSeven.tscn similarity index 100% rename from components/Bullets/BossAttack/Bear/ArrowSeven.tscn rename to components/Bullets/ArrowSeven.tscn diff --git a/components/Bullets/BossAttack/Bear/ForeverRainbow.tscn b/components/Bullets/ForeverRainbow.tscn similarity index 100% rename from components/Bullets/BossAttack/Bear/ForeverRainbow.tscn rename to components/Bullets/ForeverRainbow.tscn diff --git a/components/Bullets/BossAttack/KukeMC/HeavyCrystal.tscn b/components/Bullets/HeavyCrystal.tscn similarity index 100% rename from components/Bullets/BossAttack/KukeMC/HeavyCrystal.tscn rename to components/Bullets/HeavyCrystal.tscn diff --git a/components/Bullets/BossAttack/Bear/LightGun.tscn b/components/Bullets/LightGun.tscn similarity index 100% rename from components/Bullets/BossAttack/Bear/LightGun.tscn rename to components/Bullets/LightGun.tscn diff --git a/components/Bullets/BossAttack/Bear/SunDance.tscn b/components/Bullets/SunDance.tscn similarity index 100% rename from components/Bullets/BossAttack/Bear/SunDance.tscn rename to components/Bullets/SunDance.tscn diff --git a/scripts/Tools/DirTool.gd b/scripts/Tools/DirTool.gd index 074ed7d..30b4168 100644 --- a/scripts/Tools/DirTool.gd +++ b/scripts/Tools/DirTool.gd @@ -18,3 +18,5 @@ static func listdir(path: String) -> Array[String]: return files else: return [] +static func getBasenameWithoutExtension(path: String) -> String: + return path.get_file().get_basename() diff --git a/scripts/Tools/Managers/ComponentManager.gd b/scripts/Tools/Managers/ComponentManager.gd index 8aeb49c..607b239 100644 --- a/scripts/Tools/Managers/ComponentManager.gd +++ b/scripts/Tools/Managers/ComponentManager.gd @@ -1,3 +1,19 @@ class_name ComponentManager -var store = {} \ No newline at end of file +static var bullets = {} +static var characters = {} +static var effects = {} + +static func init(): + for i in DirTool.listdir("res://components/Bullets"): + bullets[DirTool.getBasenameWithoutExtension(i)] = load(i) + for i in DirTool.listdir("res://components/Characters"): + characters[DirTool.getBasenameWithoutExtension(i)] = load(i) + for i in DirTool.listdir("res://components/Effects"): + effects[DirTool.getBasenameWithoutExtension(i)] = load(i) +static func getBullet(name: String): + return bullets[name] +static func getCharacter(name: String): + return characters[name] +static func getEffect(name: String): + return effects[name] diff --git a/scripts/Tools/Managers/WorldManager.gd b/scripts/Tools/Managers/WorldManager.gd index 30d0526..c8b3609 100644 --- a/scripts/Tools/Managers/WorldManager.gd +++ b/scripts/Tools/Managers/WorldManager.gd @@ -8,6 +8,7 @@ static var runningTime: int = 0 func _ready(): tree = get_tree() rootNode = self + ComponentManager.init() func _physics_process(delta): runningTime += delta * 1000 if EntityBase.mobCount() == 0 and runningTime > 3000: