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"]
|
[ext_resource type="Script" uid="uid://bq4vlbfx00hea" path="res://addons/forge/core/ForgeData.cs" id="1_x0pne"]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("1_x0pne")
|
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"
|
CsgToolkitAutoload="*uid://w8ad8q4lneis"
|
||||||
"Forge Bootstrap"="*uid://ba8fquhtwu5mu"
|
"Forge Bootstrap"="*uid://ba8fquhtwu5mu"
|
||||||
GlobalHelpers="*uid://dqcm83o8e66a2"
|
GlobalHelpers="*uid://dqcm83o8e66a2"
|
||||||
ForgeManager="*uid://c75tpswl62eew"
|
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ using System;
|
|||||||
using Gamesmiths.Forge.Core;
|
using Gamesmiths.Forge.Core;
|
||||||
using Gamesmiths.Forge.Effects;
|
using Gamesmiths.Forge.Effects;
|
||||||
using Gamesmiths.Forge.Events;
|
using Gamesmiths.Forge.Events;
|
||||||
|
using Gamesmiths.Forge.Godot.Core;
|
||||||
using Gamesmiths.Forge.Tags;
|
using Gamesmiths.Forge.Tags;
|
||||||
using Godot;
|
using Godot;
|
||||||
using Movementtests.interfaces;
|
using Movementtests.interfaces;
|
||||||
@@ -86,16 +87,15 @@ public partial class Enemy : CharacterBody3D,
|
|||||||
_target = GetNode<Node3D>("CTarget");
|
_target = GetNode<Node3D>("CTarget");
|
||||||
|
|
||||||
// Forge stuff
|
// Forge stuff
|
||||||
var forgeManager = GetTree().Root.GetNode<ForgeManager>("ForgeManager")!;
|
|
||||||
var baseTags = new TagContainer(
|
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());
|
Attributes = new EntityAttributes(new EnemyAttributeSet());
|
||||||
Tags = new EntityTags(baseTags);
|
Tags = new EntityTags(baseTags);
|
||||||
EffectsManager = new EffectsManager(this, forgeManager.CuesManager);
|
EffectsManager = new EffectsManager(this, ForgeManagers.Instance.CuesManager);
|
||||||
Abilities = new(this);
|
Abilities = new(this);
|
||||||
Events = new();
|
Events = new();
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ using Godot;
|
|||||||
using System;
|
using System;
|
||||||
using Gamesmiths.Forge.Core;
|
using Gamesmiths.Forge.Core;
|
||||||
using Gamesmiths.Forge.Cues;
|
using Gamesmiths.Forge.Cues;
|
||||||
|
using Gamesmiths.Forge.Godot.Core;
|
||||||
using Gamesmiths.Forge.Tags;
|
using Gamesmiths.Forge.Tags;
|
||||||
using Movementtests.interfaces;
|
using Movementtests.interfaces;
|
||||||
using Movementtests.tools;
|
using Movementtests.tools;
|
||||||
@@ -38,9 +39,8 @@ public partial class PlayerUi : Control, ICueHandler
|
|||||||
_healthbar = GetNode<Healthbar>("%Healthbar");
|
_healthbar = GetNode<Healthbar>("%Healthbar");
|
||||||
_manabar = GetNode<Healthbar>("%Manabar");
|
_manabar = GetNode<Healthbar>("%Manabar");
|
||||||
|
|
||||||
var forgeManager = GetTree().Root.GetNode<ForgeManager>("ForgeManager")!;
|
var tagsManager = ForgeManagers.Instance.TagsManager;
|
||||||
var tagsManager = forgeManager.TagsManager;
|
var cuesManager = ForgeManagers.Instance.CuesManager;
|
||||||
var cuesManager = forgeManager.CuesManager;
|
|
||||||
cuesManager.RegisterCue(Tag.RequestTag(tagsManager, "cues.resources.mana"), this);
|
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.Magnitudes;
|
||||||
using Gamesmiths.Forge.Effects.Periodic;
|
using Gamesmiths.Forge.Effects.Periodic;
|
||||||
using Gamesmiths.Forge.Events;
|
using Gamesmiths.Forge.Events;
|
||||||
|
using Gamesmiths.Forge.Godot.Core;
|
||||||
using Gamesmiths.Forge.Tags;
|
using Gamesmiths.Forge.Tags;
|
||||||
using Godot;
|
using Godot;
|
||||||
using GodotStateCharts;
|
using GodotStateCharts;
|
||||||
@@ -128,8 +129,8 @@ public partial class WeaponSystem : RigidBody3D, IDamageDealer, IForgeEntity
|
|||||||
Visible = false;
|
Visible = false;
|
||||||
|
|
||||||
// Forge
|
// Forge
|
||||||
var tagsManager = ForgeManager.GetTagsManager(this);
|
var tagsManager = ForgeManagers.Instance.TagsManager;
|
||||||
var cuesManager = ForgeManager.GetCuesManager(this);
|
var cuesManager = ForgeManagers.Instance.CuesManager;
|
||||||
|
|
||||||
WeaponFlyingTickEventTag = Tag.RequestTag(tagsManager, "events.weapon.flyingTick");
|
WeaponFlyingTickEventTag = Tag.RequestTag(tagsManager, "events.weapon.flyingTick");
|
||||||
WeaponStartedFlyingEventTag = Tag.RequestTag(tagsManager, "events.weapon.startedFlying");
|
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");
|
WeaponPlantedToFlyingEventTag = Tag.RequestTag(tagsManager, "events.weapon.plantedToFlying");
|
||||||
WeaponPlantedEventTag = Tag.RequestTag(tagsManager, "events.weapon.planted");
|
WeaponPlantedEventTag = Tag.RequestTag(tagsManager, "events.weapon.planted");
|
||||||
|
|
||||||
WeaponInHandStatusTag = Tag.RequestTag(tagsManager, "status.weapon.inHand");
|
// WeaponInHandStatusTag = Tag.RequestTag(tagsManager, "status.weapon.inHand");
|
||||||
WeaponFlyingStatusTag = Tag.RequestTag(tagsManager, "status.weapon.flying");
|
// WeaponFlyingStatusTag = Tag.RequestTag(tagsManager, "status.weapon.flying");
|
||||||
WeaponPlantedStatusTag = Tag.RequestTag(tagsManager, "status.weapon.planted");
|
// WeaponPlantedStatusTag = Tag.RequestTag(tagsManager, "status.weapon.planted");
|
||||||
|
|
||||||
WeaponFlyingAbilityTag = Tag.RequestTag(tagsManager,"abilities.weapon.flying");
|
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.Modifiers;
|
||||||
using Gamesmiths.Forge.Effects.Periodic;
|
using Gamesmiths.Forge.Effects.Periodic;
|
||||||
using Gamesmiths.Forge.Events;
|
using Gamesmiths.Forge.Events;
|
||||||
|
using Gamesmiths.Forge.Godot.Core;
|
||||||
using Gamesmiths.Forge.Godot.Resources.Abilities;
|
using Gamesmiths.Forge.Godot.Resources.Abilities;
|
||||||
using Gamesmiths.Forge.Tags;
|
using Gamesmiths.Forge.Tags;
|
||||||
|
|
||||||
@@ -441,8 +442,8 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
_aimAssisRayCast.TargetPosition = _aimAssisRayCast.TargetPosition.Normalized() * (TargetingDistance*1.5f);
|
_aimAssisRayCast.TargetPosition = _aimAssisRayCast.TargetPosition.Normalized() * (TargetingDistance*1.5f);
|
||||||
|
|
||||||
// Forge stuff
|
// Forge stuff
|
||||||
var tagsManager = ForgeManager.GetTagsManager(this);
|
var tagsManager = ForgeManagers.Instance.TagsManager;
|
||||||
var cuesManager = ForgeManager.GetCuesManager(this);
|
var cuesManager = ForgeManagers.Instance.CuesManager;
|
||||||
var baseTags = new TagContainer(
|
var baseTags = new TagContainer(
|
||||||
tagsManager,
|
tagsManager,
|
||||||
[
|
[
|
||||||
@@ -757,7 +758,7 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
{
|
{
|
||||||
var target = data.Target;
|
var target = data.Target;
|
||||||
|
|
||||||
var tagsManager = ForgeManager.GetTagsManager(this);
|
var tagsManager = ForgeManagers.Instance.TagsManager;
|
||||||
var weaponLeftTag = Tag.RequestTag(tagsManager, "abilities.weapon.left").GetSingleTagContainer();
|
var weaponLeftTag = Tag.RequestTag(tagsManager, "abilities.weapon.left").GetSingleTagContainer();
|
||||||
if (weaponLeftTag == null) return;
|
if (weaponLeftTag == null) return;
|
||||||
Abilities.TryActivateAbilitiesByTag(weaponLeftTag, target, out var landedFailures);
|
Abilities.TryActivateAbilitiesByTag(weaponLeftTag, target, out var landedFailures);
|
||||||
@@ -770,7 +771,7 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
var magnitude = data.EventMagnitude;
|
var magnitude = data.EventMagnitude;
|
||||||
var weaponLandPayload = data.Payload;
|
var weaponLandPayload = data.Payload;
|
||||||
|
|
||||||
var tagsManager = ForgeManager.GetTagsManager(this);
|
var tagsManager = ForgeManagers.Instance.TagsManager;
|
||||||
|
|
||||||
var weaponLandTag = Tag.RequestTag(tagsManager, "abilities.weapon.land").GetSingleTagContainer();
|
var weaponLandTag = Tag.RequestTag(tagsManager, "abilities.weapon.land").GetSingleTagContainer();
|
||||||
if (weaponLandTag == null) return;
|
if (weaponLandTag == null) return;
|
||||||
|
|||||||
Reference in New Issue
Block a user