All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.minecraft.server.BlockLadder Maven / Gradle / Ivy

package net.minecraft.server;

import java.util.Iterator;

public class BlockLadder extends Block {

  public static final BlockStateDirection FACING = BlockStateDirection.of("facing", EnumDirection.EnumDirectionLimit.HORIZONTAL);

  protected BlockLadder() {
    super(Material.ORIENTABLE);
    this.j(this.blockStateList.getBlockData().set(BlockLadder.FACING, EnumDirection.NORTH));
    this.a(CreativeModeTab.c);
  }

  public AxisAlignedBB a(World world, BlockPosition blockposition, IBlockData iblockdata) {
    this.updateShape(world, blockposition);
    return super.a(world, blockposition, iblockdata);
  }

  public void updateShape(IBlockAccess iblockaccess, BlockPosition blockposition) {
    IBlockData iblockdata = iblockaccess.getType(blockposition);

    if (iblockdata.getBlock() == this) {
      float f = 0.125F;

      switch (SyntheticClass_1.a[iblockdata.get(BlockLadder.FACING).ordinal()]) {
        case 1:
          this.a(0.0F, 0.0F, 1.0F - f, 1.0F, 1.0F, 1.0F);
          break;

        case 2:
          this.a(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, f);
          break;

        case 3:
          this.a(1.0F - f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
          break;

        case 4:
        default:
          this.a(0.0F, 0.0F, 0.0F, f, 1.0F, 1.0F);
      }

    }
  }

  public boolean c() {
    return false;
  }

  public boolean d() {
    return false;
  }

  public boolean canPlace(World world, BlockPosition blockposition) {
    return world.getType(blockposition.west()).getBlock().isOccluding() || (world.getType(blockposition.east()).getBlock().isOccluding() || (world.getType(blockposition.north()).getBlock().isOccluding() || world.getType(blockposition.south()).getBlock().isOccluding()));
  }

  public IBlockData getPlacedState(World world, BlockPosition blockposition, EnumDirection enumdirection, float f, float f1, float f2, int i, EntityLiving entityliving) {
    if (enumdirection.k().c() && this.a(world, blockposition, enumdirection)) {
      return this.getBlockData().set(BlockLadder.FACING, enumdirection);
    } else {
      Iterator iterator = EnumDirection.EnumDirectionLimit.HORIZONTAL.iterator();

      EnumDirection enumdirection1;

      do {
        if (!iterator.hasNext()) {
          return this.getBlockData();
        }

        enumdirection1 = (EnumDirection) iterator.next();
      } while (!this.a(world, blockposition, enumdirection1));

      return this.getBlockData().set(BlockLadder.FACING, enumdirection1);
    }
  }

  public void doPhysics(World world, BlockPosition blockposition, IBlockData iblockdata, Block block) {
    EnumDirection enumdirection = iblockdata.get(BlockLadder.FACING);

    if (!this.a(world, blockposition, enumdirection)) {
      this.b(world, blockposition, iblockdata, 0);
      world.setAir(blockposition);
    }

    super.doPhysics(world, blockposition, iblockdata, block);
  }

  protected boolean a(World world, BlockPosition blockposition, EnumDirection enumdirection) {
    return world.getType(blockposition.shift(enumdirection.opposite())).getBlock().isOccluding();
  }

  public IBlockData fromLegacyData(int i) {
    EnumDirection enumdirection = EnumDirection.fromType1(i);

    if (enumdirection.k() == EnumDirection.EnumAxis.Y) {
      enumdirection = EnumDirection.NORTH;
    }

    return this.getBlockData().set(BlockLadder.FACING, enumdirection);
  }

  public int toLegacyData(IBlockData iblockdata) {
    return iblockdata.get(BlockLadder.FACING).a();
  }

  protected BlockStateList getStateList() {
    return new BlockStateList(this, BlockLadder.FACING);
  }

  static class SyntheticClass_1 {

    static final int[] a = new int[EnumDirection.values().length];

    static {
      try {
        SyntheticClass_1.a[EnumDirection.NORTH.ordinal()] = 1;
      } catch (NoSuchFieldError nosuchfielderror) {
      }

      try {
        SyntheticClass_1.a[EnumDirection.SOUTH.ordinal()] = 2;
      } catch (NoSuchFieldError nosuchfielderror1) {
      }

      try {
        SyntheticClass_1.a[EnumDirection.WEST.ordinal()] = 3;
      } catch (NoSuchFieldError nosuchfielderror2) {
      }

      try {
        SyntheticClass_1.a[EnumDirection.EAST.ordinal()] = 4;
      } catch (NoSuchFieldError nosuchfielderror3) {
      }

    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy