aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/block/general
diff options
context:
space:
mode:
authorAlkalus <draknyte1@hotmail.com>2017-11-27 13:10:57 +1000
committerGitHub <noreply@github.com>2017-11-27 13:10:57 +1000
commita42842e4e93525a64d0b2efc0d68115a59acb20c (patch)
tree55f4c3c6635c1d94ff22abf90b486638661b930f /src/Java/gtPlusPlus/core/block/general
parent5d4d3fb679c8af83ed5ee14430c6cde0b16cfcc6 (diff)
parent066bd6475ce142f405d521975b1d4105ccaddf0d (diff)
downloadGT5-Unofficial-a42842e4e93525a64d0b2efc0d68115a59acb20c.tar.gz
GT5-Unofficial-a42842e4e93525a64d0b2efc0d68115a59acb20c.tar.bz2
GT5-Unofficial-a42842e4e93525a64d0b2efc0d68115a59acb20c.zip
Merge pull request #156 from draknyte1/Multiblock-Fix
Multiblock fix for #141, other misc. fixes & a few new additions.
Diffstat (limited to 'src/Java/gtPlusPlus/core/block/general')
-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
6 files changed, 553 insertions, 15 deletions
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.size();
+ return true;
+ }
+
+ @Override
+ public int getBlockColor() {
+ return Utils.rgbtoHexValue(0, 0, 0);
+ }
+
+ @Override
+ public int colorMultiplier(final IBlockAccess p_149720_1_, final int p_149720_2_, final int p_149720_3_,
+ final int p_149720_4_) {
+
+ if ((this.mRainbowTick < 0) || (this.mRainbowTick > this.mRainbowTickMax)) {
+ this.mRainbowTick = 0;
+ }
+ //Utils.LOG_INFO("x: "+this.mRainbowTick);
+ if (this.mRainbowTick <= this.mRainbowTickMax) {
+ Triplet<Integer, Integer, Integer> mT = this.mRainbowMap.get(this.mRainbowTick);
+ try {
+ return Utils.rgbtoHexValue(mT.getValue_1(), mT.getValue_1(), mT.getValue_1());
+ }
+ catch (final Throwable t) {
+ try {
+ mT = this.mRainbowMap.get(this.mRainbowTick - 1);
+ return Utils.rgbtoHexValue(mT.getValue_1(), mT.getValue_1(), mT.getValue_1());
+ }
+ catch (final Throwable t1) {
+ return Utils.rgbtoHexValue(0, 0, 0);
+ }
+ }
+ }
+
+ return Utils.rgbtoHexValue(0, 0, 0);
+ }
+
+ @Override
+ public void updateTick(final World world, final int x, final int y, final int z, final Random rand) {
+ // this.mRainbowTick++;
+ super.updateTick(world, x, y, z, rand);
+ }
+
+ @Override
+ public void randomDisplayTick(final World world, final int x, final int y, final int z, final Random rand) {
+ this.mRainbowTick++;
+ super.randomDisplayTick(world, x, y, z, rand);
+ }
+
+ @Override
+ public int tickRate(final World p_149738_1_) {
+ return 20;
+ }
+
+ @Override
+ public int getLightValue() {
+ final int mTicker = this.mRainbowTick;
+ if ((mTicker == 0) || (mTicker == 17)){
+ return 1;
+ }
+ else if ((mTicker == 1) || (mTicker == 16)){
+ return 2;
+ }
+ else if ((mTicker == 2) || (mTicker == 15)){
+ return 3;
+ }
+ else if ((mTicker == 3) || (mTicker == 14)){
+ return 4;
+ }
+ else if ((mTicker == 4) || (mTicker == 13)){
+ return 6;
+ }
+ else if ((mTicker == 5) || (mTicker == 12)){
+ return 8;
+ }
+ else if ((mTicker == 6) || (mTicker == 11)){
+ return 10;
+ }
+ else if ((mTicker == 7) || (mTicker == 10)){
+ return 12;
+ }
+ else if ((mTicker == 8) || (mTicker == 9)){
+ return 14;
+ }
+ return 0;
+
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/core/block/general/HellFire.java b/src/Java/gtPlusPlus/core/block/general/HellFire.java
index 2adab5d5e7..d73d0eb085 100644
--- a/src/Java/gtPlusPlus/core/block/general/HellFire.java
+++ b/src/Java/gtPlusPlus/core/block/general/HellFire.java
@@ -1,6 +1,11 @@
package gtPlusPlus.core.block.general;
-import static net.minecraftforge.common.util.ForgeDirection.*;
+import static net.minecraftforge.common.util.ForgeDirection.DOWN;
+import static net.minecraftforge.common.util.ForgeDirection.EAST;
+import static net.minecraftforge.common.util.ForgeDirection.NORTH;
+import static net.minecraftforge.common.util.ForgeDirection.SOUTH;
+import static net.minecraftforge.common.util.ForgeDirection.UP;
+import static net.minecraftforge.common.util.ForgeDirection.WEST;
import java.util.IdentityHashMap;
import java.util.Map.Entry;
@@ -21,6 +26,7 @@ import net.minecraft.block.BlockFire;
import net.minecraft.block.material.MapColor;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.Entity;
+import net.minecraft.entity.EnumCreatureType;
import net.minecraft.init.Blocks;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
@@ -44,29 +50,29 @@ public class HellFire extends BlockFire {
this.setCreativeTab(AddToCreativeTab.tabBlock);
GameRegistry.registerBlock(this, "blockHellFire");
LanguageRegistry.addName(this, "Hellish Fire");
- enableBrutalFire();
+ this.enableBrutalFire();
}
private void enableBrutalFire() {
- for (Object o : Block.blockRegistry.getKeys())
+ for (final Object o : Block.blockRegistry.getKeys())
{
- String name = (String)o;
- Block b = Block.getBlockFromName(name);
+ final String name = (String)o;
+ final Block b = Block.getBlockFromName(name);
- if (b == Blocks.grass || b == Blocks.mycelium){
- int spread = 3;
- int flamm = 3;
+ if ((b == Blocks.grass) || (b == Blocks.mycelium)){
+ final int spread = 3;
+ final int flamm = 3;
this.setFireInfo(b, spread * 4, flamm * 4);
}
if (b != Blocks.air)
{
- int spread = Blocks.fire.getEncouragement(b);
- int flamm = Blocks.fire.getFlammability(b);
+ final int spread = Blocks.fire.getEncouragement(b);
+ final int flamm = Blocks.fire.getFlammability(b);
this.setFireInfo(b, spread * 4, flamm * 4);
}
}
-
+
//Special Case madness
this.setFireInfo(Blocks.brown_mushroom_block, 20, 100);
this.setFireInfo(Blocks.red_mushroom_block, 20, 100);
@@ -89,7 +95,7 @@ public class HellFire extends BlockFire {
@Override
public void updateTick(final World world, final int x, final int y, final int z, Random random) {
- random = new XSTR();
+ random = new XSTR();
if (world.getGameRules().getGameRuleBooleanValue("doFireTick")) {
final boolean flag = world.getBlock(x, y - 1, z).isFireSource(world, x, y - 1, z, UP);
@@ -296,13 +302,18 @@ public class HellFire extends BlockFire {
//Burn
@Override
- public void onEntityWalking(World world, int i, int j, int k, Entity entity) {
+ public void onEntityWalking(final World world, final int i, final int j, final int k, final Entity entity) {
entity.setFire(10);
}
+ @Override
+ public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) {
+ return false;
+ }
+
//Burn
@Override
- public void onEntityCollidedWithBlock(World world, int i, int j, int k, Entity entity) {
+ public void onEntityCollidedWithBlock(final World world, final int i, final int j, final int k, final Entity entity) {
entity.setFire(10);
}
@@ -399,7 +410,7 @@ public class HellFire extends BlockFire {
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(final IIconRegister IIconRegister) {
- this.IIconArray = new IIcon[] {
+ this.IIconArray = new IIcon[] {
IIconRegister.registerIcon(CORE.MODID + ":" + "hellfire/" + "blockHellFire" + "_layer_0"),
IIconRegister.registerIcon(CORE.MODID + ":" + "hellfire/" + "blockHellFire" + "_layer_1") };
}
diff --git a/src/Java/gtPlusPlus/core/block/general/antigrief/BlockWitherProof.java b/src/Java/gtPlusPlus/core/block/general/antigrief/BlockWitherProof.java
new file mode 100644
index 0000000000..d093bf2e2f
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/block/general/antigrief/BlockWitherProof.java
@@ -0,0 +1,110 @@
+package gtPlusPlus.core.block.general.antigrief;
+
+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 gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.util.Utils;
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EnumCreatureType;
+import net.minecraft.entity.boss.EntityDragon;
+import net.minecraft.entity.boss.EntityWither;
+import net.minecraft.entity.boss.IBossDisplayData;
+import net.minecraft.world.Explosion;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+
+public class BlockWitherProof extends Block{
+
+ public BlockWitherProof(){
+ super(Material.redstoneLight);
+ this.setBlockName(Utils.sanitizeString("blockBlackGate"));
+ this.setBlockTextureName(CORE.MODID + ":" + "blockFrameGt");
+ this.setCreativeTab(AddToCreativeTab.tabBlock);
+ this.setHardness(-1F);
+ this.setResistance(5000.0F);
+ this.setHarvestLevel("pickaxe", 3);
+ this.setStepSound(soundTypeMetal);
+ LanguageRegistry.addName(this, "Wither Cage");
+ GameRegistry.registerBlock(this, Utils.sanitizeString("blockBlackGate"));
+
+ }
+
+ public String GetProperName(){
+ return "Wither Cage";
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public int getRenderBlockPass(){
+ return 1;
+ }
+
+ @Override
+ public boolean isOpaqueCube(){
+ return false;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerBlockIcons(final IIconRegister iIcon){
+ this.blockIcon = iIcon.registerIcon(CORE.MODID + ":" + "blockFrameGt");
+ }
+
+ @Override
+ public void onBlockExploded(final World world, final int x, final int y, final int z, final Explosion explosion){
+ //prevent from being destroyed by wither and nukes.
+ }
+
+ @Override
+ public void onBlockDestroyedByExplosion(final World p_149723_1_, final int p_149723_2_,
+ final int p_149723_3_, final int p_149723_4_, final Explosion p_149723_5_) {
+
+ }
+
+ @Override
+ public boolean canDropFromExplosion(final Explosion p_149659_1_) {
+ return false;
+ }
+
+ @Override
+ public boolean canEntityDestroy(final IBlockAccess world, final int x, final int y, final int z,
+ final Entity entity) {
+ if ((entity == null) || !entity.isEntityAlive()){
+ return false;
+ }
+ if ((entity instanceof EntityWither) || (entity instanceof EntityDragon) || (entity instanceof IBossDisplayData)){
+ return false;
+ }
+ else {
+ return super.canEntityDestroy(world, x, y, z, entity);
+ }
+ }
+
+
+ //Colour Handling
+ private static final int mWitherColour = Utils.rgbtoHexValue(32, 32, 32);
+
+ @Override
+ public int colorMultiplier(final IBlockAccess par1IBlockAccess, final int par2, final int par3, final int par4){
+ return mWitherColour;
+ }
+
+ @Override
+ public int getRenderColor(final int aMeta) {
+ return mWitherColour;
+ }
+
+ @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/general/fluids/BlockFluidSludge.java b/src/Java/gtPlusPlus/core/block/general/fluids/BlockFluidSludge.java
index f40c1dbe7d..b87054748d 100644
--- a/src/Java/gtPlusPlus/core/block/general/fluids/BlockFluidSludge.java
+++ b/src/Java/gtPlusPlus/core/block/general/fluids/BlockFluidSludge.java
@@ -6,6 +6,7 @@ import gtPlusPlus.core.creative.AddToCreativeTab;
import gtPlusPlus.core.lib.CORE;
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;
import net.minecraft.world.World;
@@ -52,4 +53,9 @@ public class BlockFluidSludge extends BlockFluidClassic {
return super.displaceIfPossible(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;
+ }
+
}