2014-09-01 05:03:35 +02:00
|
|
|
package mekanism.common;
|
|
|
|
|
2014-09-01 19:19:21 +02:00
|
|
|
import java.util.HashMap;
|
2014-09-01 05:03:35 +02:00
|
|
|
import java.util.List;
|
2014-09-01 19:19:21 +02:00
|
|
|
import java.util.Map.Entry;
|
2014-09-01 05:03:35 +02:00
|
|
|
|
|
|
|
import mekanism.api.Coord4D;
|
|
|
|
import mekanism.client.render.block.TextureSubmap;
|
|
|
|
|
|
|
|
import net.minecraft.block.Block;
|
|
|
|
import net.minecraft.client.renderer.texture.IIconRegister;
|
|
|
|
import net.minecraft.util.IIcon;
|
|
|
|
import net.minecraft.world.IBlockAccess;
|
|
|
|
import cpw.mods.fml.relauncher.Side;
|
|
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
|
|
|
|
|
|
public class CTMData
|
|
|
|
{
|
|
|
|
public IIcon icon;
|
|
|
|
|
|
|
|
public TextureSubmap submap;
|
|
|
|
|
|
|
|
public TextureSubmap submapSmall;
|
|
|
|
|
|
|
|
public String texture;
|
|
|
|
|
2014-09-01 19:19:21 +02:00
|
|
|
public HashMap<Block, List<Integer>> acceptableBlockMetas = new HashMap<Block, List<Integer>>();
|
2014-09-01 05:03:35 +02:00
|
|
|
|
2014-09-01 19:19:21 +02:00
|
|
|
public CTMData(String textureName, Block block, List<Integer> connectableMeta)
|
2014-09-01 05:03:35 +02:00
|
|
|
{
|
|
|
|
texture = textureName;
|
2014-09-01 19:19:21 +02:00
|
|
|
acceptableBlockMetas.put(block, connectableMeta);
|
2014-09-01 05:03:35 +02:00
|
|
|
}
|
|
|
|
|
2014-09-01 19:19:21 +02:00
|
|
|
public CTMData registerIcons(IIconRegister register)
|
2014-09-01 05:03:35 +02:00
|
|
|
{
|
|
|
|
icon = register.registerIcon("mekanism:" + texture);
|
|
|
|
submap = new TextureSubmap(register.registerIcon("mekanism:" + texture + "-ctm"), 4, 4);
|
|
|
|
submapSmall = new TextureSubmap(icon, 2, 2);
|
2014-09-01 19:19:21 +02:00
|
|
|
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
public CTMData addOtherBlockConnectivities(Block block, List<Integer> connectableMeta)
|
|
|
|
{
|
|
|
|
acceptableBlockMetas.put(block, connectableMeta);
|
|
|
|
return this;
|
2014-09-01 05:03:35 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@SideOnly(Side.CLIENT)
|
2014-09-01 19:19:21 +02:00
|
|
|
public boolean shouldRenderSide(IBlockAccess world, int x, int y, int z, int side)
|
2014-09-01 05:03:35 +02:00
|
|
|
{
|
|
|
|
Coord4D obj = new Coord4D(x, y, z);
|
2014-09-01 19:19:21 +02:00
|
|
|
Block coordBlock = obj.getBlock(world);
|
|
|
|
int coordMeta = obj.getMetadata(world);
|
|
|
|
boolean valid = false;
|
|
|
|
|
|
|
|
for(Entry<Block, List<Integer>> entry : acceptableBlockMetas.entrySet())
|
|
|
|
{
|
|
|
|
valid |= entry.getKey().equals(coordBlock) && entry.getValue().contains(coordMeta);
|
|
|
|
}
|
|
|
|
return !valid;
|
2014-09-01 05:03:35 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|