protected override void OnFluidContact(FluidContactInfo f) { base.OnFluidContact(f); if (!_Built) { return; } if (f.ContactedFluid.GetFluidType() == Fluid.FluidType.Water) { if (_FluidLevel <= 0) { return; } float removed = _FluidEngine.RemoveFluidFromCell(x, y, _fluidToRemove, Fluid.FluidType.Water); _powerGained += removed; if (_powerGained >= 1) { _Energy += 1; if (_Energy > 100) { _Energy = 100; } _barsUpdater.UpdateEnergyFill(_Energy); _powerGained = 0; } } }
public void FluidContact(FluidContactInfo f) { //Only one OnFluidContact is called per frame if (_ReceivedFluidMessage) { return; } _FluidContactMsg = f; _ReceivedFluidMessage = true; OnFluidContact(_FluidContactMsg); }
protected override void OnFluidContact(FluidContactInfo f) { if (f.ContactedFluid.GetFluidType() == Fluid.FluidType.Lava) { if (_mainBlockade != null) { _mainBlockade.LoseEnergy = true; } } if (_Energy <= 0 || !_Built) { base.OnFluidContact(f); } }
protected virtual void OnFluidContact(FluidContactInfo f) { if (_TileHealth > 0.0f) { if (f.ContactedFluid != null) { _TileHealth -= f.ContactedFluid.DamageToTiles * Time.deltaTime; } else { _TileHealth -= 1.0f; } } else { TileMap3D mpa = WorldController._worldController.GetComponent <TileMap3D>(); mpa.ClearTile(x, y); } }