public override void DoPhysics(Level level) { CheckForHarden(level, (int) Coordinates.X, (int) Coordinates.Y, (int) Coordinates.Z); level.ScheduleBlockTick(this, TickRate()); }
public override bool PlaceBlock(Level world, Player player, Vector3 blockCoordinates, BlockFace face, Vector3 mouseLocation) { CheckForHarden(world, (int) blockCoordinates.X, (int) blockCoordinates.Y, (int) blockCoordinates.Z); world.ScheduleBlockTick(this, TickRate()); return false; }
private void Flow(Level world, int x, int y, int z, int decay) { if (CanBeFlownInto(world, x, y, z)) { var oldBlock = world.GetBlock(new Vector3(x, y, z)); if (oldBlock is Flowing || oldBlock.Id == 0) { } else { oldBlock.DoDrop(world); } oldBlock.BreakBlock(world); var newBlock = BlockFactory.GetBlockById(Id); newBlock.Coordinates = new Vector3(x, y, z); newBlock.Metadata = (byte) decay; world.SetBlock(newBlock, applyPhysics: true); world.ScheduleBlockTick(newBlock, TickRate()); } }
private void SetToFlowing(Level world) { var flowingBlock = BlockFactory.GetBlockById((byte) (Id - 1)); flowingBlock.Metadata = Metadata; flowingBlock.Coordinates = Coordinates; world.SetBlock(flowingBlock, applyPhysics: false); world.ScheduleBlockTick(flowingBlock, 5); }