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

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

package net.minecraft.server;

import java.util.List;

public class BlockFence extends Block {

  public static final BlockStateBoolean NORTH = BlockStateBoolean.of("north");
  public static final BlockStateBoolean EAST = BlockStateBoolean.of("east");
  public static final BlockStateBoolean SOUTH = BlockStateBoolean.of("south");
  public static final BlockStateBoolean WEST = BlockStateBoolean.of("west");

  public BlockFence(Material material) {
    this(material, material.r());
  }

  public BlockFence(Material material, MaterialMapColor materialmapcolor) {
    super(material, materialmapcolor);
    this.j(this.blockStateList.getBlockData().set(BlockFence.NORTH, Boolean.valueOf(false)).set(BlockFence.EAST, Boolean.valueOf(false)).set(BlockFence.SOUTH, Boolean.valueOf(false)).set(BlockFence.WEST, Boolean.valueOf(false)));
    this.a(CreativeModeTab.c);
  }

  public void a(World world, BlockPosition blockposition, IBlockData iblockdata, AxisAlignedBB axisalignedbb, List list, Entity entity) {
    boolean flag = this.e(world, blockposition.north());
    boolean flag1 = this.e(world, blockposition.south());
    boolean flag2 = this.e(world, blockposition.west());
    boolean flag3 = this.e(world, blockposition.east());
    float f = 0.375F;
    float f1 = 0.625F;
    float f2 = 0.375F;
    float f3 = 0.625F;

    if (flag) {
      f2 = 0.0F;
    }

    if (flag1) {
      f3 = 1.0F;
    }

    if (flag || flag1) {
      this.a(f, 0.0F, f2, f1, 1.5F, f3);
      super.a(world, blockposition, iblockdata, axisalignedbb, list, entity);
    }

    f2 = 0.375F;
    f3 = 0.625F;
    if (flag2) {
      f = 0.0F;
    }

    if (flag3) {
      f1 = 1.0F;
    }

    if (flag2 || flag3 || !flag && !flag1) {
      this.a(f, 0.0F, f2, f1, 1.5F, f3);
      super.a(world, blockposition, iblockdata, axisalignedbb, list, entity);
    }

    if (flag) {
      f2 = 0.0F;
    }

    if (flag1) {
      f3 = 1.0F;
    }

    this.a(f, 0.0F, f2, f1, 1.0F, f3);
  }

  public void updateShape(IBlockAccess iblockaccess, BlockPosition blockposition) {
    boolean flag = this.e(iblockaccess, blockposition.north());
    boolean flag1 = this.e(iblockaccess, blockposition.south());
    boolean flag2 = this.e(iblockaccess, blockposition.west());
    boolean flag3 = this.e(iblockaccess, blockposition.east());
    float f = 0.375F;
    float f1 = 0.625F;
    float f2 = 0.375F;
    float f3 = 0.625F;

    if (flag) {
      f2 = 0.0F;
    }

    if (flag1) {
      f3 = 1.0F;
    }

    if (flag2) {
      f = 0.0F;
    }

    if (flag3) {
      f1 = 1.0F;
    }

    this.a(f, 0.0F, f2, f1, 1.0F, f3);
  }

  public boolean c() {
    return false;
  }

  public boolean d() {
    return false;
  }

  public boolean b(IBlockAccess iblockaccess, BlockPosition blockposition) {
    return false;
  }

  public boolean e(IBlockAccess iblockaccess, BlockPosition blockposition) {
    Block block = iblockaccess.getType(blockposition).getBlock();

    return block != Blocks.BARRIER && ((block instanceof BlockFence && block.material == this.material) || block instanceof BlockFenceGate || (block.material.k() && block.d() && block.material != Material.PUMPKIN));
  }

  public boolean interact(World world, BlockPosition blockposition, IBlockData iblockdata, EntityHuman entityhuman, EnumDirection enumdirection, float f, float f1, float f2) {
    return world.isClientSide || ItemLeash.a(entityhuman, world, blockposition);
  }

  public int toLegacyData(IBlockData iblockdata) {
    return 0;
  }

  public IBlockData updateState(IBlockData iblockdata, IBlockAccess iblockaccess, BlockPosition blockposition) {
    return iblockdata.set(BlockFence.NORTH, Boolean.valueOf(this.e(iblockaccess, blockposition.north()))).set(BlockFence.EAST, Boolean.valueOf(this.e(iblockaccess, blockposition.east()))).set(BlockFence.SOUTH, Boolean.valueOf(this.e(iblockaccess, blockposition.south()))).set(BlockFence.WEST, Boolean.valueOf(this.e(iblockaccess, blockposition.west())));
  }

  protected BlockStateList getStateList() {
    return new BlockStateList(this, BlockFence.NORTH, BlockFence.EAST, BlockFence.WEST, BlockFence.SOUTH);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy