aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/core')
-rw-r--r--src/Java/gtPlusPlus/core/block/ModBlocks.java31
-rw-r--r--src/Java/gtPlusPlus/core/block/base/AdvancedBlock.java7
-rw-r--r--src/Java/gtPlusPlus/core/block/base/BasicBlock.java7
-rw-r--r--src/Java/gtPlusPlus/core/block/base/BlockBaseNBT.java19
-rw-r--r--src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java6
-rw-r--r--src/Java/gtPlusPlus/core/block/base/MetaBlock.java7
-rw-r--r--src/Java/gtPlusPlus/core/block/general/BlockCompressedObsidian.java93
-rw-r--r--src/Java/gtPlusPlus/core/block/general/BlockNet.java35
-rw-r--r--src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java283
-rw-r--r--src/Java/gtPlusPlus/core/block/general/HellFire.java41
-rw-r--r--src/Java/gtPlusPlus/core/block/general/antigrief/BlockWitherProof.java110
-rw-r--r--src/Java/gtPlusPlus/core/block/general/fluids/BlockFluidSludge.java6
-rw-r--r--src/Java/gtPlusPlus/core/block/machine/BlockGtFrameBox.java6
-rw-r--r--src/Java/gtPlusPlus/core/block/machine/FishTrap.java25
-rw-r--r--src/Java/gtPlusPlus/core/block/machine/Machine_ModularityTable.java13
-rw-r--r--src/Java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java8
-rw-r--r--src/Java/gtPlusPlus/core/block/machine/Machine_TradeTable.java18
-rw-r--r--src/Java/gtPlusPlus/core/block/machine/Machine_Workbench.java7
-rw-r--r--src/Java/gtPlusPlus/core/container/Container_Grindle.java182
-rw-r--r--src/Java/gtPlusPlus/core/gui/item/GuiBaseGrindle.java140
-rw-r--r--src/Java/gtPlusPlus/core/gui/item/GuiScreenGrindle.java488
-rw-r--r--src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java9
-rw-r--r--src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java16
-rw-r--r--src/Java/gtPlusPlus/core/handler/GuiHandler.java38
-rw-r--r--src/Java/gtPlusPlus/core/inventories/BaseInventoryGrindle.java240
-rw-r--r--src/Java/gtPlusPlus/core/item/ModItems.java78
-rw-r--r--src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockBase.java21
-rw-r--r--src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockEntityBase.java41
-rw-r--r--src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockMeta.java44
-rw-r--r--src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockTileEntity.java43
-rw-r--r--src/Java/gtPlusPlus/core/item/bauble/ModularBauble.java2
-rw-r--r--src/Java/gtPlusPlus/core/item/general/BaseItemGrindle.java87
-rw-r--r--src/Java/gtPlusPlus/core/item/general/books/ItemBaseBook.java19
-rw-r--r--src/Java/gtPlusPlus/core/lib/CORE.java13
-rw-r--r--src/Java/gtPlusPlus/core/lib/LoadedMods.java8
-rw-r--r--src/Java/gtPlusPlus/core/material/MaterialGenerator.java24
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java264
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_General.java104
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java47
-rw-r--r--src/Java/gtPlusPlus/core/slots/SlotElectric.java43
-rw-r--r--src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java19
-rw-r--r--src/Java/gtPlusPlus/core/tileentities/general/TileEntityFishTrap.java127
-rw-r--r--src/Java/gtPlusPlus/core/tileentities/general/TileEntityXpConverter.java317
-rw-r--r--src/Java/gtPlusPlus/core/util/Utils.java65
-rw-r--r--src/Java/gtPlusPlus/core/util/enchanting/EnchantingUtils.java102
-rw-r--r--src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java218
-rw-r--r--src/Java/gtPlusPlus/core/util/item/ItemUtils.java54
-rw-r--r--src/Java/gtPlusPlus/core/util/player/PlayerUtils.java31
48 files changed, 3156 insertions, 450 deletions
diff --git a/src/Java/gtPlusPlus/core/block/ModBlocks.java b/src/Java/gtPlusPlus/core/block/ModBlocks.java
index a469acfc49..81d3a84dc9 100644
--- a/src/Java/gtPlusPlus/core/block/ModBlocks.java
+++ b/src/Java/gtPlusPlus/core/block/ModBlocks.java
@@ -3,8 +3,22 @@ package gtPlusPlus.core.block;
import cpw.mods.fml.common.registry.GameRegistry;
import gtPlusPlus.core.block.base.BasicBlock.BlockTypes;
import gtPlusPlus.core.block.base.BlockBaseOre;
-import gtPlusPlus.core.block.general.*;
-import gtPlusPlus.core.block.machine.*;
+import gtPlusPlus.core.block.general.BlockCompressedObsidian;
+import gtPlusPlus.core.block.general.BlockNet;
+import gtPlusPlus.core.block.general.BlockTankXpConverter;
+import gtPlusPlus.core.block.general.FirePit;
+import gtPlusPlus.core.block.general.FluidTankInfinite;
+import gtPlusPlus.core.block.general.HellFire;
+import gtPlusPlus.core.block.general.LightGlass;
+import gtPlusPlus.core.block.general.MiningExplosives;
+import gtPlusPlus.core.block.general.antigrief.BlockWitherProof;
+import gtPlusPlus.core.block.machine.FishTrap;
+import gtPlusPlus.core.block.machine.HeliumGenerator;
+import gtPlusPlus.core.block.machine.Machine_ModularityTable;
+import gtPlusPlus.core.block.machine.Machine_ProjectTable;
+import gtPlusPlus.core.block.machine.Machine_TradeTable;
+import gtPlusPlus.core.block.machine.Machine_Workbench;
+import gtPlusPlus.core.block.machine.Machine_WorkbenchAdvanced;
import gtPlusPlus.core.fluids.FluidRegistryHandler;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.Utils;
@@ -37,15 +51,20 @@ public final class ModBlocks {
public static Block blockFirePit;
public static Block blockOreFluorite;
-
+
public static Block blockMiningExplosive;
-
+
public static Block blockHellfire;
public static Block blockInfiniteFLuidTank;
public static Block blockProjectTable;
public static Block blockTradeTable;
public static Block blockModularTable;
+ public static Block blockWitherGuard;
+ public static Block blockXpConverter;
+ public static Block blockCompressedObsidian;
+ public static Block blockNet;
+
public static void init() {
Utils.LOG_INFO("Initializing Blocks.");
//blockGriefSaver = new TowerDevice().setBlockName("blockGriefSaver").setCreativeTab(AddToCreativeTab.tabBlock).setBlockTextureName("blockDefault");
@@ -74,6 +93,10 @@ public final class ModBlocks {
blockProjectTable = new Machine_ProjectTable();
blockTradeTable = new Machine_TradeTable();
blockModularTable = new Machine_ModularityTable();
+ blockWitherGuard = new BlockWitherProof();
+ blockXpConverter = new BlockTankXpConverter();
+ blockCompressedObsidian = new BlockCompressedObsidian();
+ blockNet = new BlockNet();
}
diff --git a/src/Java/gtPlusPlus/core/block/base/AdvancedBlock.java b/src/Java/gtPlusPlus/core/block/base/AdvancedBlock.java
index 7a0b715138..d8e59f96c8 100644
--- a/src/Java/gtPlusPlus/core/block/base/AdvancedBlock.java
+++ b/src/Java/gtPlusPlus/core/block/base/AdvancedBlock.java
@@ -4,7 +4,9 @@ import gtPlusPlus.core.lib.CORE;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.EnumCreatureType;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class AdvancedBlock extends Block {
@@ -28,4 +30,9 @@ public class AdvancedBlock extends Block {
return false;
}
+ @Override
+ public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) {
+ return false;
+ }
+
}
diff --git a/src/Java/gtPlusPlus/core/block/base/BasicBlock.java b/src/Java/gtPlusPlus/core/block/base/BasicBlock.java
index 9e3a5fc37f..f97763dd54 100644
--- a/src/Java/gtPlusPlus/core/block/base/BasicBlock.java
+++ b/src/Java/gtPlusPlus/core/block/base/BasicBlock.java
@@ -5,7 +5,9 @@ import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.Utils;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
+import net.minecraft.entity.EnumCreatureType;
import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class BasicBlock extends BlockContainer {
@@ -62,4 +64,9 @@ public class BasicBlock extends BlockContainer {
return null;
}
+ @Override
+ public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) {
+ return false;
+ }
+
}
diff --git a/src/Java/gtPlusPlus/core/block/base/BlockBaseNBT.java b/src/Java/gtPlusPlus/core/block/base/BlockBaseNBT.java
index 3ecb556e09..da308e270b 100644
--- a/src/Java/gtPlusPlus/core/block/base/BlockBaseNBT.java
+++ b/src/Java/gtPlusPlus/core/block/base/BlockBaseNBT.java
@@ -9,10 +9,12 @@ import gtPlusPlus.core.item.base.itemblock.ItemBlockNBT;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
+import net.minecraft.entity.EnumCreatureType;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.Explosion;
+import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public abstract class BlockBaseNBT extends BlockContainer
@@ -25,7 +27,7 @@ public abstract class BlockBaseNBT extends BlockContainer
private IIcon textureFront;
@SuppressWarnings("deprecation")
- public BlockBaseNBT(Material material, String unlocalName, String displayName){
+ public BlockBaseNBT(final Material material, final String unlocalName, final String displayName){
super(material);
this.setBlockName(unlocalName);
this.setCreativeTab(AddToCreativeTab.tabMachines);
@@ -46,28 +48,33 @@ public abstract class BlockBaseNBT extends BlockContainer
public abstract TileEntity createNewTileEntity(final World world, final int p_149915_2_);
@Override
- public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
+ public void breakBlock(final World world, final int x, final int y, final int z, final Block block, final int meta) {
super.breakBlock(world, x, y, z, block, meta);
}
@Override
- public void onBlockDestroyedByPlayer(World world, int x, int y, int z, int meta) {
+ public void onBlockDestroyedByPlayer(final World world, final int x, final int y, final int z, final int meta) {
super.onBlockDestroyedByPlayer(world, x, y, z, meta);
}
@Override
- public void onBlockDestroyedByExplosion(World world, int x, int y, int z, Explosion explosion) {
+ public void onBlockDestroyedByExplosion(final World world, final int x, final int y, final int z, final Explosion explosion) {
super.onBlockDestroyedByExplosion(world, x, y, z, explosion);
}
@Override
- public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) {
+ public void onBlockHarvested(final World world, final int x, final int y, final int z, final int meta, final EntityPlayer player) {
super.onBlockHarvested(world, x, y, z, meta, player);
}
@Override
- public void onBlockExploded(World world, int x, int y, int z, Explosion explosion) {
+ public void onBlockExploded(final World world, final int x, final int y, final int z, final Explosion explosion) {
super.onBlockExploded(world, x, y, z, explosion);
}
+ @Override
+ public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) {
+ return false;
+ }
+
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java b/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java
index c1e58e9393..285f394971 100644
--- a/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java
+++ b/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java
@@ -6,6 +6,7 @@ import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.math.MathUtils;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.EnumCreatureType;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
@@ -71,6 +72,11 @@ public class BlockBaseOre extends BlockBaseModular{
return this.blockColour;
}
+ @Override
+ public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) {
+ return false;
+ }
+
diff --git a/src/Java/gtPlusPlus/core/block/base/MetaBlock.java b/src/Java/gtPlusPlus/core/block/base/MetaBlock.java
index 3e116eeb7f..880bb3a597 100644
--- a/src/Java/gtPlusPlus/core/block/base/MetaBlock.java
+++ b/src/Java/gtPlusPlus/core/block/base/MetaBlock.java
@@ -4,8 +4,10 @@ import java.util.List;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.EnumCreatureType;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
+import net.minecraft.world.IBlockAccess;
public class MetaBlock extends MultiTextureBlock {
@@ -25,4 +27,9 @@ public class MetaBlock extends MultiTextureBlock {
}
}
+ @Override
+ public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) {
+ return false;
+ }
+
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/block/general/BlockCompressedObsidian.java b/src/Java/gtPlusPlus/core/block/general/BlockCompressedObsidian.java
new file mode 100644
index 0000000000..853abe3edf
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/block/general/BlockCompressedObsidian.java
@@ -0,0 +1,93 @@
+package gtPlusPlus.core.block.general;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.item.base.itemblock.ItemBlockMeta;
+import gtPlusPlus.core.lib.CORE;
+import net.minecraft.block.BlockObsidian;
+import net.minecraft.block.material.MapColor;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.World;
+
+public class BlockCompressedObsidian extends BlockObsidian {
+
+ @SideOnly(Side.CLIENT)
+ private final IIcon textureArray[] = new IIcon[6];
+
+ public BlockCompressedObsidian() {
+ this.setBlockName("blockCompressedObsidian");
+ this.setHardness(50.0F);
+ this.setResistance(2000.0F);
+ this.setStepSound(soundTypePiston);
+ this.setCreativeTab(AddToCreativeTab.tabMachines);
+ GameRegistry.registerBlock(this, ItemBlockMeta.class, "blockCompressedObsidian");
+ }
+
+ @Override
+ public MapColor getMapColor(final int meta) {
+ if (meta != 5) {
+ return MapColor.obsidianColor;
+ }
+ else {
+ return MapColor.sandColor;
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerBlockIcons(final IIconRegister iicon) {
+ this.textureArray[0] = iicon.registerIcon(CORE.MODID + ":" + "compressed/" + "obsidian1");
+ this.textureArray[1] = iicon.registerIcon(CORE.MODID + ":" + "compressed/" + "obsidian2");
+ this.textureArray[2] = iicon.registerIcon(CORE.MODID + ":" + "compressed/" + "obsidian3");
+ this.textureArray[3] = iicon.registerIcon(CORE.MODID + ":" + "compressed/" + "obsidian4");
+ this.textureArray[4] = iicon.registerIcon(CORE.MODID + ":" + "compressed/" + "obsidian5");
+ this.textureArray[5] = iicon.registerIcon(CORE.MODID + ":" + "compressed/" + "obsidian_invert");
+ }
+
+ /**
+ * Gets the block's texture. Args: side, meta
+ */
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIcon(final int side, final int meta) {
+ return this.textureArray[meta];
+ }
+
+ @Override
+ public int damageDropped(final int damage) {
+ return damage;
+ }
+
+ @Override
+ public void getSubBlocks(final Item item, final CreativeTabs tab, final List list) {
+ for (int i = 0; i < 6; i++) {
+ list.add(new ItemStack(item, 1, i));
+ }
+ }
+
+ @Override
+ public Item getItemDropped(final int meta, final Random rand, final int fortune) {
+ return Item.getItemFromBlock(this);
+ }
+
+ @Override
+ public ArrayList<ItemStack> getDrops(final World world, final int x, final int y, final int z, final int metadata,
+ final int fortune) {
+ int m = metadata;
+ if (m == 5) {
+ m = 1;
+ }
+ return super.getDrops(world, x, y, z, m, fortune);
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/core/block/general/BlockNet.java b/src/Java/gtPlusPlus/core/block/general/BlockNet.java
new file mode 100644
index 0000000000..26871662b2
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/block/general/BlockNet.java
@@ -0,0 +1,35 @@
+package gtPlusPlus.core.block.general;
+import java.util.Random;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.item.ModItems;
+import gtPlusPlus.core.lib.CORE;
+import net.minecraft.block.BlockWeb;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.item.Item;
+
+public class BlockNet extends BlockWeb{
+
+ public BlockNet(){
+ this.setCreativeTab(AddToCreativeTab.tabBlock);
+ this.setLightOpacity(1);
+ this.setHardness(4.0F);
+ this.setBlockName("blockNet");
+ GameRegistry.registerBlock(this, "blockNet");
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerBlockIcons(final IIconRegister iIcon){
+ this.blockIcon = iIcon.registerIcon(CORE.MODID + ":" + "net");
+ }
+
+ @Override
+ public Item getItemDropped(final int p_149650_1_, final Random p_149650_2_, final int p_149650_3_){
+ return ModItems.itemRope;
+ }
+
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java b/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java
new file mode 100644
index 0000000000..ea55a9177d
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java
@@ -0,0 +1,283 @@
+package gtPlusPlus.core.block.general;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Random;
+
+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 gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.item.base.itemblock.ItemBlockEntityBase;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.tileentities.general.TileEntityXpConverter;
+import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.array.Triplet;
+import gtPlusPlus.core.util.enchanting.EnchantingUtils;
+import gtPlusPlus.core.util.player.PlayerUtils;
+import net.minecraft.block.BlockContainer;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+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;
+
+public class BlockTankXpConverter extends BlockContainer {
+
+ @SideOnly(Side.CLIENT)
+ private IIcon textureTop;
+ @SideOnly(Side.CLIENT)
+ private IIcon textureBottom;
+ @SideOnly(Side.CLIENT)
+ private IIcon textureFront;
+
+ private int mRainbowTick = 0;
+ private int mRainbowTickMax = 0;
+ private final Map<Integer, Triplet<Integer, Integer, Integer>> mRainbowMap = new HashMap<Integer, Triplet<Integer, Integer, Integer>>();
+
+ @SuppressWarnings("deprecation")
+ public BlockTankXpConverter() {
+ super(Material.iron);
+ this.setBlockName("blockTankXpConverter");
+ this.setCreativeTab(AddToCreativeTab.tabMachines);
+ GameRegistry.registerBlock(this, ItemBlockEntityBase.class, "blockTankXpConverter");
+ LanguageRegistry.addName(this, "Xp Converter");
+ this.generateRainbowMap();
+ if (!this.getTickRandomly()) {
+ this.setTickRandomly(true);
+ }
+ }
+
+ /**
+ * 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
+ : ((p_149691_1_ != 2) && (p_149691_1_ != 4) ? this.blockIcon : this.textureFront));
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerBlockIcons(final IIconRegister p_149651_1_) {
+ this.blockIcon = p_149651_1_.registerIcon(CORE.MODID + ":" + "SwirlGray");
+ this.textureTop = p_149651_1_.registerIcon(CORE.MODID + ":" + "SwirlGray");
+ this.textureBottom = p_149651_1_.registerIcon(CORE.MODID + ":" + "SwirlGray");
+ this.textureFront = p_149651_1_.registerIcon(CORE.MODID + ":" + "SwirlGray");
+ }
+
+ /**
+ * Called upon block activation (right click on the block.)
+ */
+ @Override
+ public boolean onBlockActivated(final World world, final int x, final int y, final int z, final EntityPlayer player,
+ final int side, final float lx, final float ly, final float lz) {
+ if (world.isRemote) {
+ return true;
+ }
+ else {
+ boolean mDidScrewDriver = false;
+ // 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)))) {
+ final TileEntityXpConverter tile = (TileEntityXpConverter) world.getTileEntity(x, y, z);
+ if (tile != null) {
+ mDidScrewDriver = true;
+ tile.onScrewdriverRightClick((byte) side, player, x, y, z);
+ }
+
+ }
+ }
+ catch (final Throwable t) {
+ mDidScrewDriver = false;
+ }
+
+ if (!mDidScrewDriver) {
+
+ try {
+ final TileEntityXpConverter tile = (TileEntityXpConverter) world.getTileEntity(x, y, z);
+ if (tile != null) {
+ tile.onRightClick((byte) side, player, x, y, z);
+ }
+ }
+ catch (final Throwable t) {
+ }
+
+ final TileEntityXpConverter tank = (TileEntityXpConverter) world.getTileEntity(x, y, z);
+ if (tank != null) {
+ if (tank.tankEssence.getFluid() != null) {
+ PlayerUtils.messagePlayer(player, "This tank contains " + tank.tankEssence.getFluidAmount()
+ + "L of " + tank.tankEssence.getFluid().getLocalizedName());
+ }
+ if (tank.tankLiquidXp.getFluid() != null) {
+ PlayerUtils.messagePlayer(player, "This tank contains " + tank.tankLiquidXp.getFluidAmount()
+ + "L of " + tank.tankLiquidXp.getFluid().getLocalizedName());
+ }
+ if ((tank.tankEssence.getFluid() != null) && (tank.tankLiquidXp.getFluid() != null)) {
+ PlayerUtils.messagePlayer(player, "This is worth "
+ + EnchantingUtils.getLevelForLiquid(tank.tankLiquidXp.getFluidAmount()) + " levels.");
+ }
+ }
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public int getRenderBlockPass() {
+ return 1;
+ }
+
+ @Override
+ public boolean isOpaqueCube() {
+ return false;
+ }
+
+ @Override
+ public TileEntity createNewTileEntity(final World world, final int p_149915_2_) {
+ return new TileEntityXpConverter();
+ }
+
+ @Override
+ public void onBlockAdded(final World world, final int x, final int y, final int z) {
+ super.onBlockAdded(world, x, y, z);
+ }
+
+ @Override
+ public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y,
+ final int z) {
+ return false;
+ }
+
+ private final boolean generateRainbowMap() {
+ int id = 0;
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(0, 255, 0));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(51, 255, 0));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(102, 255, 0));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(153, 255, 0));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(204, 255, 0));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(255, 255, 0));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(255, 204, 0));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(255, 153, 0));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(255, 102, 0));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(255, 51, 0));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(255, 0, 0));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(255, 0, 51));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(255, 0, 102));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(255, 0, 153));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(255, 0, 204));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(255, 0, 255));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(204, 0, 255));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(153, 0, 255));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(102, 0, 255));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(51, 0, 255));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(0, 0, 255));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(0, 51, 255));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(0, 102, 255));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(0, 153, 255));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(0, 204, 255));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(0, 255, 255));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(0, 255, 204));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(0, 255, 153));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(0, 255, 102));
+ this.mRainbowMap.put(id++, new Triplet<Integer, Integer, Integer>(0, 255, 51));
+ this.mRainbowTickMax = this.mRainbowMap.siz