aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/block
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/core/block')
-rw-r--r--src/Java/gtPlusPlus/core/block/base/BasicTileBlockWithTooltip.java309
-rw-r--r--src/Java/gtPlusPlus/core/block/machine/CircuitProgrammer.java111
-rw-r--r--src/Java/gtPlusPlus/core/block/machine/Machine_RoundRobinator.java138
3 files changed, 411 insertions, 147 deletions
diff --git a/src/Java/gtPlusPlus/core/block/base/BasicTileBlockWithTooltip.java b/src/Java/gtPlusPlus/core/block/base/BasicTileBlockWithTooltip.java
new file mode 100644
index 0000000000..098b670509
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/block/base/BasicTileBlockWithTooltip.java
@@ -0,0 +1,309 @@
+package gtPlusPlus.core.block.base;
+
+import java.util.List;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gtPlusPlus.api.interfaces.ITileTooltip;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.api.objects.data.AutoMap;
+import gtPlusPlus.api.objects.minecraft.CubicObject;
+import gtPlusPlus.api.objects.minecraft.SafeTexture;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.minecraft.InventoryUtils;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import net.minecraft.block.Block;
+import net.minecraft.block.BlockContainer;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.EnumCreatureType;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemBlock;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+
+public abstract class BasicTileBlockWithTooltip extends BlockContainer implements ITileTooltip {
+
+ /**
+ * Each mapped object holds the data for the six sides.
+ */
+ @SideOnly(Side.CLIENT)
+ private AutoMap<CubicObject<SafeTexture>> mSidedTextureArray = new AutoMap<CubicObject<SafeTexture>>();
+
+ /**
+ * Holds the data for the six sides, each side holds an array of data for each respective meta.
+ */
+ @SideOnly(Side.CLIENT)
+ private AutoMap<CubicObject<String>> mSidedTexturePathArray = new AutoMap<CubicObject<String>>();
+
+ /**
+ * Does this block have any meta at all?
+ * @return
+ */
+ public final boolean hasMeta() {
+ return getMetaCount() > 0;
+ }
+
+ /**
+ * The amount of meta this block has.
+ * @return
+ */
+ public abstract int getMetaCount();
+
+ /**
+ * Does this {@link Block} require special {@link ItemBlock} handling?
+ * @return The {@link Class} that will be used for this {@link Block}.
+ */
+ public Class<? extends ItemBlock> getItemBlockClass() {
+ return ItemBlock.class;
+ }
+
+ /**
+ * A lazy way to declare the unlocal name for the block, makes boilerplating easy.
+ * @return The internal name for this block.
+ */
+ public abstract String getUnlocalBlockName();
+
+ /**
+ * Does this Block have {@link ITileTooltip} support?
+ * @return {@link boolean} that represents if this block supports {@link ITileTooltip} or not.
+ */
+ public final boolean hasTooltip() {
+ return getTooltipID() >= -1;
+ }
+
+ /**
+ * Lazy Boilerplating.
+ * @return Block Hardness.
+ */
+ protected abstract float initBlockHardness();
+
+ /**
+ * Lazy Boilerplating.
+ * @return Block Resistance.
+ */
+ protected abstract float initBlockResistance();
+
+ /**
+ * Lazy Boilerplating.
+ * @return The {@link CreativeTab} this Block is shown on.
+ */
+ protected abstract CreativeTabs initCreativeTab();
+
+ /**
+ * The ID used by the {@link ITileTooltip} handler. Return -1 if you are not providing a custom {@link ItemBlock} in {@link #getItemBlockClass}().
+ * @return
+ */
+ @Override
+ public abstract int getTooltipID();
+
+ public BasicTileBlockWithTooltip(Material aBlockMat){
+ super(aBlockMat);
+ //Use Abstract method values
+ this.setHardness(initBlockHardness());
+ this.setResistance(initBlockResistance());
+ this.setBlockName(getUnlocalBlockName());
+ this.setCreativeTab(initCreativeTab());
+ // Register the block last.
+ GameRegistry.registerBlock(this, getItemBlockClass(), getUnlocalBlockName());
+ Logger.INFO("Registered "+getTileEntityName()+".");
+ if (Utils.isClient()) {
+ // Handle Textures
+ handleTextures();
+ }
+ }
+
+ /**
+ * The name of the Tile Entity.
+ * @return
+ */
+ protected abstract String getTileEntityName();
+
+ /**
+ * The String used for texture pathing.
+ * @return Sanitized {@link String}, containing no spaces or illegal characters.
+ */
+ private final String getTileEntityNameForTexturePathing() {
+ return Utils.sanitizeString(getTileEntityName().replace(" ", ""));
+ }
+
+ /**
+ * An array of CubicObjects, one for each meta, else just a single cell array.
+ * Expected to be null regularly, as the default texture handling should suffice.
+ * Handy if re-using textures or using a non-standard structure for them. FULL texture path must be used,
+ * inclusive of the MODID and a colon.
+ * @return
+ */
+ public CubicObject<String>[] getCustomTextureDirectoryObject(){
+ return null;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public final IIcon getIcon(final int aSide, final int aMeta) {
+ return mSidedTextureArray.get(aMeta).get(aSide).getIcon();
+ }
+
+ @Override
+ public IIcon getIcon(IBlockAccess aWorld, int aX, int aY, int aZ, int aSide) {
+ return super.getIcon(aWorld, aX, aY, aZ, aSide);
+ }
+
+ @SideOnly(Side.CLIENT)
+ private final void handleTextures() {
+
+ Logger.INFO("[TeTexture] Building Texture Maps for "+getTileEntityName()+".");
+ //Store them in forge order
+ //DOWN, UP, NORTH, SOUTH, WEST, EAST
+
+ // Default Path Name, this will make us look inside 'miscutils\textures\blocks'
+ final String aPrefixTexPath = CORE.MODID + ":";
+ // Default Path Name, this will make us look in the sub-directory for this Tile Entity.
+ final String aTexPathMid = "TileEntities"+CORE.SEPERATOR+getTileEntityNameForTexturePathing()+CORE.SEPERATOR;
+ // Construct a full path
+ String aTexPathBuilt = aPrefixTexPath + aTexPathMid;
+ // File Name Suffixes, without meta tags
+ String aStringBot;
+ String aStringTop;
+ String aStringBack;
+ String aStringFront;
+ String aStringLeft;
+ String aStringRight;
+ // Do we provide a matrix of custom data to be used for texture processing instead?
+ if (getCustomTextureDirectoryObject() != null) {
+ // Get custom provided texture data.
+ CubicObject<String>[] aDataMap = getCustomTextureDirectoryObject();
+ Logger.INFO("[TeTexture] Found custom texture data, using this instead. Size: "+aDataMap.length);
+ // Map each meta string data to the main map.
+ for (int i=0;i<aDataMap.length;i++) {
+ mSidedTexturePathArray.put(aDataMap[i]);
+ Logger.INFO("Mapped value for meta "+i+".");
+ }
+ }
+ else {
+ Logger.INFO("[TeTexture] Processing "+(1+getMetaCount())+" sets.");
+ // Iterate once for each meta
+ for (int i=0;i<(1+getMetaCount());i++) {
+
+ // File Name Suffixes, without meta tags
+ aStringBot = "Bottom";
+ aStringTop = "Top";
+ aStringBack = "Back";
+ aStringFront = "Front";
+ aStringLeft = "Left";
+ aStringRight = "Right";
+
+ // Add tails if we have meta
+ if (hasMeta()) {
+ aStringBot = aStringBot + "_"+i;
+ aStringTop = aStringTop + "_"+i;
+ aStringBack = aStringBack + "_"+i;
+ aStringFront = aStringFront + "_"+i;
+ aStringLeft = aStringLeft + "_"+i;
+ aStringRight = aStringRight + "_"+i;
+ }
+ // Append the full path
+ aStringBot = aTexPathBuilt + aStringBot;
+ aStringTop = aTexPathBuilt + aStringTop;
+ aStringBack = aTexPathBuilt + aStringBack;
+ aStringFront = aTexPathBuilt + aStringFront;
+ aStringLeft = aTexPathBuilt + aStringLeft;
+ aStringRight = aTexPathBuilt + aStringRight;
+ // Convenience Blob
+ CubicObject<String> aMetaBlob = new CubicObject<String>(aStringBot, aStringTop, aStringBack, aStringFront, aStringLeft, aStringRight);
+ mSidedTexturePathArray.put(aMetaBlob);
+ Logger.INFO("[TeTexture] Added Texture Path data to map for meta "+i);
+ }
+ }
+ Logger.INFO("[TeTexture] Map size for pathing: "+mSidedTexturePathArray.size());
+
+ // Iteration Index
+ int aIndex = 0;
+
+ // Iterate each CubicObject, holding the six texture paths for each meta.
+ for (CubicObject<String> aMetaBlob : mSidedTexturePathArray) {
+ // Make a Safe Texture for each side
+ SafeTexture aBottom = SafeTexture.register(aMetaBlob.DOWN);
+ SafeTexture aTop = SafeTexture.register(aMetaBlob.UP);
+ SafeTexture aBack = SafeTexture.register(aMetaBlob.NORTH);
+ SafeTexture aFont = SafeTexture.register(aMetaBlob.SOUTH);
+ SafeTexture aWest = SafeTexture.register(aMetaBlob.WEST);
+ SafeTexture aEast = SafeTexture.register(aMetaBlob.EAST);
+ // Store them in an Array
+ SafeTexture[] aInjectBlob = new SafeTexture[] {
+ aBottom,
+ aTop,
+ aBack,
+ aFont,
+ aWest,
+ aEast
+ };
+ // Convenience Blob
+ CubicObject<SafeTexture> aMetaBlob2 = new CubicObject<SafeTexture>(aInjectBlob);
+ // Store this Blob into
+ mSidedTextureArray.put(aMetaBlob2);
+ Logger.INFO("[TeTexture] Added SafeTexture data to map for meta "+(aIndex++));
+ }
+ Logger.INFO("[TeTexture] Map size for registration: "+mSidedTextureArray.size());
+
+
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public final void registerBlockIcons(final IIconRegister aRegisterer){
+ this.blockIcon = aRegisterer.registerIcon(CORE.MODID + ":" + "net");
+ }
+
+ @Override
+ public abstract TileEntity createNewTileEntity(final World world, final int p_149915_2_);
+
+ /**
+ * Called when {@link #breakBlock}() is called, but before {@link InventoryUtils#dropInventoryItems} and the super call.
+ */
+ public void onBlockBreak() {
+
+ }
+
+ @Override
+ public final void breakBlock(final World world, final int x, final int y, final int z, final Block block, final int number) {
+ onBlockBreak();
+ InventoryUtils.dropInventoryItems(world, x, y, z, block);
+ super.breakBlock(world, x, y, z, block, number);
+ }
+
+ @SuppressWarnings({"unchecked", "rawtypes"})
+ @Override
+ public final void getSubBlocks(Item aItem, CreativeTabs p_149666_2_, List aList) {
+ if (hasMeta()) {
+ for (int i=0;i<getMetaCount();i++) {
+ aList.add(ItemUtils.simpleMetaStack(aItem, i, 1));
+ }
+ }
+ else {
+ aList.add(ItemUtils.getSimpleStack(aItem));
+ }
+ }
+
+ @Override
+ public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) {
+ return false;
+ }
+
+
+
+ /**
+ * Get the block's damage value (for use with pick block).
+ */
+ @Override
+ public int getDamageValue(World aWorld, int aX, int aY, int aZ) {
+ int l = aWorld.getBlockMetadata(aX, aY, aZ);
+ return l;
+ }
+
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/block/machine/CircuitProgrammer.java b/src/Java/gtPlusPlus/core/block/machine/CircuitProgrammer.java
index 6ae1a52aba..7d8b3eb708 100644
--- a/src/Java/gtPlusPlus/core/block/machine/CircuitProgrammer.java
+++ b/src/Java/gtPlusPlus/core/block/machine/CircuitProgrammer.java
@@ -1,42 +1,27 @@
package gtPlusPlus.core.block.machine;
-import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
import gregtech.common.items.GT_MetaGenerated_Tool_01;
-import net.minecraft.block.Block;
-import net.minecraft.block.BlockContainer;
+import gtPlusPlus.GTplusplus;
+import gtPlusPlus.api.objects.minecraft.CubicObject;
+import gtPlusPlus.core.block.base.BasicTileBlockWithTooltip;
+import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.handler.GuiHandler;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.tileentities.general.TileEntityCircuitProgrammer;
+import gtPlusPlus.core.util.minecraft.PlayerUtils;
import net.minecraft.block.material.Material;
-import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
-import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
-import gtPlusPlus.GTplusplus;
-import gtPlusPlus.api.interfaces.ITileTooltip;
-import gtPlusPlus.core.creative.AddToCreativeTab;
-import gtPlusPlus.core.handler.GuiHandler;
-import gtPlusPlus.core.item.base.itemblock.ItemBlockBasicTile;
-import gtPlusPlus.core.lib.CORE;
-import gtPlusPlus.core.tileentities.general.TileEntityCircuitProgrammer;
-import gtPlusPlus.core.util.minecraft.InventoryUtils;
-import gtPlusPlus.core.util.minecraft.PlayerUtils;
-
-public class CircuitProgrammer extends BlockContainer implements ITileTooltip
-{
- @SideOnly(Side.CLIENT)
- private IIcon textureTop;
- @SideOnly(Side.CLIENT)
- private IIcon textureBottom;
- @SideOnly(Side.CLIENT)
- private IIcon textureFront;
+public class CircuitProgrammer extends BasicTileBlockWithTooltip {
/**
* Determines which tooltip is displayed within the itemblock.
@@ -51,33 +36,7 @@ public class CircuitProgrammer extends BlockContainer implements ITileTooltip
@SuppressWarnings("deprecation")
public CircuitProgrammer(){
super(Material.iron);
- this.setHardness(5f);
- this.setResistance(1f);
- this.setBlockName("blockCircuitProgrammer");
- this.setCreativeTab(AddToCreativeTab.tabMachines);
- GameRegistry.registerBlock(this, ItemBlockBasicTile.class, "blockCircuitProgrammer");
LanguageRegistry.addName(this, "Circuit Programmer");
-
- }
-
- /**
- * Gets the block's texture. Args: side, meta
- */
- @Override
- @SideOnly(Side.CLIENT)
- public IIcon getIcon(final int p_149691_1_, final int p_149691_2_)
- {
- return p_149691_1_ == 1 ? this.textureTop : (p_149691_1_ == 0 ? this.textureBottom : (this.textureFront));
- }
-
- @Override
- @SideOnly(Side.CLIENT)
- public void registerBlockIcons(final IIconRegister p_149651_1_)
- {
- this.blockIcon = p_149651_1_.registerIcon(CORE.MODID + ":" + "metro/" + "TEXTURE_TECH_PANEL_B");
- this.textureTop = p_149651_1_.registerIcon(CORE.MODID + ":" + "metro/" + "TEXTURE_TECH_PANEL_B");
- this.textureBottom = p_149651_1_.registerIcon(CORE.MODID + ":" + "metro/" + "TEXTURE_METAL_PANEL_G");
- this.textureFront = p_149651_1_.registerIcon(CORE.MODID + ":" + "metro/" + "TEXTURE_METAL_PANEL_I");
}
/**
@@ -142,12 +101,6 @@ public class CircuitProgrammer extends BlockContainer implements ITileTooltip
}
@Override
- public void breakBlock(final World world, final int x, final int y, final int z, final Block block, final int number) {
- InventoryUtils.dropInventoryItems(world, x, y, z, block);
- super.breakBlock(world, x, y, z, block, number);
- }
-
- @Override
public void onBlockPlacedBy(final World world, final int x, final int y, final int z, final EntityLivingBase entity, final ItemStack stack) {
if (stack.hasDisplayName()) {
((TileEntityCircuitProgrammer) world.getTileEntity(x,y,z)).setCustomName(stack.getDisplayName());
@@ -159,4 +112,48 @@ public class CircuitProgrammer extends BlockContainer implements ITileTooltip
return false;
}
+ @Override
+ public int getMetaCount() {
+ return 0;
+ }
+
+ @Override
+ public String getUnlocalBlockName() {
+ return "blockCircuitProgrammer";
+ }
+
+ @Override
+ protected float initBlockHardness() {
+ return 5f;
+ }
+
+ @Override
+ protected float initBlockResistance() {
+ return 1f;
+ }
+
+ @Override
+ protected CreativeTabs initCreativeTab() {
+ return AddToCreativeTab.tabMachines;
+ }
+
+ @Override
+ protected String getTileEntityName() {
+ return "Circuit Programmer";
+ }
+
+ @Override
+ public CubicObject<String>[] getCustomTextureDirectoryObject() {
+ String[] aTexData = new String[] {
+ CORE.MODID + ":" + "metro/" + "TEXTURE_METAL_PANEL_G",
+ CORE.MODID + ":" + "metro/" + "TEXTURE_TECH_PANEL_B",
+ CORE.MODID + ":" + "metro/" + "TEXTURE_METAL_PANEL_I",
+ CORE.MODID + ":" + "metro/" + "TEXTURE_METAL_PANEL_I",
+ CORE.MODID + ":" + "metro/" + "TEXTURE_METAL_PANEL_I",
+ CORE.MODID + ":" + "metro/" + "TEXTURE_METAL_PANEL_I"
+ };
+ CubicObject<String>[] aTextureData = new CubicObject[] {new CubicObject<String>(aTexData)};
+ return aTextureData;
+ }
+
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/block/machine/Machine_RoundRobinator.java b/src/Java/gtPlusPlus/core/block/machine/Machine_RoundRobinator.java
index cd480dcffe..dc87b885b9 100644
--- a/src/Java/gtPlusPlus/core/block/machine/Machine_RoundRobinator.java
+++ b/src/Java/gtPlusPlus/core/block/machine/Machine_RoundRobinator.java
@@ -1,85 +1,27 @@
package gtPlusPlus.core.block.machine;
-import java.util.List;
-
-import cpw.mods.fml.common.registry.GameRegistry;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-import gregtech.common.items.GT_MetaGenerated_Tool_01;
-import gtPlusPlus.api.interfaces.ITileTooltip;
+import gtPlusPlus.api.objects.data.AutoMap;
+import gtPlusPlus.api.objects.minecraft.CubicObject;
+import gtPlusPlus.core.block.base.BasicTileBlockWithTooltip;
import gtPlusPlus.core.creative.AddToCreativeTab;
import gtPlusPlus.core.item.base.itemblock.ItemBlockRoundRobinator;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.tileentities.machines.TileEntityRoundRobinator;
-import gtPlusPlus.core.util.minecraft.InventoryUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.minecraft.PlayerUtils;
-import net.minecraft.block.Block;
-import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
-import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.EnumCreatureType;
import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.Item;
+import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
-import net.minecraft.util.IIcon;
-import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
-public class Machine_RoundRobinator extends BlockContainer implements ITileTooltip
-{
- @SideOnly(Side.CLIENT)
- private IIcon[] textureTop = new IIcon[5];
- @SideOnly(Side.CLIENT)
- private IIcon[] textureFront = new IIcon[5];
+public class Machine_RoundRobinator extends BasicTileBlockWithTooltip {
+
- /**
- * Determines which tooltip is displayed within the itemblock.
- */
- private final int mTooltipID = 7;
-
- @Override
- public int getTooltipID() {
- return this.mTooltipID;
- }
-
- @SuppressWarnings("deprecation")
public Machine_RoundRobinator(){
super(Material.iron);
- this.setHardness(1f);
- this.setResistance(1f);
- this.setBlockName("blockRoundRobinator");
- this.setCreativeTab(AddToCreativeTab.tabMachines);
- GameRegistry.registerBlock(this, ItemBlockRoundRobinator.class, "blockRoundRobinator");
- //LanguageRegistry.addName(this, "Round-Robinator");
-
- }
-
- /**
- * Gets the block's texture. Args: side, meta
- */
- @Override
- @SideOnly(Side.CLIENT)
- public IIcon getIcon(final int aSide, final int aMeta) {
- if (aSide < 2) {
- return this.textureTop[aMeta];
- }
- else {
- return this.textureFront[aMeta];
- }
- }
-
- @Override
- @SideOnly(Side.CLIENT)
- public void registerBlockIcons(final IIconRegister p_149651_1_){
- this.blockIcon = p_149651_1_.registerIcon(CORE.MODID + ":" + "TileEntities/" + "RoundRobinator_Side");
- for (int i=0;i<5;i++) {
- this.textureTop[i] = p_149651_1_.registerIcon(CORE.MODID + ":" + "TileEntities/RoundRobinator/" + "RoundRobinator_Top_"+i);
- this.textureFront[i] = p_149651_1_.registerIcon(CORE.MODID + ":" + "TileEntities/RoundRobinator/" + "RoundRobinator_Side_"+i);
- }
}
/**
@@ -97,13 +39,11 @@ public class Machine_RoundRobinator extends BlockContainer implements ITileToolt
// Check For Screwdriver
try {
final ItemStack mHandStack = PlayerUtils.getItemStackInPlayersHand(world, player.getDisplayName());
- final Item mHandItem = mHandStack.getItem();
- if (((mHandItem instanceof GT_MetaGenerated_Tool_01)
- && ((mHandItem.getDamage(mHandStack) == 22) || (mHandItem.getDamage(mHandStack) == 150)))) {
+ if (ItemUtils.isToolScrewdriver(mHandStack)) {
final TileEntityRoundRobinator tile = (TileEntityRoundRobinator) world.getTileEntity(x, y, z);
if (tile != null) {
mDidScrewDriver = tile.onScrewdriverRightClick((byte) side, player, x, y, z);
- }
+ }
}
}
catch (final Throwable t) {}
@@ -122,52 +62,70 @@ public class Machine_RoundRobinator extends BlockContainer implements ITileToolt
}
@Override
- public int getRenderBlockPass() {
- return 0;
+ public TileEntity createNewTileEntity(final World world, final int p_149915_2_) {
+ return new TileEntityRoundRobinator();
}
@Override
- public boolean isOpaqueCube() {
- return false;
+ public int getMetaCount() {
+ return 5;
}
@Override
- public TileEntity createNewTileEntity(final World world, final int p_149915_2_) {
- return new TileEntityRoundRobinator();
+ public String getUnlocalBlockName() {
+ return "blockRoundRobinator";
}
@Override
- public void onBlockAdded(final World world, final int x, final int y, final int z) {
- super.onBlockAdded(world, x, y, z);
+ protected float initBlockHardness() {
+ return 1;
}
@Override
- public void breakBlock(final World world, final int x, final int y, final int z, final Block block, final int number) {
- InventoryUtils.dropInventoryItems(world, x, y, z, block);
- super.breakBlock(world, x, y, z, block, number);
+ protected float initBlockResistance() {
+ return 1;
}
@Override
- public void onBlockPlacedBy(final World world, final int x, final int y, final int z, final EntityLivingBase entity, final ItemStack stack) {
- super.onBlockPlacedBy(world, x, y, z, entity, stack);
+ protected CreativeTabs initCreativeTab() {
+ return AddToCreativeTab.tabMachines;
}
@Override
- public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) {
- return false;
+ public int getTooltipID() {
+ return -1;
}
@Override
- public void getSubBlocks(Item aItem, CreativeTabs p_149666_2_, List aList) {
- //super.getSubBlocks(aItem, p_149666_2_, aList);
- for (int i=0;i<5;i++) {
- aList.add(ItemUtils.simpleMetaStack(aItem, i, 1));
- }
+ protected String getTileEntityName() {
+ return "Round Robinator";
+ }
+
+ @Override
+ public Class<? extends ItemBlock> getItemBlockClass() {
+ return ItemBlockRoundRobinator.class;
}
@Override
- public IIcon getIcon(IBlockAccess aBlockAccess, int x, int y, int z, int aSide) {
- return super.getIcon(aBlockAccess, x, y, z, aSide);
+ public CubicObject<String>[] getCustomTextureDirectoryObject() {
+ AutoMap<String[]> aTemp = new AutoMap<String[]>();
+ for (int i=0;i<5;i++) {
+ String[] aTexData = new String[] {
+ CORE.MODID + ":" + "TileEntities/RoundRobinator/Top_"+i,
+ CORE.MODID + ":" + "TileEntities/RoundRobinator/Top_"+i,
+ CORE.MODID + ":" + "TileEntities/RoundRobinator/Side_"+i,
+ CORE.MODID + ":" + "TileEntities/RoundRobinator/Side_"+i,
+ CORE.MODID + ":" + "TileEntities/RoundRobinator/Side_"+i,
+ CORE.MODID + ":" + "TileEntities/RoundRobinator/Side_"+i,
+ };
+ aTemp.put(aTexData);
+ }
+ AutoMap<CubicObject<String>> aTemp2 = new AutoMap<CubicObject<String>>();
+ for (String[] y : aTemp) {
+ aTemp2.put(new CubicObject<String>(y));
+ }
+ CubicObject<String>[] aTextureData = new CubicObject[] {aTemp2.get(0), aTemp2.get(1), aTemp2.get(2), aTemp2.get(3), aTemp2.get(4)};
+ return aTextureData;
}
} \ No newline at end of file