using Nocturnis.DataStructures; using Nocturnis.Enigmos.Cables; using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.DataPorts.Directions; using Nocturnis.GlobalManagement.Providers; namespace Enigmos.Ports.DataPorts; public partial class DataInPort : DataPort, IDataInPort { public new IDataOutPort? ConnectedPort { get => (base.ConnectedPort as IDataOutPort)!; set => base.ConnectedPort = value; } public override bool IsMatch(IBasePort other) => other is DataOutPort dataOut && GlobalProvider.DataTypeProvider!.DataPortTypeCompatible(DataType!, dataOut.DataType!); public DataCache GetData => Connected ? ConnectedPort!.OutData : DefaultDataCache.Default; /*public IDataPackage GetData(IRootModule root) { if (!Connected) return GlobalProvider.DataStructureProvider!.DefaultDataPackage; if(!ConnectedPort.DataUpdated) ConnectedPort.DataUpdateRequest(root); return ConnectedPort!.ResultData; }*/ public override IBaseCable MakeCable(IBasePort other) { IBaseCable res = base.MakeCable(other); res.PortFrom = this; res.PortTo = other; return res; } }