diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index 5a0ebf424..e21b80de4 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -39,6 +39,7 @@ potion.hbm_mutation=Verdorbenes Herz potion.hbm_radiation=Kontaminiert potion.hbm_bang=! ! ! potion.hbm_radx=Rad-X +potion.hbm_lead=Bleivergiftung hbmfluid.none=Nichts hbmfluid.water=Wasser @@ -172,6 +173,7 @@ death.attack.amsCore=%1$s wurde vom Feuer einer Singularität verdampft. death.attack.bang=%1$s wurde in mundgerechte Stücke zerfetzt. death.attack.pc=%1$s wurde zu einer Pfütze in der pinken Wolke. death.attack.cloud=%1$s schmolz wie ein Eis in der Sonne. +death.attack.lead=%1$s starb an Bleivergiftung. item.redstone_sword.name=Redstoneschwert item.big_sword.name=Großes Schwert diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 93703487e..8246cadd9 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -39,6 +39,7 @@ potion.hbm_mutation=Tainted Heart potion.hbm_radiation=Contaminated potion.hbm_bang=! ! ! potion.hbm_radx=Rad-X +potion.hbm_lead=Lead Poisoning hbmfluid.none=None hbmfluid.water=Water @@ -172,6 +173,7 @@ death.attack.amsCore=%1$s was vaporized in the fire of a singularity. death.attack.bang=%1$s was blasted into bite-sized pieces. death.attack.pc=%1$s was reduced to a puddle in the pink cloud. death.attack.cloud=%1$s melted like a popsicle in the sun. +death.attack.lead=%1$s died from lead poisoning. item.redstone_sword.name=Redstone Sword item.big_sword.name=Great Sword diff --git a/assets/hbm/models/missilePad.obj b/assets/hbm/models/missilePad.obj new file mode 100644 index 000000000..f2d38a4bf --- /dev/null +++ b/assets/hbm/models/missilePad.obj @@ -0,0 +1,172 @@ +# Blender v2.76 (sub 0) OBJ File: 'missilePad.blend' +# www.blender.org +o Cube_Cube.001 +v -1.500000 1.000000 1.500000 +v -1.500000 1.000000 -1.500000 +v 1.500000 1.000000 1.500000 +v 1.500000 1.000000 -1.500000 +v -1.500000 0.500000 -0.500000 +v -1.500000 0.500000 0.500000 +v 0.500000 0.500000 -1.500000 +v -0.500000 0.500000 -1.500000 +v 1.500000 0.500000 0.500000 +v 1.500000 0.500000 -0.500000 +v -0.500000 0.500000 1.500000 +v 0.500000 0.500000 1.500000 +v -0.500000 0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 -0.500000 +v 0.500000 0.500000 -0.500000 +v -1.750000 0.000000 1.750000 +v -1.750000 0.000000 -1.750000 +v 1.750000 0.000000 1.750000 +v 1.750000 0.000000 -1.750000 +v -1.750000 0.000000 -0.500000 +v -1.750000 0.000000 0.500000 +v 0.500000 0.000000 -1.750000 +v -0.500000 0.000000 -1.750000 +v 1.750000 0.000000 0.500000 +v 1.750000 0.000000 -0.500000 +v -0.500000 0.000000 1.750000 +v 0.500000 0.000000 1.750000 +v -0.500000 0.000000 0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v -1.500000 0.500000 -1.500000 +v 1.500000 0.500000 -1.500000 +v -1.500000 0.500000 1.500000 +v 1.500000 0.500000 1.500000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +vt 0.020000 0.530000 +vt 0.180000 0.370000 +vt 0.340000 0.370000 +vt 0.740000 0.060000 +vt 0.740000 0.220000 +vt 0.580000 0.220000 +vt 0.580000 0.060000 +vt 0.180000 0.210000 +vt 0.020000 0.660000 +vt 0.180000 0.580000 +vt 0.340000 0.580000 +vt 0.930000 0.710000 +vt 0.930000 0.870000 +vt 0.850000 0.870000 +vt 0.690000 0.950000 +vt 0.650000 0.870000 +vt 0.650000 0.670000 +vt 0.850000 0.670000 +vt 0.690000 0.580000 +vt 0.560000 0.870000 +vt 0.560000 0.710000 +vt 0.500000 0.660000 +vt 0.850000 0.580000 +vt 0.500000 0.530000 +vt 0.340000 0.210000 +vt 0.740000 0.300000 +vt 0.580000 0.300000 +vt 0.020000 0.050000 +vt 0.740000 0.360000 +vt 0.740000 0.520000 +vt 0.580000 0.520000 +vt 0.500000 0.580000 +vt 0.020000 0.580000 +vt 0.850000 0.950000 +vt 0.500000 0.050000 +vt 0.580000 0.360000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -1.000000 0.000000 +vn -1.000000 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 0.447200 0.894400 +vn 0.894400 0.447200 0.000000 +vn 0.000000 0.447200 -0.894400 +vn -0.894400 0.447200 0.000000 +s off +f 2/1/1 39/2/1 40/3/1 +f 5/4/2 15/5/2 13/6/2 +f 13/5/2 14/6/2 12/7/2 +f 16/6/2 10/7/2 9/4/2 +f 8/7/2 7/4/2 16/5/2 +f 37/8/1 39/2/1 2/1/1 +f 2/9/3 5/10/3 6/11/3 +f 12/12/3 14/13/3 30/14/3 +f 7/15/3 23/16/3 32/14/3 +f 10/11/4 3/9/4 9/10/4 +f 10/12/5 16/13/5 32/14/5 +f 23/16/2 20/17/2 26/18/2 +f 30/14/2 25/16/2 19/17/2 +f 22/18/2 29/14/2 27/16/2 +f 18/17/2 24/18/2 31/14/2 +f 9/15/6 25/16/6 30/14/6 +f 29/14/6 22/18/6 6/12/6 +f 11/15/4 27/16/4 29/14/4 +f 31/14/4 24/18/4 8/12/4 +f 5/15/5 21/16/5 31/14/5 +f 28/18/7 19/17/7 36/19/7 +f 25/16/8 9/20/8 36/21/8 +f 2/22/6 4/9/6 7/10/6 +f 26/18/8 20/17/8 34/19/8 +f 34/21/9 20/17/9 23/16/9 +f 1/9/5 11/10/5 12/11/5 +f 33/19/9 8/23/9 24/18/9 +f 21/16/10 5/20/10 33/21/10 +f 35/19/10 6/23/10 22/18/10 +f 27/16/7 11/20/7 35/21/7 +f 4/24/1 40/3/1 38/25/1 +f 40/26/5 39/27/5 15/6/5 +f 38/26/3 40/27/3 16/6/3 +f 15/5/4 39/26/4 37/27/4 +f 13/5/6 37/26/6 38/27/6 +f 38/25/1 37/8/1 1/28/1 +f 38/29/1 40/30/1 39/31/1 +f 4/24/1 2/1/1 40/3/1 +f 6/7/2 5/4/2 13/6/2 +f 11/4/2 13/5/2 12/7/2 +f 14/5/2 16/6/2 9/4/2 +f 15/6/2 8/7/2 16/5/2 +f 1/28/1 37/8/1 2/1/1 +f 6/11/3 35/32/3 1/22/3 +f 1/22/3 2/9/3 6/11/3 +f 33/33/3 5/10/3 2/9/3 +f 28/18/3 12/12/3 30/14/3 +f 16/34/3 7/15/3 32/14/3 +f 36/33/4 9/10/4 3/9/4 +f 10/11/4 34/32/4 4/22/4 +f 4/22/4 3/9/4 10/11/4 +f 26/18/5 10/12/5 32/14/5 +f 32/14/2 23/16/2 26/18/2 +f 28/18/2 30/14/2 19/17/2 +f 17/17/2 22/18/2 27/16/2 +f 21/16/2 18/17/2 31/14/2 +f 14/34/6 9/15/6 30/14/6 +f 13/13/6 29/14/6 6/12/6 +f 13/34/4 11/15/4 29/14/4 +f 15/13/4 31/14/4 8/12/4 +f 15/34/5 5/15/5 31/14/5 +f 12/23/7 28/18/7 36/19/7 +f 19/17/8 25/16/8 36/21/8 +f 7/10/6 8/11/6 2/22/6 +f 33/32/6 2/22/6 8/11/6 +f 4/9/6 34/33/6 7/10/6 +f 10/23/8 26/18/8 34/19/8 +f 7/20/9 34/21/9 23/16/9 +f 12/11/5 36/32/5 3/22/5 +f 3/22/5 1/9/5 12/11/5 +f 35/33/5 11/10/5 1/9/5 +f 18/17/9 33/19/9 24/18/9 +f 18/17/10 21/16/10 33/21/10 +f 17/17/10 35/19/10 22/18/10 +f 17/17/7 27/16/7 35/21/7 +f 3/35/1 4/24/1 38/25/1 +f 16/5/5 40/26/5 15/6/5 +f 14/5/3 38/26/3 16/6/3 +f 13/6/4 15/5/4 37/27/4 +f 14/6/6 13/5/6 38/27/6 +f 3/35/1 38/25/1 1/28/1 +f 37/36/1 38/29/1 39/31/1 diff --git a/assets/hbm/models/sat_dock.obj b/assets/hbm/models/sat_dock.obj new file mode 100644 index 000000000..683c2c2b5 --- /dev/null +++ b/assets/hbm/models/sat_dock.obj @@ -0,0 +1,86 @@ +# Blender v2.76 (sub 0) OBJ File: 'sat_dock.blend' +# www.blender.org +o Cube_Cube.001 +v -1.500000 0.000000 1.500000 +v -1.500000 0.500000 1.500000 +v -1.500000 0.000000 -1.500000 +v -1.500000 0.500000 -1.500000 +v 1.500000 0.000000 1.500000 +v 1.500000 0.500000 1.500000 +v 1.500000 0.000000 -1.500000 +v 1.500000 0.500000 -1.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 0.750000 0.500000 +v -0.500000 0.500000 -0.500000 +v -0.500000 0.750000 -0.500000 +v 0.500000 0.500000 0.500000 +v 0.500000 0.750000 0.500000 +v 0.500000 0.500000 -0.500000 +v 0.500000 0.750000 -0.500000 +vt 0.492188 0.507812 +vt 0.492188 0.570312 +vt 0.117188 0.570312 +vt 0.492188 0.132812 +vt 0.554688 0.132812 +vt 0.554688 0.507812 +vt 0.117188 0.132812 +vt 0.117188 0.070312 +vt 0.492188 0.070312 +vt 0.117188 0.507812 +vt 0.054688 0.507812 +vt 0.054688 0.132812 +vt 0.539062 0.562500 +vt 0.914062 0.562500 +vt 0.914062 0.937500 +vt 0.835938 0.367188 +vt 0.835938 0.398438 +vt 0.710938 0.398438 +vt 0.835938 0.242188 +vt 0.867188 0.242188 +vt 0.867188 0.367188 +vt 0.710938 0.242188 +vt 0.710938 0.210938 +vt 0.835938 0.210938 +vt 0.710938 0.367188 +vt 0.679688 0.367188 +vt 0.679688 0.242188 +vt 0.367188 0.257812 +vt 0.242188 0.257812 +vt 0.367188 0.382812 +vt 0.242188 0.382812 +vt 0.539062 0.937500 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +s off +f 4/1/1 3/2/1 1/3/1 +f 8/4/2 7/5/2 3/6/2 +f 6/7/3 5/8/3 7/9/3 +f 2/10/4 1/11/4 5/12/4 +f 3/13/5 7/14/5 5/15/5 +f 12/16/1 11/17/1 9/18/1 +f 16/19/2 15/20/2 11/21/2 +f 14/22/3 13/23/3 15/24/3 +f 10/25/4 9/26/4 13/27/4 +f 15/28/6 13/29/6 6/7/6 +f 16/19/6 12/16/6 10/25/6 +f 11/30/6 15/28/6 8/4/6 +f 9/31/6 11/30/6 4/1/6 +f 13/29/6 9/31/6 2/10/6 +f 2/10/1 4/1/1 1/3/1 +f 4/1/2 8/4/2 3/6/2 +f 8/4/3 6/7/3 7/9/3 +f 6/7/4 2/10/4 5/12/4 +f 1/32/5 3/13/5 5/15/5 +f 10/25/1 12/16/1 9/18/1 +f 12/16/2 16/19/2 11/21/2 +f 16/19/3 14/22/3 15/24/3 +f 14/22/4 10/25/4 13/27/4 +f 8/4/6 15/28/6 6/7/6 +f 14/22/6 16/19/6 10/25/6 +f 4/1/6 11/30/6 8/4/6 +f 2/10/6 9/31/6 4/1/6 +f 6/7/6 13/29/6 2/10/6 diff --git a/assets/hbm/textures/blocks/launch_pad.png b/assets/hbm/textures/blocks/launch_pad.png index ae3d4e685..b049d6318 100644 Binary files a/assets/hbm/textures/blocks/launch_pad.png and b/assets/hbm/textures/blocks/launch_pad.png differ diff --git a/assets/hbm/textures/gui/gui_dock.png b/assets/hbm/textures/gui/gui_dock.png new file mode 100644 index 000000000..7596be55e Binary files /dev/null and b/assets/hbm/textures/gui/gui_dock.png differ diff --git a/assets/hbm/textures/items/missile_nuclear.png b/assets/hbm/textures/items/missile_nuclear.png index a0ba32a3c..2057669dd 100644 Binary files a/assets/hbm/textures/items/missile_nuclear.png and b/assets/hbm/textures/items/missile_nuclear.png differ diff --git a/assets/hbm/textures/models/missileNeonH.png b/assets/hbm/textures/models/missileNeonH.png new file mode 100644 index 000000000..97b5d2d73 Binary files /dev/null and b/assets/hbm/textures/models/missileNeonH.png differ diff --git a/assets/hbm/textures/models/missilePad.png b/assets/hbm/textures/models/missilePad.png new file mode 100644 index 000000000..03a80eeb3 Binary files /dev/null and b/assets/hbm/textures/models/missilePad.png differ diff --git a/assets/hbm/textures/models/sat_dock.png b/assets/hbm/textures/models/sat_dock.png new file mode 100644 index 000000000..419d9ea33 Binary files /dev/null and b/assets/hbm/textures/models/sat_dock.png differ diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index a34a4612d..a73abc508 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -230,6 +230,9 @@ public class ModBlocks { public static Block sat_laser; public static Block sat_foeq; public static Block sat_resonator; + + public static Block sat_dock; + public static final int guiID_dock = 46; public static Block crate_iron; public static final int guiID_crate_iron = 46; @@ -966,6 +969,8 @@ public class ModBlocks { sat_foeq = new DecoBlock(Material.iron).setBlockName("sat_foeq").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_foeq"); sat_resonator = new DecoBlock(Material.iron).setBlockName("sat_resonator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_resonator"); + sat_dock = new MachineSatDock(Material.iron).setBlockName("sat_dock").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_dock"); + turret_light = new TurretLight(Material.iron).setBlockName("turret_light").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":turret_light"); turret_heavy = new TurretHeavy(Material.iron).setBlockName("turret_heavy").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":turret_heavy"); turret_rocket = new TurretRocket(Material.iron).setBlockName("turret_rocket").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":turret_rocket"); @@ -1431,6 +1436,7 @@ public class ModBlocks { GameRegistry.registerBlock(machine_combine_factory, machine_combine_factory.getUnlocalizedName()); GameRegistry.registerBlock(machine_teleporter, machine_teleporter.getUnlocalizedName()); GameRegistry.registerBlock(machine_satlinker, machine_satlinker.getUnlocalizedName()); + GameRegistry.registerBlock(sat_dock, sat_dock.getUnlocalizedName()); GameRegistry.registerBlock(machine_telelinker, machine_telelinker.getUnlocalizedName()); GameRegistry.registerBlock(machine_keyforge, machine_keyforge.getUnlocalizedName()); GameRegistry.registerBlock(machine_forcefield, machine_forcefield.getUnlocalizedName()); diff --git a/com/hbm/blocks/bomb/LaunchPad.java b/com/hbm/blocks/bomb/LaunchPad.java index 9a6626e54..a42ca0a71 100644 --- a/com/hbm/blocks/bomb/LaunchPad.java +++ b/com/hbm/blocks/bomb/LaunchPad.java @@ -189,7 +189,7 @@ public class LaunchPad extends BlockContainer implements IBomb { } } - @Override + /*@Override public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) { float f = 0.0625F; @@ -201,7 +201,7 @@ public class LaunchPad extends BlockContainer implements IBomb { float f = 0.0625F; this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 8*f, 1.0F); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); - } + }*/ @Override @SideOnly(Side.CLIENT) diff --git a/com/hbm/blocks/machine/MachineSatDock.java b/com/hbm/blocks/machine/MachineSatDock.java new file mode 100644 index 000000000..643613f5d --- /dev/null +++ b/com/hbm/blocks/machine/MachineSatDock.java @@ -0,0 +1,52 @@ +package com.hbm.blocks.machine; + +import com.hbm.tileentity.machine.TileEntityMachineSatDock; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class MachineSatDock extends BlockContainer { + + public MachineSatDock(Material p_i45386_1_) { + super(p_i45386_1_); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityMachineSatDock(); + } + + @Override + public int getRenderType(){ + return -1; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) + { + float f = 0.0625F; + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 12*f, 1.0F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + float f = 0.0625F; + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 12*f, 1.0F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + +} diff --git a/com/hbm/entity/projectile/EntityBulletBase.java b/com/hbm/entity/projectile/EntityBulletBase.java index 5e92e3859..1ed47d231 100644 --- a/com/hbm/entity/projectile/EntityBulletBase.java +++ b/com/hbm/entity/projectile/EntityBulletBase.java @@ -337,7 +337,8 @@ public class EntityBulletBase extends Entity implements IProjectile { //for when a bullet dies by hitting a block private void onBlockImpact(int bX, int bY, int bZ) { - this.setDead(); + if(!worldObj.isRemote) + this.setDead(); if(config.incendiary > 0 && !this.worldObj.isRemote) { if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX, (int)posY, (int)posZ, Blocks.fire); diff --git a/com/hbm/handler/BulletConfigFactory.java b/com/hbm/handler/BulletConfigFactory.java index 33bec3576..82c9ea459 100644 --- a/com/hbm/handler/BulletConfigFactory.java +++ b/com/hbm/handler/BulletConfigFactory.java @@ -110,6 +110,8 @@ public class BulletConfigFactory { } /// ADJUSTED CONFIGS /// + + /// .357 /// protected static BulletConfiguration getRevIronConfig() { BulletConfiguration bullet = standardBulletConfig(); @@ -190,5 +192,91 @@ public class BulletConfigFactory { return bullet; } + + /// 12 Gauge /// + protected static BulletConfiguration get12GaugeConfig() { + + BulletConfiguration bullet = standardBuckshotConfig(); + + bullet.ammo = ModItems.ammo_12gauge; + bullet.dmgMin = 1; + bullet.dmgMax = 4; + + return bullet; + } + + protected static BulletConfiguration get12GaugeFireConfig() { + + BulletConfiguration bullet = standardBuckshotConfig(); + + bullet.ammo = ModItems.ammo_12gauge_incendiary; + bullet.dmgMin = 1; + bullet.dmgMax = 4; + bullet.incendiary = 5; + + return bullet; + } + + /// 20 Gauge /// + protected static BulletConfiguration get20GaugeConfig() { + + BulletConfiguration bullet = standardBuckshotConfig(); + + bullet.ammo = ModItems.ammo_20gauge; + bullet.dmgMin = 1; + bullet.dmgMax = 3; + + return bullet; + } + + protected static BulletConfiguration get20GaugeSlugConfig() { + + BulletConfiguration bullet = standardBulletConfig(); + + bullet.ammo = ModItems.ammo_20gauge_slug; + bullet.dmgMin = 10; + bullet.dmgMax = 15; + bullet.style = BulletConfiguration.STYLE_NORMAL; + + return bullet; + } + + protected static BulletConfiguration get20GaugeFlechetteConfig() { + + BulletConfiguration bullet = standardBuckshotConfig(); + + bullet.ammo = ModItems.ammo_20gauge_flechette; + bullet.dmgMin = 3; + bullet.dmgMax = 6; + bullet.style = BulletConfiguration.STYLE_FLECHETTE; + bullet.HBRC = 2; + bullet.LBRC = 95; + + return bullet; + } + + protected static BulletConfiguration get20GaugeFireConfig() { + + BulletConfiguration bullet = standardBuckshotConfig(); + + bullet.ammo = ModItems.ammo_20gauge_incendiary; + bullet.dmgMin = 1; + bullet.dmgMax = 4; + bullet.incendiary = 5; + + return bullet; + } + + protected static BulletConfiguration get20GaugeExplosiveConfig() { + + BulletConfiguration bullet = standardBuckshotConfig(); + + bullet.ammo = ModItems.ammo_20gauge_explosive; + bullet.dmgMin = 2; + bullet.dmgMax = 6; + bullet.explosive = 0.5F; + + return bullet; + } } diff --git a/com/hbm/handler/BulletConfigSyncingUtil.java b/com/hbm/handler/BulletConfigSyncingUtil.java index b364d0270..dc86fc420 100644 --- a/com/hbm/handler/BulletConfigSyncingUtil.java +++ b/com/hbm/handler/BulletConfigSyncingUtil.java @@ -27,12 +27,24 @@ public class BulletConfigSyncingUtil { public static final int TEST_CONFIG = 0x00; public static final int IRON_REVOLVER = 0x01; public static final int STEEL_REVOLVER = 0x02; + + public static final int G20_NORMAL = 0x03; + public static final int G20_SLUG = 0x04; + public static final int G20_FLECHETTE = 0x05; + public static final int G20_FIRE = 0x06; + public static final int G20_EXPLOSIVE = 0x07; public static void loadConfigsForSync() { configSet.add(new ConfigKeyPair(BulletConfigFactory.getTestConfig(), TEST_CONFIG)); configSet.add(new ConfigKeyPair(BulletConfigFactory.getRevIronConfig(), IRON_REVOLVER)); configSet.add(new ConfigKeyPair(BulletConfigFactory.getRevSteelConfig(), STEEL_REVOLVER)); + + configSet.add(new ConfigKeyPair(BulletConfigFactory.get20GaugeConfig(), G20_NORMAL)); + configSet.add(new ConfigKeyPair(BulletConfigFactory.get20GaugeSlugConfig(), G20_SLUG)); + configSet.add(new ConfigKeyPair(BulletConfigFactory.get20GaugeFlechetteConfig(), G20_FLECHETTE)); + configSet.add(new ConfigKeyPair(BulletConfigFactory.get20GaugeFireConfig(), G20_FIRE)); + configSet.add(new ConfigKeyPair(BulletConfigFactory.get20GaugeExplosiveConfig(), G20_EXPLOSIVE)); } public static BulletConfiguration pullConfig(int key) { diff --git a/com/hbm/handler/GunConfigFactory.java b/com/hbm/handler/GunConfigFactory.java index 25db8c665..89aa26f45 100644 --- a/com/hbm/handler/GunConfigFactory.java +++ b/com/hbm/handler/GunConfigFactory.java @@ -11,8 +11,8 @@ public class GunConfigFactory { GunConfiguration config = new GunConfiguration(); config.rateOfFire = 10; - config.gunMode = 0; - config.firingMode = 1; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_MANUAL; config.hasReloadAnim = false; config.hasFiringAnim = false; config.hasSpinup = false; @@ -20,12 +20,40 @@ public class GunConfigFactory { config.reloadDuration = 10; config.firingDuration = 0; config.ammoCap = 6; - config.reloadType = 1; + config.reloadType = GunConfiguration.RELOAD_FULL; config.allowsInfinity = true; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.STEEL_REVOLVER); config.config.add(BulletConfigSyncingUtil.IRON_REVOLVER); + config.config.add(BulletConfigSyncingUtil.G20_NORMAL); + + return config; + } + + public static GunConfiguration getMareConfig() { + + GunConfiguration config = new GunConfiguration(); + + config.rateOfFire = 10; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_MANUAL; + config.hasReloadAnim = false; + config.hasFiringAnim = false; + config.hasSpinup = false; + config.hasSpindown = false; + config.reloadDuration = 10; + config.firingDuration = 0; + config.ammoCap = 6; + config.reloadType = GunConfiguration.RELOAD_SINGLE; + config.allowsInfinity = true; + + config.config = new ArrayList(); + config.config.add(BulletConfigSyncingUtil.G20_NORMAL); + config.config.add(BulletConfigSyncingUtil.G20_SLUG); + config.config.add(BulletConfigSyncingUtil.G20_FLECHETTE); + config.config.add(BulletConfigSyncingUtil.G20_FIRE); + config.config.add(BulletConfigSyncingUtil.G20_EXPLOSIVE); return config; } diff --git a/com/hbm/handler/GunConfiguration.java b/com/hbm/handler/GunConfiguration.java index 1fd9c59d9..a607b6805 100644 --- a/com/hbm/handler/GunConfiguration.java +++ b/com/hbm/handler/GunConfiguration.java @@ -44,4 +44,15 @@ public class GunConfiguration { //bullet configs for main and alt fire public List config; + public static final int MODE_NORMAL = 0; + public static final int MODE_RELEASE = 1; + public static final int MODE_BOTH = 1; + + public static final int FIRE_MANUAL = 0; + public static final int FIRE_AUTO = 1; + + public static final int RELOAD_NONE = 0; + public static final int RELOAD_FULL = 1; + public static final int RELOAD_SINGLE = 2; + } diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index 883ce2eb8..5ce34ca83 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -2347,7 +2347,7 @@ public class ModItems { gun_uboinik_ammo = new Item().setUnlocalizedName("gun_uboinik_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uboinik_ammo"); gun_uboinik = new GunShotgun().setUnlocalizedName("gun_uboinik").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); gun_lever_action_ammo = new Item().setUnlocalizedName("gun_lever_action_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_lever_action_ammo"); - gun_lever_action = new GunLeverAction().setUnlocalizedName("gun_lever_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action"); + gun_lever_action = new ItemGunBase(GunConfigFactory.getMareConfig()).setUnlocalizedName("gun_lever_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action"); gun_lever_action_dark = new GunLeverAction().setUnlocalizedName("gun_lever_action_dark").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action_dark"); gun_lever_action_sonata = new GunLeverActionS().setUnlocalizedName("gun_lever_action_sonata").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action_sonata"); gun_bolt_action_ammo = new Item().setUnlocalizedName("gun_bolt_action_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bolt_action_ammo"); diff --git a/com/hbm/items/weapon/ItemGunBase.java b/com/hbm/items/weapon/ItemGunBase.java index 90bac18b9..71244542b 100644 --- a/com/hbm/items/weapon/ItemGunBase.java +++ b/com/hbm/items/weapon/ItemGunBase.java @@ -21,6 +21,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityClientPlayerMP; +import net.minecraft.client.resources.I18n; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -127,7 +128,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon { if(getDelay(stack) > 0) setDelay(stack, getDelay(stack) - 1); - if(mainConfig.firingMode == 1 && getIsMouseDown(stack) && getDelay(stack) == 0 && getMag(stack) > 0) { + if(mainConfig.firingMode == 1 && getIsMouseDown(stack) && getDelay(stack) == 0 && getMag(stack) > 0 && !getIsReloading(stack)) { fire(stack, world, entity); setDelay(stack, mainConfig.rateOfFire); setMag(stack, getMag(stack) - 1); @@ -146,15 +147,24 @@ public class ItemGunBase extends Item implements IHoldableWeapon { //called every time the gun shoots, overridden to change bullet entity/special additions private void fire(ItemStack stack, World world, EntityPlayer player) { - EntityBulletBase bullet = new EntityBulletBase(world, mainConfig.config.get(getMagType(stack)), player); - world.spawnEntityInWorld(bullet); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_gold_ammo)); + BulletConfiguration config = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); + + int bullets = config.bulletsMin; + + if(config.bulletsMax > config.bulletsMin) + bullets += world.rand.nextInt(config.bulletsMax - config.bulletsMin); + + for(int i = 0; i < bullets; i++) { + EntityBulletBase bullet = new EntityBulletBase(world, mainConfig.config.get(getMagType(stack)), player); + world.spawnEntityInWorld(bullet); + } + //player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_gold_ammo)); } //called on click (server side, called by mouse packet) public void startAction(ItemStack stack, World world, EntityPlayer player, boolean main) { - if(mainConfig.firingMode == 0 && getIsMouseDown(stack) && getDelay(stack) == 0 && getMag(stack) > 0) { + if(mainConfig.firingMode == 0 && getIsMouseDown(stack) && getDelay(stack) == 0 && getMag(stack) > 0 && !getIsReloading(stack)) { fire(stack, world, player); setDelay(stack, mainConfig.rateOfFire); setMag(stack, getMag(stack) - 1); @@ -169,7 +179,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon { //reload action, if existent private void reload(ItemStack stack, World world, EntityPlayer player) { - if(getReloadCycle(stack) == 0) { + if(getReloadCycle(stack) < 0 && stack == player.getHeldItem()) { //if the mag has bullet in them -> load only the same type if(getMag(stack) > 0) { @@ -261,10 +271,16 @@ public class ItemGunBase extends Item implements IHoldableWeapon { //item mouseover text @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - - list.add("Ammo: " + getMag(stack)); - list.add("Ammo Type: " + getMagType(stack)); - list.add("Reload DLAY: " + getReloadCycle(stack)); + + Item ammo = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))).ammo; + + if(mainConfig.ammoCap > 0) + list.add("Ammo: " + getMag(stack) + " / " + mainConfig.ammoCap); + else + list.add("Ammo: Belt"); + + list.add("Ammo Type: " + I18n.format(ammo.getUnlocalizedName() + ".name")); + //list.add("Reload DLAY: " + getReloadCycle(stack)); } /*//returns main config from itemstack diff --git a/com/hbm/lib/ModDamageSource.java b/com/hbm/lib/ModDamageSource.java index cf9646447..0f55e6244 100644 --- a/com/hbm/lib/ModDamageSource.java +++ b/com/hbm/lib/ModDamageSource.java @@ -40,6 +40,7 @@ public class ModDamageSource extends DamageSource { public static DamageSource bang = (new DamageSource("bang")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource pc = (new DamageSource("pc")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource cloud = (new DamageSource("cloud")).setDamageIsAbsolute().setDamageBypassesArmor(); + public static DamageSource lead = (new DamageSource("lead")).setDamageIsAbsolute().setDamageBypassesArmor(); public ModDamageSource(String p_i1566_1_) { super(p_i1566_1_); diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index 69d19efc6..06efb3a55 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -364,6 +364,7 @@ public class ClientProxy extends ServerProxy ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRadioRec.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRadiobox.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBomber.class, new RenderDecoBlock()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSatDock.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoBlockAlt.class, new RenderDecoBlockAlt()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoBlockAltG.class, new RenderDecoBlockAlt()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoBlockAltW.class, new RenderDecoBlockAlt()); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index aad2b4327..56bf667dc 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -314,6 +314,7 @@ import com.hbm.tileentity.machine.TileEntityMachineReactorLarge.ReactorFuelType; import com.hbm.tileentity.machine.TileEntityMachineReactorSmall; import com.hbm.tileentity.machine.TileEntityMachineRefinery; import com.hbm.tileentity.machine.TileEntityMachineSPP; +import com.hbm.tileentity.machine.TileEntityMachineSatDock; import com.hbm.tileentity.machine.TileEntityMachineSchrabidiumTransmutator; import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; import com.hbm.tileentity.machine.TileEntityMachineShredder; @@ -561,6 +562,7 @@ public class MainRegistry public static int bangID = 64; public static int mutationID = 65; public static int radxID = 66; + public static int leadID = 67; public static int x; public static int y; @@ -756,6 +758,7 @@ public class MainRegistry GameRegistry.registerTileEntity(TileEntityMachineReactorLarge.class, "tileentity_large_reactor"); GameRegistry.registerTileEntity(TileEntityWasteDrum.class, "tileentity_waste_drum"); GameRegistry.registerTileEntity(TileEntityDecon.class, "tileentity_decon"); + GameRegistry.registerTileEntity(TileEntityMachineSatDock.class, "tileentity_miner_dock"); EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true); @@ -1875,6 +1878,9 @@ public class MainRegistry Property propRadxID = config.get(Configuration.CATEGORY_GENERAL, "8.04_radxPotionID", 66); propRadxID.comment = "What potion ID the Rad-X effect will have"; radxID = propRadxID.getInt(); + Property propLeadID = config.get(Configuration.CATEGORY_GENERAL, "8.05_leadPotionID", 67); + propLeadID.comment = "What potion ID the lead poisoning effect will have"; + leadID = propLeadID.getInt(); config.save(); diff --git a/com/hbm/main/ResourceManager.java b/com/hbm/main/ResourceManager.java index a0a31eaa7..e23b99b77 100644 --- a/com/hbm/main/ResourceManager.java +++ b/com/hbm/main/ResourceManager.java @@ -123,6 +123,9 @@ public class ResourceManager { public static final IModelCustom sat_foeq = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_foeq.obj")); public static final IModelCustom sat_foeq_burning = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_foeq_burning.obj")); public static final IModelCustom sat_foeq_fire = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_foeq_fire.obj")); + + //SatDock + public static final IModelCustom satDock = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_dock.obj")); //Vault Door public static final IModelCustom vault_cog = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_cog.obj")); @@ -232,6 +235,9 @@ public class ResourceManager { public static final ResourceLocation sat_foeq_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_foeq.png"); public static final ResourceLocation sat_foeq_burning_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_foeq_burning.png"); + //SatDock + public static final ResourceLocation satdock_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_dock.png"); + //Vault Door public static final ResourceLocation vault_cog_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_cog.png"); public static final ResourceLocation vault_frame_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_frame.png"); diff --git a/com/hbm/potion/HbmPotion.java b/com/hbm/potion/HbmPotion.java index 1c447b299..0305b5bf2 100644 --- a/com/hbm/potion/HbmPotion.java +++ b/com/hbm/potion/HbmPotion.java @@ -25,6 +25,7 @@ public class HbmPotion extends Potion { public static HbmPotion bang; public static HbmPotion mutation; public static HbmPotion radx; + public static HbmPotion lead; public HbmPotion(int id, boolean isBad, int color) { super(id, isBad, color); @@ -36,6 +37,7 @@ public class HbmPotion extends Potion { bang = registerPotion(MainRegistry.bangID, true, 1118481, "potion.hbm_bang", 3, 0); mutation = registerPotion(MainRegistry.mutationID, false, 8388736, "potion.hbm_mutation", 2, 0); radx = registerPotion(MainRegistry.radxID, false, 0xBB4B00, "potion.hbm_radx", 5, 0); + lead = registerPotion(MainRegistry.leadID, false, 0x767682, "potion.hbm_lead", 6, 0); } public static HbmPotion registerPotion(int id, boolean isBad, int color, String name, int x, int y) { @@ -104,10 +106,14 @@ public class HbmPotion extends Potion { entity.worldObj.playSoundEffect(entity.posX, entity.posY, entity.posZ, "hbm:weapon.laserBang", 100.0F, 1.0F); ExplosionLarge.spawnParticles(entity.worldObj, entity.posX, entity.posY, entity.posZ, 10); } + if(this == lead) { + + entity.attackEntityFrom(ModDamageSource.lead, (level + 1)); + } } public boolean isReady(int par1, int par2) { - + if(this == taint) { int k = 80 >> par2; @@ -116,14 +122,16 @@ public class HbmPotion extends Potion { if(this == radiation) { return true; - - //int k = 40 >> par2; - //return k > 0 ? par1 % k == 0 : true; } if(this == bang) { return par1 <= 10; } + if(this == lead) { + + int k = 60; + return k > 0 ? par1 % k == 0 : true; + } return false; } diff --git a/com/hbm/render/tileentity/RenderDecoBlock.java b/com/hbm/render/tileentity/RenderDecoBlock.java index 1916fa4fa..07f7b4a2d 100644 --- a/com/hbm/render/tileentity/RenderDecoBlock.java +++ b/com/hbm/render/tileentity/RenderDecoBlock.java @@ -384,6 +384,14 @@ public class RenderDecoBlock extends TileEntitySpecialRenderer { ResourceManager.sat_foeq.renderAll(); } + if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.sat_dock) { + GL11.glRotatef(180, 0F, 0F, 1F); + GL11.glTranslatef(0, -1.5F, 0); + + bindTexture(ResourceManager.satdock_tex); + ResourceManager.satDock.renderAll(); + } + GL11.glPopMatrix(); } diff --git a/com/hbm/render/tileentity/RenderLaunchPadTier1.java b/com/hbm/render/tileentity/RenderLaunchPadTier1.java index b900a558b..660cc311f 100644 --- a/com/hbm/render/tileentity/RenderLaunchPadTier1.java +++ b/com/hbm/render/tileentity/RenderLaunchPadTier1.java @@ -14,14 +14,14 @@ import net.minecraftforge.client.model.IModelCustom; public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { - private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/LaunchPad.obj"); + private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/missilePad.obj"); private IModelCustom padModel; private ResourceLocation padTexture; public RenderLaunchPadTier1() { padModel = AdvancedModelLoader.loadModel(objTesterModelRL); - padTexture = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); + padTexture = new ResourceLocation(RefStrings.MODID, "textures/models/missilePad.png"); } @Override @@ -30,6 +30,7 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y, z + 0.5D); GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); /*switch(tileEntity.getBlockMetadata()) { case 5: @@ -42,10 +43,10 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { GL11.glRotatef(0, 0F, 1F, 0F); break; }*/ - GL11.glScalef(1.5F, 1.0F, 1.5F); + //GL11.glScalef(1.5F, 1.0F, 1.5F); bindTexture(padTexture); padModel.renderAll(); - GL11.glScalef(2/3F, 1.0F, 2/3F); + //GL11.glScalef(2/3F, 1.0F, 2/3F); GL11.glDisable(GL11.GL_CULL_FACE); int state = 0; @@ -53,7 +54,7 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { if(tileEntity instanceof TileEntityLaunchPad) state = ((TileEntityLaunchPad)tileEntity).state; - GL11.glTranslated(0, 0.5, 0); + GL11.glTranslated(0, 1, 0); if(state == 1) { diff --git a/com/hbm/tileentity/machine/TileEntityMachineSatDock.java b/com/hbm/tileentity/machine/TileEntityMachineSatDock.java new file mode 100644 index 000000000..3ce084e4b --- /dev/null +++ b/com/hbm/tileentity/machine/TileEntityMachineSatDock.java @@ -0,0 +1,22 @@ +package com.hbm.tileentity.machine; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityMachineSatDock extends TileEntity { + + @Override + public AxisAlignedBB getRenderBoundingBox() { + return TileEntity.INFINITE_EXTENT_AABB; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() + { + return 65536.0D; + } + +}