예제 #1
0
파일: Flowing.cs 프로젝트: LiveMC/SharpMC
 public override void DoPhysics(Level level)
 {
     CheckForHarden(level, (int) Coordinates.X, (int) Coordinates.Y, (int) Coordinates.Z);
     level.ScheduleBlockTick(this, TickRate());
 }
예제 #2
0
파일: Flowing.cs 프로젝트: LiveMC/SharpMC
 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;
 }
예제 #3
0
파일: Flowing.cs 프로젝트: LiveMC/SharpMC
        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());
            }
        }
예제 #4
0
 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);
 }