diff --git a/src/main/java/assets/hbm/lang/de_DE.lang b/src/main/java/assets/hbm/lang/de_DE.lang index 2226eb143..d6b2952cb 100644 --- a/src/main/java/assets/hbm/lang/de_DE.lang +++ b/src/main/java/assets/hbm/lang/de_DE.lang @@ -1181,6 +1181,7 @@ item.man_igniter.name=Zünder item.man_kit.name=Fat Man Kit item.mask_of_infamy.name=Maske der Schande item.matchstick.name=Streichholz +item.mech_key.name=Großer Silberschlüssel item.mechanism_launcher_1.name=Werfermechanismus item.mechanism_launcher_2.name=Fortgeschrittener Werfermechanismus item.mechanism_revolver_1.name=Revolvermechanismus @@ -2059,6 +2060,7 @@ tile.brick_concrete_broken.name=Gebrochene Betonziegel tile.brick_concrete_cracked.name=Rissige Betonziegel tile.brick_concrete_mossy.name=Bemooste Betonziegel tile.brick_jungle.name=Enargitziegel +tile.brick_jungle_circle.name=Mechanistenzirkel tile.brick_jungle_cracked.name=Rissige Enargitziegel tile.brick_jungle_glyph.name=Enargit-Glyphenziegel tile.brick_jungle_lava.name=Magmatische Enargitziegel diff --git a/src/main/java/assets/hbm/lang/en_US.lang b/src/main/java/assets/hbm/lang/en_US.lang index a84361648..ea7323cce 100644 --- a/src/main/java/assets/hbm/lang/en_US.lang +++ b/src/main/java/assets/hbm/lang/en_US.lang @@ -1181,6 +1181,7 @@ item.man_igniter.name=Bomb Igniter item.man_kit.name=Fat Man Kit item.mask_of_infamy.name=Mask of Infamy item.matchstick.name=Matchstick +item.mech_key.name=Large Silver Key item.mechanism_launcher_1.name=Launcher Mechanism item.mechanism_launcher_2.name=Advanced Launcher Mechanism item.mechanism_revolver_1.name=Revolver Mechanism @@ -2059,6 +2060,7 @@ tile.brick_concrete_broken.name=Broken Concrete Bricks tile.brick_concrete_cracked.name=Cracked Concrete Bricks tile.brick_concrete_mossy.name=Mossy Concrete Bricks tile.brick_jungle.name=Enargite Bricks +tile.brick_jungle_circle.name=Mechanist's Circle tile.brick_jungle_cracked.name=Cracked Enargite Bricks tile.brick_jungle_glyph.name=Enargite Glyph Bricks tile.brick_jungle_lava.name=Magmatic Enargite Bricks diff --git a/src/main/java/assets/hbm/textures/blocks/brick_dungeon.png b/src/main/java/assets/hbm/textures/blocks/brick_dungeon.png new file mode 100644 index 000000000..a6b18a234 Binary files /dev/null and b/src/main/java/assets/hbm/textures/blocks/brick_dungeon.png differ diff --git a/src/main/java/assets/hbm/textures/blocks/brick_dungeon_circle.png b/src/main/java/assets/hbm/textures/blocks/brick_dungeon_circle.png new file mode 100644 index 000000000..7a5f29680 Binary files /dev/null and b/src/main/java/assets/hbm/textures/blocks/brick_dungeon_circle.png differ diff --git a/src/main/java/assets/hbm/textures/blocks/brick_dungeon_flat.png b/src/main/java/assets/hbm/textures/blocks/brick_dungeon_flat.png new file mode 100644 index 000000000..646165eb1 Binary files /dev/null and b/src/main/java/assets/hbm/textures/blocks/brick_dungeon_flat.png differ diff --git a/src/main/java/assets/hbm/textures/blocks/brick_dungeon_tile.png b/src/main/java/assets/hbm/textures/blocks/brick_dungeon_tile.png new file mode 100644 index 000000000..484111395 Binary files /dev/null and b/src/main/java/assets/hbm/textures/blocks/brick_dungeon_tile.png differ diff --git a/src/main/java/assets/hbm/textures/blocks/brick_jungle_circle.png b/src/main/java/assets/hbm/textures/blocks/brick_jungle_circle.png index d0dac5587..9413f091e 100644 Binary files a/src/main/java/assets/hbm/textures/blocks/brick_jungle_circle.png and b/src/main/java/assets/hbm/textures/blocks/brick_jungle_circle.png differ diff --git a/src/main/java/assets/hbm/textures/items/mech_key.png b/src/main/java/assets/hbm/textures/items/mech_key.png new file mode 100644 index 000000000..fdbbdcfef Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/mech_key.png differ diff --git a/src/main/java/assets/hbm/textures/models/machines/cyclotron.png b/src/main/java/assets/hbm/textures/models/machines/cyclotron.png index 17a0a7de3..b10a0d1db 100644 Binary files a/src/main/java/assets/hbm/textures/models/machines/cyclotron.png and b/src/main/java/assets/hbm/textures/models/machines/cyclotron.png differ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index e9aa56ac8..39c9020df 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -213,6 +213,7 @@ public class ModBlocks { public static Block brick_jungle_mystic; public static Block brick_jungle_trap; public static Block brick_jungle_glyph; + public static Block brick_jungle_circle; public static Block tape_recorder; public static Block steel_poles; @@ -995,6 +996,7 @@ public class ModBlocks { brick_jungle_mystic = new BlockOre(Material.rock).setBlockName("brick_jungle_mystic").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_mystic"); brick_jungle_trap = new TrappedBrick(Material.rock).setBlockName("brick_jungle_trap").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_trap"); brick_jungle_glyph = new BlockGlyph(Material.rock).setBlockName("brick_jungle_glyph").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F); + brick_jungle_circle = new BlockGeneric(Material.rock).setBlockName("brick_jungle_circle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_circle"); tape_recorder = new DecoTapeRecorder(Material.rock).setBlockName("tape_recorder").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_tape_recorder"); steel_poles = new DecoSteelPoles(Material.rock).setBlockName("steel_poles").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_beam"); @@ -1656,6 +1658,7 @@ public class ModBlocks { GameRegistry.registerBlock(brick_jungle_mystic, brick_jungle_mystic.getUnlocalizedName()); GameRegistry.registerBlock(brick_jungle_trap, ItemTrapBlock.class, brick_jungle_trap.getUnlocalizedName()); GameRegistry.registerBlock(brick_jungle_glyph, ItemGlyphBlock.class, brick_jungle_glyph.getUnlocalizedName()); + GameRegistry.registerBlock(brick_jungle_circle, brick_jungle_circle.getUnlocalizedName()); GameRegistry.registerBlock(tape_recorder, tape_recorder.getUnlocalizedName()); GameRegistry.registerBlock(steel_poles, steel_poles.getUnlocalizedName()); GameRegistry.registerBlock(pole_top, pole_top.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineCyclotron.java b/src/main/java/com/hbm/blocks/machine/MachineCyclotron.java index a976fb669..fe0535f3d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCyclotron.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCyclotron.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineCyclotron; @@ -9,6 +10,7 @@ import com.hbm.tileentity.machine.TileEntityMachineCyclotron; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -43,6 +45,21 @@ public class MachineCyclotron extends BlockDummyable { if(pos == null) return false; + TileEntityMachineCyclotron cyc = (TileEntityMachineCyclotron)world.getTileEntity(pos[0], pos[1], pos[2]); + + if(player.getHeldItem() != null) { + + for(int i = 0; i < 4; i++) { + + if(player.getHeldItem().getItem() == TileEntityMachineCyclotron.getItemForPlug(i) && !cyc.getPlug(i)) { + player.getHeldItem().stackSize--; + cyc.setPlug(i); + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:item.upgradePlug", 1.5F, 1.0F); + return true; + } + } + } + FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_machine_cyclotron, world, pos[0], pos[1], pos[2]); return true; } else { diff --git a/src/main/java/com/hbm/inventory/CyclotronRecipes.java b/src/main/java/com/hbm/inventory/CyclotronRecipes.java index 3cb1f6d56..01f5e7930 100644 --- a/src/main/java/com/hbm/inventory/CyclotronRecipes.java +++ b/src/main/java/com/hbm/inventory/CyclotronRecipes.java @@ -39,26 +39,31 @@ public class CyclotronRecipes { makeRecipe(lithium, liAmat, "dustActinium", new ItemStack(ModItems.powder_thorium), liA); makeRecipe(lithium, liAmat, "dustUranium", new ItemStack(ModItems.powder_neptunium), liA); makeRecipe(lithium, liAmat, "dustNeptunium", new ItemStack(ModItems.powder_plutonium), liA); + makeRecipe(lithium, liAmat, new ComparableStack(ModItems.powder_reiium), new ItemStack(ModItems.powder_weidanium), liA); /// LITHIUM END /// /// BERYLLIUM START /// int beA = 25; makeRecipe(beryllium, beAmat, "dustNetherQuartz", new ItemStack(ModItems.sulfur), beA); + makeRecipe(beryllium, beAmat, "dustTitanium", new ItemStack(ModItems.powder_iron), beA); + makeRecipe(beryllium, beAmat, "dustCobalt", new ItemStack(ModItems.powder_copper), beA); makeRecipe(beryllium, beAmat, new ComparableStack(ModItems.powder_strontium), new ItemStack(ModItems.powder_niobium), beA); makeRecipe(beryllium, beAmat, new ComparableStack(ModItems.powder_cerium), new ItemStack(ModItems.powder_neodymium), beA); makeRecipe(beryllium, beAmat, "dustThorium", new ItemStack(ModItems.powder_uranium), beA); + makeRecipe(beryllium, beAmat, new ComparableStack(ModItems.powder_weidanium), new ItemStack(ModItems.powder_australium), beA); /// BERYLLIUM END /// /// CARBON START /// int caA = 10; makeRecipe(carbon, caAmat, "dustSulfur", new ItemStack(ModItems.powder_titanium), caA); - makeRecipe(carbon, caAmat, "dustTitanium", new ItemStack(ModItems.powder_iron), caA); + makeRecipe(carbon, caAmat, "dustTitanium", new ItemStack(ModItems.powder_cobalt), caA); makeRecipe(carbon, caAmat, new ComparableStack(ModItems.powder_caesium), new ItemStack(ModItems.powder_lanthanium), caA); makeRecipe(carbon, caAmat, new ComparableStack(ModItems.powder_neodymium), new ItemStack(ModItems.powder_gold), caA); makeRecipe(carbon, caAmat, new ComparableStack(ModItems.nugget_mercury), new ItemStack(ModItems.powder_polonium), caA); makeRecipe(carbon, caAmat, new ComparableStack(ModItems.powder_astatine), new ItemStack(ModItems.powder_actinium), caA); + makeRecipe(carbon, caAmat, new ComparableStack(ModItems.powder_australium), new ItemStack(ModItems.powder_verticium), caA); /// CARBON END /// /// COPPER START /// @@ -74,6 +79,7 @@ public class CyclotronRecipes { makeRecipe(copper, coAmat, new ComparableStack(ModItems.powder_iodine), new ItemStack(ModItems.powder_polonium), coA); makeRecipe(copper, coAmat, new ComparableStack(ModItems.powder_caesium), new ItemStack(ModItems.powder_actinium), coA); makeRecipe(copper, coAmat, "dustGold", new ItemStack(ModItems.powder_uranium), coA); + makeRecipe(copper, coAmat, new ComparableStack(ModItems.powder_verticium), new ItemStack(ModItems.powder_unobtainium), coA); /// COPPER END /// /// PLUTONIUM START /// @@ -81,7 +87,9 @@ public class CyclotronRecipes { makeRecipe(plutonium, plAmat, "dustPhosphorus", new ItemStack(ModItems.powder_tennessine), plA); makeRecipe(plutonium, plAmat, "dustPlutonium", new ItemStack(ModItems.powder_tennessine), plA); + makeRecipe(plutonium, plAmat, new ComparableStack(ModItems.powder_tennessine), new ItemStack(ModItems.powder_reiium), plA); makeRecipe(plutonium, plAmat, new ComparableStack(ModItems.pellet_charged), new ItemStack(ModItems.nugget_schrabidium), 200); + makeRecipe(plutonium, plAmat, new ComparableStack(ModItems.powder_unobtainium), new ItemStack(ModItems.powder_daffergon), plA); /// PLUTONIUM END /// ///TODO: fictional elements @@ -153,9 +161,9 @@ public class CyclotronRecipes { for(Entry entry : map.entrySet()) { - if(entry.getKey() instanceof ItemStack) { + if(entry.getKey() instanceof ComparableStack) { - recipes.put(new ItemStack[] { new ItemStack(part), (ItemStack) entry.getKey() }, entry.getValue()); + recipes.put(new ItemStack[] { new ItemStack(part), ((ComparableStack) entry.getKey()).toStack() }, entry.getValue()); } else if(entry.getKey() instanceof String) { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 62a7aaf26..6b5ff2954 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1810,6 +1810,8 @@ public class ModItems { public static Item padlock_reinforced; public static Item padlock_unbreakable; + public static Item mech_key; + public static Item turret_light_ammo; public static Item turret_heavy_ammo; public static Item turret_rocket_ammo; @@ -3501,6 +3503,8 @@ public class ModItems { padlock = new ItemLock(0.1).setUnlocalizedName("padlock").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":padlock"); padlock_reinforced = new ItemLock(0.02).setUnlocalizedName("padlock_reinforced").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":padlock_reinforced"); padlock_unbreakable = new ItemLock(0).setUnlocalizedName("padlock_unbreakable").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":padlock_unbreakable"); + + mech_key = new ItemCustomLore().setUnlocalizedName("mech_key").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":mech_key"); turret_light_ammo = new ItemTurretAmmo(ModBlocks.turret_light, 100).setUnlocalizedName("turret_light_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":turret_light_ammo"); turret_heavy_ammo = new ItemTurretAmmo(ModBlocks.turret_heavy, 25).setUnlocalizedName("turret_heavy_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":turret_heavy_ammo"); @@ -3875,7 +3879,7 @@ public class ModItems { glitch = new ItemGlitch().setUnlocalizedName("glitch").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glitch_" + MainRegistry.polaroidID); letter = new ItemStarterKit().setUnlocalizedName("letter").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":letter"); book_secret = new ItemCustomLore().setUnlocalizedName("book_secret").setCreativeTab(MainRegistry.polaroidID == 11 ? MainRegistry.consumableTab : null).setTextureName(RefStrings.MODID + ":book_secret"); - book_of_ = new ItemBook().setUnlocalizedName("book_of_").setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_of_"); + book_of_ = new ItemBook().setUnlocalizedName("book_of_").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_of_"); burnt_bark = new ItemCustomLore().setUnlocalizedName("burnt_bark").setCreativeTab(null).setTextureName(RefStrings.MODID + ":burnt_bark"); smoke1 = new Item().setUnlocalizedName("smoke1").setTextureName(RefStrings.MODID + ":smoke1"); @@ -4953,6 +4957,7 @@ public class ModItems { GameRegistry.registerItem(key_red, key_red.getUnlocalizedName()); GameRegistry.registerItem(key_kit, key_kit.getUnlocalizedName()); GameRegistry.registerItem(key_fake, key_fake.getUnlocalizedName()); + GameRegistry.registerItem(mech_key, mech_key.getUnlocalizedName()); GameRegistry.registerItem(pin, pin.getUnlocalizedName()); GameRegistry.registerItem(padlock_rusty, padlock_rusty.getUnlocalizedName()); GameRegistry.registerItem(padlock, padlock.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemCustomLore.java b/src/main/java/com/hbm/items/special/ItemCustomLore.java index 45a0cc806..c72c20cb7 100644 --- a/src/main/java/com/hbm/items/special/ItemCustomLore.java +++ b/src/main/java/com/hbm/items/special/ItemCustomLore.java @@ -368,6 +368,11 @@ public class ItemCustomLore extends Item { { list.add("Made from uranium in a schrabidium transmutator"); } + + if(this == ModItems.mech_key) + { + list.add("It pulses with power."); + } } @Override diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index d5c44e7ca..75d519884 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -138,7 +138,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_uranium_fuel, 1), new Object[] { "nuggetUranium233", "nuggetUranium233", "nuggetUranium233", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_thorium_fuel, 1), new Object[] { "nuggetUranium233", "nuggetUranium233", "nuggetUranium233", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_plutonium_fuel, 1), new Object[] { "nuggetPlutonium238", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium240", "nuggetPlutonium240", "nuggetPlutonium240" })); - GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_mox_fuel, 1), new Object[] { "nuggetUranium235", "nuggetUranium235", "nuggetUranium235", "nuggetUranium238", "nuggetUranium238", "nuggetPlutonium238", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium239" })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_mox_fuel, 1), new Object[] { "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium239" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_uranium_fuel, 1), new Object[] { "tinyU235", "tinyU235", "tinyU235", "tinyU238", "tinyU238", "tinyU238", "tinyU238", "tinyU238", "tinyU238" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_plutonium_fuel, 1), new Object[] { "tinyPu238", "tinyPu239", "tinyPu239", "tinyPu239", "tinyPu239", "tinyPu239", "tinyPu240", "tinyPu240", "tinyPu240" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_mox_fuel, 1), new Object[] { "tinyU235", "tinyU235", "tinyU235", "tinyU238", "tinyU238", "tinyPu238", "tinyPu239", "tinyPu239", "tinyPu239" })); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index bf22bffc6..080cfe9e4 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -54,7 +54,6 @@ import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.tileentity.TileEntitySign; diff --git a/src/main/java/com/hbm/render/tileentity/RenderCyclotron.java b/src/main/java/com/hbm/render/tileentity/RenderCyclotron.java index d2e5b9137..856db0046 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCyclotron.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCyclotron.java @@ -3,7 +3,10 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.main.ResourceManager; +import com.hbm.tileentity.machine.TileEntityMachineCyclotron; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -24,15 +27,91 @@ public class RenderCyclotron extends TileEntitySpecialRenderer { GL11.glShadeModel(GL11.GL_FLAT); - bindTexture(ResourceManager.cyclotron_ashes_filled); + TileEntityMachineCyclotron cyc = (TileEntityMachineCyclotron)tileEntity; + + boolean plugged = true; + + if(cyc.getPlug(0)) { + bindTexture(ResourceManager.cyclotron_ashes_filled); + } else { + bindTexture(ResourceManager.cyclotron_ashes); + plugged = false; + } ResourceManager.cyclotron.renderPart("B1"); - bindTexture(ResourceManager.cyclotron_book_filled); + + if(cyc.getPlug(1)) { + bindTexture(ResourceManager.cyclotron_book_filled); + } else { + bindTexture(ResourceManager.cyclotron_book); + plugged = false; + } ResourceManager.cyclotron.renderPart("B2"); - bindTexture(ResourceManager.cyclotron_gavel_filled); + + if(cyc.getPlug(2)) { + bindTexture(ResourceManager.cyclotron_gavel_filled); + } else { + bindTexture(ResourceManager.cyclotron_gavel); + plugged = false; + } ResourceManager.cyclotron.renderPart("B3"); - bindTexture(ResourceManager.cyclotron_coin_filled); + + if(cyc.getPlug(3)) { + bindTexture(ResourceManager.cyclotron_coin_filled); + } else { + bindTexture(ResourceManager.cyclotron_coin); + plugged = false; + } ResourceManager.cyclotron.renderPart("B4"); + if(plugged) { + + GL11.glPushMatrix(); + RenderHelper.enableStandardItemLighting(); + GL11.glRotated(System.currentTimeMillis() * 0.025 % 360, 0, 1, 0); + + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glDisable(GL11.GL_ALPHA_TEST); + + String msg = "plures necat crapula quam gladius"; + + GL11.glTranslated(0, 2, 0); + GL11.glRotated(180, 1, 0, 0); + + float rot = 0F; + + //looks dumb but we'll use this technology for the cyclotron + for(char c : msg.toCharArray()) { + + GL11.glPushMatrix(); + + GL11.glRotatef(rot, 0, 1, 0); + + rot -= Minecraft.getMinecraft().fontRenderer.getCharWidth(c) * 2F; + + GL11.glTranslated(2.75, 0, 0); + + GL11.glRotatef(-90, 0, 1, 0); + + float scale = 0.1F; + GL11.glScalef(scale, scale, scale); + GL11.glDisable(GL11.GL_CULL_FACE); + Minecraft.getMinecraft().standardGalacticFontRenderer.drawString(String.valueOf(c), 0, 0, 0x600060); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopMatrix(); + } + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_TEXTURE_2D); + + GL11.glPopMatrix(); + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + RenderHelper.enableStandardItemLighting(); + } + GL11.glEnable(GL11.GL_CULL_FACE); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index 0d9edf7ee..17e3279dc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -25,6 +25,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; @@ -40,6 +41,8 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements private int age; private int countdown; + private byte plugs; + public int progress; public static final int duration = 690; @@ -140,6 +143,7 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements data.setLong("power", power); data.setInteger("progress", progress); data.setBoolean("isOn", isOn); + data.setByte("plugs", plugs); this.networkPack(data, 25); coolant.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); @@ -151,6 +155,7 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements this.isOn = data.getBoolean("isOn"); this.power = data.getLong("power"); this.progress = data.getInteger("progress"); + this.plugs = data.getByte("plugs"); } public void handleButtonPacket(int value, int meta) { @@ -420,6 +425,7 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements this.countdown = nbt.getInteger("countdown"); this.progress = nbt.getInteger("progress"); this.power = nbt.getLong("power"); + this.plugs = nbt.getByte("plugs"); } @Override @@ -433,6 +439,28 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements nbt.setInteger("countdown", countdown); nbt.setInteger("progress", progress); nbt.setLong("power", power); + nbt.setByte("plugs", plugs); + } + + public void setPlug(int index) { + this.plugs |= (1 << index); + this.markDirty(); + } + + public boolean getPlug(int index) { + return (this.plugs & (1 << index)) > 0; + } + + public static Item getItemForPlug(int i) { + + switch(i) { + case 0: return ModItems.powder_balefire; + case 1: return ModItems.book_of_; + case 2: return ModItems.diamond_gavel; + case 3: return ModItems.coin_maskman; + } + + return null; } @Override