Files
Enigmos/Ports/DataPorts/DataInPort.cs
2024-07-29 17:24:31 +01:00

39 lines
1.1 KiB
C#

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;
}
}