Beispiel #1
0
 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;
         }
     }
 }
Beispiel #2
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);
        }
    }
Beispiel #4
0
 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);
     }
 }