Files
Enigmos/Modules/ProgrammableModules/ProgrammableModule.cs
2024-07-13 09:29:45 +01:00

42 lines
1.5 KiB
C#

using Enigmos.Modules.InterlayerModules;
using Nocturnis;
using Nocturnis.Enigmos.Boards;
using Nocturnis.Enigmos.Modules;
using Nocturnis.Enigmos.Ports;
using Nocturnis.GlobalManagement.Providers;
namespace Enigmos.Modules.ProgrammableModules;
public abstract partial class ProgrammableModule : CompositeModule, IProgrammableModule
{
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()
{
foreach (IBasePort port in ExplicitPorts)
{
if(!Board!.CablePairing.ContainsKey(port) )
continue;
Board.CablePairing[port].LineUpdate();
}
base.UpdateCables();
}
public override void Init()
{
base.Init();
InterlayerDataInModule[] explicitDataInModules = GetModules<InterlayerDataInModule>();
InterlayerDataOutModule[] explicitDataOutModules = GetModules<InterlayerDataOutModule>();
InterlayerSignalInModule[] explicitSignalInModules = GetModules<InterlayerSignalInModule>();
InterlayerSignalOutModule[] explicitSignalOutModules = GetModules<InterlayerSignalOutModule>();
for (int i = 0; i <= explicitDataInModules.Length; i++)
{
}
}
}