Files
Enigmos/Ports/DataPorts/DataInPort.cs
2024-06-30 01:52:44 +08:00

39 lines
995 B
C#

using Enigmos.Cables;
using Enigmos.Modules.ControllingModules;
using Nocturnis.DataStructures;
using Nocturnis.Enigmos.Modules;
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.DataPackageTypeProvider.DataPortTypeCompatible(DataType, dataOut.DataType);
public IDataPackage GetData(IRootModule 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;
}
}