fCraft.Physics.CanSquash C# (CSharp) Method

CanSquash() public static method

public static CanSquash ( Block block ) : bool
block Block
return bool
        public static bool CanSquash( Block block )
        {
            switch ( block ) {
                case Block.BrownMushroom:
                case Block.Plant:
                case Block.RedFlower:
                case Block.RedMushroom:
                case Block.YellowFlower:
                    return true;
            }
            return false;
        }

Usage Example

Example #1
0
 public static void blockSquash(object sender, PlayerPlacingBlockEventArgs e)
 {
     try {
         Player player = e.Player;
         World  world  = player.World;
         if (null == world)
         {
             return;
         }
         lock (world.SyncRoot) {
             if (null != world.Map && world.IsLoaded && world.plantPhysics)
             {
                 if (e.NewBlock == Block.Plant)
                 {
                     world.AddPhysicsTask(new PlantTask(world, ( short )e.Coords.X, ( short )e.Coords.Y, ( short )e.Coords.Z), PlantTask.GetRandomDelay());
                 }
                 Vector3I z = new Vector3I(e.Coords.X, e.Coords.Y, e.Coords.Z - 1);
                 if (world.Map.GetBlock(z) == Block.Grass && e.NewBlock != Block.Air)
                 {
                     world.Map.QueueUpdate(new BlockUpdate(null, z, Block.Dirt));
                 }
                 else if (Physics.CanSquash(world.Map.GetBlock(z)) && e.NewBlock != Block.Air)
                 {
                     e.Result = CanPlaceResult.Revert;
                     Player.RaisePlayerPlacedBlockEvent(player, world.Map, z, world.Map.GetBlock(z), e.NewBlock, BlockChangeContext.Physics);
                     world.Map.QueueUpdate(new BlockUpdate(null, z, e.NewBlock));
                 }
             }
         }
     } catch (Exception ex) {
         Logger.Log(LogType.SeriousError, "BlockSquash" + ex);
     }
 }