35 lines
1.1 KiB
C#
35 lines
1.1 KiB
C#
// Copyright © Gamesmiths Guild.
|
|
|
|
using Gamesmiths.Forge.Godot.Resources.Statescript.Resolvers.Bases;
|
|
using Gamesmiths.Forge.Statescript;
|
|
using Gamesmiths.Forge.Statescript.Properties;
|
|
using Godot;
|
|
|
|
namespace Gamesmiths.Forge.Godot.Resources.Statescript.Resolvers;
|
|
|
|
[Tool]
|
|
[GlobalClass]
|
|
public partial class MoveTowardsResolverResource : TernaryNestedResolverResourceBase
|
|
{
|
|
public override string ResolverTypeId => "MoveTowards";
|
|
|
|
protected override string PropertyNamePrefix => "__movetowards";
|
|
|
|
protected override IPropertyResolver CreateResolver(
|
|
IPropertyResolver firstResolver,
|
|
IPropertyResolver secondResolver,
|
|
IPropertyResolver thirdResolver,
|
|
Graph graph)
|
|
{
|
|
if (StatescriptNumericCompatibility.IsNumericType(firstResolver.ValueType)
|
|
&& StatescriptNumericCompatibility.IsNumericType(secondResolver.ValueType))
|
|
{
|
|
firstResolver = AdaptResolverForExpectedType(firstResolver, typeof(float));
|
|
secondResolver = AdaptResolverForExpectedType(secondResolver, typeof(float));
|
|
}
|
|
|
|
thirdResolver = AdaptResolverForExpectedType(thirdResolver, typeof(float));
|
|
return new MoveTowardsResolver(firstResolver, secondResolver, thirdResolver);
|
|
}
|
|
}
|