public ReagentUnit TileReact(TileRef tile, ReagentPrototype reagent, ReagentUnit reactVolume) { if (reactVolume <= ReagentUnit.Zero || tile.Tile.IsEmpty) { return(ReagentUnit.Zero); } var tileAtmos = tile.GridIndices.GetTileAtmosphere(tile.GridIndex); if (tileAtmos == null || !tileAtmos.Hotspot.Valid) { return(ReagentUnit.Zero); } tileAtmos.Air.Temperature *= MathF.Max(_temperatureMultiplier * reactVolume.Float(), 1f); tileAtmos.Air.React(tileAtmos); return(reactVolume); }
public ReagentUnit TileReact(TileRef tile, ReagentPrototype reagent, ReagentUnit reactVolume) { if (reactVolume <= ReagentUnit.Zero || tile.Tile.IsEmpty) { return(ReagentUnit.Zero); } var tileAtmos = tile.GridPosition().GetTileAtmosphere(); if (tileAtmos?.Air == null || !tileAtmos.Hotspot.Valid) { return(ReagentUnit.Zero); } tileAtmos.Air.Temperature *= MathF.Max(_temperatureMultiplier * reactVolume.Float(), 1f); EntitySystem.Get <AtmosphereSystem>().React(tileAtmos.Air, tileAtmos); return(reactVolume); }
public ReagentUnit ReagentReactTouch(ReagentPrototype reagent, ReagentUnit volume) { switch (reagent.ID) { case "chem.H2O": Extinguish(); AdjustFireStacks(-1.5f); return(ReagentUnit.Zero); case "chem.WeldingFuel": case "chem.Thermite": case "chem.Phoron": case "chem.Ethanol": AdjustFireStacks(volume.Float() / 10f); return(volume); default: return(ReagentUnit.Zero); } }
public ReagentUnit TileReact(TileRef tile, ReagentPrototype reagent, ReagentUnit reactVolume) { if (reactVolume <= ReagentUnit.Zero || tile.Tile.IsEmpty) { return(ReagentUnit.Zero); } var atmosphereSystem = EntitySystem.Get <AtmosphereSystem>(); var environment = atmosphereSystem.GetTileMixture(tile.GridIndex, tile.GridIndices, true); if (environment == null || !atmosphereSystem.IsHotspotActive(tile.GridIndex, tile.GridIndices)) { return(ReagentUnit.Zero); } environment.Temperature *= MathF.Max(_temperatureMultiplier * reactVolume.Float(), 1f); atmosphereSystem.React(tile.GridIndex, tile.GridIndices); return(reactVolume); }
public int CompareTo(ReagentQuantity other) { return(Quantity.Float().CompareTo(other.Quantity.Float())); }