Using provided ForgeManager singleton and forge_data resource for tags
This commit is contained in:
@@ -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"])
|
||||
|
||||
@@ -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>("ForgeManager");
|
||||
}
|
||||
|
||||
public static TagsManager GetTagsManager(Node node)
|
||||
{
|
||||
return GetForgeManager(node).TagsManager;
|
||||
}
|
||||
|
||||
public static CuesManager GetCuesManager(Node node)
|
||||
{
|
||||
return GetForgeManager(node).CuesManager;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
uid://c75tpswl62eew
|
||||
7
forge/forge_data.tres
Normal file
7
forge/forge_data.tres
Normal file
@@ -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"])
|
||||
@@ -30,7 +30,6 @@ Shaker="*uid://c7flmumgr5w3u"
|
||||
CsgToolkitAutoload="*uid://w8ad8q4lneis"
|
||||
"Forge Bootstrap"="*uid://ba8fquhtwu5mu"
|
||||
GlobalHelpers="*uid://dqcm83o8e66a2"
|
||||
ForgeManager="*uid://c75tpswl62eew"
|
||||
|
||||
[display]
|
||||
|
||||
|
||||
@@ -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<Node3D>("CTarget");
|
||||
|
||||
// Forge stuff
|
||||
var forgeManager = GetTree().Root.GetNode<ForgeManager>("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();
|
||||
|
||||
|
||||
@@ -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>("%Healthbar");
|
||||
_manabar = GetNode<Healthbar>("%Manabar");
|
||||
|
||||
var forgeManager = GetTree().Root.GetNode<ForgeManager>("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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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");
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user