diff options
Diffstat (limited to 'src/Java')
6 files changed, 251 insertions, 60 deletions
diff --git a/src/Java/gtPlusPlus/core/block/ModBlocks.java b/src/Java/gtPlusPlus/core/block/ModBlocks.java index 992cd7e991..770494c9f0 100644 --- a/src/Java/gtPlusPlus/core/block/ModBlocks.java +++ b/src/Java/gtPlusPlus/core/block/ModBlocks.java @@ -3,6 +3,7 @@ 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.BlockCompressedObsidian; import gtPlusPlus.core.block.general.BlockTankXpConverter; import gtPlusPlus.core.block.general.FirePit; import gtPlusPlus.core.block.general.FluidTankInfinite; @@ -60,6 +61,7 @@ public final class ModBlocks { public static Block blockWitherGuard; public static Block blockXpConverter; + public static Block blockCompressedObsidian; public static void init() { Utils.LOG_INFO("Initializing Blocks."); @@ -91,6 +93,7 @@ public final class ModBlocks { blockModularTable = new Machine_ModularityTable(); blockWitherGuard = new BlockWitherProof(); blockXpConverter = new BlockTankXpConverter(); + blockCompressedObsidian = new BlockCompressedObsidian(); } 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..48ee7709ec --- /dev/null +++ b/src/Java/gtPlusPlus/core/block/general/BlockCompressedObsidian.java @@ -0,0 +1,90 @@ +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.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/BlockTankXpConverter.java b/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java index c2afdfd21f..7e1ab75b84 100644 --- a/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java +++ b/src/Java/gtPlusPlus/core/block/general/BlockTankXpConverter.java @@ -50,7 +50,7 @@ public class BlockTankXpConverter extends BlockContainer { GameRegistry.registerBlock(this, ItemBlockEntityBase.class, "blockTankXpConverter"); LanguageRegistry.addName(this, "Xp Converter"); this.generateRainbowMap(); - if (!this.getTickRandomly()){ + if (!this.getTickRandomly()) { this.setTickRandomly(true); } } @@ -86,44 +86,48 @@ public class BlockTankXpConverter extends BlockContainer { } else { boolean mDidScrewDriver = false; - //Check For Screwdriver + // 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 (((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){ + if (tile != null) { mDidScrewDriver = true; tile.onScrewdriverRightClick((byte) side, player, x, y, z); } } } - catch (final Throwable t){ + catch (final Throwable t) { mDidScrewDriver = false; } - if (!mDidScrewDriver){ - + if (!mDidScrewDriver) { try { final TileEntityXpConverter tile = (TileEntityXpConverter) world.getTileEntity(x, y, z); - if (tile != null){ + if (tile != null) { tile.onRightClick((byte) side, player, x, y, z); } } - catch (final Throwable t){} + 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 != 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.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."); + if ((tank.tankEssence.getFluid() != null) && (tank.tankLiquidXp.getFluid() != null)) { + PlayerUtils.messagePlayer(player, "This is worth " + + EnchantingUtils.getLevelForLiquid(tank.tankLiquidXp.getFluidAmount()) + " levels."); } } } @@ -152,42 +156,43 @@ public class BlockTankXpConverter extends BlockContainer { } @Override - public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, final int z) { + public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, + final int z) { return false; } - private final boolean generateRainbowMap(){ + 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.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; } @@ -198,21 +203,24 @@ public class BlockTankXpConverter extends BlockContainer { } @Override - public int colorMultiplier(final IBlockAccess p_149720_1_, final int p_149720_2_, final int p_149720_3_, final int p_149720_4_) { + 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)){ + if ((this.mRainbowTick < 0) || (this.mRainbowTick > this.mRainbowTickMax)) { this.mRainbowTick = 0; } - //Utils.LOG_INFO("x: "+this.mRainbowTick); - if (this.mRainbowTick <= this.mRainbowTickMax){ + // 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){ + } + catch (final Throwable t) { try { - mT = this.mRainbowMap.get(this.mRainbowTick-1); + mT = this.mRainbowMap.get(this.mRainbowTick - 1); return Utils.rgbtoHexValue(mT.getValue_1(), mT.getValue_1(), mT.getValue_1()); - } catch (final Throwable t1){ + } + catch (final Throwable t1) { return Utils.rgbtoHexValue(0, 0, 0); } } @@ -223,12 +231,12 @@ public class BlockTankXpConverter extends BlockContainer { @Override public void updateTick(final World world, final int x, final int y, final int z, final Random rand) { - //this.mRainbowTick++; + // 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) { + 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); } diff --git a/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockMeta.java b/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockMeta.java new file mode 100644 index 0000000000..9cf3f796df --- /dev/null +++ b/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockMeta.java @@ -0,0 +1,44 @@ +package gtPlusPlus.core.item.base.itemblock; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.item.ItemBlockWithMetadata; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +public class ItemBlockMeta extends ItemBlockWithMetadata +{ + private final Block mBlock; + + public ItemBlockMeta(final Block p_i45326_1_) + { + super(p_i45326_1_, p_i45326_1_); + this.mBlock = p_i45326_1_; + this.setMaxDamage(0); + this.setHasSubtypes(true); + } + + /** + * Gets an icon index based on an item's damage value + */ + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamage(final int p_77617_1_) + { + return this.mBlock.getIcon(2, p_77617_1_); + } + + /** + * Returns the metadata of the block which this Item (ItemBlock) can place + */ + @Override + public int getMetadata(final int p_77647_1_) + { + return p_77647_1_; + } + + @Override + public String getUnlocalizedName(final ItemStack stack) { + return this.getUnlocalizedName() + "." + stack.getItemDamage(); + } +}
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java index f5f793da77..973a653302 100644 --- a/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java +++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java @@ -1,5 +1,7 @@ package gtPlusPlus.core.recipe; +import static gtPlusPlus.core.util.item.ItemUtils.getSimpleStack; + import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.enums.ItemList; import gregtech.api.util.GT_ModHandler; @@ -35,6 +37,7 @@ public class RECIPES_General { if (LoadedMods.Gregtech){ RECIPE_BasicCasingIC2 = ItemUtils.getItemStack("IC2:blockMachine", 1); run(); + addCompressedObsidian(); } } @@ -133,10 +136,16 @@ public class RECIPES_General { RecipeUtils.addShapedGregtechRecipe( "stickBlackSteel", "plateTungstenSteel", "stickBlackSteel", - "plateTungstenSteel", ItemUtils.getSimpleStack(Items.nether_star), "plateTungstenSteel", + "plateTungstenSteel", getSimpleStack(Items.nether_star), "plateTungstenSteel", "stickBlackSteel", "plateTungstenSteel", "stickBlackSteel", ItemUtils.getSimpleStack(ModBlocks.blockWitherGuard, 32)); + RecipeUtils.addShapedGregtechRecipe( + getSimpleStack(Items.experience_bottle), ItemUtils.simpleMetaStack(ModBlocks.blockCompressedObsidian, 2, 1), getSimpleStack(Items.experience_bottle), + ItemUtils.simpleMetaStack(ModBlocks.blockCompressedObsidian, 5, 1), getSimpleStack(Items.nether_star), ItemUtils.simpleMetaStack(ModBlocks.blockCompressedObsidian, 5, 1), + getSimpleStack(Items.experience_bottle), ItemUtils.simpleMetaStack(ModBlocks.blockCompressedObsidian, 2, 1), getSimpleStack(Items.experience_bottle), + ItemUtils.getSimpleStack(ModBlocks.blockXpConverter, 1)); + //Alkalus Coin /*AddGregtechRecipe.addAssemblylineRecipe( ItemUtils.getSimpleStack(ModItems.itemAlkalusDisk), @@ -161,6 +170,38 @@ public class RECIPES_General { } + private static boolean addCompressedObsidian(){ + //Invert Obsidian + RecipeUtils.addShapedGregtechRecipe( + getSimpleStack(Items.redstone), getSimpleStack(Items.glowstone_dust), getSimpleStack(Items.redstone), + getSimpleStack(Items.glowstone_dust), ItemUtils.simpleMetaStack(ModBlocks.blockCompressedObsidian, 1, 1), getSimpleStack(Items.glowstone_dust), + getSimpleStack(Items.redstone), getSimpleStack(Items.glowstone_dust), getSimpleStack(Items.redstone), + ItemUtils.simpleMetaStack(ModBlocks.blockCompressedObsidian, 5, 1)); + + final ItemStack[] mItems = new ItemStack[6]; + mItems[0] = ItemUtils.getSimpleStack(Blocks.obsidian); + for (int r=0;r<5;r++){ + mItems[r+1] = ItemUtils.simpleMetaStack(ModBlocks.blockCompressedObsidian, r, 1); + } + + //Compressed Obsidian 1-5 + for (int r=0;r<5;r++){ + + final ItemStack input = mItems[r]; + final ItemStack output = mItems[r+1]; + + RecipeUtils.addShapedGregtechRecipe( + input, input, input, + input, input, input, + input, input, input, + output); + + RecipeUtils.addShapelessGregtechRecipe(new ItemStack[]{output}, ItemUtils.getSimpleStack(input, 9)); + + } + return true; + } + } diff --git a/src/Java/gtPlusPlus/core/util/item/ItemUtils.java b/src/Java/gtPlusPlus/core/util/item/ItemUtils.java index 3680dfb59d..fb20c87bac 100644 --- a/src/Java/gtPlusPlus/core/util/item/ItemUtils.java +++ b/src/Java/gtPlusPlus/core/util/item/ItemUtils.java @@ -163,7 +163,7 @@ public class ItemUtils { } @SuppressWarnings("unused") - public static ItemStack simpleMetaStack(final Item item, final int meta, final int itemstackSize){ + public static ItemStack simpleMetaStack(final Item item, final int meta, final int size){ try { if (item == null){ return null; @@ -176,7 +176,7 @@ public class ItemUtils { em = em1; } if (em != null){ - final ItemStack metaStack = new ItemStack(em,itemstackSize,meta); + final ItemStack metaStack = new ItemStack(em,size,meta); return metaStack; } } @@ -187,6 +187,10 @@ public class ItemUtils { } } + public static ItemStack simpleMetaStack(final Block block, final int meta, final int size) { + return simpleMetaStack(Item.getItemFromBlock(block), meta, size); + } + public static ItemStack getCorrectStacktype(final String fqrn, final int stackSize){ final String oreDict = "ore:"; ItemStack temp; @@ -634,4 +638,5 @@ public class ItemUtils { return getItemStackOfAmountFromOreDictNoBroken(oredictName, amount); } + } |