Files
ForgeMultipart/codechicken/multipart/minecraft/PartMetaAccess.java
T

88 lines
2.6 KiB
Java
Raw Normal View History

2013-05-20 17:09:57 +10:00
package codechicken.multipart.minecraft;
import codechicken.lib.vec.BlockCoord;
2013-05-20 17:09:57 +10:00
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
2013-06-02 13:38:59 +10:00
import net.minecraft.block.Block;
2013-05-20 17:09:57 +10:00
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Vec3Pool;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.biome.BiomeGenBase;
2014-04-07 23:14:31 +10:00
import net.minecraftforge.common.util.ForgeDirection;
2013-05-20 17:09:57 +10:00
2014-04-07 23:14:31 +10:00
public class PartMetaAccess implements IBlockAccess {
2013-05-20 17:09:57 +10:00
public IPartMeta part;
2013-06-02 13:38:59 +10:00
private BlockCoord pos;
2014-04-07 23:14:31 +10:00
public PartMetaAccess(IPartMeta p) {
2013-05-20 17:09:57 +10:00
part = p;
2013-06-02 13:38:59 +10:00
pos = p.getPos();
2013-05-20 17:09:57 +10:00
}
2014-04-07 23:14:31 +10:00
2013-05-20 17:09:57 +10:00
@Override
2014-04-07 23:14:31 +10:00
public Block getBlock(int i, int j, int k) {
if (i == pos.x && j == pos.y && k == pos.z)
return part.getBlock();
return part.getWorld().getBlock(i, j, k);
2013-05-20 17:09:57 +10:00
}
@Override
2014-04-07 23:14:31 +10:00
public TileEntity getTileEntity(int i, int j, int k) {
if (i == pos.x && j == pos.y && k == pos.z)
2013-06-02 13:38:59 +10:00
throw new IllegalArgumentException("Unsupported Operation");
2014-04-07 23:14:31 +10:00
return part.getWorld().getTileEntity(i, j, k);
2013-05-20 17:09:57 +10:00
}
@Override
@SideOnly(Side.CLIENT)
2014-04-07 23:14:31 +10:00
public int getLightBrightnessForSkyBlocks(int i, int j, int k, int l) {
2013-05-20 17:09:57 +10:00
return part.getWorld().getLightBrightnessForSkyBlocks(i, j, k, l);
}
@Override
2014-04-07 23:14:31 +10:00
public int getBlockMetadata(int i, int j, int k) {
if (i == pos.x && j == pos.y && k == pos.z)
return part.getMetadata() & 0xF;
2013-06-02 13:38:59 +10:00
return part.getWorld().getBlockMetadata(i, j, k);
2013-05-20 17:09:57 +10:00
}
@Override
@SideOnly(Side.CLIENT)
2014-04-07 23:14:31 +10:00
public boolean isAirBlock(int i, int j, int k) {
2013-05-20 17:09:57 +10:00
throw new IllegalArgumentException("Unsupported Operation");
}
@Override
@SideOnly(Side.CLIENT)
2014-04-07 23:14:31 +10:00
public BiomeGenBase getBiomeGenForCoords(int i, int j) {
2013-05-20 17:09:57 +10:00
return part.getWorld().getBiomeGenForCoords(i, j);
}
@Override
@SideOnly(Side.CLIENT)
2014-04-07 23:14:31 +10:00
public int getHeight() {
2013-05-20 17:09:57 +10:00
return part.getWorld().getHeight();
}
@Override
@SideOnly(Side.CLIENT)
2014-04-07 23:14:31 +10:00
public boolean extendedLevelsInChunkCache() {
2013-05-20 17:09:57 +10:00
return part.getWorld().extendedLevelsInChunkCache();
}
@Override
2014-04-07 23:14:31 +10:00
public Vec3Pool getWorldVec3Pool() {
2013-05-20 17:09:57 +10:00
return part.getWorld().getWorldVec3Pool();
}
@Override
2014-04-07 23:14:31 +10:00
public int isBlockProvidingPowerTo(int i, int j, int k, int l) {
2013-05-20 17:09:57 +10:00
throw new IllegalArgumentException("Unsupported Operation");
}
2014-04-07 23:14:31 +10:00
2013-06-12 14:28:26 +10:00
@Override
2014-04-07 23:14:31 +10:00
public boolean isSideSolid(int x, int y, int z, ForgeDirection side, boolean _default) {
return part.getWorld().isSideSolid(x, y, z, side, _default);
2013-06-12 14:28:26 +10:00
}
2013-05-20 17:09:57 +10:00
}