Files
Enigmos/Modules/ComputationalModules/Nullary/ConstantModule.cs
2024-07-11 11:21:29 +01:00

41 lines
1.3 KiB
C#

using Godot;
using Nocturnis.DataStructures.ConfigurableParameters;
using Nocturnis.Enigmos.Modules;
using Nocturnis.Enigmos.Modules.ComputationalModules;
using Nocturnis.GlobalManagement.Constants;
using Nocturnis.GlobalManagement.Providers;
namespace Enigmos.Modules.ComputationalModules.Nullary;
public abstract partial class ConstantModule : NullaryComputationalModule, IParameterizedModule, IDuplicateOutputModule
{
[Export] private double PresetConstantValue { get; set; }
private IDoubleParameter? ConstValue { get; set; }
public override void Init()
{
base.Init();
this.DataOutInit("Output", 4);
this.SetOutputType(DataTypeConstant.BaseDataTypes.Real);
ConstValue =
GlobalProvider.DataStructureProvider!.NewDoubleParameter(
"Constant Value",
-1,
1,
UsingPreset ? PresetConstantValue : 0
);
ConfigurableParameters = new HashSet<IConfigurableParameter> { ConstValue };
PostInit();
}
public override void Define()
{
this.Define(cache =>
(ConstValue!.ParameterValue, DataTypeConstant.BaseDataTypes.Real)
);
}
public HashSet<IConfigurableParameter> ConfigurableParameters { get; set; } = new();
}