42 lines
1.5 KiB
C#
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++)
|
|
{
|
|
|
|
}
|
|
|
|
}
|
|
}
|