new launch pad, sat dock, 20 gauge alt ammo implementation

This commit is contained in:
HbmMods 2019-01-31 01:41:03 +01:00
parent c1e6490f6d
commit 7f0413a522
28 changed files with 555 additions and 26 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 287 B

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 366 B

After

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -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());

View File

@ -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)

View File

@ -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);
}
}

View File

@ -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);

View File

@ -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;
}
}

View File

@ -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) {

View File

@ -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<Integer>();
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<Integer>();
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;
}

View File

@ -44,4 +44,15 @@ public class GunConfiguration {
//bullet configs for main and alt fire
public List<Integer> 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;
}

View File

@ -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");

View File

@ -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

View File

@ -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_);

View File

@ -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());

View File

@ -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();

View File

@ -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");

View File

@ -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;
}

View File

@ -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();
}

View File

@ -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)
{

View File

@ -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;
}
}