bracket system
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using Alchegos.DataStructure;
|
||||
using Enigmos.Cables;
|
||||
using Enigmos.Modules;
|
||||
using Enigmos.Modules.ControllingModules;
|
||||
using Enigmos.Modules.ProgrammableModules;
|
||||
using Godot;
|
||||
using Nocturnis.Enigmos.Boards;
|
||||
@@ -51,14 +52,14 @@ public abstract partial class BaseBoard : Panel, IBaseBoard
|
||||
public bool ManualOpened { get; set; }
|
||||
protected HashSet<IBaseModule> Modules { get; set; } = new();
|
||||
|
||||
protected IEnumerable<ProgrammableModule> ProgrammableModules() =>
|
||||
protected IEnumerable<ProgrammableModule> ProgrammableModules =>
|
||||
Modules
|
||||
.OfType<ProgrammableModule>();
|
||||
|
||||
public IEnumerable<ITerminalModule> TerminalModules =>
|
||||
Modules
|
||||
.OfType<ITerminalModule>()
|
||||
.Union(ProgrammableModules().SelectMany(module => module.UnderlyingBoard!.TerminalModules));
|
||||
.Union(ProgrammableModules.SelectMany(module => module.UnderlyingBoard!.TerminalModules));
|
||||
|
||||
public IPanelViewer PanelViewer { get; set; }
|
||||
public Dictionary<IBasePort, IBaseCable> CablePairing { get; set; } = new();
|
||||
@@ -111,8 +112,9 @@ public abstract partial class BaseBoard : Panel, IBaseBoard
|
||||
pm.Board!.Reset();
|
||||
foreach (IControllingModule cm in Modules.OfType<IControllingModule>())
|
||||
cm.Visited = false;
|
||||
|
||||
|
||||
foreach (ITerminalModule tm in Modules.OfType<ITerminalModule>())
|
||||
tm.Finished = true;
|
||||
|
||||
/*
|
||||
foreach (IBaseModule module in Modules)
|
||||
{
|
||||
@@ -141,10 +143,10 @@ public abstract partial class BaseBoard : Panel, IBaseBoard
|
||||
controllingModule.Visited = false;
|
||||
if (module is TerminalModule terminalModule)
|
||||
terminalModule.Finished = false;
|
||||
|
||||
|
||||
foreach (DataOutPort port in module.Ports.OfType<DataOutPort>())
|
||||
port.DataUpdated = false;
|
||||
|
||||
|
||||
}*/
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ using Nocturnis.GlobalManagement.Controls;
|
||||
|
||||
namespace Enigmos.Boards;
|
||||
|
||||
public partial class PrimaryModuleBoard : BaseBoard, IPrimaryBoard
|
||||
public partial class PrimaryModuleBoard : BaseBoard, IPrimaryModuleBoard
|
||||
{
|
||||
private IBaseCreature ManagedBy { get; set; }
|
||||
public IRootModule Root { get; set; }
|
||||
@@ -27,11 +27,10 @@ public partial class PrimaryModuleBoard : BaseBoard, IPrimaryBoard
|
||||
|
||||
public void Start()
|
||||
{
|
||||
if (!Root!.ActionFinished)
|
||||
return;
|
||||
|
||||
//Root.Timer = Stopwatch.StartNew();
|
||||
Engine!.Consume();
|
||||
if (EnigmosControl.Instance.Energy < EnigmosConstant.IdlePower)
|
||||
Engine.Consume();
|
||||
if (EnigmosControl.Instance.Energy < EnigmosControl.Instance.IdlePower)
|
||||
{
|
||||
Root!.ActionFinished = true;
|
||||
EnigmosControl.Instance.ShutDownEngine();
|
||||
@@ -40,7 +39,13 @@ public partial class PrimaryModuleBoard : BaseBoard, IPrimaryBoard
|
||||
Root.Start();
|
||||
foreach (ITerminalModule tm in TerminalModules)
|
||||
tm.Consume();
|
||||
|
||||
}
|
||||
|
||||
public double IdlePower => Modules.Count * 0.05;
|
||||
|
||||
public override void Reset()
|
||||
{
|
||||
base.Reset();
|
||||
Root.ActionFinished = true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user