Upgrade
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
using Enigmos.Exceptions;
|
||||
using Enigmos.Manual;
|
||||
using Godot;
|
||||
using Nocturnis;
|
||||
using Nocturnis.DataStructures;
|
||||
using Nocturnis.Enigmos.Boards;
|
||||
using Nocturnis.Enigmos.Cables;
|
||||
using Nocturnis.Enigmos.ModuleManuals;
|
||||
using Nocturnis.Enigmos.Modules;
|
||||
using Nocturnis.Enigmos.Ports;
|
||||
using Nocturnis.GlobalManagement.Providers;
|
||||
@@ -15,7 +15,8 @@ public abstract partial class BaseModule : TextureRect, IBaseModule
|
||||
[Export] private int PresetPortQuality { get; set; }
|
||||
[Export] private int PresetPortCondition { get; set; }
|
||||
[Export] protected bool UsingPreset { get; set; }
|
||||
[Export] public IPresetModuleConnection[] PresetConnections { get; set; } = Array.Empty<IPresetModuleConnection>();
|
||||
//[Export]
|
||||
public IPresetModuleConnection[] PresetConnections { get; set; } = Array.Empty<IPresetModuleConnection>();
|
||||
[Export] public string LabelString { get; set; } = "";
|
||||
|
||||
public virtual Vector2 PositionToBoard => Position;
|
||||
@@ -24,9 +25,9 @@ public abstract partial class BaseModule : TextureRect, IBaseModule
|
||||
public bool HasLabel => HasManual;
|
||||
public virtual IEnumerable<IBasePort> Ports => GetChildren().OfType<IBasePort>();
|
||||
|
||||
public IBaseBoard? Board { get; set; }
|
||||
private ModuleManual? Manual { get; set; }
|
||||
public Label? Label { get; set; }
|
||||
public IBaseBoard Board { get; set; }
|
||||
public IModuleManual Manual { get; set; }
|
||||
public Label Label { get; set; }
|
||||
public Node AsNode => this;
|
||||
|
||||
public virtual void PresetValueInit()
|
||||
@@ -82,15 +83,6 @@ public abstract partial class BaseModule : TextureRect, IBaseModule
|
||||
PresetValueInit();
|
||||
}
|
||||
|
||||
protected virtual void TimeoutCheck(IRootModule root)
|
||||
{
|
||||
if (root.Timer!.ElapsedMilliseconds < 25) return;
|
||||
root.Timer.Stop();
|
||||
throw ModuleExecutionTimeout.Exception;
|
||||
}
|
||||
|
||||
protected virtual void TimeoutHandler(ModuleExecutionTimeout timeout) => throw timeout;
|
||||
|
||||
public override Variant _GetDragData(Vector2 atPosition)
|
||||
{
|
||||
if (!Draggable)
|
||||
@@ -99,7 +91,6 @@ public abstract partial class BaseModule : TextureRect, IBaseModule
|
||||
Board!.ModuleMovingLayer.MouseOffset = GetLocalMousePosition();
|
||||
return GlobalProvider.DataStructureProvider!.NewVariantWithType("Module", this);
|
||||
}
|
||||
|
||||
public override void _Input(InputEvent @event)
|
||||
{
|
||||
if (@event is InputEventMouseButton eventMouseButton)
|
||||
@@ -109,19 +100,11 @@ public abstract partial class BaseModule : TextureRect, IBaseModule
|
||||
{
|
||||
if (eventMouseButton.ButtonIndex == MouseButton.Right && eventMouseButton.Pressed)
|
||||
{
|
||||
if (!HasManual)
|
||||
return;
|
||||
if (Board!.ManualOpened)
|
||||
if (!HasManual || Board!.ManualOpened)
|
||||
return;
|
||||
if (Manual == null)
|
||||
{
|
||||
Manual = GlobalProvider
|
||||
.AssetMapper<ModuleManual>.Scene
|
||||
.Instantiate<ModuleManual>();
|
||||
Manual.Init(this);
|
||||
}
|
||||
|
||||
Board.ModuleManualLayer!.AddChild(Manual);
|
||||
GlobalProvider.ProcessProvider.BuildManual(this);
|
||||
Board.ModuleManualLayer!.AddChild(Manual.AsNode());
|
||||
Manual.Position = Board.ModuleManualLayer.ManualPosition.Position - Manual.Size / 2;
|
||||
Board.ManualOpened = true;
|
||||
return;
|
||||
@@ -150,7 +133,6 @@ public abstract partial class BaseModule : TextureRect, IBaseModule
|
||||
|
||||
base._Input(@event);
|
||||
}
|
||||
|
||||
//public Texture2D PreviewTexture => GlobalProvider.TextureProvider.ModuleTextureMapper(this);
|
||||
|
||||
public abstract Texture2D PreviewTexture { get; }
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ public abstract partial class V2Module : BinaryComputationalModule,
|
||||
|
||||
public void Inference()
|
||||
{
|
||||
OutputGroup!.SelectedType = GlobalProvider.DataTypeProvider!.BuildType(OutputGroup.SelectedType, 1, 2);
|
||||
OutputGroup!.SelectedType = GlobalProvider.DataTypeProvider!.ToVector(OutputGroup.SelectedType);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -14,11 +14,11 @@ public abstract partial class KeyListenerModule : NullaryComputationalModule,
|
||||
IKeyListenerModule,
|
||||
IDuplicateOutputModule
|
||||
{
|
||||
[Export] private StringName? PresetActionName { get; set; }
|
||||
private DataOutPort? Output1 { get; set; }
|
||||
private DataOutPort? Output2 { get; set; }
|
||||
private DataOutPort? Output3 { get; set; }
|
||||
public IKeyParameter? ListeningKey { get; set; }
|
||||
[Export] private StringName PresetActionName { get; set; }
|
||||
private DataOutPort Output1 { get; set; }
|
||||
private DataOutPort Output2 { get; set; }
|
||||
private DataOutPort Output3 { get; set; }
|
||||
public IKeyParameter ListeningKey { get; set; }
|
||||
public bool Pressed { get; set; }
|
||||
public HashSet<IConfigurableParameter> ConfigurableParameters { get; set; } = new();
|
||||
public override void Init()
|
||||
|
||||
@@ -65,4 +65,4 @@ public abstract partial class V2ComponentModule : UnaryComputationalModule, IPol
|
||||
ScalarOutputGroup!.SelectedType = GlobalProvider.DataTypeProvider!
|
||||
.GetBaseField(VectorInputGroup!.SelectedType);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ namespace Enigmos.Modules.ControllingModules;
|
||||
public abstract partial class RootModule : BaseModule, IRootModule
|
||||
{
|
||||
public bool ActionFinished { get; set; }
|
||||
public IBaseCreature? ManagedBy { get; set; }
|
||||
public IBaseCreature ManagedBy { get; set; }
|
||||
public void Start()
|
||||
{
|
||||
SignalOutPorts[0].Route();
|
||||
@@ -15,7 +15,6 @@ public abstract partial class RootModule : BaseModule, IRootModule
|
||||
|
||||
protected override bool Draggable => false;
|
||||
public ISignalOutPort[] SignalOutPorts { get; set; } = Array.Empty<ISignalOutPort>();
|
||||
public Stopwatch? Timer { get; set; }
|
||||
public bool Visited { get; set; }
|
||||
|
||||
public override void Init()
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
using Enigmos.Boards;
|
||||
using Enigmos.Modules.InterlayerModules;
|
||||
using Nocturnis;
|
||||
using Nocturnis.Enigmos.Boards;
|
||||
using Nocturnis.Enigmos.Modules;
|
||||
using Nocturnis.Enigmos.Ports;
|
||||
using Nocturnis.GlobalManagement.Providers;
|
||||
@@ -8,8 +10,8 @@ namespace Enigmos.Modules.ProgrammableModules;
|
||||
|
||||
public abstract partial class ProgrammableModule : CompositeModule, IProgrammableModule
|
||||
{
|
||||
public BaseBoard? UnderlyingBoard { get; set; }
|
||||
public void EnterProgrammableBoard() => GlobalProvider.SceneProvider!.RootScene.ChangeScene(UnderlyingBoard!);
|
||||
public IBaseBoard UnderlyingBoard { get; set; }
|
||||
public void EnterProgrammableBoard() => GlobalProvider.SceneProvider!.RootScene.ChangeScene(UnderlyingBoard.AsNode());
|
||||
public abstract IEnumerable<IBasePort> ExplicitPorts { get; }
|
||||
public abstract IEnumerable<IBasePort> ImplicitPorts { get; }
|
||||
public override void UpdateCables()
|
||||
|
||||
@@ -3,12 +3,12 @@ using Nocturnis.Enigmos.Modules;
|
||||
|
||||
namespace Enigmos.Modules.SubModules;
|
||||
|
||||
public class SubModule : BaseModule
|
||||
public partial class SubModule : BaseModule
|
||||
{
|
||||
public ICompositeModule? ParentModule { get; set; }
|
||||
public ICompositeModule ParentModule { get; set; }
|
||||
public sealed override Vector2 PositionToBoard =>
|
||||
base.PositionToBoard + (ParentModule?.PositionToBoard ?? Vector2.Zero);
|
||||
protected sealed override bool Draggable => false;
|
||||
protected sealed override bool HasManual => false;
|
||||
public override Texture2D? PreviewTexture => null;
|
||||
public override Texture2D PreviewTexture => null;
|
||||
}
|
||||
|
||||
@@ -9,7 +9,11 @@ using Nocturnis.GlobalManagement.Providers;
|
||||
|
||||
namespace Enigmos.Modules.TerminalModules;
|
||||
|
||||
public abstract partial class MemoryModule : BaseModule, ITerminalModule, ISourceModule, IDuplicateOutputModule
|
||||
public abstract partial class MemoryModule : BaseModule,
|
||||
ITerminalModule,
|
||||
ISourceModule,
|
||||
IDuplicateOutputModule,
|
||||
IPolymorphismModule
|
||||
{
|
||||
private DataVariable? Memory { get; set; }
|
||||
private IDataPortGroup? MemoryPortGroup { get; set; }
|
||||
|
||||
@@ -6,11 +6,11 @@ namespace Enigmos.Modules.TerminalModules.TestingModules;
|
||||
|
||||
public partial class R2Reader : Control
|
||||
{
|
||||
private AnimatedSprite2D? Direction { get; set; }
|
||||
private AnimatedSprite2D? Magnitude { get; set; }
|
||||
public R2? UnderlyingVector { get; set; }
|
||||
private double TargetPhase() => Math.Atan2(UnderlyingVector![2], UnderlyingVector![1]);
|
||||
private double TargetLength() => UnderlyingVector!.Magnitude;
|
||||
private AnimatedSprite2D Direction { get; set; }
|
||||
private AnimatedSprite2D Magnitude { get; set; }
|
||||
public R2 UnderlyingVector { get; set; }
|
||||
private double TargetPhase() => UnderlyingVector == null ? 0: Math.Atan2(UnderlyingVector![2], UnderlyingVector![1]);
|
||||
private double TargetLength() => UnderlyingVector?.Magnitude ?? 0;
|
||||
|
||||
private int TargetPhaseFrame =>
|
||||
Mathf.FloorToInt((TargetPhase() % (2d * Math.PI) + 2d * Math.PI) % (2d * Math.PI) * 44d / (2d * Math.PI));
|
||||
|
||||
Reference in New Issue
Block a user