public override void OnSinkConnected(ISink s) { if (s.HasContainerFor(RedHomestead.Simulation.Matter.CarbonDioxide)) { co2Out = s.Get(RedHomestead.Simulation.Matter.CarbonDioxide); } }
public void AddSink(ISink sink, Matter type) { if (sink.HasContainerFor(type)) { AddInput(sink.Get(type)); } }
private void PushOxygenAndHydrogen() { OxygenOut.Get(Matter.Oxygen).Push(OxygenPerSecond * Time.fixedDeltaTime); Data.MatterHistory.Produce(Matter.Oxygen, OxygenPerSecond * Time.fixedDeltaTime); HydrogenOut.Get(Matter.Hydrogen).Push(HydrogenPerSecond * Time.fixedDeltaTime); Data.MatterHistory.Produce(Matter.Hydrogen, HydrogenPerSecond * Time.fixedDeltaTime); }
public override void Convert() { if (HasRover) { if (HasWater) { #warning needs to only push if amount < max AttachedRover.Data.Water.Push(WaterIn.Get(Matter.Water).Pull(WaterPerTickUnits)); } if (HasOxygen) { #warning needs to only push if amount < max AttachedRover.Data.Oxygen.Push(OxygenIn.Get(Matter.Oxygen).Pull(OxygenPerTickUnits)); } } }
private bool PullHydrogen() { if (HydrogenSource != null) { float newHydrogen = HydrogenSource.Get(Matter.Hydrogen).Pull(HydrogenPerSecond * Time.fixedDeltaTime); hydrogenBuffer += newHydrogen; Data.MatterHistory.Consume(Matter.Hydrogen, newHydrogen); float hydrogenThisTick = HydrogenPerSecond * Time.fixedDeltaTime; if (hydrogenBuffer >= hydrogenThisTick) { hydrogenBuffer -= hydrogenThisTick; return(true); } } return(false); }
public override void Convert() { if (IsOn) { if (HasPower) { SurvivalTimer.Instance.Power.ResupplySeconds(EVA.PowerResupplySeconds); } if (OxygenIn != null) { if (oxygenBuffer < EVA.OxygenResupplyKilogramsPerUnit) { oxygenBuffer += OxygenIn.Get(Matter.Oxygen).Pull(EVA.OxygenResupplyKilogramsPerUnit); } if (oxygenBuffer >= EVA.OxygenResupplyKilogramsPerUnit) { SurvivalTimer.Instance.Oxygen.ResupplySeconds(EVA.OxygenResupplySeconds); oxygenBuffer -= EVA.OxygenResupplyKilogramsPerUnit; } } } }