package openmods.utils;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraftforge.common.util.ForgeDirection;
public class FakeBlockAccess implements IBlockAccess {
private final Block block;
private final int metadata;
private final TileEntity tileEntity;
public FakeBlockAccess(Block block, int metadata, TileEntity tileEntity) {
this.block = block;
this.metadata = metadata;
this.tileEntity = tileEntity;
}
public FakeBlockAccess(Block block, int metadata) {
this(block, metadata, null);
}
private static boolean isOrigin(int x, int y, int z) {
return x == 0 && y == 0 && z == 0;
}
@Override
public Block getBlock(int x, int y, int z) {
return isOrigin(x, y, z)? block : Blocks.air;
}
@Override
public TileEntity getTileEntity(int x, int y, int z) {
return isOrigin(x, y, z)? tileEntity : null;
}
@Override
public int getLightBrightnessForSkyBlocks(int x, int y, int z, int p_72802_4_) {
return 0xF000F0;
}
@Override
public int getBlockMetadata(int x, int y, int z) {
return isOrigin(x, y, z)? metadata : 0;
}
@Override
public int isBlockProvidingPowerTo(int x, int y, int z, int dir) {
return 0;
}
@Override
public boolean isAirBlock(int x, int y, int z) {
return !isOrigin(x, y, z);
}
@Override
public BiomeGenBase getBiomeGenForCoords(int x, int z) {
return BiomeGenBase.desert;
}
@Override
public int getHeight() {
return 256;
}
@Override
public boolean extendedLevelsInChunkCache() {
return false;
}
@Override
public boolean isSideSolid(int x, int y, int z, ForgeDirection side, boolean _default) {
return (isOrigin(x, y, z))? block.isSideSolid(this, x, y, z, side) : _default;
}
}