Beispiel #1
0
 public override void BlockUpdate(Level level, BlockCoordinates blockCoordinates)
 {
     if (Coordinates.BlockDown() == blockCoordinates)
     {
         level.BreakBlock(null, this);
     }
 }
Beispiel #2
0
 public override void BlockUpdate(Level level, BlockCoordinates blockCoordinates)
 {
     if (Coordinates.BlockDown() == blockCoordinates)
     {
         level.SetAir(Coordinates);
         UpdateBlocks(level);
     }
 }
Beispiel #3
0
 protected void UpdateBlocks(Level world)
 {
     world.GetBlock(Coordinates.BlockUp()).BlockUpdate(world, Coordinates);
     world.GetBlock(Coordinates.BlockDown()).BlockUpdate(world, Coordinates);
     world.GetBlock(Coordinates.BlockWest()).BlockUpdate(world, Coordinates);
     world.GetBlock(Coordinates.BlockEast()).BlockUpdate(world, Coordinates);
     world.GetBlock(Coordinates.BlockSouth()).BlockUpdate(world, Coordinates);
     world.GetBlock(Coordinates.BlockNorth()).BlockUpdate(world, Coordinates);
 }
Beispiel #4
0
        protected override bool CanPlace(Level world, Player player, BlockCoordinates blockCoordinates, BlockCoordinates targetCoordinates, BlockFace face)
        {
            if (base.CanPlace(world, player, blockCoordinates, targetCoordinates, face))
            {
                Block under = world.GetBlock(Coordinates.BlockDown());
                return(under is Farmland);
            }

            return(false);
        }
Beispiel #5
0
        protected override bool CanPlace(Level world, Player player, BlockCoordinates blockCoordinates, BlockCoordinates targetCoordinates, BlockFace face)
        {
            if (world.GetBlock(Coordinates.BlockDown()) is SnowLayer current)
            {
                if (current.Metadata < 7)
                {
                    return(true);
                }
            }

            return(base.CanPlace(world, player, blockCoordinates, targetCoordinates, face));
        }
Beispiel #6
0
        protected override bool CanPlace(Level world, Player player, BlockCoordinates blockCoordinates, BlockCoordinates targetCoordinates, BlockFace face)
        {
            Block down = world.GetBlock(Coordinates.BlockDown());

            if (down is Air)
            {
                return(false);
            }

            if (down is SnowLayer snow)
            {
                if (snow.Height < 7)
                {
                    return(false);
                }
            }

            return(base.CanPlace(world, player, blockCoordinates, targetCoordinates, face));
        }
Beispiel #7
0
        public override bool PlaceBlock(Level world, Player player, BlockCoordinates targetCoordinates, BlockFace face, Vector3 faceCoords)
        {
            if (world.GetBlock(Coordinates.BlockDown()) is SnowLayer current)
            {
                if (current.Metadata < 7)
                {
                    Coordinates += BlockCoordinates.Down;
                    Metadata     = (byte)(current.Metadata + 1);
                }
                else
                {
                    if (BlockFactory.GetBlockById(80) is Snow snow)
                    {
                        snow.Coordinates = Coordinates.BlockDown();
                        world.SetBlock(snow);
                    }
                }
            }

            return(false);
        }
Beispiel #8
0
        public override void BlockUpdate(Level level, BlockCoordinates blockCoordinates)
        {
            bool shouldKeep = true;

            shouldKeep &= IsValid(level.GetBlock(Coordinates.BlockUp()));
            shouldKeep &= IsValid(level.GetBlock(Coordinates.BlockDown()));

            if (Metadata < 2)
            {
                shouldKeep &= IsValid(level.GetBlock(Coordinates.BlockWest()));
                shouldKeep &= IsValid(level.GetBlock(Coordinates.BlockEast()));
            }
            else
            {
                shouldKeep &= IsValid(level.GetBlock(Coordinates.BlockSouth()));
                shouldKeep &= IsValid(level.GetBlock(Coordinates.BlockNorth()));
            }

            if (!shouldKeep)
            {
                Fill(level, Coordinates);
            }
        }