46 lines
1.1 KiB
C#
46 lines
1.1 KiB
C#
// Copyright © Gamesmiths Guild.
|
|
|
|
using Gamesmiths.Forge.Godot.Core;
|
|
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 RandomResolverResource : BinaryNestedResolverResourceBase
|
|
{
|
|
[Export]
|
|
public StatescriptVariableType ValueType { get; set; } = StatescriptVariableType.Int;
|
|
|
|
[Export]
|
|
public bool MinFolded { get; set; }
|
|
|
|
[Export]
|
|
public bool MaxFolded { get; set; }
|
|
|
|
[Export]
|
|
public bool IsMaxInclusive { get; set; } = true;
|
|
|
|
[Export]
|
|
public bool InclusiveMaxFolded { get; set; } = true;
|
|
|
|
public override string ResolverTypeId => "Random";
|
|
|
|
protected override string PropertyNamePrefix => "__random";
|
|
|
|
protected override IPropertyResolver CreateResolver(
|
|
IPropertyResolver leftResolver,
|
|
IPropertyResolver rightResolver,
|
|
Graph graph)
|
|
{
|
|
return new RandomResolver(
|
|
new ForgeRandom(),
|
|
leftResolver,
|
|
rightResolver,
|
|
IsMaxInclusive);
|
|
}
|
|
}
|