diff --git a/addons/forge/core/forge_data.tres b/addons/forge/core/forge_data.tres index 7671d561..47e7c2f5 100644 --- a/addons/forge/core/forge_data.tres +++ b/addons/forge/core/forge_data.tres @@ -1,7 +1,7 @@ -[gd_resource type="Resource" load_steps=2 format=3 uid="uid://8j4xg16o3qnl"] +[gd_resource type="Resource" format=3 uid="uid://8j4xg16o3qnl"] [ext_resource type="Script" uid="uid://bq4vlbfx00hea" path="res://addons/forge/core/ForgeData.cs" id="1_x0pne"] [resource] script = ExtResource("1_x0pne") -RegisteredTags = Array[String](["effect.fire", "effect.wet", "cue.floating.text", "cue.vfx.fire", "cue.vfx.wet", "cue.vfx.regen", "cooldown.enemy.attack", "set_by_caller.damage", "event.damage", "cooldown", "cooldown.skill.projectile", "cooldown.skill.shield", "cooldown.skill.dash", "movement.block", "immunity.damage", "effect.mana_shield", "cue.vfx.shield", "event.damage.taken", "event.damage.dealt", "event", "set_by_caller", "trait.flammable", "trait.healable", "trait.damageable", "trait.wettable", "cue.vfx.reflect", "cue.vfx", "cooldown.skill", "cooldown.skill.reflect"]) +RegisteredTags = Array[String](["character.player", "character.enemy", "weapon", "status.stunned", "status.burning", "status.frozen", "abilities.weapon.land", "abilities.weapon.flying", "abilities.weapon.left", "events.combat.damage", "events.combat.hit", "events.weapon.flyingTick", "events.weapon.startedFlying", "events.weapon.stoppedFlying", "events.weapon.handToFlying", "events.weapon.flyingToHand", "events.weapon.plantedToHand", "events.weapon.plantedToFlying", "events.weapon.planted", "cooldown.empoweredAction", "cooldown.empoweredSwordThrow", "cues.resources.mana"]) diff --git a/forge/ForgeManager.cs b/forge/ForgeManager.cs deleted file mode 100644 index 522d4c0b..00000000 --- a/forge/ForgeManager.cs +++ /dev/null @@ -1,66 +0,0 @@ -using Gamesmiths.Forge.Cues; -using Gamesmiths.Forge.Tags; -using Godot; - -namespace Movementtests.tools; - -public partial class ForgeManager : Node -{ - public CuesManager CuesManager { get; private set; } = new CuesManager(); - public TagsManager TagsManager { get; private set; } = new TagsManager( - [ - // entities - "character.player", - "character.enemy", - "weapon", - - // Statuses - "status.stunned", - - "status.weapon.inHand", - "status.weapon.flying", - "status.weapon.planted", - - // Abilities - "abilities.weapon.land", - "abilities.weapon.flying", - "abilities.weapon.left", - - // Events - "events.combat.damage", - "events.combat.hit", - - "events.weapon.flyingTick", - "events.weapon.startedFlying", - "events.weapon.stoppedFlying", - "events.weapon.handToFlying", - "events.weapon.flyingToHand", - "events.weapon.plantedToHand", - "events.weapon.plantedToFlying", - "events.weapon.planted", - - // Cooldowns - "cooldown.empoweredAction", - "cooldown.empoweredSwordThrow", - - // Cues - "cues.resources.mana", - ]); - - public static ForgeManager GetForgeManager(Node node) - { - return node.GetTree().Root.GetNode("ForgeManager"); - } - - public static TagsManager GetTagsManager(Node node) - { - return GetForgeManager(node).TagsManager; - } - - public static CuesManager GetCuesManager(Node node) - { - return GetForgeManager(node).CuesManager; - } - -} - diff --git a/forge/ForgeManager.cs.uid b/forge/ForgeManager.cs.uid deleted file mode 100644 index 5121a6e3..00000000 --- a/forge/ForgeManager.cs.uid +++ /dev/null @@ -1 +0,0 @@ -uid://c75tpswl62eew diff --git a/forge/forge_data.tres b/forge/forge_data.tres new file mode 100644 index 00000000..b3ab846b --- /dev/null +++ b/forge/forge_data.tres @@ -0,0 +1,7 @@ +[gd_resource type="Resource" format=3 uid="uid://dugyoyn4fda3s"] + +[ext_resource type="Script" uid="uid://bq4vlbfx00hea" path="res://addons/forge/core/ForgeData.cs" id="1_l686n"] + +[resource] +script = ExtResource("1_l686n") +RegisteredTags = Array[String](["effect.fire", "effect.wet", "cue.floating.text", "cue.vfx.fire", "cue.vfx.wet", "cue.vfx.regen", "cooldown.enemy.attack", "set_by_caller.damage", "event.damage", "cooldown", "cooldown.skill.projectile", "cooldown.skill.shield", "cooldown.skill.dash", "movement.block", "immunity.damage", "effect.mana_shield", "cue.vfx.shield", "event.damage.taken", "event.damage.dealt", "event", "set_by_caller", "trait.flammable", "trait.healable", "trait.damageable", "trait.wettable", "cue.vfx.reflect", "cue.vfx", "cooldown.skill", "cooldown.skill.reflect"]) diff --git a/project.godot b/project.godot index bb278d24..50e56ae6 100644 --- a/project.godot +++ b/project.godot @@ -30,7 +30,6 @@ Shaker="*uid://c7flmumgr5w3u" CsgToolkitAutoload="*uid://w8ad8q4lneis" "Forge Bootstrap"="*uid://ba8fquhtwu5mu" GlobalHelpers="*uid://dqcm83o8e66a2" -ForgeManager="*uid://c75tpswl62eew" [display] diff --git a/scenes/enemies/Enemy.cs b/scenes/enemies/Enemy.cs index 5aba01f8..ee148f6a 100644 --- a/scenes/enemies/Enemy.cs +++ b/scenes/enemies/Enemy.cs @@ -2,6 +2,7 @@ using System; using Gamesmiths.Forge.Core; using Gamesmiths.Forge.Effects; using Gamesmiths.Forge.Events; +using Gamesmiths.Forge.Godot.Core; using Gamesmiths.Forge.Tags; using Godot; using Movementtests.interfaces; @@ -86,16 +87,15 @@ public partial class Enemy : CharacterBody3D, _target = GetNode("CTarget"); // Forge stuff - var forgeManager = GetTree().Root.GetNode("ForgeManager")!; var baseTags = new TagContainer( - forgeManager.TagsManager, + ForgeManagers.Instance.TagsManager, [ - Tag.RequestTag(forgeManager.TagsManager, "character.enemy") + Tag.RequestTag(ForgeManagers.Instance.TagsManager, "character.enemy") ]); Attributes = new EntityAttributes(new EnemyAttributeSet()); Tags = new EntityTags(baseTags); - EffectsManager = new EffectsManager(this, forgeManager.CuesManager); + EffectsManager = new EffectsManager(this, ForgeManagers.Instance.CuesManager); Abilities = new(this); Events = new(); diff --git a/scenes/player_controller/PlayerUi.cs b/scenes/player_controller/PlayerUi.cs index ddf0a99c..aa9b24a4 100644 --- a/scenes/player_controller/PlayerUi.cs +++ b/scenes/player_controller/PlayerUi.cs @@ -2,6 +2,7 @@ using Godot; using System; using Gamesmiths.Forge.Core; using Gamesmiths.Forge.Cues; +using Gamesmiths.Forge.Godot.Core; using Gamesmiths.Forge.Tags; using Movementtests.interfaces; using Movementtests.tools; @@ -38,9 +39,8 @@ public partial class PlayerUi : Control, ICueHandler _healthbar = GetNode("%Healthbar"); _manabar = GetNode("%Manabar"); - var forgeManager = GetTree().Root.GetNode("ForgeManager")!; - var tagsManager = forgeManager.TagsManager; - var cuesManager = forgeManager.CuesManager; + var tagsManager = ForgeManagers.Instance.TagsManager; + var cuesManager = ForgeManagers.Instance.CuesManager; cuesManager.RegisterCue(Tag.RequestTag(tagsManager, "cues.resources.mana"), this); } diff --git a/scenes/player_controller/components/weapon/WeaponSystem.cs b/scenes/player_controller/components/weapon/WeaponSystem.cs index 754ccb0f..c9c12eb5 100644 --- a/scenes/player_controller/components/weapon/WeaponSystem.cs +++ b/scenes/player_controller/components/weapon/WeaponSystem.cs @@ -9,6 +9,7 @@ using Gamesmiths.Forge.Effects.Duration; using Gamesmiths.Forge.Effects.Magnitudes; using Gamesmiths.Forge.Effects.Periodic; using Gamesmiths.Forge.Events; +using Gamesmiths.Forge.Godot.Core; using Gamesmiths.Forge.Tags; using Godot; using GodotStateCharts; @@ -128,8 +129,8 @@ public partial class WeaponSystem : RigidBody3D, IDamageDealer, IForgeEntity Visible = false; // Forge - var tagsManager = ForgeManager.GetTagsManager(this); - var cuesManager = ForgeManager.GetCuesManager(this); + var tagsManager = ForgeManagers.Instance.TagsManager; + var cuesManager = ForgeManagers.Instance.CuesManager; WeaponFlyingTickEventTag = Tag.RequestTag(tagsManager, "events.weapon.flyingTick"); WeaponStartedFlyingEventTag = Tag.RequestTag(tagsManager, "events.weapon.startedFlying"); @@ -140,9 +141,9 @@ public partial class WeaponSystem : RigidBody3D, IDamageDealer, IForgeEntity WeaponPlantedToFlyingEventTag = Tag.RequestTag(tagsManager, "events.weapon.plantedToFlying"); WeaponPlantedEventTag = Tag.RequestTag(tagsManager, "events.weapon.planted"); - WeaponInHandStatusTag = Tag.RequestTag(tagsManager, "status.weapon.inHand"); - WeaponFlyingStatusTag = Tag.RequestTag(tagsManager, "status.weapon.flying"); - WeaponPlantedStatusTag = Tag.RequestTag(tagsManager, "status.weapon.planted"); + // WeaponInHandStatusTag = Tag.RequestTag(tagsManager, "status.weapon.inHand"); + // WeaponFlyingStatusTag = Tag.RequestTag(tagsManager, "status.weapon.flying"); + // WeaponPlantedStatusTag = Tag.RequestTag(tagsManager, "status.weapon.planted"); WeaponFlyingAbilityTag = Tag.RequestTag(tagsManager,"abilities.weapon.flying"); diff --git a/scenes/player_controller/scripts/PlayerController.cs b/scenes/player_controller/scripts/PlayerController.cs index 09937c67..c544fe35 100644 --- a/scenes/player_controller/scripts/PlayerController.cs +++ b/scenes/player_controller/scripts/PlayerController.cs @@ -10,6 +10,7 @@ using Gamesmiths.Forge.Effects.Magnitudes; using Gamesmiths.Forge.Effects.Modifiers; using Gamesmiths.Forge.Effects.Periodic; using Gamesmiths.Forge.Events; +using Gamesmiths.Forge.Godot.Core; using Gamesmiths.Forge.Godot.Resources.Abilities; using Gamesmiths.Forge.Tags; @@ -441,8 +442,8 @@ public partial class PlayerController : CharacterBody3D, _aimAssisRayCast.TargetPosition = _aimAssisRayCast.TargetPosition.Normalized() * (TargetingDistance*1.5f); // Forge stuff - var tagsManager = ForgeManager.GetTagsManager(this); - var cuesManager = ForgeManager.GetCuesManager(this); + var tagsManager = ForgeManagers.Instance.TagsManager; + var cuesManager = ForgeManagers.Instance.CuesManager; var baseTags = new TagContainer( tagsManager, [ @@ -757,7 +758,7 @@ public partial class PlayerController : CharacterBody3D, { var target = data.Target; - var tagsManager = ForgeManager.GetTagsManager(this); + var tagsManager = ForgeManagers.Instance.TagsManager; var weaponLeftTag = Tag.RequestTag(tagsManager, "abilities.weapon.left").GetSingleTagContainer(); if (weaponLeftTag == null) return; Abilities.TryActivateAbilitiesByTag(weaponLeftTag, target, out var landedFailures); @@ -770,7 +771,7 @@ public partial class PlayerController : CharacterBody3D, var magnitude = data.EventMagnitude; var weaponLandPayload = data.Payload; - var tagsManager = ForgeManager.GetTagsManager(this); + var tagsManager = ForgeManagers.Instance.TagsManager; var weaponLandTag = Tag.RequestTag(tagsManager, "abilities.weapon.land").GetSingleTagContainer(); if (weaponLandTag == null) return;