public FixedPoint2 TileReact(TileRef tile, ReagentPrototype reagent, FixedPoint2 reactVolume)
        {
            if (reactVolume <= FixedPoint2.Zero || tile.Tile.IsEmpty)
            {
                return(FixedPoint2.Zero);
            }

            var atmosphereSystem = EntitySystem.Get <AtmosphereSystem>();

            var environment = atmosphereSystem.GetTileMixture(tile.GridUid, null, tile.GridIndices, true);

            if (environment == null || !atmosphereSystem.IsHotspotActive(tile.GridUid, tile.GridIndices))
            {
                return(FixedPoint2.Zero);
            }

            environment.Temperature *= MathF.Max(_temperatureMultiplier * reactVolume.Float(), 1f);
            atmosphereSystem.ReactTile(tile.GridUid, tile.GridIndices);

            return(reactVolume);
        }
Beispiel #2
0
 public int CompareTo(ReagentQuantity other)
 {
     return Quantity.Float().CompareTo(other.Quantity.Float());
 }