예제 #1
0
 public static ChunkCoordinates verifyRespawnCoordinates(
     World world, ChunkCoordinates chunkcoordinates) {
   IChunkProvider ichunkprovider = world.getIChunkProvider();
   ichunkprovider.loadChunk(chunkcoordinates.posX - 3 >> 4, chunkcoordinates.posZ - 3 >> 4);
   ichunkprovider.loadChunk(chunkcoordinates.posX + 3 >> 4, chunkcoordinates.posZ - 3 >> 4);
   ichunkprovider.loadChunk(chunkcoordinates.posX - 3 >> 4, chunkcoordinates.posZ + 3 >> 4);
   ichunkprovider.loadChunk(chunkcoordinates.posX + 3 >> 4, chunkcoordinates.posZ + 3 >> 4);
   if (world.getBlockId(chunkcoordinates.posX, chunkcoordinates.posY, chunkcoordinates.posZ)
       != Block.bed.blockID) {
     return null;
   } else {
     ChunkCoordinates chunkcoordinates1 =
         BlockBed.getNearestEmptyChunkCoordinates(
             world, chunkcoordinates.posX, chunkcoordinates.posY, chunkcoordinates.posZ, 0);
     return chunkcoordinates1;
   }
 }
예제 #2
0
 public void wakeUpPlayer(boolean flag, boolean flag1, boolean flag2) {
   setSize(0.6F, 1.8F);
   resetHeight();
   ChunkCoordinates chunkcoordinates = bedChunkCoordinates;
   ChunkCoordinates chunkcoordinates1 = bedChunkCoordinates;
   if (chunkcoordinates != null
       && worldObj.getBlockId(chunkcoordinates.posX, chunkcoordinates.posY, chunkcoordinates.posZ)
           == Block.bed.blockID) {
     BlockBed.setBedOccupied(
         worldObj, chunkcoordinates.posX, chunkcoordinates.posY, chunkcoordinates.posZ, false);
     ChunkCoordinates chunkcoordinates2 =
         BlockBed.getNearestEmptyChunkCoordinates(
             worldObj, chunkcoordinates.posX, chunkcoordinates.posY, chunkcoordinates.posZ, 0);
     if (chunkcoordinates2 == null) {
       chunkcoordinates2 =
           new ChunkCoordinates(
               chunkcoordinates.posX, chunkcoordinates.posY + 1, chunkcoordinates.posZ);
     }
     setPosition(
         (float) chunkcoordinates2.posX + 0.5F,
         (float) chunkcoordinates2.posY + yOffset + 0.1F,
         (float) chunkcoordinates2.posZ + 0.5F);
   }
   sleeping = false;
   if (!worldObj.multiplayerWorld && flag1) {
     worldObj.updateAllPlayersSleepingFlag();
   }
   if (flag) {
     sleepTimer = 0;
   } else {
     sleepTimer = 100;
   }
   if (flag2) {
     setPlayerSpawnCoordinate(bedChunkCoordinates);
   }
 }