33 lines
920 B
C#
33 lines
920 B
C#
// Copyright © Gamesmiths Guild.
|
|
|
|
using System;
|
|
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 RoundResolverResource : UnaryNestedResolverResourceBase
|
|
{
|
|
[Export]
|
|
public int Digits { get; set; }
|
|
|
|
[Export]
|
|
public MidpointRounding Mode { get; set; } = MidpointRounding.ToEven;
|
|
|
|
public override string ResolverTypeId => "Round";
|
|
|
|
protected override string PropertyNamePrefix => "__round";
|
|
|
|
protected override IPropertyResolver CreateResolver(IPropertyResolver operandResolver, Graph graph)
|
|
{
|
|
operandResolver = PromoteIntegralResolverToFloatingPoint(
|
|
operandResolver,
|
|
GetPreferredFloatingPointType(operandResolver));
|
|
return new RoundResolver(operandResolver, Digits, Mode);
|
|
}
|
|
}
|