diff --git a/assets/hbm/textures/items/ammo_556.png b/assets/hbm/textures/items/ammo_556.png new file mode 100644 index 000000000..6ced441aa Binary files /dev/null and b/assets/hbm/textures/items/ammo_556.png differ diff --git a/assets/hbm/textures/items/ammo_556_flechette.png b/assets/hbm/textures/items/ammo_556_flechette.png new file mode 100644 index 000000000..decf6027f Binary files /dev/null and b/assets/hbm/textures/items/ammo_556_flechette.png differ diff --git a/assets/hbm/textures/items/ammo_556_k.png b/assets/hbm/textures/items/ammo_556_k.png new file mode 100644 index 000000000..86bf85767 Binary files /dev/null and b/assets/hbm/textures/items/ammo_556_k.png differ diff --git a/assets/hbm/textures/items/ammo_556_tracer.png b/assets/hbm/textures/items/ammo_556_tracer.png new file mode 100644 index 000000000..aab4e6bbd Binary files /dev/null and b/assets/hbm/textures/items/ammo_556_tracer.png differ diff --git a/assets/hbm/textures/items/rod_dual_neptunium.png b/assets/hbm/textures/items/rod_dual_neptunium.png index 5c5d4143e..12b8f0742 100644 Binary files a/assets/hbm/textures/items/rod_dual_neptunium.png and b/assets/hbm/textures/items/rod_dual_neptunium.png differ diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index f42d091dd..229e5beeb 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -929,7 +929,7 @@ public class ModBlocks { meteor_brick_mossy = new BlockGeneric(Material.rock).setBlockName("meteor_brick_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_mossy"); meteor_brick_cracked = new BlockGeneric(Material.rock).setBlockName("meteor_brick_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_cracked"); meteor_brick_chiseled = new BlockGeneric(Material.rock).setBlockName("meteor_brick_chiseled").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_chiseled"); - meteor_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":meteor_pillar_top").setBlockName("meteor_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_pillar_top"); + meteor_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":meteor_pillar_top").setBlockName("meteor_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_pillar"); meteor_spawner = new BlockCybercrab(Material.rock).setBlockName("meteor_spawner").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F); meteor_battery = new BlockPillar(Material.rock, RefStrings.MODID + ":meteor_power").setBlockName("meteor_battery").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_spawner_side"); diff --git a/com/hbm/inventory/container/ContainerCore.java b/com/hbm/inventory/container/ContainerCore.java index 6a6b838e3..08bf2d0a5 100644 --- a/com/hbm/inventory/container/ContainerCore.java +++ b/com/hbm/inventory/container/ContainerCore.java @@ -45,12 +45,16 @@ public class ContainerCore extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if (par2 <= 2) { - if (!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) + if (par2 <= nukeBoy.getSizeInventory() - 1) { + if (!this.mergeItemStack(var5, nukeBoy.getSizeInventory(), this.inventorySlots.size(), true)) { return null; } } + else if (!this.mergeItemStack(var5, 0, nukeBoy.getSizeInventory(), false)) + { + return null; + } if (var5.stackSize == 0) { diff --git a/com/hbm/inventory/gui/GUINukeMan.java b/com/hbm/inventory/gui/GUINukeMan.java index 43297a71d..cd5040b18 100644 --- a/com/hbm/inventory/gui/GUINukeMan.java +++ b/com/hbm/inventory/gui/GUINukeMan.java @@ -14,7 +14,7 @@ import com.hbm.tileentity.bomb.TileEntityNukeMan; public class GUINukeMan extends GuiContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/fatManSchematic.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/fatManSchematic.png"); private TileEntityNukeMan testNuke; public GUINukeMan(InventoryPlayer invPlayer, TileEntityNukeMan tedf) { diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index 97236085e..e524c405f 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -56,6 +56,7 @@ import com.hbm.main.MainRegistry; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Items; +import net.minecraft.item.EnumRarity; import net.minecraft.item.Item; import net.minecraft.item.Item.ToolMaterial; import net.minecraft.item.ItemArmor.ArmorMaterial; @@ -2599,9 +2600,9 @@ public class ModItems { rod_schrabidium_fuel_depleted = new ItemRadioactive(40F, true).setUnlocalizedName("rod_schrabidium_fuel_depleted").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_schrabidium_fuel_depleted"); rod_dual_schrabidium_fuel_depleted = new ItemRadioactive(80F, true).setUnlocalizedName("rod_dual_schrabidium_fuel_depleted").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_schrabidium_fuel_depleted"); rod_quad_schrabidium_fuel_depleted = new ItemRadioactive(160F, true).setUnlocalizedName("rod_quad_schrabidium_fuel_depleted").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_schrabidium_fuel_depleted"); - rod_waste = new ItemRadioactive(15F).setUnlocalizedName("rod_waste").setMaxStackSize(1).setCreativeTab(null).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_waste"); - rod_dual_waste = new ItemRadioactive(30F).setUnlocalizedName("rod_dual_waste").setMaxStackSize(1).setCreativeTab(null).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_waste"); - rod_quad_waste = new ItemRadioactive(60F).setUnlocalizedName("rod_quad_waste").setMaxStackSize(1).setCreativeTab(null).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_waste"); + rod_waste = new ItemRadioactive(15F).setUnlocalizedName("rod_waste").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_waste"); + rod_dual_waste = new ItemRadioactive(30F).setUnlocalizedName("rod_dual_waste").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_waste"); + rod_quad_waste = new ItemRadioactive(60F).setUnlocalizedName("rod_quad_waste").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_waste"); pellet_cluster = new ItemCustomLore().setUnlocalizedName("pellet_cluster").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellet_cluster"); powder_fire = new ItemCustomLore().setUnlocalizedName("powder_fire").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_red_phosphorus"); @@ -3401,28 +3402,32 @@ public class ModItems { schrabidium_sword = new ItemToolAbility(150, 0, MainRegistry.tMatSchrab, EnumToolType.SWORD) .addHitAbility(new WeaponAbility.RadiationAbility(50F)) - .addHitAbility(new WeaponAbility.VampireAbility(2F)).setUnlocalizedName("schrabidium_sword").setTextureName(RefStrings.MODID + ":schrabidium_sword"); + .addHitAbility(new WeaponAbility.VampireAbility(2F)) + .setRarity(EnumRarity.rare).setUnlocalizedName("schrabidium_sword").setTextureName(RefStrings.MODID + ":schrabidium_sword"); schrabidium_pickaxe = new ItemToolAbility(20, 0, MainRegistry.tMatSchrab, EnumToolType.PICKAXE) .addHitAbility(new WeaponAbility.RadiationAbility(15F)) .addBreakAbility(new ToolAbility.HammerAbility(2)) .addBreakAbility(new ToolAbility.RecursionAbility(10)) .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.ShredderAbility()).setUnlocalizedName("schrabidium_pickaxe").setTextureName(RefStrings.MODID + ":schrabidium_pickaxe"); + .addBreakAbility(new ToolAbility.ShredderAbility()) + .setRarity(EnumRarity.rare).setUnlocalizedName("schrabidium_pickaxe").setTextureName(RefStrings.MODID + ":schrabidium_pickaxe"); schrabidium_axe = new ItemToolAbility(25, 0, MainRegistry.tMatSchrab, EnumToolType.AXE) .addHitAbility(new WeaponAbility.RadiationAbility(15F)) .addBreakAbility(new ToolAbility.HammerAbility(2)) .addBreakAbility(new ToolAbility.RecursionAbility(10)) .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.ShredderAbility()).setUnlocalizedName("schrabidium_axe").setTextureName(RefStrings.MODID + ":schrabidium_axe"); + .addBreakAbility(new ToolAbility.ShredderAbility()) + .setRarity(EnumRarity.rare).setUnlocalizedName("schrabidium_axe").setTextureName(RefStrings.MODID + ":schrabidium_axe"); schrabidium_shovel = new ItemToolAbility(15, 0, MainRegistry.tMatSchrab, EnumToolType.SHOVEL) .addHitAbility(new WeaponAbility.RadiationAbility(15F)) .addBreakAbility(new ToolAbility.HammerAbility(2)) .addBreakAbility(new ToolAbility.RecursionAbility(10)) .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.ShredderAbility()).setUnlocalizedName("schrabidium_shovel").setTextureName(RefStrings.MODID + ":schrabidium_shovel"); + .addBreakAbility(new ToolAbility.ShredderAbility()) + .setRarity(EnumRarity.rare).setUnlocalizedName("schrabidium_shovel").setTextureName(RefStrings.MODID + ":schrabidium_shovel"); schrabidium_hoe = new HoeSchrabidium(MainRegistry.tMatSchrab).setUnlocalizedName("schrabidium_hoe").setTextureName(RefStrings.MODID + ":schrabidium_hoe"); diff --git a/com/hbm/items/tool/ItemToolAbility.java b/com/hbm/items/tool/ItemToolAbility.java index f814f102a..11a9eed3e 100644 --- a/com/hbm/items/tool/ItemToolAbility.java +++ b/com/hbm/items/tool/ItemToolAbility.java @@ -170,8 +170,6 @@ public class ItemToolAbility extends ItemTool { return multimap; } - //that's slimelad's code - //creative commons 3 and all that jazz public void breakExtraBlock(World world, int x, int y, int z, EntityPlayer playerEntity, int refX, int refY, int refZ) { if (world.isAirBlock(x, y, z)) diff --git a/com/hbm/items/weapon/ItemGunBase.java b/com/hbm/items/weapon/ItemGunBase.java index 8734fac34..6f6816a21 100644 --- a/com/hbm/items/weapon/ItemGunBase.java +++ b/com/hbm/items/weapon/ItemGunBase.java @@ -62,7 +62,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon { if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT && world.isRemote) { updateClient(stack, world, (EntityPlayer)entity, slot, isCurrentItem); - } else if(isCurrentItem) { + } else { updateServer(stack, world, (EntityPlayer)entity, slot, isCurrentItem); } } @@ -124,7 +124,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon { } } else { - if(left) { + /*if(left) { PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 0)); m1 = false; endActionClient(stack, world, entity, true); @@ -133,7 +133,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon { PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 1)); m2 = false; endActionClient(stack, world, entity, false); - } + }*/ } } @@ -141,12 +141,19 @@ public class ItemGunBase extends Item implements IHoldableWeapon { if(getDelay(stack) > 0 && isCurrentItem) setDelay(stack, getDelay(stack) - 1); + + if(getIsMouseDown(stack) && !(player.getHeldItem() == stack)) { + setIsMouseDown(stack, false); + } + + if(getIsAltDown(stack) && !isCurrentItem) { + setIsAltDown(stack, false); + } if(MainRegistry.enableGuns && mainConfig.firingMode == 1 && getIsMouseDown(stack) && tryShoot(stack, world, player, isCurrentItem)) { fire(stack, world, player); setDelay(stack, mainConfig.rateOfFire); - //setMag(stack, getMag(stack) - 1); useUpAmmo(player, stack); } diff --git a/com/hbm/lib/RefStrings.java b/com/hbm/lib/RefStrings.java index 74dd80ecc..295c719a5 100644 --- a/com/hbm/lib/RefStrings.java +++ b/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (3515)"; + public static final String VERSION = "1.0.27 BETA (3519)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index cf5851ab1..15e538cf3 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -404,9 +404,9 @@ public class CraftingManager { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_mox_fuel, 24), new Object[] { ModItems.rod_quad_mox_fuel }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_schrabidium_fuel, 24), new Object[] { ModItems.rod_quad_schrabidium_fuel }); - //GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nuclear_waste, 2), new Object[] { ModItems.rod_waste }); - //GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nuclear_waste, 4), new Object[] { ModItems.rod_dual_waste }); - //GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nuclear_waste, 8), new Object[] { ModItems.rod_quad_waste }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nuclear_waste, 1), new Object[] { ModItems.rod_waste }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nuclear_waste, 2), new Object[] { ModItems.rod_dual_waste }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nuclear_waste, 4), new Object[] { ModItems.rod_quad_waste }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_uranium_hot, 1), new Object[] { ModItems.rod_uranium_fuel_depleted }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_uranium_hot, 2), new Object[] { ModItems.rod_dual_uranium_fuel_depleted }); @@ -533,6 +533,7 @@ public class CraftingManager { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.missile_schrabidium, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.grenade_aschrab }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.missile_schrabidium, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.cell_sas3, ModItems.circuit_targeting_tier4 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.missile_emp, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModBlocks.emp_bomb, ModItems.circuit_targeting_tier3 }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.missile_anti_ballistic, 1), new Object[] { ModItems.missile_generic, ModItems.circuit_targeting_tier3 }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_difurnace_off), 1), new Object[] { "T T", "PHP", "TFT", 'T', "ingotTungsten", 'P', ModItems.board_copper, 'H', Blocks.hopper, 'F', Blocks.furnace })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_uf6_tank), 1), new Object[] { "WTW", "WTW", "SRS", 'S', "plateIron", 'W', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'W', ModItems.coil_tungsten,'R', "ingotRedstoneAlloy" })); diff --git a/com/hbm/main/ModEventHandler.java b/com/hbm/main/ModEventHandler.java index d16a0d46c..33bdfdc3c 100644 --- a/com/hbm/main/ModEventHandler.java +++ b/com/hbm/main/ModEventHandler.java @@ -6,6 +6,8 @@ import java.util.ArrayList; import java.util.List; import java.util.Random; +import org.apache.commons.lang3.math.NumberUtils; + import com.hbm.blocks.ModBlocks; import com.hbm.entity.missile.EntityMissileBaseAdvanced; import com.hbm.entity.mob.EntityNuclearCreeper; @@ -39,6 +41,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; import net.minecraft.item.Item; +import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; @@ -466,9 +469,9 @@ public class ModEventHandler if((helmet != null || noHelmet) && plate != null && legs != null && boots != null) { - if((noHelmet || chestplate.getArmorMaterial() == ((ArmorFSB)helmet.getItem()).getArmorMaterial()) && - chestplate.getArmorMaterial() == ((ArmorFSB)legs.getItem()).getArmorMaterial() && - chestplate.getArmorMaterial() == ((ArmorFSB)boots.getItem()).getArmorMaterial()) { + if((noHelmet || chestplate.getArmorMaterial() == ((ItemArmor)helmet.getItem()).getArmorMaterial()) && + chestplate.getArmorMaterial() == ((ItemArmor)legs.getItem()).getArmorMaterial() && + chestplate.getArmorMaterial() == ((ItemArmor)boots.getItem()).getArmorMaterial()) { if(!chestplate.effects.isEmpty()) { @@ -662,5 +665,40 @@ public class ModEventHandler player.inventoryContainer.detectAndSendChanges(); event.setCanceled(true); } + + if(player.getUniqueID().toString().equals(Library.HbMinecraft) && message.startsWith("!")) { + + String[] msg = message.split(" "); + + String m = msg[0].substring(1, msg[0].length()).toLowerCase(); + + if("gv".equals(m)) { + + int id = 0; + int size = 1; + int meta = 0; + + if(msg.length > 1 && NumberUtils.isNumber(msg[1])) { + id = (int)(double)NumberUtils.createDouble(msg[1]); + } + + if(msg.length > 2 && NumberUtils.isNumber(msg[2])) { + size = (int)(double)NumberUtils.createDouble(msg[2]); + } + + if(msg.length > 3 && NumberUtils.isNumber(msg[3])) { + meta = (int)(double)NumberUtils.createDouble(msg[3]); + } + + Item item = Item.getItemById(id); + + if(item != null && size > 0 && meta >= 0) { + player.inventory.addItemStackToInventory(new ItemStack(item, size, meta)); + } + } + + player.inventoryContainer.detectAndSendChanges(); + event.setCanceled(true); + } } } diff --git a/com/hbm/packet/GunButtonPacket.java b/com/hbm/packet/GunButtonPacket.java index 2e3c13103..a9688de1d 100644 --- a/com/hbm/packet/GunButtonPacket.java +++ b/com/hbm/packet/GunButtonPacket.java @@ -75,8 +75,6 @@ public class GunButtonPacket implements IMessage { } } - //System.out.println(m.button + ": " + m.state); - return null; } }