// Copyright © Gamesmiths Guild.
using Gamesmiths.Forge.Core;
using Gamesmiths.Forge.Statescript;
using Gamesmiths.Forge.Statescript.Properties;
using Godot;
using ForgeNode = Gamesmiths.Forge.Statescript.Node;
namespace Gamesmiths.Forge.Godot.Resources.Statescript.Resolvers;
///
/// Resolver resource that reads the ability activation magnitude from the
/// at runtime. Produces a value.
///
[Tool]
[GlobalClass]
public partial class MagnitudeResolverResource : StatescriptResolverResource
{
///
public override string ResolverTypeId => "Magnitude";
///
public override void BindInput(Graph graph, ForgeNode runtimeNode, string nodeId, byte index)
{
var propertyName = new StringKey($"__mag_{nodeId}_{index}");
graph.VariableDefinitions.DefineProperty(propertyName, new MagnitudeResolver());
runtimeNode.BindInput(index, propertyName);
}
///
public override IPropertyResolver BuildResolver(Graph graph)
{
return new MagnitudeResolver();
}
}