Files
MovementTests/addons/forge/nodes/ForgeCueHandler.cs
Minimata c4be97e0de
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 21s
Create tag and build when new code gets to main / Test (push) Successful in 6m56s
Create tag and build when new code gets to main / Export (push) Successful in 9m3s
added forge addon
2026-02-08 15:16:01 +01:00

122 lines
2.3 KiB
C#

// Copyright © Gamesmiths Guild.
using Gamesmiths.Forge.Core;
using Gamesmiths.Forge.Cues;
using Gamesmiths.Forge.Godot.Core;
using Gamesmiths.Forge.Tags;
using Godot;
namespace Gamesmiths.Forge.Godot.Nodes;
[GlobalClass]
[Icon("uid://snulmvxydrp4")]
public abstract partial class ForgeCueHandler : Node, ICueHandler
{
[Export]
public string? CueTag { get; set; }
public override void _Ready()
{
if (Engine.IsEditorHint())
{
return;
}
base._Ready();
if (string.IsNullOrEmpty(CueTag))
{
return;
}
ForgeManagers.Instance.CuesManager.RegisterCue(
Tag.RequestTag(ForgeManagers.Instance.TagsManager, CueTag), this);
}
public override void _ExitTree()
{
base._ExitTree();
if (string.IsNullOrEmpty(CueTag))
{
return;
}
ForgeManagers.Instance.CuesManager.UnregisterCue(
Tag.RequestTag(ForgeManagers.Instance.TagsManager, CueTag), this);
}
#pragma warning disable CA1707, IDE1006, SA1300 // Identifiers should not contain underscores
public void OnApply(IForgeEntity? target, CueParameters? parameters)
{
if (target is IForgeEntity forgeEntity)
{
_CueOnApply(forgeEntity, parameters);
}
_CueOnApply(parameters);
}
public virtual void _CueOnApply(IForgeEntity forgeEntity, CueParameters? parameters)
{
}
public virtual void _CueOnApply(CueParameters? parameters)
{
}
public void OnExecute(IForgeEntity? target, CueParameters? parameters)
{
if (target is IForgeEntity forgeEntity)
{
_CueOnExecute(forgeEntity, parameters);
}
_CueOnExecute(parameters);
}
public virtual void _CueOnExecute(IForgeEntity forgeEntity, CueParameters? parameters)
{
}
public virtual void _CueOnExecute(CueParameters? parameters)
{
}
public void OnRemove(IForgeEntity? target, bool interrupted)
{
if (target is IForgeEntity forgeEntity)
{
_CueOnRemove(forgeEntity, interrupted);
}
_CueOnRemove(interrupted);
}
public virtual void _CueOnRemove(IForgeEntity forgeEntity, bool interrupted)
{
}
public virtual void _CueOnRemove(bool interrupted)
{
}
public void OnUpdate(IForgeEntity? target, CueParameters? parameters)
{
if (target is IForgeEntity forgeEntity)
{
_CueOnUpdate(forgeEntity, parameters);
}
_CueOnUpdate(parameters);
}
public virtual void _CueOnUpdate(IForgeEntity forgeEntity, CueParameters? parameters)
{
}
public virtual void _CueOnUpdate(CueParameters? parameters)
{
}
}