using Enigmos.Cables; using Enigmos.Modules.ControllingModules; using Nocturnis.DataStructures; using Nocturnis.Enigmos.Ports; using TabulaSmaragdina; namespace Enigmos.Ports.DataPorts; public partial class DataInPort : DataPort, IDataInPort { public new DataOutPort ConnectedPort { get => base.ConnectedPort as DataOutPort; set => base.ConnectedPort = value; } public override bool IsMatch(IBasePort other) => other is DataOutPort dataOut && GlobalProvider.EnigmosProvider.DataPortTypeCompatible(DataType, dataOut.DataType); public IDataPackage GetData(RootModule root) { if (!Connected) return GlobalProvider.DataStructureProvider.DefaultDataPackage; if(!ConnectedPort.DataUpdated) ConnectedPort.DataUpdateRequest(root); return ConnectedPort.ResultData; } public override BaseCable MakeCable(IBasePort other) { BaseCable res = base.MakeCable(other); res.PortFrom = this; res.PortTo = other; return res; } }