added forge addon
This commit is contained in:
121
addons/forge/nodes/ForgeCueHandler.cs
Normal file
121
addons/forge/nodes/ForgeCueHandler.cs
Normal file
@@ -0,0 +1,121 @@
|
||||
// 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)
|
||||
{
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user