diff --git a/assets/hbm/textures/gui/gui_big_shredder.png b/assets/hbm/textures/gui/gui_big_shredder.png new file mode 100644 index 000000000..f6eeb71b0 Binary files /dev/null and b/assets/hbm/textures/gui/gui_big_shredder.png differ diff --git a/assets/hbm/textures/models/b29_2.png b/assets/hbm/textures/models/b29_2.png index b98ebff2f..1469099df 100644 Binary files a/assets/hbm/textures/models/b29_2.png and b/assets/hbm/textures/models/b29_2.png differ diff --git a/assets/hbm/textures/models/dornier_4.png b/assets/hbm/textures/models/dornier_4.png index d546c265e..1868a9d74 100644 Binary files a/assets/hbm/textures/models/dornier_4.png and b/assets/hbm/textures/models/dornier_4.png differ diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index 3edaa769e..67dd7fb55 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -863,11 +863,11 @@ public class ModBlocks { factory_advanced_conductor = new BlockReactor(Material.iron).setBlockName("factory_advanced_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_advanced_conductor"); factory_advanced_core = new FactoryCoreAdvanced(Material.iron).setBlockName("factory_advanced_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_advanced_core"); - reactor_element = new BlockReactor(Material.iron).setBlockName("reactor_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_element_side"); - reactor_control = new BlockReactor(Material.iron).setBlockName("reactor_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_control_side"); - reactor_hatch = new ReactorHatch(Material.iron).setBlockName("reactor_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - reactor_conductor = new BlockReactor(Material.iron).setBlockName("reactor_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_conductor_side"); - reactor_computer = new ReactorCore(Material.iron).setBlockName("reactor_computer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_computer"); + reactor_element = new BlockReactor(Material.iron).setBlockName("reactor_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":reactor_element_side"); + reactor_control = new BlockReactor(Material.iron).setBlockName("reactor_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":reactor_control_side"); + reactor_hatch = new ReactorHatch(Material.iron).setBlockName("reactor_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); + reactor_conductor = new BlockReactor(Material.iron).setBlockName("reactor_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":reactor_conductor_side"); + reactor_computer = new ReactorCore(Material.iron).setBlockName("reactor_computer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":reactor_computer"); fusion_conductor = new BlockReactor(Material.iron).setBlockName("fusion_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_conductor_side"); fusion_center = new BlockReactor(Material.iron).setBlockName("fusion_center").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_center_side"); diff --git a/com/hbm/entity/logic/EntityBomber.java b/com/hbm/entity/logic/EntityBomber.java index 157f5cd46..3ff58a10b 100644 --- a/com/hbm/entity/logic/EntityBomber.java +++ b/com/hbm/entity/logic/EntityBomber.java @@ -6,6 +6,8 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.entity.projectile.EntityBombletZeta; +import com.hbm.entity.projectile.EntityBoxcar; +import com.hbm.entity.projectile.EntityRocketHoming; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.lib.ModDamageSource; @@ -138,6 +140,40 @@ public class EntityBomber extends Entity implements IChunkLoader { worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "random.fizz", 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F); ExplosionChaos.spawnChlorine(worldObj, this.posX, this.posY - 1F, this.posZ, 10, 0.5, 3); + } else if(type == 5) { + + worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "hbm:weapon.missileTakeOff", 10.0F, 0.9F + rand.nextFloat() * 0.2F); + EntityRocketHoming rocket = new EntityRocketHoming(worldObj); + rocket.setIsCritical(true); + //rocket.motionX = motionX; + //rocket.motionZ = motionZ; + rocket.motionY = -1; + rocket.shootingEntity = this; + rocket.homingRadius = 50; + rocket.homingMod = 5; + + rocket.posX = posX + rand.nextDouble() - 0.5; + rocket.posY = posY - rand.nextDouble(); + rocket.posZ = posZ + rand.nextDouble() - 0.5; + + worldObj.spawnEntityInWorld(rocket); + + } else if(type == 6) { + + worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "hbm:weapon.missileTakeOff", 10.0F, 0.9F + rand.nextFloat() * 0.2F); + EntityBoxcar rocket = new EntityBoxcar(worldObj); + + rocket.posX = posX + rand.nextDouble() - 0.5; + rocket.posY = posY - rand.nextDouble(); + rocket.posZ = posZ + rand.nextDouble() - 0.5; + + worldObj.spawnEntityInWorld(rocket); + + } else if(type == 7) { + + worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "random.fizz", 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F); + ExplosionChaos.spawnChlorine(worldObj, this.posX, worldObj.getHeightValue((int)this.posX, (int)this.posZ) + 2, this.posZ, 10, 1, 2); + } else { worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "hbm:entity.bombWhistle", 10.0F, 0.9F + rand.nextFloat() * 0.2F); @@ -307,6 +343,60 @@ public class EntityBomber extends Entity implements IChunkLoader { return bomber; } + + public static EntityBomber statFacStinger(World world, double x, double y, double z) { + + EntityBomber bomber = new EntityBomber(world); + + bomber.timer = 200; + bomber.bombStart = 50; + bomber.bombStop = 150; + bomber.bombRate = 10; + + bomber.fac(world, x, y, z); + + bomber.getDataWatcher().updateObject(16, (byte)4); + + bomber.type = 5; + + return bomber; + } + + public static EntityBomber statFacBoxcar(World world, double x, double y, double z) { + + EntityBomber bomber = new EntityBomber(world); + + bomber.timer = 200; + bomber.bombStart = 50; + bomber.bombStop = 150; + bomber.bombRate = 10; + + bomber.fac(world, x, y, z); + + bomber.getDataWatcher().updateObject(16, (byte)6); + + bomber.type = 6; + + return bomber; + } + + public static EntityBomber statFacPC(World world, double x, double y, double z) { + + EntityBomber bomber = new EntityBomber(world); + + bomber.timer = 200; + bomber.bombStart = 75; + bomber.bombStop = 125; + bomber.bombRate = 1; + + bomber.fac(world, x, y, z); + + bomber.getDataWatcher().updateObject(16, (byte)6); + + bomber.type = 7; + + return bomber; + } @Override public void entityInit() { diff --git a/com/hbm/entity/projectile/EntityAAShell.java b/com/hbm/entity/projectile/EntityAAShell.java index adb18784e..32016a2d4 100644 --- a/com/hbm/entity/projectile/EntityAAShell.java +++ b/com/hbm/entity/projectile/EntityAAShell.java @@ -52,10 +52,8 @@ public class EntityAAShell extends Entity { for(int i = 0; i < 5; i++) { - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; + + this.setPosition(posX + this.motionX, posY + this.motionY, posZ + this.motionZ); rotation(); diff --git a/com/hbm/inventory/MachineRecipes.java b/com/hbm/inventory/MachineRecipes.java index cf3dc56b2..1db592f98 100644 --- a/com/hbm/inventory/MachineRecipes.java +++ b/com/hbm/inventory/MachineRecipes.java @@ -3055,7 +3055,7 @@ public class MachineRecipes { list.add(new ItemStack(ModItems.wire_advanced_alloy, 4)); list.add(new ItemStack(ModItems.fuse, 6)); break; - case LR_ELEMENT: + /*case LR_ELEMENT: list.add(new ItemStack(ModItems.ingot_steel, 4)); list.add(new ItemStack(ModItems.neutron_reflector, 2)); list.add(new ItemStack(ModItems.plate_lead, 2)); @@ -3080,7 +3080,7 @@ public class MachineRecipes { list.add(new ItemStack(ModBlocks.reactor_conductor, 2)); list.add(new ItemStack(ModItems.circuit_red_copper, 12)); list.add(new ItemStack(ModItems.circuit_gold, 4)); - break; + break;*/ case LF_MAGNET: list.add(new ItemStack(ModItems.plate_steel, 10)); list.add(new ItemStack(ModItems.coil_advanced_alloy, 5)); @@ -4261,7 +4261,7 @@ public class MachineRecipes { case FA_PORT: output = new ItemStack(ModBlocks.factory_advanced_conductor, 1); break; - case LR_ELEMENT: + /*case LR_ELEMENT: output = new ItemStack(ModBlocks.reactor_element, 1); break; case LR_CONTROL: @@ -4275,7 +4275,7 @@ public class MachineRecipes { break; case LR_CORE: output = new ItemStack(ModBlocks.reactor_computer, 1); - break; + break;*/ case LF_MAGNET: output = new ItemStack(ModBlocks.fusion_conductor, 1); break; diff --git a/com/hbm/items/special/ItemRadioactive.java b/com/hbm/items/special/ItemRadioactive.java index c7f9db5ae..96fbd81ba 100644 --- a/com/hbm/items/special/ItemRadioactive.java +++ b/com/hbm/items/special/ItemRadioactive.java @@ -19,10 +19,8 @@ public class ItemRadioactive extends Item { @Override public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean b) { - if((entity instanceof EntityPlayer && !Library.checkForHazmat((EntityPlayer)entity)) || !(entity instanceof EntityPlayer)) - { - doRadiationDamage(entity, stack.stackSize); - } + + doRadiationDamage(entity, stack.stackSize); } public void doRadiationDamage(Entity entity, float mod) { diff --git a/com/hbm/items/tool/ItemAnalyzer.java b/com/hbm/items/tool/ItemAnalyzer.java index baf9e74f3..a63facf01 100644 --- a/com/hbm/items/tool/ItemAnalyzer.java +++ b/com/hbm/items/tool/ItemAnalyzer.java @@ -121,8 +121,8 @@ public class ItemAnalyzer extends Item { if(((TileEntityLockableBase)te).isLocked()) { - player.addChatMessage(new ChatComponentText( - "Pins: " + ((TileEntityLockableBase)te).getPins())); + //player.addChatMessage(new ChatComponentText( + // "Pins: " + ((TileEntityLockableBase)te).getPins())); player.addChatMessage(new ChatComponentText( "Pick Chance: " + (((TileEntityLockableBase)te).getMod() * 100D) + "%")); } diff --git a/com/hbm/items/tool/ItemAssemblyTemplate.java b/com/hbm/items/tool/ItemAssemblyTemplate.java index 08b0d998b..8792f9c85 100644 --- a/com/hbm/items/tool/ItemAssemblyTemplate.java +++ b/com/hbm/items/tool/ItemAssemblyTemplate.java @@ -185,11 +185,11 @@ public class ItemAssemblyTemplate extends Item { FA_HATCH, FA_CORE, FA_PORT, - LR_ELEMENT, - LR_CONTROL, - LR_HATCH, - LR_PORT, - LR_CORE, + //LR_ELEMENT, + //LR_CONTROL, + //LR_HATCH, + //LR_PORT, + //LR_CORE, LF_MAGNET, LF_CENTER, LF_MOTOR, @@ -670,7 +670,7 @@ public class ItemAssemblyTemplate extends Item { return 100; case FA_PORT: return 50; - case LR_ELEMENT: + /*case LR_ELEMENT: return 150; case LR_CONTROL: return 100; @@ -679,7 +679,7 @@ public class ItemAssemblyTemplate extends Item { case LR_PORT: return 150; case LR_CORE: - return 250; + return 250;*/ case LF_MAGNET: return 150; case LF_CENTER: diff --git a/com/hbm/items/tool/ItemBombCaller.java b/com/hbm/items/tool/ItemBombCaller.java index bd94ff93a..197a4be4f 100644 --- a/com/hbm/items/tool/ItemBombCaller.java +++ b/com/hbm/items/tool/ItemBombCaller.java @@ -38,6 +38,12 @@ public class ItemBombCaller extends Item { list.add("Type: Agent orange"); if(itemstack.getItemDamage() == 4) list.add("Type: Atomic bomb"); + if(itemstack.getItemDamage() == 5) + list.add("Type: VT stinger rockets"); + if(itemstack.getItemDamage() == 6) + list.add("Type: PIP OH GOD"); + if(itemstack.getItemDamage() == 7) + list.add("Type: Cloud the cloud oh god the cloud"); } @Override @@ -68,6 +74,15 @@ public class ItemBombCaller extends Item { if(stack.getItemDamage() == 4) if(world.spawnEntityInWorld(EntityBomber.statFacABomb(world, x, y, z))) b = true; + if(stack.getItemDamage() == 5) + if(world.spawnEntityInWorld(EntityBomber.statFacStinger(world, x, y, z))) + b = true; + if(stack.getItemDamage() == 6) + if(world.spawnEntityInWorld(EntityBomber.statFacBoxcar(world, x, y, z))) + b = true; + if(stack.getItemDamage() == 7) + if(world.spawnEntityInWorld(EntityBomber.statFacPC(world, x, y, z))) + b = true; if(b) { player.addChatMessage(new ChatComponentText("Called in airstrike!")); @@ -97,6 +112,6 @@ public class ItemBombCaller extends Item { @SideOnly(Side.CLIENT) public boolean hasEffect(ItemStack p_77636_1_) { - return p_77636_1_.getItemDamage() == 4; + return p_77636_1_.getItemDamage() >= 4; } } diff --git a/com/hbm/lib/Library.java b/com/hbm/lib/Library.java index f39ca2a4c..d2ef3353c 100644 --- a/com/hbm/lib/Library.java +++ b/com/hbm/lib/Library.java @@ -287,6 +287,8 @@ public class Library { public static boolean checkForHazmat(EntityPlayer player) { if(checkArmor(player, ModItems.hazmat_helmet, ModItems.hazmat_plate, ModItems.hazmat_legs, ModItems.hazmat_boots) || + checkArmor(player, ModItems.hazmat_helmet_red, ModItems.hazmat_plate_red, ModItems.hazmat_legs_red, ModItems.hazmat_boots_red) || + checkArmor(player, ModItems.hazmat_helmet_grey, ModItems.hazmat_plate_grey, ModItems.hazmat_legs_grey, ModItems.hazmat_boots_grey) || checkArmor(player, ModItems.t45_helmet, ModItems.t45_plate, ModItems.t45_legs, ModItems.t45_boots) || checkArmor(player, ModItems.schrabidium_helmet, ModItems.schrabidium_plate, ModItems.schrabidium_legs, ModItems.schrabidium_boots) || checkForHaz2(player)) { diff --git a/com/hbm/tileentity/machine/TileEntityFF.java b/com/hbm/tileentity/machine/TileEntityFF.java index bb6c3bda2..bbbcb9dfa 100644 --- a/com/hbm/tileentity/machine/TileEntityFF.java +++ b/com/hbm/tileentity/machine/TileEntityFF.java @@ -87,7 +87,8 @@ public class TileEntityFF extends TileEntity { entity.posX -= entity.motionX; entity.posY -= entity.motionY; entity.posZ -= entity.motionZ; - + + worldObj.playSoundAtEntity(entity, "hbm:weapon.sparkShoot", 2.5F, 1.0F); outside.add(entity); } else @@ -111,7 +112,8 @@ public class TileEntityFF extends TileEntity { entity.posX -= entity.motionX; entity.posY -= entity.motionY; entity.posZ -= entity.motionZ; - + + worldObj.playSoundAtEntity(entity, "hbm:weapon.sparkShoot", 2.5F, 1.0F); inside.add(entity); } else { diff --git a/com/hbm/tileentity/machine/TileEntityMachineMiningDrill.java b/com/hbm/tileentity/machine/TileEntityMachineMiningDrill.java index 45afedf1c..d2d583210 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineMiningDrill.java +++ b/com/hbm/tileentity/machine/TileEntityMachineMiningDrill.java @@ -788,6 +788,13 @@ public class TileEntityMachineMiningDrill extends TileEntity implements ISidedIn Block b = worldObj.getBlock(x, y, z); int meta = worldObj.getBlockMetadata(x, y, z); ItemStack stack = new ItemStack(b.getItemDropped(meta, rand, fortune), b.quantityDropped(meta, fortune, rand), b.damageDropped(meta)); + + //yup that worked + if(stack != null && stack.getItem() == null) { + worldObj.func_147480_a(x, y, z, false); + return true; + } + if(hasSpace(stack)) { this.addItemToInventory(stack); worldObj.func_147480_a(x, y, z, false); @@ -841,14 +848,17 @@ public class TileEntityMachineMiningDrill extends TileEntity implements ISidedIn ItemStack st = stack.copy(); - if(st == null) + if(stack == null || st == null) return true; for(int i = 1; i < 10; i++) { if(array[i] != null) { ItemStack sta = array[i].copy(); - + + if(stack == null || st == null) + return true; + if(sta != null && sta.getItem() == st.getItem() && sta.stackSize < st.getMaxStackSize()) { array[i].stackSize++; return true; diff --git a/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java b/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java index 74ae2a34d..9f3dfe9fd 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java +++ b/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java @@ -382,14 +382,10 @@ public class TileEntityMachineReactorSmall extends TileEntity } if (rods > 0 && coreHeat > 0 - && !(worldObj.getBlock(xCoord + 1, yCoord + 1, zCoord).isNormalCube() - && worldObj.getBlock(xCoord - 1, yCoord + 1, zCoord).isNormalCube() - && worldObj.getBlock(xCoord, yCoord + 1, zCoord + 1).isNormalCube() - && worldObj.getBlock(xCoord, yCoord + 1, zCoord - 1).isNormalCube() - && worldObj.getBlock(xCoord + 1, yCoord + 1, zCoord) != Blocks.air - && worldObj.getBlock(xCoord - 1, yCoord + 1, zCoord) != Blocks.air - && worldObj.getBlock(xCoord, yCoord + 1, zCoord + 1) != Blocks.air - && worldObj.getBlock(xCoord, yCoord + 1, zCoord - 1) != Blocks.air)) { + && !(blocksRad(xCoord + 1, yCoord + 1, zCoord) + && blocksRad(xCoord - 1, yCoord + 1, zCoord) + && blocksRad(xCoord, yCoord + 1, zCoord + 1) + && blocksRad(xCoord, yCoord + 1, zCoord - 1))) { /*List list = (List) worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord + 0.5 - 5, yCoord + 1.5 - 5, zCoord + 0.5 - 5, @@ -400,9 +396,9 @@ public class TileEntityMachineReactorSmall extends TileEntity Library.applyRadiation((EntityLivingBase)e, 80, 24, 60, 19); }*/ - float rad = (float)coreHeat / (float)maxCoreHeat * 150F; + float rad = (float)coreHeat / (float)maxCoreHeat * 50F; RadiationSavedData data = RadiationSavedData.getData(worldObj); - data.incrementRad(worldObj, xCoord, zCoord, rad, 750F); + data.incrementRad(worldObj, xCoord, zCoord, rad, rad * 4); } for (int i = 0; i < 3; i++) diff --git a/com/hbm/tileentity/machine/TileEntityMachineReactorSmallOld.java b/com/hbm/tileentity/machine/TileEntityMachineReactorSmallOld.java index 468611668..9f197eb2d 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineReactorSmallOld.java +++ b/com/hbm/tileentity/machine/TileEntityMachineReactorSmallOld.java @@ -440,9 +440,9 @@ public class TileEntityMachineReactorSmallOld extends TileEntity Library.applyRadiation((EntityLivingBase)e, 80, 24, 60, 19); }*/ - float rad = (float)coreHeat / (float)maxCoreHeat * 150F; + float rad = (float)coreHeat / (float)maxCoreHeat * 50F; RadiationSavedData data = RadiationSavedData.getData(worldObj); - data.incrementRad(worldObj, xCoord, zCoord, rad, 750F); + data.incrementRad(worldObj, xCoord, zCoord, rad, rad * 4); } PacketDispatcher.wrapper.sendToAll(new AuxElectricityPacket(xCoord, yCoord, zCoord, power)); diff --git a/com/hbm/tileentity/machine/TileEntityReactorMultiblock.java b/com/hbm/tileentity/machine/TileEntityReactorMultiblock.java index a8497c629..8f23a8167 100644 --- a/com/hbm/tileentity/machine/TileEntityReactorMultiblock.java +++ b/com/hbm/tileentity/machine/TileEntityReactorMultiblock.java @@ -507,7 +507,7 @@ public class TileEntityReactorMultiblock extends TileEntity implements ISidedInv RadiationSavedData data = RadiationSavedData.getData(worldObj); - data.incrementRad(worldObj, xCoord, zCoord, 100F, 500F); + data.incrementRad(worldObj, xCoord, zCoord, 50F, 150F); } }