Exemplo n.º 1
0
  public static ChunkCoordinates getBed(World world, ChunkCoordinates chunkcoordinates) {
    IChunkProvider ichunkprovider = world.q();

    ichunkprovider.getChunkAt(chunkcoordinates.x - 3 >> 4, chunkcoordinates.z - 3 >> 4);
    ichunkprovider.getChunkAt(chunkcoordinates.x + 3 >> 4, chunkcoordinates.z - 3 >> 4);
    ichunkprovider.getChunkAt(chunkcoordinates.x - 3 >> 4, chunkcoordinates.z + 3 >> 4);
    ichunkprovider.getChunkAt(chunkcoordinates.x + 3 >> 4, chunkcoordinates.z + 3 >> 4);
    if (world.getTypeId(chunkcoordinates.x, chunkcoordinates.y, chunkcoordinates.z)
        != Block.BED.id) {
      return null;
    } else {
      ChunkCoordinates chunkcoordinates1 =
          BlockBed.f(world, chunkcoordinates.x, chunkcoordinates.y, chunkcoordinates.z, 0);

      return chunkcoordinates1;
    }
  }
Exemplo n.º 2
0
  public void a(boolean flag, boolean flag1, boolean flag2) {
    this.b(0.6F, 1.8F);
    this.A();
    ChunkCoordinates chunkcoordinates = this.F;
    ChunkCoordinates chunkcoordinates1 = this.F;

    if (chunkcoordinates != null
        && this.world.getTypeId(chunkcoordinates.x, chunkcoordinates.y, chunkcoordinates.z)
            == Block.BED.id) {
      BlockBed.a(this.world, chunkcoordinates.x, chunkcoordinates.y, chunkcoordinates.z, false);
      chunkcoordinates1 =
          BlockBed.f(this.world, chunkcoordinates.x, chunkcoordinates.y, chunkcoordinates.z, 0);
      if (chunkcoordinates1 == null) {
        chunkcoordinates1 =
            new ChunkCoordinates(chunkcoordinates.x, chunkcoordinates.y + 1, chunkcoordinates.z);
      }

      this.setPosition(
          (double) ((float) chunkcoordinates1.x + 0.5F),
          (double) ((float) chunkcoordinates1.y + this.height + 0.1F),
          (double) ((float) chunkcoordinates1.z + 0.5F));
    }

    this.sleeping = false;
    if (!this.world.isStatic && flag1) {
      this.world.everyoneSleeping();
    }

    if (flag) {
      this.sleepTicks = 0;
    } else {
      this.sleepTicks = 100;
    }

    if (flag2) {
      this.setRespawnPosition(this.F);
    }
  }