public override void BlockUpdate(Level level, BlockCoordinates blockCoordinates) { if (Coordinates.BlockDown() == blockCoordinates) { level.BreakBlock(null, this); } }
public override void BlockUpdate(Level level, BlockCoordinates blockCoordinates) { if (Coordinates.BlockDown() == blockCoordinates) { level.SetAir(Coordinates); UpdateBlocks(level); } }
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); }
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); }
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)); }
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)); }
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); }
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); } }