diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index 96e2b3883..fb6b436dc 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -68,6 +68,8 @@ tile.float_bomb.name=Schwebebombe tile.therm_endo.name=Endothermische Bombe tile.therm_exo.name=Exothermische Bombe +tile.crashed_bomb.name=Blindgänger + tile.machine_difurnace_off.name=Legierungshochofen tile.machine_difurnace_on.name=Legierungshochofen container.diFurnace=Legierungshochofen @@ -126,6 +128,7 @@ tile.fusion_motor.name=Magnetmotorstück tile.fusion_heater.name=Plasmaerhitzer tile.fusion_hatch.name=Fusionsreaktorzugriffsluke tile.fusion_core.name=Fusionsreaktorsteuerung +tile.plasma.name=Plasma container.fusionMultiblock=Großer Fusionsreaktor item.fuse.name=Sicherung @@ -157,6 +160,9 @@ item.nugget_schrabidium.name=Schrabidiumnugget item.plate_copper.name=Kupferplatte item.ingot_advanced_alloy.name=Fortgeschrittene Legierung item.plate_advanced_alloy.name=Fortgeschrittene Legierungsplatte +item.wire_advanced_alloy.name=Supraleiter +item.coil_advanced_alloy.name=Supraleitende Magnetspule +item.lithium.name=Lithiumwürfel item.nugget_u235.name=U235-Nugget item.nugget_u238.name=U238-Nugget @@ -236,6 +242,7 @@ item.battery_schrabidium.name=Schrabidiumbatterie item.battery_creative.name=Unendliche Batterie item.fusion_core.name=Fusionskern +item.energy_core.name=Selbstgebauter Energiekern item.plate_iron.name=Eisenplatte item.plate_lead.name=Bleiplatte @@ -257,7 +264,13 @@ item.cell_uf6.name=Uranhexafluorit-Zelle item.cell_puf6.name=Plutoniumhexafluorit-Zelle item.cell_antimatter.name=Antimaterienzelle item.cell_deuterium.name=Deuteriumzelle +item.cell_tritium.name=Tritiumzelle item.cell_sas3.name=Schrabidiumtrisulfat-Zelle +item.cell_anti_schrabidium.name=Antischrabidiumzelle + +item.inf_water.name=Unendlicher Wassertank +item.inf_deuterium.name=Unendlicher Deuteriumtank +item.inf_tritium.name=Unendlicher Tritiumtank item.canister_empty.name=Leerer Kanister item.canister_fuel.name=Treibstoffkanister @@ -399,6 +412,14 @@ item.rod_coolant.name=Kühlzelle item.rod_dual_coolant.name=Doppelte Kühlzelle item.rod_quad_coolant.name=Vierfache Kühlzelle +item.rod_lithium.name=Lithiumstab +item.rod_dual_lithium.name=Doppelter Lithiumstab +item.rod_quad_lithium.name=Vierfacher Lithiumstab + +item.rod_tritium.name=Tritiumzelle +item.rod_dual_tritium.name=Doppelte Tritiumzelle +item.rod_quad_tritium.name=Vierfache Tritiumzelle + item.levitation_unit.name=Gravitationsmanipulator item.thermo_unit_empty.name=Thermische Verteilungseinheit item.thermo_unit_endo.name=Kälteverteilungseinheit @@ -561,4 +582,6 @@ item.fuel_tank_medium.name=Mittlerer Treibstofftank item.fuel_tank_large.name=Großer Treibstofftank item.thruster_small.name=Kleines Raketentriebwerk item.thruster_medium.name=Mittleres Raketentriebwerk -item.thruster_large.name=Großes Raketentriebwerk \ No newline at end of file +item.thruster_large.name=Großes Raketentriebwerk + +item.wand.name=Konstruktions-Zauberstab \ No newline at end of file diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 9d82d5252..3f9a24a3a 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -68,6 +68,8 @@ tile.float_bomb.name=Levitation Bomb tile.therm_endo.name=Endothermic Bomb tile.therm_exo.name=Exothermic Bomb +tile.crashed_bomb.name=Dud + tile.machine_difurnace_off.name=Alloy Furnace tile.machine_difurnace_on.name=Alloy Furnace container.diFurnace=Alloy Furnace @@ -126,6 +128,7 @@ tile.fusion_motor.name=Magnet Motor Piece tile.fusion_heater.name=Plasma Heater tile.fusion_hatch.name=Fusion Reactor Access Hatch tile.fusion_core.name=Fusion Reactor Control +tile.plasma.name=Plasma container.fusionMultiblock=Big Fusion Reactor item.fuse.name=Fuse @@ -157,6 +160,9 @@ item.nugget_schrabidium.name=Schrabidium Nugget item.plate_copper.name=Copper Plate item.ingot_advanced_alloy.name=Advanced Alloy Ingot item.plate_advanced_alloy.name=Advanced Alloy Plate +item.wire_advanced_alloy.name=Super Cunductor +item.coil_advanced_alloy.name=Super Conducting Coil +item.lithium.name=Lithium Cube item.nugget_u235.name=U235 Nugget item.nugget_u238.name=U238 Nugget @@ -236,6 +242,7 @@ item.battery_schrabidium.name=Schrabidium Battery item.battery_creative.name=Infinite Battery item.fusion_core.name=Fusion Core +item.energy_core.name=Makeshift Energy Core item.plate_iron.name=Iron Plate item.plate_lead.name=Lead Plate @@ -257,7 +264,13 @@ item.cell_uf6.name=Uranium Hexafluorite Cell item.cell_puf6.name=Plutonium Hexafluorite Cell item.cell_antimatter.name=Antimatter Cell item.cell_deuterium.name=Deuterium Cell +item.cell_tritium.name=Tritium Cell item.cell_sas3.name=Schrabidiumtrisulfide Cell +item.cell_anti_schrabidium.name=Antischrabidium Cell + +item.inf_water.name=Infinite Water Tank +item.inf_deuterium.name=Infinite Deuterium Tank +item.inf_tritium.name=Infinite Tritium Tank item.canister_empty.name=Empty Canister item.canister_fuel.name=Fuel Canister @@ -400,6 +413,14 @@ item.rod_coolant.name=Coolant Cell item.rod_dual_coolant.name=Dual Coolant Cell item.rod_quad_coolant.name=Quad Coolant Cell +item.rod_lithium.name=Lithium Rod +item.rod_dual_lithium.name=Dual Lithium Rod +item.rod_quad_lithium.name=Quad Lithium Rod + +item.rod_tritium.name=Tritium Cell +item.rod_dual_tritium.name=Dual Tritium Cell +item.rod_quad_tritium.name=Quad Tritium Cell + item.levitation_unit.name=Gravitymanipulator item.thermo_unit_empty.name=Thermic Distribution Unit item.thermo_unit_endo.name=Coldness Distribution Unit @@ -562,4 +583,6 @@ item.fuel_tank_medium.name=Medium Fuel Tank item.fuel_tank_large.name=Large Fuel Tank item.thruster_small.name=Small Thruster item.thruster_medium.name=Medium Thruster -item.thruster_large.name=Large Thruster \ No newline at end of file +item.thruster_large.name=Large Thruster + +item.wand.name=Construction Wand \ No newline at end of file diff --git a/assets/hbm/textures/blocks/crashed_balefire.png b/assets/hbm/textures/blocks/crashed_balefire.png new file mode 100644 index 000000000..9fe0218df Binary files /dev/null and b/assets/hbm/textures/blocks/crashed_balefire.png differ diff --git a/assets/hbm/textures/blocks/plasma.png b/assets/hbm/textures/blocks/plasma.png new file mode 100644 index 000000000..5042b3489 Binary files /dev/null and b/assets/hbm/textures/blocks/plasma.png differ diff --git a/assets/hbm/textures/blocks/plasma.png.mcmeta b/assets/hbm/textures/blocks/plasma.png.mcmeta new file mode 100644 index 000000000..7ceb36394 --- /dev/null +++ b/assets/hbm/textures/blocks/plasma.png.mcmeta @@ -0,0 +1,45 @@ +{ + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 18, + 17, + 16, + 15, + 14, + 13, + 12, + 11, + 10, + 9, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1 + ] + } +} \ No newline at end of file diff --git a/assets/hbm/textures/blocks/red_cable.png b/assets/hbm/textures/blocks/red_cable.png new file mode 100644 index 000000000..5c6c56ce4 Binary files /dev/null and b/assets/hbm/textures/blocks/red_cable.png differ diff --git a/assets/hbm/textures/gui/gui_fusion_multiblock.png b/assets/hbm/textures/gui/gui_fusion_multiblock.png index b5e2bba09..c3ba9ce8a 100644 Binary files a/assets/hbm/textures/gui/gui_fusion_multiblock.png and b/assets/hbm/textures/gui/gui_fusion_multiblock.png differ diff --git a/assets/hbm/textures/items/alt.png b/assets/hbm/textures/items/alt.png new file mode 100644 index 000000000..3595a1634 Binary files /dev/null and b/assets/hbm/textures/items/alt.png differ diff --git a/assets/hbm/textures/items/cell_anti_schrabidium.png b/assets/hbm/textures/items/cell_anti_schrabidium.png new file mode 100644 index 000000000..04263e888 Binary files /dev/null and b/assets/hbm/textures/items/cell_anti_schrabidium.png differ diff --git a/assets/hbm/textures/items/cell_tritium.png b/assets/hbm/textures/items/cell_tritium.png new file mode 100644 index 000000000..bd190a09a Binary files /dev/null and b/assets/hbm/textures/items/cell_tritium.png differ diff --git a/assets/hbm/textures/items/coil_advanced_alloy.png b/assets/hbm/textures/items/coil_advanced_alloy.png new file mode 100644 index 000000000..291ff9f9f Binary files /dev/null and b/assets/hbm/textures/items/coil_advanced_alloy.png differ diff --git a/assets/hbm/textures/items/energy_core.png b/assets/hbm/textures/items/energy_core.png new file mode 100644 index 000000000..1a54686bc Binary files /dev/null and b/assets/hbm/textures/items/energy_core.png differ diff --git a/assets/hbm/textures/items/inf_deuterium.png b/assets/hbm/textures/items/inf_deuterium.png new file mode 100644 index 000000000..6476b3892 Binary files /dev/null and b/assets/hbm/textures/items/inf_deuterium.png differ diff --git a/assets/hbm/textures/items/inf_tritium.png b/assets/hbm/textures/items/inf_tritium.png new file mode 100644 index 000000000..090c67457 Binary files /dev/null and b/assets/hbm/textures/items/inf_tritium.png differ diff --git a/assets/hbm/textures/items/inf_water.png b/assets/hbm/textures/items/inf_water.png new file mode 100644 index 000000000..766c4c5c9 Binary files /dev/null and b/assets/hbm/textures/items/inf_water.png differ diff --git a/assets/hbm/textures/items/lithium.png b/assets/hbm/textures/items/lithium.png index cdc066bba..0a8355982 100644 Binary files a/assets/hbm/textures/items/lithium.png and b/assets/hbm/textures/items/lithium.png differ diff --git a/assets/hbm/textures/items/lithium6.png b/assets/hbm/textures/items/lithium6.png index 0a8355982..cdc066bba 100644 Binary files a/assets/hbm/textures/items/lithium6.png and b/assets/hbm/textures/items/lithium6.png differ diff --git a/assets/hbm/textures/items/rod_dual_lithium.png b/assets/hbm/textures/items/rod_dual_lithium.png new file mode 100644 index 000000000..41cb044cd Binary files /dev/null and b/assets/hbm/textures/items/rod_dual_lithium.png differ diff --git a/assets/hbm/textures/items/rod_dual_tritium.png b/assets/hbm/textures/items/rod_dual_tritium.png new file mode 100644 index 000000000..4b812cf0b Binary files /dev/null and b/assets/hbm/textures/items/rod_dual_tritium.png differ diff --git a/assets/hbm/textures/items/rod_lithium.png b/assets/hbm/textures/items/rod_lithium.png new file mode 100644 index 000000000..20a27e791 Binary files /dev/null and b/assets/hbm/textures/items/rod_lithium.png differ diff --git a/assets/hbm/textures/items/rod_quad_lithium.png b/assets/hbm/textures/items/rod_quad_lithium.png new file mode 100644 index 000000000..836982e85 Binary files /dev/null and b/assets/hbm/textures/items/rod_quad_lithium.png differ diff --git a/assets/hbm/textures/items/rod_quad_tritium.png b/assets/hbm/textures/items/rod_quad_tritium.png new file mode 100644 index 000000000..17a032559 Binary files /dev/null and b/assets/hbm/textures/items/rod_quad_tritium.png differ diff --git a/assets/hbm/textures/items/rod_tritium.png b/assets/hbm/textures/items/rod_tritium.png new file mode 100644 index 000000000..1462d108a Binary files /dev/null and b/assets/hbm/textures/items/rod_tritium.png differ diff --git a/assets/hbm/textures/items/wand.png b/assets/hbm/textures/items/wand.png new file mode 100644 index 000000000..101d7a866 Binary files /dev/null and b/assets/hbm/textures/items/wand.png differ diff --git a/assets/hbm/textures/items/wire_advanced_alloy.png b/assets/hbm/textures/items/wire_advanced_alloy.png new file mode 100644 index 000000000..8f57852d1 Binary files /dev/null and b/assets/hbm/textures/items/wire_advanced_alloy.png differ diff --git a/assets/hbm/textures/items/wire_copper - Kopie.png b/assets/hbm/textures/items/wire_copper - Kopie.png new file mode 100644 index 000000000..1ec61204e Binary files /dev/null and b/assets/hbm/textures/items/wire_copper - Kopie.png differ diff --git a/assets/hbm/textures/items/wire_red_copper - Kopie.png b/assets/hbm/textures/items/wire_red_copper - Kopie.png new file mode 100644 index 000000000..b1c1ff47a Binary files /dev/null and b/assets/hbm/textures/items/wire_red_copper - Kopie.png differ diff --git a/assets/hbm/textures/models/BaleFireCrashedUV.png b/assets/hbm/textures/models/BaleFireCrashedUV.png new file mode 100644 index 000000000..b1ad5c997 Binary files /dev/null and b/assets/hbm/textures/models/BaleFireCrashedUV.png differ diff --git a/assets/hbm/textures/models/BalefireCrashed.png b/assets/hbm/textures/models/BalefireCrashed.png new file mode 100644 index 000000000..7a3624d77 Binary files /dev/null and b/assets/hbm/textures/models/BalefireCrashed.png differ diff --git a/com/hbm/blocks/BlockCable.java b/com/hbm/blocks/BlockCable.java new file mode 100644 index 000000000..30c3f023a --- /dev/null +++ b/com/hbm/blocks/BlockCable.java @@ -0,0 +1,37 @@ +package com.hbm.blocks; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class BlockCable extends BlockContainer { + + protected BlockCable(Material p_i45386_1_) { + super(p_i45386_1_); + float p = 1F/16F; + this.setBlockBounds(11 * p / 2, 11 * p / 2, 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2); + this.useNeighborBrightness = true; + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityCable(); + } + + @Override + public int getRenderType(){ + return -1; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + +} diff --git a/com/hbm/blocks/BlockCrashedBomb.java b/com/hbm/blocks/BlockCrashedBomb.java new file mode 100644 index 000000000..5e9ad6d83 --- /dev/null +++ b/com/hbm/blocks/BlockCrashedBomb.java @@ -0,0 +1,78 @@ +package com.hbm.blocks; + +import java.util.HashMap; +import java.util.Map; +import java.util.Random; + +import com.hbm.entity.EntityNukeExplosionAdvanced; +import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class BlockCrashedBomb extends BlockContainer { + + protected BlockCrashedBomb(Material p_i45386_1_) { + super(p_i45386_1_); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityCrashedBomb(); + } + + @Override + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) + { + return Item.getItemFromBlock(ModBlocks.crashed_balefire); + } + + @Override + public int getRenderType(){ + return -1; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + + if(i == 0) + { + world.setBlockMetadataWithNotify(x, y, z, 5, 2); + } + if(i == 1) + { + world.setBlockMetadataWithNotify(x, y, z, 3, 2); + } + if(i == 2) + { + world.setBlockMetadataWithNotify(x, y, z, 4, 2); + } + if(i == 3) + { + world.setBlockMetadataWithNotify(x, y, z, 2, 2); + } + } +} diff --git a/com/hbm/blocks/BlockPlasma.java b/com/hbm/blocks/BlockPlasma.java new file mode 100644 index 000000000..2a22db3a4 --- /dev/null +++ b/com/hbm/blocks/BlockPlasma.java @@ -0,0 +1,55 @@ +package com.hbm.blocks; + +import java.util.Random; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockPlasma extends Block { + + protected BlockPlasma(Material p_i45394_1_) { + super(p_i45394_1_); + this.setTickRandomly(true); + } + + public void updateTick(World world, int x, int y, int z, Random rand) + { + if (world.getGameRules().getGameRuleBooleanValue("doFireTick")) + world.setBlock(x, y, z, Blocks.air); + } + + public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_) + { + return null; + } + + public void onEntityCollidedWithBlock(World p_149670_1_, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity p_149670_5_) + { + p_149670_5_.setFire(10); + p_149670_5_.setInWeb(); + } + + public boolean isOpaqueCube() + { + return false; + } + + @Override + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) + { + return null; + } + + public boolean renderAsNormalBlock() + { + return false; + } + +} diff --git a/com/hbm/blocks/FusionHatch.java b/com/hbm/blocks/FusionHatch.java index cb49435ba..f18d138d3 100644 --- a/com/hbm/blocks/FusionHatch.java +++ b/com/hbm/blocks/FusionHatch.java @@ -116,6 +116,62 @@ public class FusionHatch extends Block { return true; } else if(!player.isSneaking()) { + if(world.getBlockMetadata(x, y, z) == 2) + { + if(world.getTileEntity(x, y, z + 8) instanceof TileEntityFusionMultiblock) + { + if(((TileEntityFusionMultiblock)world.getTileEntity(x, y, z + 8)).isStructureValid(world)) + { + FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_fusion_multiblock, world, x, y, z + 8); + } else { + player.addChatMessage(new ChatComponentText("[Fusion Reactor] Error: Reactor Structure not valid!")); + } + } else { + player.addChatMessage(new ChatComponentText("[Fusion Reactor Error: Reactor Core not found!")); + } + } + if(world.getBlockMetadata(x, y, z) == 3) + { + if(world.getTileEntity(x, y, z - 8) instanceof TileEntityFusionMultiblock) + { + if(((TileEntityFusionMultiblock)world.getTileEntity(x, y, z - 8)).isStructureValid(world)) + { + FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_fusion_multiblock, world, x, y, z - 8); + } else { + player.addChatMessage(new ChatComponentText("[Fusion Reactor] Error: Reactor Structure not valid!")); + } + } else { + player.addChatMessage(new ChatComponentText("[Fusion Reactor Error: Reactor Core not found!")); + } + } + if(world.getBlockMetadata(x, y, z) == 4) + { + if(world.getTileEntity(x + 8, y, z) instanceof TileEntityFusionMultiblock) + { + if(((TileEntityFusionMultiblock)world.getTileEntity(x + 8, y, z)).isStructureValid(world)) + { + FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_fusion_multiblock, world, x + 8, y, z); + } else { + player.addChatMessage(new ChatComponentText("[Fusion Reactor] Error: Reactor Structure not valid!")); + } + } else { + player.addChatMessage(new ChatComponentText("[Fusion Reactor Error: Reactor Core not found!")); + } + } + if(world.getBlockMetadata(x, y, z) == 5) + { + if(world.getTileEntity(x - 8, y, z) instanceof TileEntityFusionMultiblock) + { + if(((TileEntityFusionMultiblock)world.getTileEntity(x - 8, y, z)).isStructureValid(world)) + { + FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_fusion_multiblock, world, x - 8, y, z); + } else { + player.addChatMessage(new ChatComponentText("[Fusion Reactor] Error: Reactor Structure not valid!")); + } + } else { + player.addChatMessage(new ChatComponentText("[Fusion Reactor Error: Reactor Core not found!")); + } + } return true; } else { return false; diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index 92f27a16b..2cf3e445e 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -102,6 +102,7 @@ public class ModBlocks { public static Block det_cord; public static Block red_barrel; public static Block yellow_barrel; + public static Block crashed_balefire; public static Block nuke_gadget; public static final int guiID_nuke_gadget = 3; @@ -169,6 +170,7 @@ public class ModBlocks { public static final int guiID_machine_coal = 22; public static Block red_wire_coated; + public static Block red_cable; public static Block bomb_multi_large; public static final int guiID_bomb_multi_large = 18; @@ -196,6 +198,7 @@ public class ModBlocks { public static Block fusion_heater; public static Block fusion_hatch; public static Block fusion_core; + public static Block plasma; public static final int guiID_fusion_multiblock = 27; public static Block launch_pad; @@ -325,6 +328,7 @@ public class ModBlocks { det_cord = new DetCord(Material.iron).setBlockName("det_cord").setCreativeTab(MainRegistry.tabNuke).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_cord"); red_barrel = new RedBarrel(Material.iron).setBlockName("red_barrel").setCreativeTab(MainRegistry.tabNuke).setHardness(0.5F).setResistance(2.5F); yellow_barrel = new YellowBarrel(Material.iron).setBlockName("yellow_barrel").setCreativeTab(MainRegistry.tabNuke).setHardness(0.5F).setResistance(2.5F); + crashed_balefire = new BlockCrashedBomb(Material.iron).setBlockName("crashed_bomb").setCreativeTab(MainRegistry.tabNuke).setBlockUnbreakable().setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":crashed_balefire"); machine_difurnace_off = new MachineDiFurnace(false).setBlockName("machine_difurnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock); machine_difurnace_on = new MachineDiFurnace(true).setBlockName("machine_difurnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); @@ -355,7 +359,8 @@ public class ModBlocks { machine_coal_off = new MachineCoal(false).setBlockName("machine_coal_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock); machine_coal_on = new MachineCoal(true).setBlockName("machine_coal_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); - red_wire_coated = new WireCoated(Material.iron).setBlockName("red_wire_coated").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":red_wire_coated"); + red_wire_coated = new WireCoated(Material.iron).setBlockName("red_wire_coated").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":red_wire_coated"); + red_cable = new BlockCable(Material.iron).setBlockName("red_cable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock); factory_titanium_hull = new BlockGeneric(Material.iron).setBlockName("factory_titanium_hull").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":factory_titanium_hull"); factory_titanium_furnace = new FactoryHatch(Material.iron).setBlockName("factory_titanium_furnace").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":factory_titanium_furnace"); @@ -376,6 +381,7 @@ public class ModBlocks { fusion_heater = new BlockReactor(Material.iron).setBlockName("fusion_heater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":fusion_heater_side"); fusion_hatch = new FusionHatch(Material.iron).setBlockName("fusion_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":fusion_hatch"); fusion_core = new FusionCore(Material.iron).setBlockName("fusion_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":fusion_core_side"); + plasma = new BlockPlasma(Material.iron).setBlockName("plasma").setHardness(5.0F).setResistance(6000.0F).setLightLevel(1.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":plasma"); launch_pad = new LaunchPad(Material.iron).setBlockName("launch_pad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabNuke).setBlockTextureName(RefStrings.MODID + ":launch_pad"); launch_pad_generic = new LaunchPad(Material.iron).setBlockName("launch_pad_generic").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); @@ -499,6 +505,7 @@ public class ModBlocks { //Generic Bombs GameRegistry.registerBlock(bomb_multi, bomb_multi.getUnlocalizedName()); + GameRegistry.registerBlock(crashed_balefire, crashed_balefire.getUnlocalizedName()); //GameRegistry.registerBlock(bomb_multi_large, bomb_multi_large.getUnlocalizedName()); //Block Bombs @@ -524,7 +531,8 @@ public class ModBlocks { GameRegistry.registerBlock(machine_coal_off, machine_coal_off.getUnlocalizedName()); GameRegistry.registerBlock(machine_coal_on, machine_coal_on.getUnlocalizedName()); GameRegistry.registerBlock(machine_generator, machine_generator.getUnlocalizedName()); - //GameRegistry.registerBlock(red_wire_coated, red_wire_coated.getUnlocalizedName()); + GameRegistry.registerBlock(red_wire_coated, red_wire_coated.getUnlocalizedName()); + GameRegistry.registerBlock(red_cable, red_cable.getUnlocalizedName()); GameRegistry.registerBlock(machine_battery, machine_battery.getUnlocalizedName()); GameRegistry.registerBlock(machine_electric_furnace_off, machine_electric_furnace_off.getUnlocalizedName()); GameRegistry.registerBlock(machine_electric_furnace_on, machine_electric_furnace_on.getUnlocalizedName()); @@ -551,6 +559,7 @@ public class ModBlocks { GameRegistry.registerBlock(fusion_heater, fusion_heater.getUnlocalizedName()); GameRegistry.registerBlock(fusion_hatch, fusion_hatch.getUnlocalizedName()); GameRegistry.registerBlock(fusion_core, fusion_core.getUnlocalizedName()); + GameRegistry.registerBlock(plasma, plasma.getUnlocalizedName()); //Launch Pads GameRegistry.registerBlock(launch_pad, launch_pad.getUnlocalizedName()); diff --git a/com/hbm/blocks/TileEntityCable.java b/com/hbm/blocks/TileEntityCable.java new file mode 100644 index 000000000..c35517146 --- /dev/null +++ b/com/hbm/blocks/TileEntityCable.java @@ -0,0 +1,7 @@ +package com.hbm.blocks; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityCable extends TileEntity { + +} diff --git a/com/hbm/blocks/TileEntityCrashedBomb.java b/com/hbm/blocks/TileEntityCrashedBomb.java new file mode 100644 index 000000000..40e10a751 --- /dev/null +++ b/com/hbm/blocks/TileEntityCrashedBomb.java @@ -0,0 +1,13 @@ +package com.hbm.blocks; + +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityCrashedBomb extends TileEntity { + + @Override + public AxisAlignedBB getRenderBoundingBox() { + return TileEntity.INFINITE_EXTENT_AABB; + } + +} diff --git a/com/hbm/blocks/TileEntityFusionMultiblock.java b/com/hbm/blocks/TileEntityFusionMultiblock.java index 4655a5e2e..b3f7908a0 100644 --- a/com/hbm/blocks/TileEntityFusionMultiblock.java +++ b/com/hbm/blocks/TileEntityFusionMultiblock.java @@ -1,87 +1,187 @@ package com.hbm.blocks; import com.hbm.interfaces.IReactor; +import com.hbm.items.ModItems; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class TileEntityFusionMultiblock extends TileEntity implements ISidedInventory, IReactor { + public int water; + public final static int waterMax = 10000000; + public int deut; + public final static int deutMax = 10000000; + public int trit; + public final static int tritMax = 10000000; + public int power; + public final static int maxPower = 10000000; + private ItemStack slots[]; + + private String customName; + + public TileEntityFusionMultiblock() { + slots = new ItemStack[9]; + } @Override public int getSizeInventory() { - // TODO Auto-generated method stub - return 0; + return slots.length; } @Override - public ItemStack getStackInSlot(int p_70301_1_) { - // TODO Auto-generated method stub + public ItemStack getStackInSlot(int i) { + return slots[i]; + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) { + if(slots[i] != null) + { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } else { return null; + } } @Override - public ItemStack decrStackSize(int p_70298_1_, int p_70298_2_) { - // TODO Auto-generated method stub - return null; - } - - @Override - public ItemStack getStackInSlotOnClosing(int p_70304_1_) { - // TODO Auto-generated method stub - return null; - } - - @Override - public void setInventorySlotContents(int p_70299_1_, ItemStack p_70299_2_) { - // TODO Auto-generated method stub - + public void setInventorySlotContents(int i, ItemStack itemStack) { + slots[i] = itemStack; + if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) + { + itemStack.stackSize = getInventoryStackLimit(); + } } @Override public String getInventoryName() { - // TODO Auto-generated method stub - return null; + return this.hasCustomInventoryName() ? this.customName : "container.fusionMultiblock"; } @Override public boolean hasCustomInventoryName() { - // TODO Auto-generated method stub - return false; + return this.customName != null && this.customName.length() > 0; + } + + public void setCustomName(String name) { + this.customName = name; } @Override public int getInventoryStackLimit() { - // TODO Auto-generated method stub - return 0; + return 64; } @Override - public boolean isUseableByPlayer(EntityPlayer p_70300_1_) { - // TODO Auto-generated method stub + public boolean isUseableByPlayer(EntityPlayer player) { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) + { + return false; + }else{ + return true; + } + } + + @Override + public void openInventory() {} + + @Override + public void closeInventory() {} + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + return true; + } + + @Override + public ItemStack decrStackSize(int i, int j) { + if(slots[i] != null) + { + if(slots[i].stackSize <= j) + { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } + ItemStack itemStack1 = slots[i].splitStack(j); + if (slots[i].stackSize == 0) + { + slots[i] = null; + } + + return itemStack1; + } else { + return null; + } + } + + @Override + public int[] getAccessibleSlotsFromSide(int p_94128_1_) { + return null; + } + + @Override + public boolean canInsertItem(int p_102007_1_, ItemStack p_102007_2_, int p_102007_3_) { return false; } @Override - public void openInventory() { - // TODO Auto-generated method stub - - } - - @Override - public void closeInventory() { - // TODO Auto-generated method stub - - } - - @Override - public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_) { - // TODO Auto-generated method stub + public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) { return false; } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + NBTTagList list = nbt.getTagList("items", 10); + + slots = new ItemStack[getSizeInventory()]; + + for(int i = 0; i < list.tagCount(); i++) + { + NBTTagCompound nbt1 = list.getCompoundTagAt(i); + byte b0 = nbt1.getByte("slot"); + if(b0 >= 0 && b0 < slots.length) + { + slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); + } + } + + water = nbt.getShort("water"); + deut = nbt.getShort("deut"); + power = nbt.getShort("power"); + trit = nbt.getShort("trit"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setShort("water", (short) water); + nbt.setShort("deut", (short) deut); + nbt.setShort("power", (short) power); + nbt.setShort("trit", (short) trit); + NBTTagList list = new NBTTagList(); + + for(int i = 0; i < slots.length; i++) + { + if(slots[i] != null) + { + NBTTagCompound nbt1 = new NBTTagCompound(); + nbt1.setByte("slot", (byte)i); + slots[i].writeToNBT(nbt1); + list.appendTag(nbt1); + } + } + nbt.setTag("items", list); + } @Override public boolean isStructureValid(World world) { @@ -625,21 +725,21 @@ public class TileEntityFusionMultiblock extends TileEntity implements ISidedInve world.getBlock(this.xCoord - 6, this.yCoord, this.zCoord + 2) == ModBlocks.fusion_conductor && world.getBlock(this.xCoord - 6, this.yCoord, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord, this.zCoord + 3) == ModBlocks.fusion_conductor && + world.getBlock(this.xCoord - 3, this.yCoord, this.zCoord + 6) == ModBlocks.fusion_conductor && + world.getBlock(this.xCoord - 2, this.yCoord, this.zCoord + 6) == ModBlocks.fusion_conductor && + world.getBlock(this.xCoord - 1, this.yCoord, this.zCoord + 6) == ModBlocks.fusion_conductor && + world.getBlock(this.xCoord + 0, this.yCoord, this.zCoord + 6) == ModBlocks.fusion_conductor && + world.getBlock(this.xCoord + 1, this.yCoord, this.zCoord + 6) == ModBlocks.fusion_conductor && + world.getBlock(this.xCoord + 2, this.yCoord, this.zCoord + 6) == ModBlocks.fusion_conductor && + world.getBlock(this.xCoord + 3, this.yCoord, this.zCoord + 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord, this.zCoord + 3) == ModBlocks.fusion_conductor && + world.getBlock(this.xCoord - 3, this.yCoord, this.zCoord - 6) == ModBlocks.fusion_conductor && + world.getBlock(this.xCoord - 2, this.yCoord, this.zCoord - 6) == ModBlocks.fusion_conductor && + world.getBlock(this.xCoord - 1, this.yCoord, this.zCoord - 6) == ModBlocks.fusion_conductor && + world.getBlock(this.xCoord + 0, this.yCoord, this.zCoord - 6) == ModBlocks.fusion_conductor && + world.getBlock(this.xCoord + 1, this.yCoord, this.zCoord - 6) == ModBlocks.fusion_conductor && + world.getBlock(this.xCoord + 2, this.yCoord, this.zCoord - 6) == ModBlocks.fusion_conductor && + world.getBlock(this.xCoord + 3, this.yCoord, this.zCoord - 6) == ModBlocks.fusion_conductor && world.getBlock(this.xCoord + 5, this.yCoord, this.zCoord - 4) == ModBlocks.fusion_conductor && world.getBlock(this.xCoord + 4, this.yCoord, this.zCoord - 5) == ModBlocks.fusion_conductor && @@ -830,62 +930,291 @@ public class TileEntityFusionMultiblock extends TileEntity implements ISidedInve @Override public boolean hasFuse() { - // TODO Auto-generated method stub return false; } - + @Override public int getWaterScaled(int i) { - // TODO Auto-generated method stub - return 0; + return (water * i) / waterMax; } - + @Override public int getCoolantScaled(int i) { - // TODO Auto-generated method stub - return 0; + return (deut * i) / deutMax; } - - @Override - public int getPowerScaled(int i) { - // TODO Auto-generated method stub - return 0; - } - + @Override public int getHeatScaled(int i) { - // TODO Auto-generated method stub - return 0; + return (trit * i) / tritMax; } - + @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - // TODO Auto-generated method stub - return null; - } - - @Override - public boolean canInsertItem(int p_102007_1_, ItemStack p_102007_2_, int p_102007_3_) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) { - // TODO Auto-generated method stub - return false; + public int getPowerScaled(int i) { + return (power * i) / maxPower; } @Override public void updateEntity() { - if(isCoatingValid(worldObj)) + + if(!worldObj.isRemote) { - worldObj.setBlock(xCoord, yCoord + 3, zCoord, Blocks.dirt); + if(slots[0] != null && slots[0].getItem() == Items.water_bucket && this.water + 250000 <= waterMax) + { + this.slots[0].stackSize--; + this.water += 250000; + if(this.slots[0].stackSize == 0) + { + this.slots[0] = this.slots[0].getItem().getContainerItem(this.slots[0]); + } + } + if(slots[0] != null && slots[0].getItem() == ModItems.rod_water && this.water + 250000 <= waterMax) + { + this.slots[0].stackSize--; + this.water += 250000; + if(this.slots[0].stackSize == 0) + { + this.slots[0] = this.slots[0].getItem().getContainerItem(this.slots[0]); + } + } + if(slots[0] != null && slots[0].getItem() == ModItems.rod_dual_water && this.water + 500000 <= waterMax) + { + this.slots[0].stackSize--; + this.water += 500000; + if(this.slots[0].stackSize == 0) + { + this.slots[0] = this.slots[0].getItem().getContainerItem(this.slots[0]); + } + } + if(slots[0] != null && slots[0].getItem() == ModItems.rod_quad_water && this.water + 1000000 <= waterMax) + { + this.slots[0].stackSize--; + this.water += 1000000; + if(this.slots[0].stackSize == 0) + { + this.slots[0] = this.slots[0].getItem().getContainerItem(this.slots[0]); + } + } + + if(slots[2] != null && slots[2].getItem() == ModItems.cell_deuterium && this.deut + 1000000 <= deutMax) + { + this.slots[2].stackSize--; + this.deut += 1000000; + } + if(slots[3] != null && slots[3].getItem() == ModItems.cell_tritium && this.trit + 1000000 <= tritMax) + { + this.slots[3].stackSize--; + this.trit += 1000000; + } + + if(slots[0] != null && slots[0].getItem() == ModItems.inf_water) + { + this.water = waterMax; + } + if(slots[2] != null && slots[2].getItem() == ModItems.inf_deuterium) + { + this.deut = deutMax; + } + if(slots[3] != null && slots[3].getItem() == ModItems.inf_tritium) + { + this.trit = tritMax; + } + + if(!isRunning() && + slots[4] != null && (slots[4].getItem() == ModItems.fusion_core || slots[4].getItem() == ModItems.energy_core) && slots[4].getItemDamage() == 0 && + slots[5] != null && (slots[5].getItem() == ModItems.fusion_core || slots[5].getItem() == ModItems.energy_core) && slots[5].getItemDamage() == 0 && + slots[6] != null && (slots[6].getItem() == ModItems.fusion_core || slots[6].getItem() == ModItems.energy_core) && slots[6].getItemDamage() == 0 && + slots[7] != null && (slots[7].getItem() == ModItems.fusion_core || slots[7].getItem() == ModItems.energy_core) && slots[7].getItemDamage() == 0 && + slots[8] != null && slots[8].getItem() == ModItems.fuse && + deut > 0 && trit > 0) + { + slots[4] = null; + slots[5] = null; + slots[6] = null; + slots[7] = null; + fillPlasma(); + } else { + if(isStructureValid(worldObj) && isRunning()) + { + deut -= 100; + trit -= 100; + + if(water - 1000 >= 0) + { + water -= 1000; + power += 10000; + + if(isCoatingValid(worldObj)) + { + power += 10000; + } + + if(power > maxPower) + { + power = maxPower; + } + } + + fillPlasma(); + } else { + emptyPlasma(); + } + } + + if(!isRunning()) + { + emptyPlasma(); + } + + if(deut <= 0 || trit <= 0) + { + emptyPlasma(); + } + if(power - 100 >= 0 && slots[1] != null && slots[1].getItem() == ModItems.battery_generic && slots[1].getItemDamage() > 0) + { + power -= 100; + slots[1].setItemDamage(slots[1].getItemDamage() - 1); + } + if(power - 100 >= 0 && slots[1] != null && slots[1].getItem() == ModItems.battery_advanced && slots[1].getItemDamage() > 0) + { + power -= 100; + slots[1].setItemDamage(slots[1].getItemDamage() - 1); + } + if(power - 100 >= 0 && slots[1] != null && slots[1].getItem() == ModItems.battery_schrabidium && slots[1].getItemDamage() > 0) + { + power -= 100; + slots[1].setItemDamage(slots[1].getItemDamage() - 1); + } + if(power - 100 >= 0 && slots[1] != null && slots[1].getItem() == ModItems.factory_core_titanium && slots[1].getItemDamage() > 0) + { + power -= 100; + slots[1].setItemDamage(slots[1].getItemDamage() - 1); + } + if(power - 100 >= 0 && slots[1] != null && slots[1].getItem() == ModItems.factory_core_advanced && slots[1].getItemDamage() > 0) + { + power -= 100; + slots[1].setItemDamage(slots[1].getItemDamage() - 1); + } } - if(isStructureValid(worldObj)) + } + + public boolean isRunning() { + if(slots[8] != null && slots[8].getItem() == ModItems.fuse && ( + worldObj.getBlock(xCoord + 4, yCoord, zCoord - 3) == ModBlocks.plasma || + worldObj.getBlock(xCoord + 4, yCoord, zCoord - 2) == ModBlocks.plasma || + worldObj.getBlock(xCoord + 4, yCoord, zCoord - 1) == ModBlocks.plasma || + worldObj.getBlock(xCoord + 4, yCoord, zCoord + 0) == ModBlocks.plasma || + worldObj.getBlock(xCoord + 4, yCoord, zCoord + 1) == ModBlocks.plasma || + worldObj.getBlock(xCoord + 4, yCoord, zCoord + 2) == ModBlocks.plasma || + worldObj.getBlock(xCoord + 4, yCoord, zCoord + 3) == ModBlocks.plasma || + worldObj.getBlock(xCoord - 4, yCoord, zCoord - 3) == ModBlocks.plasma || + worldObj.getBlock(xCoord - 4, yCoord, zCoord - 2) == ModBlocks.plasma || + worldObj.getBlock(xCoord - 4, yCoord, zCoord - 1) == ModBlocks.plasma || + worldObj.getBlock(xCoord - 4, yCoord, zCoord + 0) == ModBlocks.plasma || + worldObj.getBlock(xCoord - 4, yCoord, zCoord + 1) == ModBlocks.plasma || + worldObj.getBlock(xCoord - 4, yCoord, zCoord + 2) == ModBlocks.plasma || + worldObj.getBlock(xCoord - 4, yCoord, zCoord + 3) == ModBlocks.plasma || + worldObj.getBlock(xCoord - 3, yCoord, zCoord + 4) == ModBlocks.plasma || + worldObj.getBlock(xCoord - 2, yCoord, zCoord + 4) == ModBlocks.plasma || + worldObj.getBlock(xCoord - 1, yCoord, zCoord + 4) == ModBlocks.plasma || + worldObj.getBlock(xCoord + 0, yCoord, zCoord + 4) == ModBlocks.plasma || + worldObj.getBlock(xCoord + 1, yCoord, zCoord + 4) == ModBlocks.plasma || + worldObj.getBlock(xCoord + 2, yCoord, zCoord + 4) == ModBlocks.plasma || + worldObj.getBlock(xCoord + 3, yCoord, zCoord + 4) == ModBlocks.plasma || + worldObj.getBlock(xCoord - 3, yCoord, zCoord - 4) == ModBlocks.plasma || + worldObj.getBlock(xCoord - 2, yCoord, zCoord - 4) == ModBlocks.plasma || + worldObj.getBlock(xCoord - 1, yCoord, zCoord - 4) == ModBlocks.plasma || + worldObj.getBlock(xCoord + 0, yCoord, zCoord - 4) == ModBlocks.plasma || + worldObj.getBlock(xCoord + 1, yCoord, zCoord - 4) == ModBlocks.plasma || + worldObj.getBlock(xCoord + 2, yCoord, zCoord - 4) == ModBlocks.plasma || + worldObj.getBlock(xCoord + 3, yCoord, zCoord - 4) == ModBlocks.plasma || + worldObj.getBlock(xCoord + 3, yCoord, zCoord + 3) == ModBlocks.plasma || + worldObj.getBlock(xCoord + 3, yCoord, zCoord - 3) == ModBlocks.plasma || + worldObj.getBlock(xCoord - 3, yCoord, zCoord + 3) == ModBlocks.plasma || + worldObj.getBlock(xCoord - 3, yCoord, zCoord - 3) == ModBlocks.plasma)) { - worldObj.setBlock(xCoord, yCoord + 4, zCoord, Blocks.coal_block); + return true; } + return false; + } + + public void fillPlasma() { + setPlasma(xCoord + 4, yCoord, zCoord - 3); + setPlasma(xCoord + 4, yCoord, zCoord - 2); + setPlasma(xCoord + 4, yCoord, zCoord - 1); + setPlasma(xCoord + 4, yCoord, zCoord + 0); + setPlasma(xCoord + 4, yCoord, zCoord + 1); + setPlasma(xCoord + 4, yCoord, zCoord + 2); + setPlasma(xCoord + 4, yCoord, zCoord + 3); + setPlasma(xCoord - 4, yCoord, zCoord - 3); + setPlasma(xCoord - 4, yCoord, zCoord - 2); + setPlasma(xCoord - 4, yCoord, zCoord - 1); + setPlasma(xCoord - 4, yCoord, zCoord + 0); + setPlasma(xCoord - 4, yCoord, zCoord + 1); + setPlasma(xCoord - 4, yCoord, zCoord + 2); + setPlasma(xCoord - 4, yCoord, zCoord + 3); + setPlasma(xCoord - 3, yCoord, zCoord + 4); + setPlasma(xCoord - 2, yCoord, zCoord + 4); + setPlasma(xCoord - 1, yCoord, zCoord + 4); + setPlasma(xCoord + 0, yCoord, zCoord + 4); + setPlasma(xCoord + 1, yCoord, zCoord + 4); + setPlasma(xCoord + 2, yCoord, zCoord + 4); + setPlasma(xCoord + 3, yCoord, zCoord + 4); + setPlasma(xCoord - 3, yCoord, zCoord - 4); + setPlasma(xCoord - 2, yCoord, zCoord - 4); + setPlasma(xCoord - 1, yCoord, zCoord - 4); + setPlasma(xCoord + 0, yCoord, zCoord - 4); + setPlasma(xCoord + 1, yCoord, zCoord - 4); + setPlasma(xCoord + 2, yCoord, zCoord - 4); + setPlasma(xCoord + 3, yCoord, zCoord - 4); + setPlasma(xCoord + 3, yCoord, zCoord + 3); + setPlasma(xCoord + 3, yCoord, zCoord - 3); + setPlasma(xCoord - 3, yCoord, zCoord + 3); + setPlasma(xCoord - 3, yCoord, zCoord - 3); + } + + public void emptyPlasma() { + removePlasma(xCoord + 4, yCoord, zCoord - 3); + removePlasma(xCoord + 4, yCoord, zCoord - 2); + removePlasma(xCoord + 4, yCoord, zCoord - 1); + removePlasma(xCoord + 4, yCoord, zCoord + 0); + removePlasma(xCoord + 4, yCoord, zCoord + 1); + removePlasma(xCoord + 4, yCoord, zCoord + 2); + removePlasma(xCoord + 4, yCoord, zCoord + 3); + removePlasma(xCoord - 4, yCoord, zCoord - 3); + removePlasma(xCoord - 4, yCoord, zCoord - 2); + removePlasma(xCoord - 4, yCoord, zCoord - 1); + removePlasma(xCoord - 4, yCoord, zCoord + 0); + removePlasma(xCoord - 4, yCoord, zCoord + 1); + removePlasma(xCoord - 4, yCoord, zCoord + 2); + removePlasma(xCoord - 4, yCoord, zCoord + 3); + removePlasma(xCoord - 3, yCoord, zCoord + 4); + removePlasma(xCoord - 2, yCoord, zCoord + 4); + removePlasma(xCoord - 1, yCoord, zCoord + 4); + removePlasma(xCoord + 0, yCoord, zCoord + 4); + removePlasma(xCoord + 1, yCoord, zCoord + 4); + removePlasma(xCoord + 2, yCoord, zCoord + 4); + removePlasma(xCoord + 3, yCoord, zCoord + 4); + removePlasma(xCoord - 3, yCoord, zCoord - 4); + removePlasma(xCoord - 2, yCoord, zCoord - 4); + removePlasma(xCoord - 1, yCoord, zCoord - 4); + removePlasma(xCoord + 0, yCoord, zCoord - 4); + removePlasma(xCoord + 1, yCoord, zCoord - 4); + removePlasma(xCoord + 2, yCoord, zCoord - 4); + removePlasma(xCoord + 3, yCoord, zCoord - 4); + removePlasma(xCoord + 3, yCoord, zCoord + 3); + removePlasma(xCoord + 3, yCoord, zCoord - 3); + removePlasma(xCoord - 3, yCoord, zCoord + 3); + removePlasma(xCoord - 3, yCoord, zCoord - 3); + } + + public void setPlasma(int x, int y, int z) { + if(worldObj.getBlock(x, y, z) != ModBlocks.plasma) + worldObj.setBlock(x, y, z, ModBlocks.plasma); + } + + public void removePlasma(int x, int y, int z) { + if(worldObj.getBlock(x, y, z) == ModBlocks.plasma) + worldObj.setBlock(x, y, z, Blocks.air); } } diff --git a/com/hbm/blocks/TileEntityWireCoated.java b/com/hbm/blocks/TileEntityWireCoated.java index e40bafaac..34705749f 100644 --- a/com/hbm/blocks/TileEntityWireCoated.java +++ b/com/hbm/blocks/TileEntityWireCoated.java @@ -379,7 +379,7 @@ public class TileEntityWireCoated extends TileEntity { } }*/ - Library.distributePower(this.worldObj, this.xCoord, this.yCoord, this.zCoord); + //Library.distributePower(this.worldObj, this.xCoord, this.yCoord, this.zCoord); } } diff --git a/com/hbm/explosion/ExplosionParticle.java b/com/hbm/explosion/ExplosionParticle.java index 2befa92ae..2b55db42a 100644 --- a/com/hbm/explosion/ExplosionParticle.java +++ b/com/hbm/explosion/ExplosionParticle.java @@ -555,6 +555,7 @@ public class ExplosionParticle { world.spawnEntityInWorld(new EntitySmokeFX(world, x + 9, y + 6, z + 8,0.0, 0.0, 0.0)); world.spawnEntityInWorld(new EntitySmokeFX(world, x + 4, y + 6, z + 9,0.0, 0.0, 0.0)); world.spawnEntityInWorld(new EntitySmokeFX(world, x + 8, y + 6, z + 9,0.0, 0.0, 0.0));*/ + y--; world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 7, z + 5,0.0, 0.0, 0.0)); world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 7, z + 5,0.0, 0.0, 0.0)); world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 7, z + 7,0.0, 0.0, 0.0)); diff --git a/com/hbm/gui/ContainerFusionMultiblock.java b/com/hbm/gui/ContainerFusionMultiblock.java new file mode 100644 index 000000000..a6ab38cb6 --- /dev/null +++ b/com/hbm/gui/ContainerFusionMultiblock.java @@ -0,0 +1,141 @@ +package com.hbm.gui; + +import com.hbm.blocks.TileEntityFusionMultiblock; +import com.hbm.blocks.TileEntityReactorMultiblock; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerFusionMultiblock extends Container { + + private TileEntityFusionMultiblock diFurnace; + + private int water; + private int deut; + private int power; + private int trit; + private boolean isRunning; + + public ContainerFusionMultiblock(InventoryPlayer invPlayer, TileEntityFusionMultiblock tedf) { + + diFurnace = tedf; + + this.addSlotToContainer(new Slot(tedf, 0, 8, 108)); + this.addSlotToContainer(new Slot(tedf, 1, 26, 108)); + this.addSlotToContainer(new Slot(tedf, 2, 134, 108)); + this.addSlotToContainer(new Slot(tedf, 3, 152, 108)); + this.addSlotToContainer(new Slot(tedf, 4, 53, 45)); + this.addSlotToContainer(new Slot(tedf, 5, 107, 45)); + this.addSlotToContainer(new Slot(tedf, 6, 53, 81)); + this.addSlotToContainer(new Slot(tedf, 7, 107, 81)); + this.addSlotToContainer(new Slot(tedf, 8, 80, 63)); + + for(int i = 0; i < 3; i++) + { + for(int j = 0; j < 9; j++) + { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); + } + } + + for(int i = 0; i < 9; i++) + { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); + } + } + + @Override + public void addCraftingToCrafters(ICrafting crafting) { + super.addCraftingToCrafters(crafting); + crafting.sendProgressBarUpdate(this, 0, this.diFurnace.water); + crafting.sendProgressBarUpdate(this, 1, this.diFurnace.deut); + crafting.sendProgressBarUpdate(this, 2, this.diFurnace.power); + crafting.sendProgressBarUpdate(this, 3, this.diFurnace.trit); + crafting.sendProgressBarUpdate(this, 4, isRunning ? 1 : 0); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int p_82846_2_) + { + return null; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return diFurnace.isUseableByPlayer(player); + } + + @Override + public void detectAndSendChanges() { + super.detectAndSendChanges(); + + for(int i = 0; i < this.crafters.size(); i++) + { + ICrafting par1 = (ICrafting)this.crafters.get(i); + + if(this.water != this.diFurnace.water) + { + par1.sendProgressBarUpdate(this, 0, this.diFurnace.water); + } + + if(this.deut != this.diFurnace.deut) + { + par1.sendProgressBarUpdate(this, 1, this.diFurnace.deut); + } + + if(this.power != this.diFurnace.power) + { + par1.sendProgressBarUpdate(this, 2, this.diFurnace.power); + } + + if(this.trit != this.diFurnace.trit) + { + par1.sendProgressBarUpdate(this, 3, this.diFurnace.trit); + } + + if(this.isRunning != this.diFurnace.isRunning()) + { + par1.sendProgressBarUpdate(this, 4, this.diFurnace.isRunning() ? 1 : 0); + } + } + + this.water = this.diFurnace.water; + this.deut = this.diFurnace.deut; + this.power = this.diFurnace.power; + this.trit = this.diFurnace.trit; + this.isRunning = this.diFurnace.isRunning(); + } + + @Override + public void updateProgressBar(int i, int j) { + if(i == 0) + { + diFurnace.water = j; + } + if(i == 1) + { + diFurnace.deut = j; + } + if(i == 2) + { + diFurnace.power = j; + } + if(i == 3) + { + diFurnace.trit = j; + } + if(i == 4) + { + if(j == 0) + { + diFurnace.emptyPlasma(); + } else { + diFurnace.fillPlasma(); + } + } + } +} diff --git a/com/hbm/gui/GUIFusionMultiblock.java b/com/hbm/gui/GUIFusionMultiblock.java new file mode 100644 index 000000000..e64a884cd --- /dev/null +++ b/com/hbm/gui/GUIFusionMultiblock.java @@ -0,0 +1,57 @@ +package com.hbm.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.TileEntityFusionMultiblock; +import com.hbm.blocks.TileEntityReactorMultiblock; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIFusionMultiblock extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_fusion_multiblock.png"); + private TileEntityFusionMultiblock diFurnace; + + public GUIFusionMultiblock(InventoryPlayer invPlayer, TileEntityFusionMultiblock tedf) { + super(new ContainerFusionMultiblock(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 222; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int i = diFurnace.getWaterScaled(88); + drawTexturedModalRect(guiLeft + 8, guiTop + 106 - i, 176, 88 - i, 16, i); + + int j = diFurnace.getCoolantScaled(88); + drawTexturedModalRect(guiLeft + 134, guiTop + 106 - j, 208, 88 - j, 16, j); + + int k = diFurnace.getPowerScaled(88); + drawTexturedModalRect(guiLeft + 26, guiTop + 106 - k, 192, 88 - k, 16, k); + + int l = diFurnace.getHeatScaled(88); + drawTexturedModalRect(guiLeft + 152, guiTop + 106 - l, 224, 88 - l, 16, l); + + if(diFurnace.isRunning()) + drawTexturedModalRect(guiLeft + 80, guiTop + 18, 240, 0, 16, 16); + } +} diff --git a/com/hbm/items/ItemBattery.java b/com/hbm/items/ItemBattery.java index 1d181a890..0c3408711 100644 --- a/com/hbm/items/ItemBattery.java +++ b/com/hbm/items/ItemBattery.java @@ -16,18 +16,12 @@ public class ItemBattery extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - if(itemstack.getItem() != ModItems.fusion_core && itemstack.getItem() != ModItems.factory_core_titanium && itemstack.getItem() != ModItems.factory_core_advanced) + if(itemstack.getItem() != ModItems.fusion_core && itemstack.getItem() != ModItems.factory_core_titanium && itemstack.getItem() != ModItems.factory_core_advanced && itemstack.getItem() != ModItems.energy_core) { list.add("Energy stored: " + ((this.getMaxDamage() - this.getDamage(itemstack)) * 100) + " HE"); } else { - if(this.getDamage(itemstack) != 0) - { - int charge = ((this.getMaxDamage() - this.getDamage(itemstack)) * 100) / this.getMaxDamage(); - charge++; - list.add("Charge: " + charge + "%"); - } else { - list.add("Charge: 100%"); - } + int charge = ((this.getMaxDamage() - this.getDamage(itemstack)) * 100) / this.getMaxDamage(); + list.add("Charge: " + charge + "%"); } } @@ -39,7 +33,7 @@ public class ItemBattery extends Item { return EnumRarity.rare; } - if(this == ModItems.fusion_core || this == ModItems.factory_core_titanium || this == ModItems.factory_core_advanced) + if(this == ModItems.fusion_core || this == ModItems.factory_core_titanium || this == ModItems.factory_core_advanced || this == ModItems.energy_core) { return EnumRarity.uncommon; } diff --git a/com/hbm/items/ItemCell.java b/com/hbm/items/ItemCell.java new file mode 100644 index 000000000..91a9e6f69 --- /dev/null +++ b/com/hbm/items/ItemCell.java @@ -0,0 +1,66 @@ +package com.hbm.items; + +import java.util.Random; + +import com.hbm.blocks.BlockCrashedBomb; +import com.hbm.blocks.LaunchPad; +import com.hbm.entity.EntityNukeExplosionAdvanced; +import com.hbm.explosion.ExplosionParticle; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemCell extends Item { + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) + { + if(world.getBlock(p_77648_4_, p_77648_5_, p_77648_6_) instanceof BlockCrashedBomb) + { + Random rand = new Random(); + int i = rand.nextInt(100); + if(i == 0) + { + if (!world.isRemote) + { + EntityNukeExplosionAdvanced entity0 = new EntityNukeExplosionAdvanced(world); + entity0.posX = p_77648_4_; + entity0.posY = p_77648_5_; + entity0.posZ = p_77648_6_; + entity0.destructionRange = 35; + entity0.speed = 25; + entity0.coefficient = 10.0F; + + world.spawnEntityInWorld(entity0); + ExplosionParticle.spawnMush(world, p_77648_4_, p_77648_5_ - 3, p_77648_6_); + } + } else if(i < 90) + { + //if (!world.isRemote) + { + player.inventory.consumeInventoryItem(ModItems.cell_empty); + + if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.cell_antimatter))) + { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.cell_antimatter, 1, 0), false); + } + } + } else { + //if (!world.isRemote) + { + player.inventory.consumeInventoryItem(ModItems.cell_empty); + + if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.cell_anti_schrabidium))) + { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.cell_anti_schrabidium, 1, 0), false); + } + } + } + return true; + } + return false; + } + +} diff --git a/com/hbm/items/ItemCustomLore.java b/com/hbm/items/ItemCustomLore.java index 7224564bb..66a23d1e8 100644 --- a/com/hbm/items/ItemCustomLore.java +++ b/com/hbm/items/ItemCustomLore.java @@ -299,6 +299,21 @@ public class ItemCustomLore extends Item { list.add("from a reactor will instantly shut"); list.add("it down."); } + + if(this == ModItems.rod_lithium) + { + list.add("Turns into Tritium Rod"); + } + + if(this == ModItems.rod_dual_lithium) + { + list.add("Turns into Dual Tritium Rod"); + } + + if(this == ModItems.rod_quad_lithium) + { + list.add("Turns into Quad Tritium Rod"); + } } @Override diff --git a/com/hbm/items/ItemDesingator.java b/com/hbm/items/ItemDesingator.java index abba93d83..3bec4291a 100644 --- a/com/hbm/items/ItemDesingator.java +++ b/com/hbm/items/ItemDesingator.java @@ -48,6 +48,6 @@ public class ItemDesingator extends Item { } } - return false; + return true; } } diff --git a/com/hbm/items/ItemWand.java b/com/hbm/items/ItemWand.java new file mode 100644 index 000000000..fa6df2864 --- /dev/null +++ b/com/hbm/items/ItemWand.java @@ -0,0 +1,110 @@ +package com.hbm.items; + +import java.util.List; + +import com.hbm.blocks.LaunchPad; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChatComponentText; +import net.minecraft.world.World; + +public class ItemWand extends Item { + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) + { + list.add("§5Creative-only item"); + list.add("§5\"§oDestruction brings creation§5\""); + list.add("(Set positions with right click,"); + list.add("set block with shift-right click!)"); + + if(itemstack.stackTagCompound != null && + !(itemstack.stackTagCompound.getInteger("x") == 0 && + itemstack.stackTagCompound.getInteger("y") == 0 && + itemstack.stackTagCompound.getInteger("z") == 0)) + { + list.add("Pos: " + itemstack.stackTagCompound.getInteger("x") + ", " + itemstack.stackTagCompound.getInteger("y") + ", " + itemstack.stackTagCompound.getInteger("z")); + } else { + list.add("Positions not set!"); + } + if(itemstack.stackTagCompound != null) + list.add("Block saved: " + Block.getBlockById(itemstack.stackTagCompound.getInteger("block")).getUnlocalizedName()); + } + + @Override + public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World p_77648_3_, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) + { + if(p_77648_1_.stackTagCompound == null) + { + p_77648_1_.stackTagCompound = new NBTTagCompound(); + } + + if(p_77648_2_.isSneaking()) + { + p_77648_1_.stackTagCompound.setInteger("block", Block.getIdFromBlock(p_77648_3_.getBlock(p_77648_4_, p_77648_5_, p_77648_6_))); + p_77648_1_.stackTagCompound.setInteger("meta", p_77648_3_.getBlockMetadata(p_77648_4_, p_77648_5_, p_77648_6_)); + if(p_77648_3_.isRemote) + p_77648_2_.addChatMessage(new ChatComponentText("Set block " + Block.getBlockById(p_77648_1_.stackTagCompound.getInteger("block")).getUnlocalizedName())); + } else { + if(p_77648_1_.stackTagCompound.getInteger("x") == 0 && + p_77648_1_.stackTagCompound.getInteger("y") == 0 && + p_77648_1_.stackTagCompound.getInteger("z") == 0) + { + p_77648_1_.stackTagCompound.setInteger("x", p_77648_4_); + p_77648_1_.stackTagCompound.setInteger("y", p_77648_5_); + p_77648_1_.stackTagCompound.setInteger("z", p_77648_6_); + if(p_77648_3_.isRemote) + p_77648_2_.addChatMessage(new ChatComponentText("Position set!")); + } else { + + int x = p_77648_1_.stackTagCompound.getInteger("x"); + int y = p_77648_1_.stackTagCompound.getInteger("y"); + int z = p_77648_1_.stackTagCompound.getInteger("z"); + + p_77648_1_.stackTagCompound.setInteger("x", 0); + p_77648_1_.stackTagCompound.setInteger("y", 0); + p_77648_1_.stackTagCompound.setInteger("z", 0); + + if(!p_77648_3_.isRemote) + { + for(int i = Math.min(x, p_77648_4_); i <= Math.max(x, p_77648_4_); i++) + { + for(int j = Math.min(y, p_77648_5_); j <= Math.max(y, p_77648_5_); j++) + { + for(int k = Math.min(z, p_77648_6_); k <= Math.max(z, p_77648_6_); k++) + { + p_77648_3_.setBlock(i, j, k, Block.getBlockById(p_77648_1_.stackTagCompound.getInteger("block")), p_77648_1_.stackTagCompound.getInteger("meta"), 3); + } + } + } + } + if(p_77648_3_.isRemote) + p_77648_2_.addChatMessage(new ChatComponentText("Selection filled!")); + } + } + + return true; + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + if(stack.stackTagCompound == null) + { + stack.stackTagCompound = new NBTTagCompound(); + } + if(player.isSneaking()) + { + stack.stackTagCompound.setInteger("block", 0); + stack.stackTagCompound.setInteger("meta", 0); + if(world.isRemote) + player.addChatMessage(new ChatComponentText("Set block " + Block.getBlockById(stack.stackTagCompound.getInteger("block")).getUnlocalizedName())); + } + + return stack; + } + +} diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index c7a9918fd..2890369d7 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -54,6 +54,7 @@ public class ModItems { public static Item nugget_mox_fuel; public static Item nugget_schrabidium_fuel; public static Item ingot_advanced_alloy; + public static Item lithium; public static Item nugget_uranium; public static Item nugget_u235; @@ -103,6 +104,8 @@ public class ModItems { public static Item wire_copper; public static Item wire_gold; public static Item wire_schrabidium; + public static Item wire_advanced_alloy; + public static Item coil_advanced_alloy; public static Item circuit_aluminium; public static Item circuit_copper; @@ -156,9 +159,14 @@ public class ModItems { public static Item cell_empty; public static Item cell_uf6; public static Item cell_puf6; - public static Item cell_antimatter; public static Item cell_deuterium; + public static Item cell_tritium; public static Item cell_sas3; + public static Item cell_antimatter; + public static Item cell_anti_schrabidium; + public static Item inf_water; + public static Item inf_deuterium; + public static Item inf_tritium; public static Item canister_empty; public static Item canister_fuel; @@ -249,6 +257,13 @@ public class ModItems { public static Item rod_dual_waste; public static Item rod_quad_waste; + public static Item rod_lithium; + public static Item rod_dual_lithium; + public static Item rod_quad_lithium; + public static Item rod_tritium; + public static Item rod_dual_tritium; + public static Item rod_quad_tritium; + public static Item test_nuke_igniter; public static Item test_nuke_propellant; public static Item test_nuke_tier1_shielding; @@ -356,6 +371,7 @@ public class ModItems { public static Item battery_creative; public static Item fusion_core; + public static Item energy_core; public static Item fuse; public static Item factory_core_titanium; @@ -398,6 +414,8 @@ public class ModItems { public static Item hazmat_plate; public static Item hazmat_legs; public static Item hazmat_boots; + + public static Item wand; public static Item nuke_starter_kit; public static Item nuke_advanced_kit; @@ -484,6 +502,9 @@ public class ModItems { plate_copper = new Item().setUnlocalizedName("plate_copper").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":plate_copper"); plate_gold = new Item().setUnlocalizedName("plate_gold").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":plate_gold"); plate_advanced_alloy = new Item().setUnlocalizedName("plate_advanced_alloy").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":plate_advanced_alloy"); + lithium = new Item().setUnlocalizedName("lithium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":lithium"); + wire_advanced_alloy = new Item().setUnlocalizedName("wire_advanced_alloy").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":wire_advanced_alloy"); + coil_advanced_alloy = new Item().setUnlocalizedName("coil_advanced_alloy").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":coil_advanced_alloy"); nugget_uranium = new Item().setUnlocalizedName("nugget_uranium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":nugget_uranium"); nugget_u235 = new Item().setUnlocalizedName("nugget_u235").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":nugget_uranium"); @@ -574,12 +595,17 @@ public class ModItems { pellet_rtg = new ItemCustomLore().setUnlocalizedName("pellet_rtg").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":pellet_rtg"); - cell_empty = new Item().setUnlocalizedName("cell_empty").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":cell_empty"); + cell_empty = new ItemCell().setUnlocalizedName("cell_empty").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":cell_empty"); cell_uf6 = new Item().setUnlocalizedName("cell_uf6").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_uf6"); cell_puf6 = new Item().setUnlocalizedName("cell_puf6").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_puf6"); cell_antimatter = new Item().setUnlocalizedName("cell_antimatter").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_antimatter"); cell_deuterium = new Item().setUnlocalizedName("cell_deuterium").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_deuterium"); + cell_tritium = new Item().setUnlocalizedName("cell_tritium").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_tritium"); cell_sas3 = new ItemCustomLore().setUnlocalizedName("cell_sas3").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_sas3"); + cell_anti_schrabidium = new Item().setUnlocalizedName("cell_anti_schrabidium").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_anti_schrabidium"); + inf_water = new Item().setUnlocalizedName("inf_water").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":inf_water"); + inf_deuterium = new Item().setUnlocalizedName("inf_deuterium").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":inf_deuterium"); + inf_tritium = new Item().setUnlocalizedName("inf_tritium").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":inf_tritium"); canister_empty = new ItemCustomLore().setUnlocalizedName("canister_empty").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":canister_empty"); canister_fuel = new ItemCustomLore().setUnlocalizedName("canister_fuel").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_fuel"); @@ -644,7 +670,7 @@ public class ModItems { rod_dual_schrabidium_fuel = new ItemFuelRod().setUnlocalizedName("rod_dual_schrabidium_fuel").setMaxStackSize(1).setMaxDamage(5000000).setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_schrabidium_fuel"); rod_quad_schrabidium_fuel = new ItemFuelRod().setUnlocalizedName("rod_quad_schrabidium_fuel").setMaxStackSize(1).setMaxDamage(10000000).setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_schrabidium_fuel"); - rod_water= new ItemCustomLore().setUnlocalizedName("rod_water").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_water"); + rod_water = new ItemCustomLore().setUnlocalizedName("rod_water").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_water"); rod_dual_water = new ItemCustomLore().setUnlocalizedName("rod_dual_water").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_water"); rod_quad_water = new ItemCustomLore().setUnlocalizedName("rod_quad_water").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_water"); @@ -652,6 +678,14 @@ public class ModItems { rod_dual_coolant = new ItemCustomLore().setUnlocalizedName("rod_dual_coolant").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_coolant"); rod_quad_coolant = new ItemCustomLore().setUnlocalizedName("rod_quad_coolant").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_coolant"); + rod_lithium = new ItemCustomLore().setUnlocalizedName("rod_lithium").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_lithium"); + rod_dual_lithium = new ItemCustomLore().setUnlocalizedName("rod_dual_lithium").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_lithium"); + rod_quad_lithium = new ItemCustomLore().setUnlocalizedName("rod_quad_lithium").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_lithium"); + + rod_tritium = new ItemCustomLore().setUnlocalizedName("rod_tritium").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_tritium"); + rod_dual_tritium = new ItemCustomLore().setUnlocalizedName("rod_dual_tritium").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_tritium"); + rod_quad_tritium = new ItemCustomLore().setUnlocalizedName("rod_quad_tritium").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_tritium"); + trinitite = new Item().setUnlocalizedName("trinitite").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":trinitite_new"); nuclear_waste = new Item().setUnlocalizedName("nuclear_waste").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":nuclear_waste"); rod_uranium_fuel_depleted = new Item().setUnlocalizedName("rod_uranium_fuel_depleted").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_uranium_fuel_depleted"); @@ -766,11 +800,14 @@ public class ModItems { battery_creative = new Item().setUnlocalizedName("battery_creative").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":battery_creative"); fusion_core = new ItemBattery(5000).setUnlocalizedName("fusion_core").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fusion_core"); + energy_core = new ItemBattery(5000).setUnlocalizedName("energy_core").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":energy_core"); fuse = new ItemCustomLore().setUnlocalizedName("fuse").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fuse"); factory_core_titanium = new ItemBattery(70400).setUnlocalizedName("factory_core_titanium").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":factory_core_titanium"); factory_core_advanced = new ItemBattery(41600).setUnlocalizedName("factory_core_advanced").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":factory_core_advanced"); + wand = new ItemWand().setUnlocalizedName("wand").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setFull3D().setTextureName(RefStrings.MODID + ":wand"); + nuke_starter_kit = new ItemStarterKit().setUnlocalizedName("nuke_starter_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":nuke_starter_kit"); nuke_advanced_kit = new ItemStarterKit().setUnlocalizedName("nuke_advanced_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":nuke_advanced_kit"); nuke_commercially_kit = new ItemStarterKit().setUnlocalizedName("nuke_commercially_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":nuke_commercially_kit"); @@ -884,6 +921,7 @@ public class ModItems { GameRegistry.registerItem(ingot_schrabidium_fuel, ingot_schrabidium_fuel.getUnlocalizedName()); //Dusts & Other + GameRegistry.registerItem(lithium, lithium.getUnlocalizedName()); GameRegistry.registerItem(sulfur, sulfur.getUnlocalizedName()); GameRegistry.registerItem(niter, niter.getUnlocalizedName()); GameRegistry.registerItem(fluorite, fluorite.getUnlocalizedName()); @@ -930,12 +968,14 @@ public class ModItems { GameRegistry.registerItem(wire_copper, wire_copper.getUnlocalizedName()); GameRegistry.registerItem(wire_tungsten, wire_tungsten.getUnlocalizedName()); GameRegistry.registerItem(wire_red_copper, wire_red_copper.getUnlocalizedName()); + GameRegistry.registerItem(wire_advanced_alloy, wire_advanced_alloy.getUnlocalizedName()); GameRegistry.registerItem(wire_gold, wire_gold.getUnlocalizedName()); GameRegistry.registerItem(wire_schrabidium, wire_schrabidium.getUnlocalizedName()); //Parts GameRegistry.registerItem(coil_copper, coil_copper.getUnlocalizedName()); GameRegistry.registerItem(coil_copper_torus, coil_copper_torus.getUnlocalizedName()); + GameRegistry.registerItem(coil_advanced_alloy, coil_advanced_alloy.getUnlocalizedName()); GameRegistry.registerItem(coil_tungsten, coil_tungsten.getUnlocalizedName()); GameRegistry.registerItem(tank_steel, tank_steel.getUnlocalizedName()); GameRegistry.registerItem(motor, motor.getUnlocalizedName()); @@ -1010,8 +1050,15 @@ public class ModItems { GameRegistry.registerItem(cell_uf6, cell_uf6.getUnlocalizedName()); GameRegistry.registerItem(cell_puf6, cell_puf6.getUnlocalizedName()); GameRegistry.registerItem(cell_deuterium, cell_deuterium.getUnlocalizedName()); + GameRegistry.registerItem(cell_tritium, cell_tritium.getUnlocalizedName()); GameRegistry.registerItem(cell_sas3, cell_sas3.getUnlocalizedName()); GameRegistry.registerItem(cell_antimatter, cell_antimatter.getUnlocalizedName()); + GameRegistry.registerItem(cell_anti_schrabidium, cell_anti_schrabidium.getUnlocalizedName()); + + //Infinite Tanks + GameRegistry.registerItem(inf_water, inf_water.getUnlocalizedName()); + GameRegistry.registerItem(inf_deuterium, inf_deuterium.getUnlocalizedName()); + GameRegistry.registerItem(inf_tritium, inf_tritium.getUnlocalizedName()); //Canisters GameRegistry.registerItem(canister_empty, canister_empty.getUnlocalizedName()); @@ -1024,6 +1071,7 @@ public class ModItems { GameRegistry.registerItem(battery_schrabidium, battery_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(battery_creative, battery_creative.getUnlocalizedName()); GameRegistry.registerItem(fusion_core, fusion_core.getUnlocalizedName()); + GameRegistry.registerItem(energy_core, energy_core.getUnlocalizedName()); GameRegistry.registerItem(factory_core_titanium, factory_core_titanium.getUnlocalizedName()); GameRegistry.registerItem(factory_core_advanced, factory_core_advanced.getUnlocalizedName()); GameRegistry.registerItem(fuse, fuse.getUnlocalizedName()); @@ -1097,6 +1145,14 @@ public class ModItems { GameRegistry.registerItem(rod_dual_coolant, rod_dual_coolant.getUnlocalizedName()); GameRegistry.registerItem(rod_quad_coolant, rod_quad_coolant.getUnlocalizedName()); + GameRegistry.registerItem(rod_lithium, rod_lithium.getUnlocalizedName()); + GameRegistry.registerItem(rod_dual_lithium, rod_dual_lithium.getUnlocalizedName()); + GameRegistry.registerItem(rod_quad_lithium, rod_quad_lithium.getUnlocalizedName()); + + GameRegistry.registerItem(rod_tritium, rod_tritium.getUnlocalizedName()); + GameRegistry.registerItem(rod_dual_tritium, rod_dual_tritium.getUnlocalizedName()); + GameRegistry.registerItem(rod_quad_tritium, rod_quad_tritium.getUnlocalizedName()); + //Nuclear Waste GameRegistry.registerItem(rod_uranium_fuel_depleted, rod_uranium_fuel_depleted.getUnlocalizedName()); GameRegistry.registerItem(rod_dual_uranium_fuel_depleted, rod_dual_uranium_fuel_depleted.getUnlocalizedName()); @@ -1261,6 +1317,9 @@ public class ModItems { GameRegistry.registerItem(watch, watch.getUnlocalizedName()); GameRegistry.registerItem(mask_of_infamy, mask_of_infamy.getUnlocalizedName()); + //OP Tools + GameRegistry.registerItem(wand, wand.getUnlocalizedName()); + //Kits GameRegistry.registerItem(nuke_starter_kit, nuke_starter_kit.getUnlocalizedName()); GameRegistry.registerItem(nuke_advanced_kit, nuke_advanced_kit.getUnlocalizedName()); diff --git a/com/hbm/lib/HbmWorldGen.java b/com/hbm/lib/HbmWorldGen.java index 6d6b9715d..78bc74305 100644 --- a/com/hbm/lib/HbmWorldGen.java +++ b/com/hbm/lib/HbmWorldGen.java @@ -7,6 +7,7 @@ import com.hbm.world.Antenna; import com.hbm.world.Bunker; import com.hbm.world.CrashedVertibird; import com.hbm.world.DesertAtom001; +import com.hbm.world.Dud; import com.hbm.world.Factory; import com.hbm.world.LibraryDungeon; import com.hbm.world.Radio01; @@ -262,6 +263,15 @@ public class HbmWorldGen implements IWorldGenerator { new Factory().generate(world, rand, x, y, z); } + + if(rand.nextInt(500) == 0) + { + int x = i + rand.nextInt(16); + int z = j + rand.nextInt(16); + int y = world.getHeightValue(x, z); + + new Dud().generate(world, rand, x, y, z); + } } diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index e267bdcf9..c7023ab9e 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -6,6 +6,8 @@ import net.minecraftforge.client.MinecraftForgeClient; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.TileEntityBombMulti; +import com.hbm.blocks.TileEntityCable; +import com.hbm.blocks.TileEntityCrashedBomb; import com.hbm.blocks.TileEntityDecoBlock; import com.hbm.blocks.TileEntityDecoBlockAlt; import com.hbm.blocks.TileEntityDecoBlockAltF; @@ -94,7 +96,9 @@ import com.hbm.render.ItemRenderTestContainer; import com.hbm.render.ModEffectRenderer; import com.hbm.render.RenderBigNuke; import com.hbm.render.RenderBombMulti; +import com.hbm.render.RenderCable; import com.hbm.render.RenderCentrifuge; +import com.hbm.render.RenderCrashedBomb; import com.hbm.render.RenderDecoBlock; import com.hbm.render.RenderDecoBlockAlt; import com.hbm.render.RenderFlare; @@ -191,6 +195,8 @@ public class ClientProxy extends ServerProxy RenderingRegistry.registerEntityRenderingHandler(EntityTestMissile.class, new RenderTestMissile()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeFleija.class, new RenderNukeFleija()); + + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCrashedBomb.class, new RenderCrashedBomb()); RenderingRegistry.registerEntityRenderingHandler(EntityNukeCloudSmall.class, new RenderSmallNukeAlt()); RenderingRegistry.registerEntityRenderingHandler(EntityNukeCloudBig.class, new RenderBigNuke()); @@ -223,6 +229,8 @@ public class ClientProxy extends ServerProxy ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchPad.class, new RenderLaunchPadTier1()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCable.class, new RenderCable()); + RenderingRegistry.registerEntityRenderingHandler(EntityMissileGeneric.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileAntiBallistic.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileIncendiary.class, new RenderMissileGeneric()); diff --git a/com/hbm/main/GUIHandler.java b/com/hbm/main/GUIHandler.java index 185f4241e..24a384412 100644 --- a/com/hbm/main/GUIHandler.java +++ b/com/hbm/main/GUIHandler.java @@ -5,6 +5,7 @@ import com.hbm.blocks.TileEntityBombMulti; import com.hbm.blocks.TileEntityCoreAdvanced; import com.hbm.blocks.TileEntityCoreTitanium; import com.hbm.blocks.TileEntityDiFurnace; +import com.hbm.blocks.TileEntityFusionMultiblock; import com.hbm.blocks.TileEntityLaunchPad; import com.hbm.blocks.TileEntityMachineBattery; import com.hbm.blocks.TileEntityMachineCoal; @@ -32,6 +33,7 @@ import com.hbm.gui.ContainerCentrifuge; import com.hbm.gui.ContainerCoreAdvanced; import com.hbm.gui.ContainerCoreTitanium; import com.hbm.gui.ContainerElectricFurnace; +import com.hbm.gui.ContainerFusionMultiblock; import com.hbm.gui.ContainerGenerator; import com.hbm.gui.ContainerLaunchPadTier1; import com.hbm.gui.ContainerMachineBattery; @@ -54,6 +56,7 @@ import com.hbm.gui.ContainerUF6Tank; import com.hbm.gui.GUIBombMulti; import com.hbm.gui.GUICoreAdvanced; import com.hbm.gui.GUICoreTitanium; +import com.hbm.gui.GUIFusionMultiblock; import com.hbm.gui.GUILaunchPadTier1; import com.hbm.gui.GUIMachineBattery; import com.hbm.gui.GUIMachineCentrifuge; @@ -290,6 +293,14 @@ public class GUIHandler implements IGuiHandler { return new ContainerReactorMultiblock(player.inventory, (TileEntityReactorMultiblock) entity); } } + + case ModBlocks.guiID_fusion_multiblock: + { + if(entity instanceof TileEntityFusionMultiblock) + { + return new ContainerFusionMultiblock(player.inventory, (TileEntityFusionMultiblock) entity); + } + } } return null; } @@ -502,6 +513,14 @@ public class GUIHandler implements IGuiHandler { return new GUIReactorMultiblock(player.inventory, (TileEntityReactorMultiblock) entity); } } + + case ModBlocks.guiID_fusion_multiblock: + { + if(entity instanceof TileEntityFusionMultiblock) + { + return new GUIFusionMultiblock(player.inventory, (TileEntityFusionMultiblock) entity); + } + } } } return null; diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index aeef6ad84..6ea7e6e95 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -19,14 +19,17 @@ import cpw.mods.fml.common.ModMetadata; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.TileEntityBombMulti; +import com.hbm.blocks.TileEntityCable; import com.hbm.blocks.TileEntityCoreAdvanced; import com.hbm.blocks.TileEntityCoreTitanium; +import com.hbm.blocks.TileEntityCrashedBomb; import com.hbm.blocks.TileEntityDecoBlock; import com.hbm.blocks.TileEntityDecoPoleSatelliteReceiver; import com.hbm.blocks.TileEntityDecoPoleTop; import com.hbm.blocks.TileEntityDecoSteelPoles; import com.hbm.blocks.TileEntityDecoTapeRecorder; import com.hbm.blocks.TileEntityDiFurnace; +import com.hbm.blocks.TileEntityFusionMultiblock; import com.hbm.blocks.TileEntityLaunchPad; import com.hbm.blocks.TileEntityMachineBattery; import com.hbm.blocks.TileEntityMachineCoal; @@ -206,6 +209,9 @@ public class MainRegistry GameRegistry.registerTileEntity(TileEntityCoreTitanium.class, "tileentity_core_titanium"); GameRegistry.registerTileEntity(TileEntityCoreAdvanced.class, "tileentity_core_advanced"); GameRegistry.registerTileEntity(TileEntityReactorMultiblock.class, "tileentity_reactor_multiblock"); + GameRegistry.registerTileEntity(TileEntityFusionMultiblock.class, "tileentity_fusion_multiblock"); + GameRegistry.registerTileEntity(TileEntityCrashedBomb.class, "tileentity_crashed_balefire"); + GameRegistry.registerTileEntity(TileEntityCable.class, "tileentity_cable"); EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true); diff --git a/com/hbm/render/RenderCable.java b/com/hbm/render/RenderCable.java new file mode 100644 index 000000000..6f33b15df --- /dev/null +++ b/com/hbm/render/RenderCable.java @@ -0,0 +1,77 @@ +package com.hbm.render; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; + +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.util.ForgeDirection; + +public class RenderCable extends TileEntitySpecialRenderer { + + public ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/blocks/red_cable.png"); + float pixel = 1F/16F; + float textureP = 1F / 32F; + + @Override + public void renderTileEntityAt(TileEntity tileentity, double offsetX, double offsetY, double offsetZ, float f) { + GL11.glTranslated(offsetX, offsetY, offsetZ); + GL11.glDisable(GL11.GL_LIGHTING); + this.bindTexture(texture); + drawCore(tileentity); + drawConnection(ForgeDirection.UP); + GL11.glTranslated(-offsetX, -offsetY, -offsetZ); + GL11.glEnable(GL11.GL_LIGHTING); + + } + + public void drawCore(TileEntity tileentity) { + Tessellator tesseract = Tessellator.instance; + tesseract.startDrawingQuads(); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); + + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); + + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); + + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); + + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); + + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); + tesseract.draw(); + } + + public void drawConnection(ForgeDirection direction) + { + if(direction.equals(ForgeDirection.UP)) + { + + } + + Tessellator tesseract = Tessellator.instance; + tesseract.draw(); + } + +} diff --git a/com/hbm/render/RenderCrashedBomb.java b/com/hbm/render/RenderCrashedBomb.java new file mode 100644 index 000000000..a1ae3ed2f --- /dev/null +++ b/com/hbm/render/RenderCrashedBomb.java @@ -0,0 +1,50 @@ +package com.hbm.render; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +public class RenderCrashedBomb extends TileEntitySpecialRenderer { + + private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/BalefireCrashed.obj"); + private IModelCustom manModel; + private ResourceLocation manTexture; + + public RenderCrashedBomb() + { + manModel = AdvancedModelLoader.loadModel(objTesterModelRL); + manTexture = new ResourceLocation(RefStrings.MODID, "textures/models/BalefireCrashed.png"); + } + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_LIGHTING); + switch(tileEntity.getBlockMetadata()) + { + case 5: + GL11.glRotatef(90, 0F, 1F, 0F); break; + case 2: + GL11.glRotatef(180, 0F, 1F, 0F); break; + case 4: + GL11.glRotatef(270, 0F, 1F, 0F); break; + case 3: + GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + bindTexture(manTexture); + manModel.renderAll(); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopMatrix(); + } +} diff --git a/com/hbm/world/Dud.java b/com/hbm/world/Dud.java new file mode 100644 index 000000000..18c7c65a5 --- /dev/null +++ b/com/hbm/world/Dud.java @@ -0,0 +1,92 @@ +package com.hbm.world; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.HbmChestContents; +import com.hbm.main.MainRegistry; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; +import net.minecraft.tileentity.TileEntityChest; +import net.minecraft.util.WeightedRandomChestContent; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class Dud extends WorldGenerator +{ + Block Block1 = ModBlocks.steel_scaffold; + Block Block2 = ModBlocks.machine_difurnace_off; + Block Block3 = ModBlocks.factory_titanium_core; + Block Block4 = ModBlocks.steel_wall; + Block Block5 = ModBlocks.reinforced_light; + + protected Block[] GetValidSpawnBlocks() + { + return new Block[] + { + Blocks.grass, + Blocks.dirt, + Blocks.stone, + Blocks.sand, + Blocks.sandstone, + }; + } + + public boolean LocationIsValidSpawn(World world, int x, int y, int z) + { + + Block checkBlock = world.getBlock(x, y - 1, z); + Block blockAbove = world.getBlock(x, y , z); + Block blockBelow = world.getBlock(x, y - 2, z); + + for (Block i : GetValidSpawnBlocks()) + { + if (blockAbove != Blocks.air) + { + return false; + } + if (checkBlock == i) + { + return true; + } + else if (checkBlock == Blocks.snow_layer && blockBelow == i) + { + return true; + } + else if (checkBlock.getMaterial() == Material.plants && blockBelow == i) + { + return true; + } + } + return false; + } + + public boolean generate(World world, Random rand, int x, int y, int z) + { + int i = rand.nextInt(1); + + if(i == 0) + { + generate_r0(world, rand, x, y, z); + } + + return true; + + } + + public boolean generate_r0(World world, Random rand, int x, int y, int z) + { + if(!LocationIsValidSpawn(world, x, y, z)) + { + return false; + } + + world.setBlock(x, y, z, ModBlocks.crashed_balefire, rand.nextInt(4) + 2, 3); + if(MainRegistry.enableDebugMode) + System.out.print("[Debug] Successfully spawned dud at " + x + " " + y +" " + z + "\n"); + return true; + + } +}