lots of gun fixes and improvements, dynamic audio sources

This commit is contained in:
HbmMods 2019-07-24 21:35:29 +02:00
parent a4d4aa7deb
commit a0cfae9f1c
73 changed files with 2198 additions and 655 deletions

View File

@ -1466,6 +1466,7 @@ item.ammo_50bmg_du.name=.50 BMG Patrone (DU)
item.ammo_9mm.name=9mm Patrone item.ammo_9mm.name=9mm Patrone
item.ammo_9mm_ap.name=9mm Patrone (Panzerbrechend) item.ammo_9mm_ap.name=9mm Patrone (Panzerbrechend)
item.ammo_9mm_du.name=9mm Patrone (DU) item.ammo_9mm_du.name=9mm Patrone (DU)
item.ammo_9mm_rocket.name=9mm Rakete
item.ammo_22lr.name=.22 LR Patrone item.ammo_22lr.name=.22 LR Patrone
item.ammo_22lr_ap.name=.22 LR Patrone (Panzerbrechend) item.ammo_22lr_ap.name=.22 LR Patrone (Panzerbrechend)
item.ammo_folly_taint.name=Silbernes Geschoss (Original) item.ammo_folly_taint.name=Silbernes Geschoss (Original)
@ -1477,6 +1478,7 @@ item.ammo_44_ap.name=.44 Magnum Patrone (Panzerbrechend)
item.ammo_44_du.name=.44 Magnum Patrone (DU) item.ammo_44_du.name=.44 Magnum Patrone (DU)
item.ammo_44_pip.name=.44 Magnum Patrone (Güterwagon) item.ammo_44_pip.name=.44 Magnum Patrone (Güterwagon)
item.ammo_44_bj.name=.44 Magnum Patrone (Boot) item.ammo_44_bj.name=.44 Magnum Patrone (Boot)
item.ammo_44_rocket.name=.44 Magnum Rakete
item.ammo_rocket.name=84mm Rakete item.ammo_rocket.name=84mm Rakete
item.ammo_rocket_he.name=84mm Rakete (HE) item.ammo_rocket_he.name=84mm Rakete (HE)
item.ammo_rocket_incendiary.name=84mm Rakete (Brand) item.ammo_rocket_incendiary.name=84mm Rakete (Brand)

View File

@ -1466,6 +1466,7 @@ item.ammo_50bmg_du.name=.50 BMG Round (DU)
item.ammo_9mm.name=9mm Round item.ammo_9mm.name=9mm Round
item.ammo_9mm_ap.name=9mm Round (Armor Piercing) item.ammo_9mm_ap.name=9mm Round (Armor Piercing)
item.ammo_9mm_du.name=9mm Round (DU) item.ammo_9mm_du.name=9mm Round (DU)
item.ammo_9mm_rocket.name=9mm Rocket
item.ammo_22lr.name=.22 LR Round item.ammo_22lr.name=.22 LR Round
item.ammo_22lr_ap.name=.22 LR Round (Armor Piercing) item.ammo_22lr_ap.name=.22 LR Round (Armor Piercing)
item.ammo_folly.name=Silver Bullet (Original) item.ammo_folly.name=Silver Bullet (Original)
@ -1477,6 +1478,7 @@ item.ammo_44_ap.name=.44 Magnum Bullet (Armor Piercing)
item.ammo_44_du.name=.44 Magnum Bullet (DU) item.ammo_44_du.name=.44 Magnum Bullet (DU)
item.ammo_44_pip.name=.44 Magnum Bullet (Boxcar) item.ammo_44_pip.name=.44 Magnum Bullet (Boxcar)
item.ammo_44_bj.name=.44 Magnum Bullet (Boat) item.ammo_44_bj.name=.44 Magnum Bullet (Boat)
item.ammo_44_rocket.name=.44 Magnum Rocket
item.ammo_rocket.name=84mm Rocket item.ammo_rocket.name=84mm Rocket
item.ammo_rocket_he.name=84mm Rocket (HE) item.ammo_rocket_he.name=84mm Rocket (HE)
item.ammo_rocket_incendiary.name=84mm Rocket (Incendiary) item.ammo_rocket_incendiary.name=84mm Rocket (Incendiary)

View File

@ -63,10 +63,12 @@
"weapon.osiprShoot": {"category": "player", "sounds": [{"name": "weapon/osiprShoot", "stream": false}]}, "weapon.osiprShoot": {"category": "player", "sounds": [{"name": "weapon/osiprShoot", "stream": false}]},
"weapon.osiprAltFire": {"category": "player", "sounds": [{"name": "weapon/osiprAltFire", "stream": false}]}, "weapon.osiprAltFire": {"category": "player", "sounds": [{"name": "weapon/osiprAltFire", "stream": false}]},
"weapon.osiprCharging": {"category": "player", "sounds": [{"name": "weapon/osiprCharging", "stream": false}]}, "weapon.osiprCharging": {"category": "player", "sounds": [{"name": "weapon/osiprCharging", "stream": false}]},
"weapon.osiprReload": {"category": "player", "sounds": [{"name": "weapon/osiprReload", "stream": false}]},
"weapon.singFlyby": {"category": "player", "sounds": [{"name": "weapon/singFlyby", "stream": false}]}, "weapon.singFlyby": {"category": "player", "sounds": [{"name": "weapon/singFlyby", "stream": false}]},
"weapon.rifleShoot": {"category": "player", "sounds": [{"name": "weapon/rifleShoot", "stream": false}]}, "weapon.rifleShoot": {"category": "player", "sounds": [{"name": "weapon/rifleShoot", "stream": false}]},
"weapon.rpgShoot": {"category": "player", "sounds": [{"name": "weapon/rpgShoot", "stream": false}]}, "weapon.rpgShoot": {"category": "player", "sounds": [{"name": "weapon/rpgShoot", "stream": false}]},
"weapon.fatmanShoot": {"category": "player", "sounds": [{"name": "weapon/fatmanShoot", "stream": false}]}, "weapon.fatmanShoot": {"category": "player", "sounds": [{"name": "weapon/fatmanShoot", "stream": false}]},
"weapon.fatmanReload": {"category": "player", "sounds": [{"name": "weapon/fatmanReload", "stream": false}]},
"weapon.zomgShoot": {"category": "player", "sounds": [{"name": "weapon/zomgShoot", "stream": false}]}, "weapon.zomgShoot": {"category": "player", "sounds": [{"name": "weapon/zomgShoot", "stream": false}]},
"weapon.flamethrowerIgnite": {"category": "player", "sounds": [{"name": "weapon/flamethrowerIgnite", "stream": false}]}, "weapon.flamethrowerIgnite": {"category": "player", "sounds": [{"name": "weapon/flamethrowerIgnite", "stream": false}]},
"weapon.flamethrowerShoot": {"category": "player", "sounds": [{"name": "weapon/flamethrowerShoot", "stream": false}]}, "weapon.flamethrowerShoot": {"category": "player", "sounds": [{"name": "weapon/flamethrowerShoot", "stream": false}]},

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 B

View File

@ -551,7 +551,7 @@ public class ModBlocks {
public static final int guiID_launch_table = 84; public static final int guiID_launch_table = 84;
public static Block soyuz_launcher; public static Block soyuz_launcher;
public static final int guiID_soyuz_launcher = 85; public static final int guiID_soyuz_launcher = 86;
public static Block machine_radar; public static Block machine_radar;
public static final int guiID_radar = 59; public static final int guiID_radar = 59;

View File

@ -346,6 +346,12 @@ public class EntityBulletBase extends Entity implements IProjectile {
if(this.ticksExisted > config.maxAge) if(this.ticksExisted > config.maxAge)
this.setDead(); this.setDead();
if(worldObj.isRemote && !config.vPFX.isEmpty()) {
for (i = 0; i < 8; ++i) {
this.worldObj.spawnParticle(config.vPFX, this.posX - this.motionX * i / 1.0D, this.posY - this.motionY * i / 1.0D, this.posZ - this.motionZ * i / 1.0D, 0, 0, 0);
}
}
//this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; //this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F;
//this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; //this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F;
@ -354,6 +360,9 @@ public class EntityBulletBase extends Entity implements IProjectile {
//for when a bullet dies by hitting a block //for when a bullet dies by hitting a block
private void onBlockImpact(int bX, int bY, int bZ) { private void onBlockImpact(int bX, int bY, int bZ) {
if(config.bImpact != null)
config.bImpact.behaveBlockHit(this, bX, bY, bZ);
if(!worldObj.isRemote) if(!worldObj.isRemote)
this.setDead(); this.setDead();
@ -453,13 +462,8 @@ public class EntityBulletBase extends Entity implements IProjectile {
//for when a bullet dies by hitting a block //for when a bullet dies by hitting a block
private void onRicochet(int bX, int bY, int bZ) { private void onRicochet(int bX, int bY, int bZ) {
if(!worldObj.isRemote && config.destroysWood && if(config.bRicochet != null)
(worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.wood || config.bRicochet.behaveBlockRicochet(this, bX, bY, bZ);
worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.plants ||
worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.glass ||
worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.leaves))
worldObj.func_147480_a(bX, bY, bZ, false);
} }
//for when a bullet dies by hitting an entity //for when a bullet dies by hitting an entity
@ -467,6 +471,9 @@ public class EntityBulletBase extends Entity implements IProjectile {
onEntityHurt(e); onEntityHurt(e);
onBlockImpact(-1, -1, -1); onBlockImpact(-1, -1, -1);
if(config.bHit != null)
config.bHit.behaveEntityHit(this, e);
if(config.boxcar && !worldObj.isRemote) { if(config.boxcar && !worldObj.isRemote) {
EntityBoxcar pippo = new EntityBoxcar(worldObj); EntityBoxcar pippo = new EntityBoxcar(worldObj);
pippo.posX = e.posX; pippo.posX = e.posX;
@ -505,6 +512,9 @@ public class EntityBulletBase extends Entity implements IProjectile {
//for when a bullet hurts an entity, not necessarily dying //for when a bullet hurts an entity, not necessarily dying
private void onEntityHurt(Entity e) { private void onEntityHurt(Entity e) {
if(config.bHurt != null)
config.bHurt.behaveEntityHurt(this, e);
if(config.incendiary > 0 && !worldObj.isRemote) { if(config.incendiary > 0 && !worldObj.isRemote) {
e.setFire(config.incendiary); e.setFire(config.incendiary);
} }

View File

@ -80,10 +80,12 @@ public class BulletConfigSyncingUtil {
public static final int M44_DU = 0x62; public static final int M44_DU = 0x62;
public static final int M44_PIP = 0x63; public static final int M44_PIP = 0x63;
public static final int M44_BJ = 0x64; public static final int M44_BJ = 0x64;
public static final int M44_ROCKET = 0x65;
public static final int P9_NORMAL = 0x70; public static final int P9_NORMAL = 0x70;
public static final int P9_AP = 0x71; public static final int P9_AP = 0x71;
public static final int P9_DU = 0x72; public static final int P9_DU = 0x72;
public static final int P9_ROCKET = 0x73;
public static final int BMG50_NORMAL = 0x80; public static final int BMG50_NORMAL = 0x80;
public static final int BMG50_INCENDIARY = 0x81; public static final int BMG50_INCENDIARY = 0x81;
@ -100,6 +102,23 @@ public class BulletConfigSyncingUtil {
public static final int AE50_NORMAL = 0xA0; public static final int AE50_NORMAL = 0xA0;
public static final int AE50_AP = 0xA1; public static final int AE50_AP = 0xA1;
public static final int AE50_DU = 0xA2; public static final int AE50_DU = 0xA2;
public static final int SPECIAL_OSIPR = 0xB0;
public static final int SPECIAL_GAUSS = 0xB1;
public static final int SPECIAL_GAUSS_CHARGED = 0xB2;
public static final int G20_NORMAL_FIRE = 0xC0;
public static final int G20_SLUG_FIRE = 0xC1;
public static final int G20_FLECHETTE_FIRE = 0xC2;
public static final int G20_EXPLOSIVE_FIRE = 0xC3;
public static final int G20_CAUSTIC_FIRE = 0xC4;
public static final int G20_SHOCK_FIRE = 0xC5;
public static final int G20_WITHER_FIRE = 0xC6;
public static final int NUKE_NORMAL = 0xD0;
public static final int NUKE_MIRV = 0xD1;
public static final int NUKE_AMAT = 0xD2;
public static final int NUKE_PROTO = 0xD3;
public static void loadConfigsForSync() { public static void loadConfigsForSync() {
@ -158,10 +177,12 @@ public class BulletConfigSyncingUtil {
configSet.add(new ConfigKeyPair(Gun44MagnumFactory.getNoPipDUConfig(), M44_DU)); configSet.add(new ConfigKeyPair(Gun44MagnumFactory.getNoPipDUConfig(), M44_DU));
configSet.add(new ConfigKeyPair(Gun44MagnumFactory.getPipConfig(), M44_PIP)); configSet.add(new ConfigKeyPair(Gun44MagnumFactory.getPipConfig(), M44_PIP));
configSet.add(new ConfigKeyPair(Gun44MagnumFactory.getBJConfig(), M44_BJ)); configSet.add(new ConfigKeyPair(Gun44MagnumFactory.getBJConfig(), M44_BJ));
configSet.add(new ConfigKeyPair(Gun44MagnumFactory.getRocketConfig(), M44_ROCKET));
configSet.add(new ConfigKeyPair(Gun9mmFactory.get9mmConfig(), P9_NORMAL)); configSet.add(new ConfigKeyPair(Gun9mmFactory.get9mmConfig(), P9_NORMAL));
configSet.add(new ConfigKeyPair(Gun9mmFactory.get9mmAPConfig(), P9_AP)); configSet.add(new ConfigKeyPair(Gun9mmFactory.get9mmAPConfig(), P9_AP));
configSet.add(new ConfigKeyPair(Gun9mmFactory.get9mmDUConfig(), P9_DU)); configSet.add(new ConfigKeyPair(Gun9mmFactory.get9mmDUConfig(), P9_DU));
configSet.add(new ConfigKeyPair(Gun9mmFactory.get9mmRocketConfig(), P9_ROCKET));
configSet.add(new ConfigKeyPair(Gun50BMGFactory.get50BMGConfig(), BMG50_NORMAL)); configSet.add(new ConfigKeyPair(Gun50BMGFactory.get50BMGConfig(), BMG50_NORMAL));
configSet.add(new ConfigKeyPair(Gun50BMGFactory.get50BMGFireConfig(), BMG50_INCENDIARY)); configSet.add(new ConfigKeyPair(Gun50BMGFactory.get50BMGFireConfig(), BMG50_INCENDIARY));
@ -178,6 +199,21 @@ public class BulletConfigSyncingUtil {
configSet.add(new ConfigKeyPair(Gun50AEFactory.get50AEConfig(), AE50_NORMAL)); configSet.add(new ConfigKeyPair(Gun50AEFactory.get50AEConfig(), AE50_NORMAL));
configSet.add(new ConfigKeyPair(Gun50AEFactory.get50APConfig(), AE50_AP)); configSet.add(new ConfigKeyPair(Gun50AEFactory.get50APConfig(), AE50_AP));
configSet.add(new ConfigKeyPair(Gun50AEFactory.get50DUConfig(), AE50_DU)); configSet.add(new ConfigKeyPair(Gun50AEFactory.get50DUConfig(), AE50_DU));
configSet.add(new ConfigKeyPair(GunOSIPRFactory.getPulseConfig(), SPECIAL_OSIPR));
configSet.add(new ConfigKeyPair(GunGaussFactory.getGaussConfig(), SPECIAL_GAUSS));
configSet.add(new ConfigKeyPair(GunGaussFactory.getAltConfig(), SPECIAL_GAUSS_CHARGED));
configSet.add(new ConfigKeyPair(Gun20GaugeFactory.get20GaugeConfig().setToFire(3), G20_NORMAL_FIRE));
configSet.add(new ConfigKeyPair(Gun20GaugeFactory.get20GaugeSlugConfig().setToFire(3), G20_SLUG_FIRE));
configSet.add(new ConfigKeyPair(Gun20GaugeFactory.get20GaugeFlechetteConfig().setToFire(3), G20_FLECHETTE_FIRE));
configSet.add(new ConfigKeyPair(Gun20GaugeFactory.get20GaugeExplosiveConfig().setToFire(3), G20_EXPLOSIVE_FIRE));
configSet.add(new ConfigKeyPair(Gun20GaugeFactory.get20GaugeCausticConfig().setToFire(3), G20_CAUSTIC_FIRE));
configSet.add(new ConfigKeyPair(Gun20GaugeFactory.get20GaugeShockConfig().setToFire(3), G20_SHOCK_FIRE));
configSet.add(new ConfigKeyPair(Gun20GaugeFactory.get20GaugeWitherConfig().setToFire(3), G20_WITHER_FIRE));
configSet.add(new ConfigKeyPair(GunFatmanFactory.getNukeConfig(), NUKE_NORMAL));
configSet.add(new ConfigKeyPair(GunFatmanFactory.getNukeProtoConfig(), NUKE_PROTO));
} }
public static BulletConfiguration pullConfig(int key) { public static BulletConfiguration pullConfig(int key) {

View File

@ -2,6 +2,11 @@ package com.hbm.handler;
import java.util.List; import java.util.List;
import com.hbm.interfaces.IBulletHitBehavior;
import com.hbm.interfaces.IBulletHurtBehavior;
import com.hbm.interfaces.IBulletImpactBehavior;
import com.hbm.interfaces.IBulletRicochetBehavior;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.potion.PotionEffect; import net.minecraft.potion.PotionEffect;
@ -62,9 +67,12 @@ public class BulletConfiguration {
public int caustic; public int caustic;
public boolean boxcar; public boolean boxcar;
public boolean boat; public boolean boat;
public boolean destroysWood;
public boolean destroysBlocks; public boolean destroysBlocks;
public boolean instakill; public boolean instakill;
public IBulletHurtBehavior bHurt;
public IBulletHitBehavior bHit;
public IBulletRicochetBehavior bRicochet;
public IBulletImpactBehavior bImpact;
//appearance //appearance
public int style; public int style;
@ -72,6 +80,8 @@ public class BulletConfiguration {
public int trail; public int trail;
//ricochet sound type //ricochet sound type
public int plink; public int plink;
//vanilla particle FX
public String vPFX = "";
public static final int STYLE_NORMAL = 0; public static final int STYLE_NORMAL = 0;
public static final int STYLE_FLECHETTE = 1; public static final int STYLE_FLECHETTE = 1;
@ -83,6 +93,7 @@ public class BulletConfiguration {
public static final int STYLE_NUKE = 7; public static final int STYLE_NUKE = 7;
public static final int STYLE_MIRV = 8; public static final int STYLE_MIRV = 8;
public static final int STYLE_GRENADE = 9; public static final int STYLE_GRENADE = 9;
public static final int STYLE_BF = 10;
public static final int PLINK_NONE = 0; public static final int PLINK_NONE = 0;
public static final int PLINK_BULLET = 1; public static final int PLINK_BULLET = 1;

View File

@ -769,6 +769,15 @@ public class GUIHandler implements IGuiHandler {
} }
return null; return null;
} }
case ModBlocks.guiID_soyuz_launcher:
{
if(entity instanceof TileEntitySoyuzLauncher)
{
return new ContainerSoyuzLauncher(player.inventory, (TileEntitySoyuzLauncher) entity);
}
return null;
}
} }
} else { } else {
//NON-TE CONTAINERS //NON-TE CONTAINERS
@ -1536,6 +1545,15 @@ public class GUIHandler implements IGuiHandler {
} }
return null; return null;
} }
case ModBlocks.guiID_soyuz_launcher:
{
if(entity instanceof TileEntitySoyuzLauncher)
{
return new GUISoyuzLauncher(player.inventory, (TileEntitySoyuzLauncher) entity);
}
return null;
}
} }
} else { } else {
//CLIENTONLY GUIS //CLIENTONLY GUIS

View File

@ -22,7 +22,7 @@ public class GunConfiguration {
public int gunMode; public int gunMode;
//0 = manual, 1 = automatic //0 = manual, 1 = automatic
public int firingMode; public int firingMode;
//weapon won't fire after weapon breaks //weapon won't fire after weapon breaks (main only)
public int durability; public int durability;
//whether or not there is a reload delay animation //whether or not there is a reload delay animation
@ -46,6 +46,8 @@ public class GunConfiguration {
//sound path to the shooting sound //sound path to the shooting sound
public String firingSound = ""; public String firingSound = "";
public float firingPitch = 1.0F; public float firingPitch = 1.0F;
//whether the reload sound should be played at the beginning or at the end of the reload
public boolean reloadSoundEnd = true;
//how much ammo the clip can hold, 0 if drawn from inventory //how much ammo the clip can hold, 0 if drawn from inventory
public int ammoCap; public int ammoCap;
@ -80,6 +82,7 @@ public class GunConfiguration {
public static final String RSOUND_SHOTGUN = "hbm:weapon.shotgunReload"; public static final String RSOUND_SHOTGUN = "hbm:weapon.shotgunReload";
public static final String RSOUND_LAUNCHER = "hbm:weapon.rpgReload"; public static final String RSOUND_LAUNCHER = "hbm:weapon.rpgReload";
public static final String RSOUND_GRENADE = "hbm:weapon.hkReload"; public static final String RSOUND_GRENADE = "hbm:weapon.hkReload";
public static final String RSOUND_FATMAN = "hbm:weapon.fatmanReload";
public GunConfiguration silenced() { public GunConfiguration silenced() {
this.firingSound = "hbm:weapon.silencerShoot"; this.firingSound = "hbm:weapon.silencerShoot";

View File

@ -142,5 +142,32 @@ public class BulletConfigFactory {
return bullet; return bullet;
} }
public static BulletConfiguration standardNukeConfig() {
BulletConfiguration bullet = new BulletConfiguration();
bullet.velocity = 3.0F;
bullet.spread = 0.005F;
bullet.wear = 10;
bullet.bulletsMin = 1;
bullet.bulletsMax = 1;
bullet.dmgMin = 1000;
bullet.dmgMax = 1000;
bullet.gravity = 0.025D;
bullet.maxAge = 300;
bullet.doesRicochet = false;
bullet.ricochetAngle = 0;
bullet.HBRC = 0;
bullet.LBRC = 0;
bullet.bounceMod = 1.0;
bullet.doesPenetrate = false;
bullet.doesBreakGlass = false;
bullet.nuke = 35;
bullet.style = BulletConfiguration.STYLE_NUKE;
bullet.plink = BulletConfiguration.PLINK_GRENADE;
return bullet;
}
} }

View File

@ -149,6 +149,32 @@ public class Gun20GaugeFactory {
return config; return config;
} }
public static GunConfiguration getBoltSaturniteConfig() {
GunConfiguration config = getShotgunConfig();
config.ammoCap = 1;
config.durability = 4000;
config.reloadSound = GunConfiguration.RSOUND_SHOTGUN;
config.firingSound = "hbm:weapon.revolverShoot";
config.firingPitch = 0.75F;
config.name = "Winchester Model 20 D-25A";
config.manufacturer = "Winchester Repeating Arms Company / Big MT";
config.config = new ArrayList<Integer>();
config.config.add(BulletConfigSyncingUtil.G20_SLUG_FIRE);
config.config.add(BulletConfigSyncingUtil.G20_NORMAL_FIRE);
config.config.add(BulletConfigSyncingUtil.G20_FLECHETTE_FIRE);
config.config.add(BulletConfigSyncingUtil.G20_FIRE);
config.config.add(BulletConfigSyncingUtil.G20_EXPLOSIVE_FIRE);
config.config.add(BulletConfigSyncingUtil.G20_CAUSTIC_FIRE);
config.config.add(BulletConfigSyncingUtil.G20_SHOCK_FIRE);
config.config.add(BulletConfigSyncingUtil.G20_WITHER_FIRE);
return config;
}
public static BulletConfiguration get20GaugeConfig() { public static BulletConfiguration get20GaugeConfig() {
BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig();

View File

@ -31,6 +31,7 @@ public class Gun22LRFactory {
config.durability = 3000; config.durability = 3000;
config.reloadSound = GunConfiguration.RSOUND_MAG; config.reloadSound = GunConfiguration.RSOUND_MAG;
config.firingSound = "hbm:weapon.uziShoot"; config.firingSound = "hbm:weapon.uziShoot";
config.reloadSoundEnd = false;
config.name = "IMI Uzi"; config.name = "IMI Uzi";
config.manufacturer = "Israel Military Industries"; config.manufacturer = "Israel Military Industries";

View File

@ -33,6 +33,7 @@ public class Gun357MagnumFactory {
config.crosshair = Crosshair.L_CLASSIC; config.crosshair = Crosshair.L_CLASSIC;
config.reloadSound = GunConfiguration.RSOUND_REVOLVER; config.reloadSound = GunConfiguration.RSOUND_REVOLVER;
config.firingSound = "hbm:weapon.revolverShoot"; config.firingSound = "hbm:weapon.revolverShoot";
config.reloadSoundEnd = false;
return config; return config;
} }

View File

@ -30,6 +30,7 @@ public class Gun44MagnumFactory {
config.crosshair = Crosshair.L_CLASSIC; config.crosshair = Crosshair.L_CLASSIC;
config.reloadSound = GunConfiguration.RSOUND_REVOLVER; config.reloadSound = GunConfiguration.RSOUND_REVOLVER;
config.firingSound = "hbm:weapon.revolverShootAlt"; config.firingSound = "hbm:weapon.revolverShootAlt";
config.reloadSoundEnd = false;
return config; return config;
} }
@ -47,6 +48,7 @@ public class Gun44MagnumFactory {
config.config.add(BulletConfigSyncingUtil.M44_NORMAL); config.config.add(BulletConfigSyncingUtil.M44_NORMAL);
config.config.add(BulletConfigSyncingUtil.M44_AP); config.config.add(BulletConfigSyncingUtil.M44_AP);
config.config.add(BulletConfigSyncingUtil.M44_DU); config.config.add(BulletConfigSyncingUtil.M44_DU);
config.config.add(BulletConfigSyncingUtil.M44_ROCKET);
return config; return config;
} }
@ -65,6 +67,7 @@ public class Gun44MagnumFactory {
config.config.add(BulletConfigSyncingUtil.M44_NORMAL); config.config.add(BulletConfigSyncingUtil.M44_NORMAL);
config.config.add(BulletConfigSyncingUtil.M44_AP); config.config.add(BulletConfigSyncingUtil.M44_AP);
config.config.add(BulletConfigSyncingUtil.M44_DU); config.config.add(BulletConfigSyncingUtil.M44_DU);
config.config.add(BulletConfigSyncingUtil.M44_ROCKET);
return config; return config;
} }
@ -84,6 +87,7 @@ public class Gun44MagnumFactory {
config.config.add(BulletConfigSyncingUtil.M44_NORMAL); config.config.add(BulletConfigSyncingUtil.M44_NORMAL);
config.config.add(BulletConfigSyncingUtil.M44_AP); config.config.add(BulletConfigSyncingUtil.M44_AP);
config.config.add(BulletConfigSyncingUtil.M44_DU); config.config.add(BulletConfigSyncingUtil.M44_DU);
config.config.add(BulletConfigSyncingUtil.M44_ROCKET);
return config; return config;
} }
@ -104,6 +108,7 @@ public class Gun44MagnumFactory {
config.config.add(BulletConfigSyncingUtil.M44_DU); config.config.add(BulletConfigSyncingUtil.M44_DU);
config.config.add(BulletConfigSyncingUtil.M44_PIP); config.config.add(BulletConfigSyncingUtil.M44_PIP);
config.config.add(BulletConfigSyncingUtil.M44_BJ); config.config.add(BulletConfigSyncingUtil.M44_BJ);
config.config.add(BulletConfigSyncingUtil.M44_ROCKET);
return config; return config;
} }
@ -172,5 +177,17 @@ public class Gun44MagnumFactory {
return bullet; return bullet;
} }
public static BulletConfiguration getRocketConfig() {
BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig();
bullet.ammo = ModItems.ammo_44_rocket;
bullet.velocity = 5;
bullet.explosive = 15F;
bullet.trail = 1;
return bullet;
}
} }

View File

@ -30,6 +30,7 @@ public class Gun50AEFactory {
config.crosshair = Crosshair.L_CLASSIC; config.crosshair = Crosshair.L_CLASSIC;
config.reloadSound = GunConfiguration.RSOUND_REVOLVER; config.reloadSound = GunConfiguration.RSOUND_REVOLVER;
config.firingSound = "hbm:weapon.revolverShootAlt"; config.firingSound = "hbm:weapon.revolverShootAlt";
config.reloadSoundEnd = false;
return config; return config;
} }
@ -41,7 +42,7 @@ public class Gun50AEFactory {
config.durability = 2500; config.durability = 2500;
config.name = "IMI Desert Eagle"; config.name = "IMI Desert Eagle";
config.manufacturer = " Magnum Research / Israel Military Industries"; config.manufacturer = "Magnum Research / Israel Military Industries";
config.config = new ArrayList<Integer>(); config.config = new ArrayList<Integer>();
config.config.add(BulletConfigSyncingUtil.AE50_NORMAL); config.config.add(BulletConfigSyncingUtil.AE50_NORMAL);

View File

@ -31,6 +31,7 @@ public class Gun50BMGFactory {
config.durability = 2000; config.durability = 2000;
config.reloadSound = GunConfiguration.RSOUND_MAG; config.reloadSound = GunConfiguration.RSOUND_MAG;
config.firingSound = "hbm:weapon.calShoot"; config.firingSound = "hbm:weapon.calShoot";
config.reloadSoundEnd = false;
config.name = "Maxim gun"; config.name = "Maxim gun";
config.manufacturer = "Hiram Maxim"; config.manufacturer = "Hiram Maxim";

View File

@ -31,6 +31,7 @@ public class Gun9mmFactory {
config.durability = 2500; config.durability = 2500;
config.reloadSound = GunConfiguration.RSOUND_MAG; config.reloadSound = GunConfiguration.RSOUND_MAG;
config.firingSound = "hbm:weapon.rifleShoot"; config.firingSound = "hbm:weapon.rifleShoot";
config.reloadSoundEnd = false;
config.name = "Maschinenpistole 40"; config.name = "Maschinenpistole 40";
config.manufacturer = "Erfurter Maschinenfabrik Geipel"; config.manufacturer = "Erfurter Maschinenfabrik Geipel";
@ -39,6 +40,7 @@ public class Gun9mmFactory {
config.config.add(BulletConfigSyncingUtil.P9_NORMAL); config.config.add(BulletConfigSyncingUtil.P9_NORMAL);
config.config.add(BulletConfigSyncingUtil.P9_AP); config.config.add(BulletConfigSyncingUtil.P9_AP);
config.config.add(BulletConfigSyncingUtil.P9_DU); config.config.add(BulletConfigSyncingUtil.P9_DU);
config.config.add(BulletConfigSyncingUtil.P9_ROCKET);
return config; return config;
} }
@ -83,5 +85,17 @@ public class Gun9mmFactory {
return bullet; return bullet;
} }
public static BulletConfiguration get9mmRocketConfig() {
BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig();
bullet.ammo = ModItems.ammo_9mm_rocket;
bullet.velocity = 5;
bullet.explosive = 7.5F;
bullet.trail = 5;
return bullet;
}
} }

View File

@ -0,0 +1,114 @@
package com.hbm.handler.guncfg;
import java.util.ArrayList;
import com.hbm.handler.BulletConfigSyncingUtil;
import com.hbm.handler.BulletConfiguration;
import com.hbm.handler.GunConfiguration;
import com.hbm.items.ModItems;
import com.hbm.render.misc.RenderScreenOverlay.Crosshair;
public class GunFatmanFactory {
public static GunConfiguration getFatmanConfig() {
GunConfiguration config = new GunConfiguration();
config.rateOfFire = 20;
config.roundsPerCycle = 1;
config.gunMode = GunConfiguration.MODE_NORMAL;
config.firingMode = GunConfiguration.FIRE_MANUAL;
config.hasReloadAnim = false;
config.hasFiringAnim = false;
config.hasSpinup = false;
config.hasSpindown = false;
config.reloadDuration = 120;
config.firingDuration = 0;
config.ammoCap = 1;
config.reloadType = GunConfiguration.RELOAD_FULL;
config.allowsInfinity = true;
config.crosshair = Crosshair.L_CIRCUMFLEX;
config.firingSound = "hbm:weapon.fatmanShoot";
config.reloadSound = GunConfiguration.RSOUND_FATMAN;
config.reloadSoundEnd = false;
config.name = "M-42 Tactical Nuclear Catapult";
config.manufacturer = "Fort Strong";
config.config = new ArrayList<Integer>();
config.config.add(BulletConfigSyncingUtil.NUKE_NORMAL);
config.durability = 1000;
return config;
}
public static GunConfiguration getProtoConfig() {
GunConfiguration config = new GunConfiguration();
config.rateOfFire = 20;
config.roundsPerCycle = 8;
config.gunMode = GunConfiguration.MODE_NORMAL;
config.firingMode = GunConfiguration.FIRE_MANUAL;
config.hasReloadAnim = false;
config.hasFiringAnim = false;
config.hasSpinup = false;
config.hasSpindown = false;
config.reloadDuration = 120;
config.firingDuration = 0;
config.ammoCap = 8;
config.reloadType = GunConfiguration.RELOAD_FULL;
config.allowsInfinity = true;
config.crosshair = Crosshair.L_CIRCUMFLEX;
config.firingSound = "hbm:weapon.fatmanShoot";
config.reloadSound = GunConfiguration.RSOUND_FATMAN;
config.reloadSoundEnd = false;
config.name = "M-42 Tactical Nuclear Catapult";
config.manufacturer = "Fort Strong";
config.config = new ArrayList<Integer>();
config.config.add(BulletConfigSyncingUtil.NUKE_PROTO);
config.durability = 1000;
return config;
}
public static BulletConfiguration getNukeConfig() {
BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig();
bullet.ammo = ModItems.gun_fatman_ammo;
return bullet;
}
public static BulletConfiguration getNukeProtoConfig() {
BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig();
bullet.spread = 0.1F;
bullet.ammo = ModItems.gun_fatman_ammo;
return bullet;
}
public static BulletConfiguration getMirvConfig() {
BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig();
bullet.ammo = ModItems.gun_mirv_ammo;
return bullet;
}
public static BulletConfiguration getBalefireConfig() {
BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig();
bullet.ammo = ModItems.gun_bf_ammo;
return bullet;
}
}

View File

@ -0,0 +1,84 @@
package com.hbm.handler.guncfg;
import java.util.ArrayList;
import com.hbm.handler.BulletConfigSyncingUtil;
import com.hbm.handler.BulletConfiguration;
import com.hbm.handler.GunConfiguration;
import com.hbm.items.ModItems;
import com.hbm.render.misc.RenderScreenOverlay.Crosshair;
public class GunGaussFactory {
public static GunConfiguration getXVLConfig() {
GunConfiguration config = new GunConfiguration();
config.rateOfFire = 4;
config.roundsPerCycle = 1;
config.gunMode = GunConfiguration.MODE_NORMAL;
config.firingMode = GunConfiguration.FIRE_AUTO;
config.hasReloadAnim = false;
config.hasFiringAnim = false;
config.hasSpinup = false;
config.hasSpindown = false;
config.reloadDuration = 20;
config.firingDuration = 0;
config.ammoCap = 0;
config.reloadType = GunConfiguration.RELOAD_NONE;
config.allowsInfinity = true;
config.crosshair = Crosshair.L_RAD;
config.durability = 6000;
config.firingSound = "hbm:weapon.tauShoot";
config.name = "XVL1456 Tau Cannon";
config.manufacturer = "Black Mesa Research Facility";
config.config = new ArrayList<Integer>();
config.config.add(BulletConfigSyncingUtil.SPECIAL_GAUSS);
return config;
}
public static GunConfiguration getChargedConfig() {
GunConfiguration config = new GunConfiguration();
config.rateOfFire = 10;
config.roundsPerCycle = 1;
config.gunMode = GunConfiguration.MODE_NORMAL;
config.firingMode = GunConfiguration.FIRE_AUTO;
config.reloadDuration = 20;
config.firingDuration = 0;
config.ammoCap = 30;
config.reloadType = GunConfiguration.RELOAD_FULL;
config.allowsInfinity = true;
config.crosshair = Crosshair.L_ARROWS;
return config;
}
public static BulletConfiguration getGaussConfig() {
BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig();
bullet.ammo = ModItems.gun_xvl1456_ammo;
bullet.dmgMin = 6;
bullet.dmgMax = 9;
bullet.trail = 1;
bullet.vPFX = "fireworksSpark";
bullet.LBRC = 80;
bullet.HBRC = 5;
return bullet;
}
public static BulletConfiguration getAltConfig() {
BulletConfiguration bullet = getGaussConfig();
bullet.vPFX = "reddust";
return bullet;
}
}

View File

@ -31,6 +31,7 @@ public class GunGrenadeFactory {
config.crosshair = Crosshair.L_CIRCUMFLEX; config.crosshair = Crosshair.L_CIRCUMFLEX;
config.firingSound = "hbm:weapon.hkShoot"; config.firingSound = "hbm:weapon.hkShoot";
config.reloadSound = GunConfiguration.RSOUND_GRENADE; config.reloadSound = GunConfiguration.RSOUND_GRENADE;
config.reloadSoundEnd = false;
config.name = "Granatpistole HK69"; config.name = "Granatpistole HK69";
config.manufacturer = "Heckler & Koch"; config.manufacturer = "Heckler & Koch";

View File

@ -0,0 +1,80 @@
package com.hbm.handler.guncfg;
import java.util.ArrayList;
import com.hbm.handler.BulletConfigSyncingUtil;
import com.hbm.handler.BulletConfiguration;
import com.hbm.handler.GunConfiguration;
import com.hbm.items.ModItems;
import com.hbm.render.misc.RenderScreenOverlay.Crosshair;
public class GunOSIPRFactory {
public static GunConfiguration getOSIPRConfig() {
GunConfiguration config = new GunConfiguration();
config.rateOfFire = 2;
config.roundsPerCycle = 1;
config.gunMode = GunConfiguration.MODE_NORMAL;
config.firingMode = GunConfiguration.FIRE_AUTO;
config.hasReloadAnim = false;
config.hasFiringAnim = false;
config.hasSpinup = false;
config.hasSpindown = false;
config.reloadDuration = 20;
config.firingDuration = 0;
config.ammoCap = 30;
config.reloadType = GunConfiguration.RELOAD_FULL;
config.allowsInfinity = true;
config.crosshair = Crosshair.L_ARROWS;
config.durability = 10000;
config.reloadSound = "hbm:weapon.osiprReload";
config.firingSound = "hbm:weapon.osiprShoot";
config.reloadSoundEnd = false;
config.name = "Overwatch Standard Issue Pulse Rifle";
config.manufacturer = "The Universal Union";
config.config = new ArrayList<Integer>();
config.config.add(BulletConfigSyncingUtil.SPECIAL_OSIPR);
return config;
}
public static GunConfiguration getAltConfig() {
GunConfiguration config = new GunConfiguration();
config.rateOfFire = 15;
config.roundsPerCycle = 1;
config.gunMode = GunConfiguration.MODE_NORMAL;
config.firingMode = GunConfiguration.FIRE_MANUAL;
config.hasReloadAnim = false;
config.hasFiringAnim = false;
config.hasSpinup = false;
config.hasSpindown = false;
config.reloadDuration = 20;
config.firingDuration = 0;
config.ammoCap = 1;
config.reloadType = GunConfiguration.RELOAD_NONE;
config.allowsInfinity = true;
config.firingSound = "hbm:weapon.singFlyby";
return config;
}
static float inaccuracy = 5;
public static BulletConfiguration getPulseConfig() {
BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig();
bullet.ammo = ModItems.gun_osipr_ammo;
bullet.spread *= inaccuracy;
bullet.dmgMin = 3;
bullet.dmgMax = 5;
bullet.trail = 2;
return bullet;
}
}

View File

@ -2,12 +2,19 @@ package com.hbm.handler.guncfg;
import java.util.ArrayList; import java.util.ArrayList;
import com.hbm.entity.projectile.EntityBulletBase;
import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfigSyncingUtil;
import com.hbm.handler.BulletConfiguration; import com.hbm.handler.BulletConfiguration;
import com.hbm.handler.GunConfiguration; import com.hbm.handler.GunConfiguration;
import com.hbm.interfaces.IBulletImpactBehavior;
import com.hbm.interfaces.IBulletRicochetBehavior;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.render.misc.RenderScreenOverlay.Crosshair; import com.hbm.render.misc.RenderScreenOverlay.Crosshair;
import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
import net.minecraft.world.World;
public class GunRocketFactory { public class GunRocketFactory {
public static GunConfiguration getGustavConfig() { public static GunConfiguration getGustavConfig() {
@ -30,6 +37,7 @@ public class GunRocketFactory {
config.crosshair = Crosshair.L_CIRCUMFLEX; config.crosshair = Crosshair.L_CIRCUMFLEX;
config.firingSound = "hbm:weapon.rpgShoot"; config.firingSound = "hbm:weapon.rpgShoot";
config.reloadSound = GunConfiguration.RSOUND_LAUNCHER; config.reloadSound = GunConfiguration.RSOUND_LAUNCHER;
config.reloadSoundEnd = false;
config.name = "Carl Gustav Recoilless Rifle M1"; config.name = "Carl Gustav Recoilless Rifle M1";
config.manufacturer = "Saab Bofors Dynamics"; config.manufacturer = "Saab Bofors Dynamics";
@ -235,9 +243,21 @@ public class GunRocketFactory {
bullet.gravity = 0.000D; bullet.gravity = 0.000D;
bullet.ricochetAngle = 90; bullet.ricochetAngle = 90;
bullet.LBRC = 100; bullet.LBRC = 100;
bullet.destroysWood = true;
bullet.doesPenetrate = true; bullet.doesPenetrate = true;
bullet.bRicochet = new IBulletRicochetBehavior() {
public void behaveBlockRicochet(EntityBulletBase bullet, int bX, int bY, int bZ) {
World worldObj = bullet.worldObj;
if(!worldObj.isRemote &&
(worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.wood ||
worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.plants ||
worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.glass ||
worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.leaves))
worldObj.func_147480_a(bX, bY, bZ, false);}
};
return bullet; return bullet;
} }

View File

@ -0,0 +1,12 @@
package com.hbm.interfaces;
import com.hbm.entity.projectile.EntityBulletBase;
import net.minecraft.entity.Entity;
public interface IBulletHitBehavior {
//entity is hit, bullet dies
public void behaveEntityHit(EntityBulletBase bullet, Entity hit);
}

View File

@ -0,0 +1,11 @@
package com.hbm.interfaces;
import com.hbm.entity.projectile.EntityBulletBase;
import net.minecraft.entity.Entity;
public interface IBulletHurtBehavior {
//entity is hit
public void behaveEntityHurt(EntityBulletBase bullet, Entity hit);
}

View File

@ -0,0 +1,12 @@
package com.hbm.interfaces;
import com.hbm.entity.projectile.EntityBulletBase;
import net.minecraft.entity.Entity;
public interface IBulletImpactBehavior {
//block is hit, bullet dies
public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z);
}

View File

@ -0,0 +1,12 @@
package com.hbm.interfaces;
import com.hbm.entity.projectile.EntityBulletBase;
import net.minecraft.entity.Entity;
public interface IBulletRicochetBehavior {
//block is hit, bullet ricochets
public void behaveBlockRicochet(EntityBulletBase bullet, int x, int y, int z);
}

View File

@ -659,6 +659,9 @@ public class MachineRecipes {
if(input.getItem() == ModItems.assembly_nopip) if(input.getItem() == ModItems.assembly_nopip)
return new ItemStack(ModItems.ammo_44); return new ItemStack(ModItems.ammo_44);
if(input.getItem() == ModItems.ammo_rocket)
return new ItemStack(ModItems.ammo_44_rocket);
} }
if(stamp.getItem() == ModItems.stamp_9) { if(stamp.getItem() == ModItems.stamp_9) {
@ -671,6 +674,9 @@ public class MachineRecipes {
return new ItemStack(ModItems.gun_mp_ammo); return new ItemStack(ModItems.gun_mp_ammo);
if(input.getItem() == ModItems.assembly_lacunae) if(input.getItem() == ModItems.assembly_lacunae)
return new ItemStack(ModItems.ammo_5mm); return new ItemStack(ModItems.ammo_5mm);
if(input.getItem() == ModItems.ammo_rocket)
return new ItemStack(ModItems.ammo_9mm_rocket);
} }
if(stamp.getItem() == ModItems.stamp_50) { if(stamp.getItem() == ModItems.stamp_50) {
@ -752,11 +758,13 @@ public class MachineRecipes {
recipes.put(new Object[] { i_stamps_44, new ItemStack(ModItems.assembly_nopip) }, getPressResultNN(i_stamps_44.get(0).getItem(), ModItems.assembly_nopip)); recipes.put(new Object[] { i_stamps_44, new ItemStack(ModItems.assembly_nopip) }, getPressResultNN(i_stamps_44.get(0).getItem(), ModItems.assembly_nopip));
//recipes.put(new Object[] { i_stamps_44, new ItemStack(ModItems.assembly_pip) }, getPressResultNN(i_stamps_44.get(0).getItem(), ModItems.assembly_pip)); //recipes.put(new Object[] { i_stamps_44, new ItemStack(ModItems.assembly_pip) }, getPressResultNN(i_stamps_44.get(0).getItem(), ModItems.assembly_pip));
recipes.put(new Object[] { i_stamps_44, new ItemStack(ModItems.ammo_rocket) }, getPressResultNN(i_stamps_44.get(0).getItem(), ModItems.ammo_rocket));
recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_smg) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_smg)); recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_smg) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_smg));
recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_uzi) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_uzi)); recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_uzi) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_uzi));
recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_lacunae) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_lacunae)); recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_lacunae) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_lacunae));
recipes.put(new Object[] { i_stamps_9, new ItemStack(Items.gold_ingot) }, getPressResultNN(i_stamps_9.get(0).getItem(), Items.gold_ingot)); recipes.put(new Object[] { i_stamps_9, new ItemStack(Items.gold_ingot) }, getPressResultNN(i_stamps_9.get(0).getItem(), Items.gold_ingot));
recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.ammo_rocket) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.ammo_rocket));
recipes.put(new Object[] { i_stamps_50, new ItemStack(ModItems.assembly_actionexpress) }, getPressResultNN(i_stamps_50.get(0).getItem(), ModItems.assembly_actionexpress)); recipes.put(new Object[] { i_stamps_50, new ItemStack(ModItems.assembly_actionexpress) }, getPressResultNN(i_stamps_50.get(0).getItem(), ModItems.assembly_actionexpress));
recipes.put(new Object[] { i_stamps_50, new ItemStack(ModItems.assembly_calamity) }, getPressResultNN(i_stamps_50.get(0).getItem(), ModItems.assembly_calamity)); recipes.put(new Object[] { i_stamps_50, new ItemStack(ModItems.assembly_calamity) }, getPressResultNN(i_stamps_50.get(0).getItem(), ModItems.assembly_calamity));

View File

@ -0,0 +1,98 @@
package com.hbm.inventory.container;
import com.hbm.tileentity.bomb.TileEntityLaunchTable;
import com.hbm.tileentity.machine.TileEntitySoyuzLauncher;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class ContainerSoyuzLauncher extends Container {
private TileEntitySoyuzLauncher nukeBoy;
public ContainerSoyuzLauncher(InventoryPlayer invPlayer, TileEntitySoyuzLauncher tedf) {
nukeBoy = tedf;
//Soyuz
this.addSlotToContainer(new Slot(tedf, 0, 62, 18));
//Designator
this.addSlotToContainer(new Slot(tedf, 1, 62, 36));
//Satellite
this.addSlotToContainer(new Slot(tedf, 2, 116, 18));
//Landing module
this.addSlotToContainer(new Slot(tedf, 3, 116, 36));
//Kerosene IN
this.addSlotToContainer(new Slot(tedf, 4, 8, 90));
//Kerosene OUT
this.addSlotToContainer(new Slot(tedf, 5, 8, 108));
//Peroxide IN
this.addSlotToContainer(new Slot(tedf, 6, 26, 90));
//Peroxide OUT
this.addSlotToContainer(new Slot(tedf, 7, 26, 108));
//Battery
this.addSlotToContainer(new Slot(tedf, 8, 44, 108));
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 6; j++)
{
this.addSlotToContainer(new Slot(tedf, j + i * 6 + 9, 62 + j * 18, 72 + i * 18));
}
}
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 9; j++)
{
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56));
}
}
for(int i = 0; i < 9; i++)
{
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56));
}
}
@Override
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2)
{
ItemStack var3 = null;
Slot var4 = (Slot) this.inventorySlots.get(par2);
if (var4 != null && var4.getHasStack())
{
ItemStack var5 = var4.getStack();
var3 = var5.copy();
if (par2 <= 1) {
if (!this.mergeItemStack(var5, 2, this.inventorySlots.size(), true))
{
return null;
}
}
else if (!this.mergeItemStack(var5, 0, 1, false))
return null;
if (var5.stackSize == 0)
{
var4.putStack((ItemStack) null);
}
else
{
var4.onSlotChanged();
}
}
return var3;
}
@Override
public boolean canInteractWith(EntityPlayer player) {
return nukeBoy.isUseableByPlayer(player);
}
}

View File

@ -47,7 +47,7 @@ public class GUIMachineLaunchTable extends GuiInfoContainer {
this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 25, guiTop + 98, 18, 18, new String[] { "Size 15 & 15/20" }); this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 25, guiTop + 98, 18, 18, new String[] { "Size 15 & 15/20" });
this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 43, guiTop + 98, 18, 18, new String[] { "Size 20" }); this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 43, guiTop + 98, 18, 18, new String[] { "Size 20" });
String[] text = new String[] { "Acepts custom missiles", "of all sizes, as long as the", "correct size setting is selected." }; String[] text = new String[] { "Accepts custom missiles", "of all sizes, as long as the", "correct size setting is selected." };
this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text);
String[] text1 = new String[] { "Detonator can only trigger center block." }; String[] text1 = new String[] { "Detonator can only trigger center block." };

View File

@ -0,0 +1,92 @@
package com.hbm.inventory.gui;
import org.lwjgl.opengl.GL11;
import com.hbm.inventory.FluidTank;
import com.hbm.inventory.container.ContainerSoyuzLauncher;
import com.hbm.items.weapon.ItemCustomMissile;
import com.hbm.items.weapon.ItemMissile.PartSize;
import com.hbm.lib.RefStrings;
import com.hbm.packet.AuxButtonPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.render.misc.MissileMultipart;
import com.hbm.render.misc.MissilePronter;
import com.hbm.tileentity.machine.TileEntitySoyuzLauncher;
import net.minecraft.client.Minecraft;
import net.minecraft.client.audio.PositionedSoundRecord;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
public class GUISoyuzLauncher extends GuiInfoContainer {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_soyuz.png");
private TileEntitySoyuzLauncher launcher;
public GUISoyuzLauncher(InventoryPlayer invPlayer, TileEntitySoyuzLauncher tedf) {
super(new ContainerSoyuzLauncher(invPlayer, tedf));
launcher = tedf;
this.xSize = 176;
this.ySize = 222;
}
@Override
public void drawScreen(int mouseX, int mouseY, float f) {
super.drawScreen(mouseX, mouseY, f);
/*launcher.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 88 - 52, 16, 52);
launcher.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 88 - 52, 16, 52);
this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 88 - 52, 16, 52, new String[] { "Solid Fuel: " + launcher.solid + "l" });
this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 113, 34, 6, launcher.power, launcher.maxPower);
this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 7, guiTop + 98, 18, 18, new String[] { "Size 10 & 10/15" });
this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 25, guiTop + 98, 18, 18, new String[] { "Size 15 & 15/20" });
this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 43, guiTop + 98, 18, 18, new String[] { "Size 20" });
String[] text = new String[] { "Acepts custom missiles", "of all sizes, as long as the", "correct size setting is selected." };
this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text);
String[] text1 = new String[] { "Detonator can only trigger center block." };
this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1);*/
}
protected void mouseClicked(int x, int y, int i) {
super.mouseClicked(x, y, i);
/*if(guiLeft + 7 <= x && guiLeft + 7 + 18 > x && guiTop + 98 < y && guiTop + 98 + 18 >= y) {
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));
PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(launcher.xCoord, launcher.yCoord, launcher.zCoord, PartSize.SIZE_10.ordinal(), 0));
}
if(guiLeft + 25 <= x && guiLeft + 25 + 18 > x && guiTop + 98 < y && guiTop + 98 + 18 >= y) {
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));
PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(launcher.xCoord, launcher.yCoord, launcher.zCoord, PartSize.SIZE_15.ordinal(), 0));
}
if(guiLeft + 43 <= x && guiLeft + 43 + 18 > x && guiTop + 98 < y && guiTop + 98 + 18 >= y) {
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));
PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(launcher.xCoord, launcher.yCoord, launcher.zCoord, PartSize.SIZE_20.ordinal(), 0));
}*/
}
@Override
protected void drawGuiContainerForegroundLayer( int i, int j) {
String name = this.launcher.hasCustomInventoryName() ? this.launcher.getInventoryName() : I18n.format(this.launcher.getInventoryName());
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
}
@Override
protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
}
}

View File

@ -11,7 +11,10 @@ import com.hbm.handler.guncfg.Gun50AEFactory;
import com.hbm.handler.guncfg.Gun50BMGFactory; import com.hbm.handler.guncfg.Gun50BMGFactory;
import com.hbm.handler.guncfg.Gun5mmFactory; import com.hbm.handler.guncfg.Gun5mmFactory;
import com.hbm.handler.guncfg.Gun9mmFactory; import com.hbm.handler.guncfg.Gun9mmFactory;
import com.hbm.handler.guncfg.GunFatmanFactory;
import com.hbm.handler.guncfg.GunGaussFactory;
import com.hbm.handler.guncfg.GunGrenadeFactory; import com.hbm.handler.guncfg.GunGrenadeFactory;
import com.hbm.handler.guncfg.GunOSIPRFactory;
import com.hbm.handler.guncfg.GunRocketFactory; import com.hbm.handler.guncfg.GunRocketFactory;
import com.hbm.items.bomb.*; import com.hbm.items.bomb.*;
import com.hbm.items.food.*; import com.hbm.items.food.*;
@ -1046,12 +1049,14 @@ public class ModItems {
public static Item ammo_44_du; public static Item ammo_44_du;
public static Item ammo_44_pip; public static Item ammo_44_pip;
public static Item ammo_44_bj; public static Item ammo_44_bj;
public static Item ammo_44_rocket;
public static Item ammo_5mm; public static Item ammo_5mm;
public static Item ammo_5mm_explosive; public static Item ammo_5mm_explosive;
public static Item ammo_5mm_du; public static Item ammo_5mm_du;
public static Item ammo_9mm; public static Item ammo_9mm;
public static Item ammo_9mm_ap; public static Item ammo_9mm_ap;
public static Item ammo_9mm_du; public static Item ammo_9mm_du;
public static Item ammo_9mm_rocket;
public static Item ammo_22lr; public static Item ammo_22lr;
public static Item ammo_22lr_ap; public static Item ammo_22lr_ap;
public static Item ammo_50ae; public static Item ammo_50ae;
@ -2729,6 +2734,7 @@ public class ModItems {
ammo_9mm = new ItemAmmo().setUnlocalizedName("ammo_9mm").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_9mm"); ammo_9mm = new ItemAmmo().setUnlocalizedName("ammo_9mm").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_9mm");
ammo_9mm_ap = new ItemAmmo().setUnlocalizedName("ammo_9mm_ap").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_9mm_ap"); ammo_9mm_ap = new ItemAmmo().setUnlocalizedName("ammo_9mm_ap").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_9mm_ap");
ammo_9mm_du = new ItemAmmo().setUnlocalizedName("ammo_9mm_du").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_9mm_du"); ammo_9mm_du = new ItemAmmo().setUnlocalizedName("ammo_9mm_du").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_9mm_du");
ammo_9mm_rocket = new ItemAmmo().setUnlocalizedName("ammo_9mm_rocket").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_9mm_rocket");
ammo_50ae = new ItemAmmo().setUnlocalizedName("ammo_50ae").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_50ae"); ammo_50ae = new ItemAmmo().setUnlocalizedName("ammo_50ae").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_50ae");
ammo_50ae_ap = new ItemAmmo().setUnlocalizedName("ammo_50ae_ap").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_50ae_ap"); ammo_50ae_ap = new ItemAmmo().setUnlocalizedName("ammo_50ae_ap").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_50ae_ap");
ammo_50ae_du = new ItemAmmo().setUnlocalizedName("ammo_50ae_du").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_50ae_du"); ammo_50ae_du = new ItemAmmo().setUnlocalizedName("ammo_50ae_du").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_50ae_du");
@ -2742,6 +2748,7 @@ public class ModItems {
ammo_44_du = new ItemAmmo().setUnlocalizedName("ammo_44_du").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_44_du"); ammo_44_du = new ItemAmmo().setUnlocalizedName("ammo_44_du").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_44_du");
ammo_44_pip = new ItemAmmo().setUnlocalizedName("ammo_44_pip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_44_pip"); ammo_44_pip = new ItemAmmo().setUnlocalizedName("ammo_44_pip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_44_pip");
ammo_44_bj = new ItemAmmo().setUnlocalizedName("ammo_44_bj").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_44_bj"); ammo_44_bj = new ItemAmmo().setUnlocalizedName("ammo_44_bj").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_44_bj");
ammo_44_rocket = new ItemAmmo().setUnlocalizedName("ammo_44_rocket").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_44_rocket");
ammo_22lr = new ItemAmmo().setUnlocalizedName("ammo_22lr").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_22lr"); ammo_22lr = new ItemAmmo().setUnlocalizedName("ammo_22lr").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_22lr");
ammo_22lr_ap = new ItemAmmo().setUnlocalizedName("ammo_22lr_ap").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_22lr_ap"); ammo_22lr_ap = new ItemAmmo().setUnlocalizedName("ammo_22lr_ap").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_22lr_ap");
ammo_folly = new ItemAmmo().setUnlocalizedName("ammo_folly").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_folly"); ammo_folly = new ItemAmmo().setUnlocalizedName("ammo_folly").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_folly");
@ -2808,12 +2815,12 @@ public class ModItems {
gun_lacunae = new ItemGunBase(Gun5mmFactory.getLacunaeConfig()).setUnlocalizedName("gun_lacunae").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lacunae"); gun_lacunae = new ItemGunBase(Gun5mmFactory.getLacunaeConfig()).setUnlocalizedName("gun_lacunae").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lacunae");
gun_folly = new GunFolly().setUnlocalizedName("gun_folly").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_folly"); gun_folly = new GunFolly().setUnlocalizedName("gun_folly").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_folly");
gun_fatman_ammo = new Item().setUnlocalizedName("gun_fatman_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman_ammo"); gun_fatman_ammo = new Item().setUnlocalizedName("gun_fatman_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman_ammo");
gun_fatman = new GunFatman().setMaxDamage(2500).setUnlocalizedName("gun_fatman").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); gun_fatman = new ItemGunBase(GunFatmanFactory.getFatmanConfig()).setUnlocalizedName("gun_fatman").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman");
gun_proto = new GunProtoMirv().setMaxDamage(2500).setUnlocalizedName("gun_proto").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); gun_proto = new ItemGunBase(GunFatmanFactory.getProtoConfig()).setUnlocalizedName("gun_proto").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman");
gun_mirv_ammo = new Item().setUnlocalizedName("gun_mirv_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mirv_ammo"); gun_mirv_ammo = new Item().setUnlocalizedName("gun_mirv_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mirv_ammo");
gun_mirv = new GunMIRV().setMaxDamage(2500).setUnlocalizedName("gun_mirv").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mirv"); gun_mirv = new ItemGunBase(GunFatmanFactory.getFatmanConfig()).setUnlocalizedName("gun_mirv").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mirv");
gun_bf_ammo = new Item().setUnlocalizedName("gun_bf_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bf_ammo"); gun_bf_ammo = new Item().setUnlocalizedName("gun_bf_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bf_ammo");
gun_bf = new GunBaleFlare().setMaxDamage(2500).setUnlocalizedName("gun_bf").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bf"); gun_bf = new ItemGunBase(GunFatmanFactory.getFatmanConfig()).setUnlocalizedName("gun_bf").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bf");
gun_mp40_ammo = new Item().setUnlocalizedName("gun_mp40_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_mp40_ammo"); gun_mp40_ammo = new Item().setUnlocalizedName("gun_mp40_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_mp40_ammo");
gun_mp40 = new ItemGunBase(Gun9mmFactory.getMP40Config()).setUnlocalizedName("gun_mp40").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mp40"); gun_mp40 = new ItemGunBase(Gun9mmFactory.getMP40Config()).setUnlocalizedName("gun_mp40").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mp40");
gun_uzi_ammo = new Item().setUnlocalizedName("gun_uzi_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uzi_ammo"); gun_uzi_ammo = new Item().setUnlocalizedName("gun_uzi_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uzi_ammo");
@ -2830,15 +2837,15 @@ public class ModItems {
gun_bolt_action_ammo = new Item().setUnlocalizedName("gun_bolt_action_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bolt_action_ammo"); gun_bolt_action_ammo = new Item().setUnlocalizedName("gun_bolt_action_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bolt_action_ammo");
gun_bolt_action = new ItemGunBase(Gun20GaugeFactory.getBoltConfig()).setUnlocalizedName("gun_bolt_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action"); gun_bolt_action = new ItemGunBase(Gun20GaugeFactory.getBoltConfig()).setUnlocalizedName("gun_bolt_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action");
gun_bolt_action_green = new ItemGunBase(Gun20GaugeFactory.getBoltGreenConfig()).setUnlocalizedName("gun_bolt_action_green").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action_green"); gun_bolt_action_green = new ItemGunBase(Gun20GaugeFactory.getBoltGreenConfig()).setUnlocalizedName("gun_bolt_action_green").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action_green");
gun_bolt_action_saturnite = new GunBoltAction().setUnlocalizedName("gun_bolt_action_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action_saturnite"); gun_bolt_action_saturnite = new ItemGunBase(Gun20GaugeFactory.getBoltSaturniteConfig()).setUnlocalizedName("gun_bolt_action_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action_saturnite");
gun_b92_ammo = new GunB92Cell().setUnlocalizedName("gun_b92_ammo").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92_ammo_alt"); gun_b92_ammo = new GunB92Cell().setUnlocalizedName("gun_b92_ammo").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92_ammo_alt");
gun_b92 = new GunB92().setUnlocalizedName("gun_b92").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92"); gun_b92 = new GunB92().setUnlocalizedName("gun_b92").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92");
gun_b93 = new GunB93().setUnlocalizedName("gun_b93").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b93"); gun_b93 = new GunB93().setUnlocalizedName("gun_b93").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b93");
gun_xvl1456_ammo = new Item().setUnlocalizedName("gun_xvl1456_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_xvl1456_ammo"); gun_xvl1456_ammo = new Item().setUnlocalizedName("gun_xvl1456_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_xvl1456_ammo");
gun_xvl1456 = new GunXVL1456().setUnlocalizedName("gun_xvl1456").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_xvl1456"); gun_xvl1456 = new ItemGunGauss(GunGaussFactory.getXVLConfig(), GunGaussFactory.getChargedConfig()).setUnlocalizedName("gun_xvl1456").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_xvl1456");
gun_osipr_ammo = new Item().setUnlocalizedName("gun_osipr_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_osipr_ammo"); gun_osipr_ammo = new Item().setUnlocalizedName("gun_osipr_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_osipr_ammo");
gun_osipr_ammo2 = new Item().setUnlocalizedName("gun_osipr_ammo2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_osipr_ammo2"); gun_osipr_ammo2 = new Item().setUnlocalizedName("gun_osipr_ammo2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_osipr_ammo2");
gun_osipr = new GunOSIPR().setUnlocalizedName("gun_osipr").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_osipr"); gun_osipr = new ItemGunOSIPR(GunOSIPRFactory.getOSIPRConfig(), GunOSIPRFactory.getAltConfig()).setUnlocalizedName("gun_osipr").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_osipr");
gun_immolator_ammo = new Item().setUnlocalizedName("gun_immolator_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_immolator_ammo"); gun_immolator_ammo = new Item().setUnlocalizedName("gun_immolator_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_immolator_ammo");
gun_immolator = new GunImmolator().setUnlocalizedName("gun_immolator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_immolator"); gun_immolator = new GunImmolator().setUnlocalizedName("gun_immolator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_immolator");
gun_cryolator_ammo = new Item().setUnlocalizedName("gun_cryolator_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_cryolator_ammo"); gun_cryolator_ammo = new Item().setUnlocalizedName("gun_cryolator_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_cryolator_ammo");
@ -4670,12 +4677,14 @@ public class ModItems {
GameRegistry.registerItem(ammo_44_du, ammo_44_du.getUnlocalizedName()); GameRegistry.registerItem(ammo_44_du, ammo_44_du.getUnlocalizedName());
GameRegistry.registerItem(ammo_44_pip, ammo_44_pip.getUnlocalizedName()); GameRegistry.registerItem(ammo_44_pip, ammo_44_pip.getUnlocalizedName());
GameRegistry.registerItem(ammo_44_bj, ammo_44_bj.getUnlocalizedName()); GameRegistry.registerItem(ammo_44_bj, ammo_44_bj.getUnlocalizedName());
GameRegistry.registerItem(ammo_44_rocket, ammo_44_rocket.getUnlocalizedName());
GameRegistry.registerItem(ammo_5mm, ammo_5mm.getUnlocalizedName()); GameRegistry.registerItem(ammo_5mm, ammo_5mm.getUnlocalizedName());
GameRegistry.registerItem(ammo_5mm_explosive, ammo_5mm_explosive.getUnlocalizedName()); GameRegistry.registerItem(ammo_5mm_explosive, ammo_5mm_explosive.getUnlocalizedName());
GameRegistry.registerItem(ammo_5mm_du, ammo_5mm_du.getUnlocalizedName()); GameRegistry.registerItem(ammo_5mm_du, ammo_5mm_du.getUnlocalizedName());
GameRegistry.registerItem(ammo_9mm, ammo_9mm.getUnlocalizedName()); GameRegistry.registerItem(ammo_9mm, ammo_9mm.getUnlocalizedName());
GameRegistry.registerItem(ammo_9mm_ap, ammo_9mm_ap.getUnlocalizedName()); GameRegistry.registerItem(ammo_9mm_ap, ammo_9mm_ap.getUnlocalizedName());
GameRegistry.registerItem(ammo_9mm_du, ammo_9mm_du.getUnlocalizedName()); GameRegistry.registerItem(ammo_9mm_du, ammo_9mm_du.getUnlocalizedName());
GameRegistry.registerItem(ammo_9mm_rocket, ammo_9mm_rocket.getUnlocalizedName());
GameRegistry.registerItem(ammo_22lr, ammo_22lr.getUnlocalizedName()); GameRegistry.registerItem(ammo_22lr, ammo_22lr.getUnlocalizedName());
GameRegistry.registerItem(ammo_22lr_ap, ammo_22lr_ap.getUnlocalizedName()); GameRegistry.registerItem(ammo_22lr_ap, ammo_22lr_ap.getUnlocalizedName());
GameRegistry.registerItem(ammo_50ae, ammo_50ae.getUnlocalizedName()); GameRegistry.registerItem(ammo_50ae, ammo_50ae.getUnlocalizedName());

View File

@ -83,6 +83,10 @@ public class ItemAmmo extends Item {
list.add(EnumChatFormatting.BLUE + "+ Boat"); list.add(EnumChatFormatting.BLUE + "+ Boat");
list.add(EnumChatFormatting.RED + "- Highly decreased damage"); list.add(EnumChatFormatting.RED + "- Highly decreased damage");
} }
if(this == ModItems.ammo_44_rocket) {
list.add(EnumChatFormatting.BLUE + "+ Rocket");
list.add(EnumChatFormatting.YELLOW + "* Uhhhh");
}
//5mm //5mm
if(this == ModItems.ammo_5mm_explosive) { if(this == ModItems.ammo_5mm_explosive) {
@ -106,6 +110,10 @@ public class ItemAmmo extends Item {
list.add(EnumChatFormatting.YELLOW + "* Heavy metal"); list.add(EnumChatFormatting.YELLOW + "* Heavy metal");
list.add(EnumChatFormatting.RED + "- Highly increased wear"); list.add(EnumChatFormatting.RED + "- Highly increased wear");
} }
if(this == ModItems.ammo_9mm_rocket) {
list.add(EnumChatFormatting.BLUE + "+ Rocket");
list.add(EnumChatFormatting.YELLOW + "* Uhhhh");
}
//.22LR //.22LR
if(this == ModItems.ammo_22lr_ap) { if(this == ModItems.ammo_22lr_ap) {
@ -129,6 +137,17 @@ public class ItemAmmo extends Item {
list.add(EnumChatFormatting.RED + "- Highly increased wear"); list.add(EnumChatFormatting.RED + "- Highly increased wear");
} }
//.50 AE
if(this == ModItems.ammo_50ae_ap) {
list.add(EnumChatFormatting.BLUE + "+ Increased damage");
list.add(EnumChatFormatting.RED + "- Increased wear");
}
if(this == ModItems.ammo_50ae_du) {
list.add(EnumChatFormatting.BLUE + "+ Highly increased damage");
list.add(EnumChatFormatting.YELLOW + "* Heavy metal");
list.add(EnumChatFormatting.RED + "- Highly increased wear");
}
//84mm ROCKETS //84mm ROCKETS
if(this == ModItems.ammo_rocket_he) { if(this == ModItems.ammo_rocket_he) {
list.add(EnumChatFormatting.BLUE + "+ Increased blast radius"); list.add(EnumChatFormatting.BLUE + "+ Increased blast radius");

View File

@ -61,6 +61,9 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
// return; // return;
if(entity instanceof EntityPlayer) { if(entity instanceof EntityPlayer) {
isCurrentItem = ((EntityPlayer)entity).getHeldItem() == stack;
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT && world.isRemote) { if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT && world.isRemote) {
updateClient(stack, world, (EntityPlayer)entity, slot, isCurrentItem); updateClient(stack, world, (EntityPlayer)entity, slot, isCurrentItem);
} else if(isCurrentItem) { } else if(isCurrentItem) {
@ -71,7 +74,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
private void updateClient(ItemStack stack, World world, EntityPlayer entity, int slot, boolean isCurrentItem) { protected void updateClient(ItemStack stack, World world, EntityPlayer entity, int slot, boolean isCurrentItem) {
boolean clickLeft = Mouse.isButtonDown(0); boolean clickLeft = Mouse.isButtonDown(0);
boolean clickRight = Mouse.isButtonDown(1); boolean clickRight = Mouse.isButtonDown(1);
@ -88,6 +91,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
m2 = false; m2 = false;
} }
/// HANDLED IN MODEVENTHANDLERCLIENT.JAVA ///
/*if(!left && !right) { /*if(!left && !right) {
if(clickLeft) { if(clickLeft) {
PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 0)); PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 0));
@ -104,12 +108,14 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 0)); PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 0));
//setIsMouseDown(stack, false); //setIsMouseDown(stack, false);
m1 = false; m1 = false;
endActionClient(stack, world, entity, true);
} }
if(right && !clickRight) { if(right && !clickRight) {
PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 1)); PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 1));
//setIsAltDown(stack, false); //setIsAltDown(stack, false);
m2 = false; m2 = false;
endActionClient(stack, world, entity, false);
} }
if(mainConfig.reloadType != mainConfig.RELOAD_NONE || (altConfig != null && altConfig.reloadType != 0)) { if(mainConfig.reloadType != mainConfig.RELOAD_NONE || (altConfig != null && altConfig.reloadType != 0)) {
@ -125,15 +131,17 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
if(left) { if(left) {
PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 0)); PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 0));
m1 = false; m1 = false;
endActionClient(stack, world, entity, true);
} }
if(right) { if(right) {
PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 1)); PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 1));
m2 = false; m2 = false;
endActionClient(stack, world, entity, false);
} }
} }
} }
private void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { protected void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) {
if(getDelay(stack) > 0 && isCurrentItem) if(getDelay(stack) > 0 && isCurrentItem)
setDelay(stack, getDelay(stack) - 1); setDelay(stack, getDelay(stack) - 1);
@ -147,14 +155,14 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
} }
if(getIsReloading(stack) && isCurrentItem) { if(getIsReloading(stack) && isCurrentItem) {
reload(stack, world, player); reload2(stack, world, player);
} }
} }
//tries to shoot, bullet checks are done here //whether or not the gun can shoot in its current state
private boolean tryShoot(ItemStack stack, World world, EntityPlayer player, boolean main) { protected boolean tryShoot(ItemStack stack, World world, EntityPlayer player, boolean main) {
if(getDelay(stack) == 0 && !getIsReloading(stack) && getItemWear(stack) < mainConfig.durability) { if(main && getDelay(stack) == 0 && !getIsReloading(stack) && getItemWear(stack) < mainConfig.durability) {
if(mainConfig.reloadType == mainConfig.RELOAD_NONE) { if(mainConfig.reloadType == mainConfig.RELOAD_NONE) {
return getBeltSize(player, getBeltType(player, stack)) > 0; return getBeltSize(player, getBeltType(player, stack)) > 0;
@ -164,11 +172,17 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
} }
} }
if(!main && getDelay(stack) == 0 && !getIsReloading(stack) && getItemWear(stack) < mainConfig.durability) {
//no extra conditions, alt fire has to be handled by every weapon individually in the altFire() method
return true;
}
return false; return false;
} }
//called every time the gun shoots, overridden to change bullet entity/special additions //called every time the gun shoots successfully, calls spawnProjectile(), sets item wear
private void fire(ItemStack stack, World world, EntityPlayer player) { protected void fire(ItemStack stack, World world, EntityPlayer player) {
BulletConfiguration config = null; BulletConfiguration config = null;
@ -191,34 +205,47 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
setItemWear(stack, getItemWear(stack) + config.wear); setItemWear(stack, getItemWear(stack) + config.wear);
} }
world.playSoundAtEntity(player, mainConfig.firingSound, 1.0F, mainConfig.firingPitch); world.playSoundAtEntity(player, mainConfig.firingSound, 1.0F, mainConfig.firingPitch);
//player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_gold_ammo));
} }
private void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { //unlike fire(), being called does not automatically imply success, some things may still have to be handled before spawning the projectile
protected void altFire(ItemStack stack, World world, EntityPlayer player) {
if(!altConfig.firingSound.isEmpty())
world.playSoundAtEntity(player, altConfig.firingSound, 1.0F, altConfig.firingPitch);
}
//spawns the actual projectile, can be overridden to change projectile entity
protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) {
EntityBulletBase bullet = new EntityBulletBase(world, config, player); EntityBulletBase bullet = new EntityBulletBase(world, config, player);
world.spawnEntityInWorld(bullet); world.spawnEntityInWorld(bullet);
} }
//called on click (server side, called by mouse packet) //called on click (server side, called by mouse packet) for semi-automatics and specific events
public void startAction(ItemStack stack, World world, EntityPlayer player, boolean main) { public void startAction(ItemStack stack, World world, EntityPlayer player, boolean main) {
if(mainConfig.firingMode == mainConfig.FIRE_MANUAL && getIsMouseDown(stack) && tryShoot(stack, world, player, main)) { if(mainConfig.firingMode == mainConfig.FIRE_MANUAL && main && tryShoot(stack, world, player, main)) {
fire(stack, world, player); fire(stack, world, player);
setDelay(stack, mainConfig.rateOfFire); setDelay(stack, mainConfig.rateOfFire);
//setMag(stack, getMag(stack) - 1); //setMag(stack, getMag(stack) - 1);
useUpAmmo(player, stack); useUpAmmo(player, stack);
} }
if(!main && altConfig != null)
altFire(stack, world, player);
} }
//called on click release //called on click (client side, called by update cylce)
public void endAction(ItemStack stack, World world, EntityPlayer player, boolean main) { public void startActionClient(ItemStack stack, World world, EntityPlayer player, boolean main) { }
} //called on click release (server side, called by mouse packet) for release actions like charged shots
public void endAction(ItemStack stack, World world, EntityPlayer player, boolean main) { }
//called on click release (client side, called by update cylce)
public void endActionClient(ItemStack stack, World world, EntityPlayer player, boolean main) { }
//reload action, if existent //reload action, if existent
private void reload(ItemStack stack, World world, EntityPlayer player) { protected void reload(ItemStack stack, World world, EntityPlayer player) {
if(getReloadCycle(stack) < 0 && stack == player.getHeldItem()) { if(getReloadCycle(stack) < 0 && stack == player.getHeldItem()) {
@ -227,6 +254,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
Item ammo = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))).ammo; Item ammo = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))).ammo;
//how many bullets to load
int count = 1; int count = 1;
if(mainConfig.reloadType == 1) { if(mainConfig.reloadType == 1) {
@ -275,7 +303,6 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
setMagType(stack, mainConfig.config.indexOf(config)); setMagType(stack, mainConfig.config.indexOf(config));
break; break;
} }
setIsReloading(stack, false);
} }
//load new type if bullets are present //load new type if bullets are present
@ -322,6 +349,108 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
} }
} }
//martin 2 reload algorithm
//now with less WET and more DRY
//compact, readable and most importantly, FUNCTIONAL
protected void reload2(ItemStack stack, World world, EntityPlayer player) {
if(getReloadCycle(stack) < 0) {
if(getMag(stack) == 0)
resetAmmoType(stack, world, player);
int count = 1;
if(mainConfig.reloadType == mainConfig.RELOAD_FULL) {
count = mainConfig.ammoCap - getMag(stack);
}
boolean hasLoaded = false;
Item ammo = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))).ammo;
for(int i = 0; i < count; i++) {
if(player.inventory.hasItem(ammo)) {
player.inventory.consumeInventoryItem(ammo);
setMag(stack, getMag(stack) + 1);
hasLoaded = true;
} else {
setIsReloading(stack, false);
break;
}
}
if(getMag(stack) == mainConfig.ammoCap) {
setIsReloading(stack, false);
} else {
resetReloadCycle(stack);
}
if(hasLoaded && mainConfig.reloadSoundEnd)
world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F);
} else {
setReloadCycle(stack, getReloadCycle(stack) - 1);
}
if(stack != player.getHeldItem()) {
setReloadCycle(stack, 0);
setIsReloading(stack, false);
}
}
//initiates a reload
public void startReloadAction(ItemStack stack, World world, EntityPlayer player) {
if(getIsReloading(stack))
return;
if(!mainConfig.reloadSoundEnd)
world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F);
setIsReloading(stack, true);
resetReloadCycle(stack);
}
public boolean canReload(ItemStack stack, World world, EntityPlayer player) {
if(getMag(stack) == 0) {
for(Integer config : mainConfig.config) {
BulletConfiguration cfg = BulletConfigSyncingUtil.pullConfig(config);
if(player.inventory.hasItem(cfg.ammo)) {
return true;
}
}
} else {
Item ammo = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))).ammo;
if(player.inventory.hasItem(ammo))
return true;
}
return false;
}
//searches the player's inv for next fitting ammo type and changes the gun's mag
protected void resetAmmoType(ItemStack stack, World world, EntityPlayer player) {
for(Integer config : mainConfig.config) {
BulletConfiguration cfg = BulletConfigSyncingUtil.pullConfig(config);
if(player.inventory.hasItem(cfg.ammo)) {
setMagType(stack, mainConfig.config.indexOf(config));
break;
}
}
}
//item mouseover text //item mouseover text
@Override @Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
@ -357,6 +486,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
} }
} }
//returns ammo item of belt-weapons
public static Item getBeltType(EntityPlayer player, ItemStack stack) { public static Item getBeltType(EntityPlayer player, ItemStack stack) {
ItemGunBase gun = (ItemGunBase)stack.getItem(); ItemGunBase gun = (ItemGunBase)stack.getItem();
@ -375,6 +505,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
return ammo; return ammo;
} }
//returns BCFG of belt-weapons
public static BulletConfiguration getBeltCfg(EntityPlayer player, ItemStack stack) { public static BulletConfiguration getBeltCfg(EntityPlayer player, ItemStack stack) {
ItemGunBase gun = (ItemGunBase)stack.getItem(); ItemGunBase gun = (ItemGunBase)stack.getItem();
@ -391,7 +522,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
return BulletConfigSyncingUtil.pullConfig(gun.mainConfig.config.get(0)); return BulletConfigSyncingUtil.pullConfig(gun.mainConfig.config.get(0));
} }
//returns ammo capacity of belt-weapons for current ammo
public static int getBeltSize(EntityPlayer player, Item ammo) { public static int getBeltSize(EntityPlayer player, Item ammo) {
int amount = 0; int amount = 0;
@ -404,6 +536,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
return amount; return amount;
} }
//reduces ammo count for mag and belt-based weapons, should be called AFTER firing
public void useUpAmmo(EntityPlayer player, ItemStack stack) { public void useUpAmmo(EntityPlayer player, ItemStack stack) {
if(mainConfig.allowsInfinity && EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0) if(mainConfig.allowsInfinity && EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0)
@ -514,7 +647,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
} }
/// NBT utility /// /// NBT utility ///
private static void writeNBT(ItemStack stack, String key, int value) { protected static void writeNBT(ItemStack stack, String key, int value) {
if(!stack.hasTagCompound()) if(!stack.hasTagCompound())
stack.stackTagCompound = new NBTTagCompound(); stack.stackTagCompound = new NBTTagCompound();
@ -522,7 +655,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
stack.stackTagCompound.setInteger(key, value); stack.stackTagCompound.setInteger(key, value);
} }
private static int readNBT(ItemStack stack, String key) { protected static int readNBT(ItemStack stack, String key) {
if(!stack.hasTagCompound()) if(!stack.hasTagCompound())
return 0; return 0;

View File

@ -0,0 +1,124 @@
package com.hbm.items.weapon;
import java.util.List;
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
import com.hbm.entity.projectile.EntityBulletBase;
import com.hbm.entity.projectile.EntityCombineBall;
import com.hbm.handler.BulletConfigSyncingUtil;
import com.hbm.handler.BulletConfiguration;
import com.hbm.handler.GunConfiguration;
import com.hbm.interfaces.IHoldableWeapon;
import com.hbm.items.ModItems;
import com.hbm.main.MainRegistry;
import com.hbm.packet.GunButtonPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.render.misc.RenderScreenOverlay.Crosshair;
import com.hbm.sound.AudioWrapper;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
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.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import net.minecraftforge.client.event.MouseEvent;
public class ItemGunGauss extends ItemGunBase {
private AudioWrapper chargeLoop;
public ItemGunGauss(GunConfiguration config, GunConfiguration alt) {
super(config, alt);
}
public void endAction(ItemStack stack, World world, EntityPlayer player, boolean main) {
if(getHasShot(stack)) {
world.playSoundAtEntity(player, "hbm:weapon.sparkShoot", 1.0F, 1.0F);
setHasShot(stack, false);
}
}
public void endActionClient(ItemStack stack, World world, EntityPlayer player, boolean main) {
if(chargeLoop != null) {
chargeLoop.stopSound();
chargeLoop = null;
}
//setCharge(stack, 0);
}
@Override
public void startActionClient(ItemStack stack, World world, EntityPlayer player, boolean main) {
if(!main) {
setCharge(stack, 1);
chargeLoop = MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop2", (float)player.posX, (float)player.posY, (float)player.posZ, 1.0F, 0.75F);
world.playSoundAtEntity(player, "hbm:weapon.tauChargeLoop2", 1.0F, 0.75F);
if(chargeLoop != null) {
chargeLoop.startSound();
}
}
}
protected void updateClient(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) {
super.updateClient(stack, world, player, slot, isCurrentItem);
/*if(!isCurrentItem) {
setCharge(stack, 0);
if(chargeLoop != null) {
chargeLoop.stopSound();
chargeLoop = null;
}
return;
}*/
int c = getCharge(stack);
if(c > 0) {
setCharge(stack, c + 1);
System.out.println(c);
}
if(chargeLoop != null) {
chargeLoop.updatePosition((float)player.posX, (float)player.posY, (float)player.posZ);
chargeLoop.updatePitch(1.0F);
}
}
protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) {
super.spawnProjectile(world, player, stack, config);
setHasShot(stack, true);
}
public static void setHasShot(ItemStack stack, boolean b) {
writeNBT(stack, "hasShot", b ? 1 : 0);
}
public static boolean getHasShot(ItemStack stack) {
return readNBT(stack, "hasShot") == 1;
}
/// gauss charge state ///
public static void setCharge(ItemStack stack, int i) {
writeNBT(stack, "gauss_charge", i);
}
public static int getCharge(ItemStack stack) {
return readNBT(stack, "gauss_charge");
}
}

View File

@ -0,0 +1,88 @@
package com.hbm.items.weapon;
import java.util.List;
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
import com.hbm.entity.projectile.EntityBulletBase;
import com.hbm.entity.projectile.EntityCombineBall;
import com.hbm.handler.BulletConfigSyncingUtil;
import com.hbm.handler.BulletConfiguration;
import com.hbm.handler.GunConfiguration;
import com.hbm.interfaces.IHoldableWeapon;
import com.hbm.items.ModItems;
import com.hbm.main.MainRegistry;
import com.hbm.packet.GunButtonPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.render.misc.RenderScreenOverlay.Crosshair;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
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.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import net.minecraftforge.client.event.MouseEvent;
public class ItemGunOSIPR extends ItemGunBase {
public ItemGunOSIPR(GunConfiguration config, GunConfiguration alt) {
super(config, alt);
}
@Override
protected void altFire(ItemStack stack, World world, EntityPlayer player) {
if(player.inventory.hasItem(ModItems.gun_osipr_ammo2)) {
setCharge(stack, 1);
world.playSoundAtEntity(player, "hbm:weapon.osiprCharging", 1.0F, 1F);
}
}
protected void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) {
super.updateServer(stack, world, player, slot, isCurrentItem);
if(!isCurrentItem || !player.inventory.hasItem(ModItems.gun_osipr_ammo2)) {
setCharge(stack, 0);
return;
}
int i = getCharge(stack);
if(i >= 20) {
EntityCombineBall entityarrow = new EntityCombineBall(player.worldObj, player, 3.0F);
entityarrow.setDamage(1000);
world.spawnEntityInWorld(entityarrow);
world.playSoundAtEntity(player, altConfig.firingSound, 1.0F, 1F);
setCharge(stack, 0);
setDelay(stack, altConfig.rateOfFire);
player.inventory.consumeInventoryItem(ModItems.gun_osipr_ammo2);
} else if(i > 0)
setCharge(stack, i + 1);
}
protected boolean tryShoot(ItemStack stack, World world, EntityPlayer player, boolean main) {
return super.tryShoot(stack, world, player, main) && getCharge(stack) == 0;
}
/// CMB charge state ///
public static void setCharge(ItemStack stack, int i) {
writeNBT(stack, "cmb_charge", i);
}
public static int getCharge(ItemStack stack) {
return readNBT(stack, "cmb_charge");
}
}

View File

@ -5,6 +5,7 @@ import net.minecraft.client.particle.EntityCloudFX;
import net.minecraft.client.renderer.entity.RenderSnowball; import net.minecraft.client.renderer.entity.RenderSnowball;
import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.client.MinecraftForgeClient;
import net.minecraftforge.client.model.AdvancedModelLoader; import net.minecraftforge.client.model.AdvancedModelLoader;
@ -32,6 +33,8 @@ import com.hbm.render.item.*;
import com.hbm.render.misc.MissilePart; import com.hbm.render.misc.MissilePart;
import com.hbm.render.tileentity.*; import com.hbm.render.tileentity.*;
import com.hbm.render.util.HmfModelLoader; import com.hbm.render.util.HmfModelLoader;
import com.hbm.sound.AudioWrapper;
import com.hbm.sound.AudioWrapperClient;
import com.hbm.tileentity.bomb.*; import com.hbm.tileentity.bomb.*;
import com.hbm.tileentity.conductor.*; import com.hbm.tileentity.conductor.*;
import com.hbm.tileentity.deco.*; import com.hbm.tileentity.deco.*;
@ -524,5 +527,13 @@ public class ClientProxy extends ServerProxy
Minecraft.getMinecraft().effectRenderer.addEffect(contrail); Minecraft.getMinecraft().effectRenderer.addEffect(contrail);
} }
} }
@Override
public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float pitch) {
AudioWrapperClient audio = new AudioWrapperClient(new ResourceLocation(sound));
audio.updatePosition(x, y, z);
return audio;
}
} }

View File

@ -139,12 +139,12 @@ public class ModEventHandlerClient {
if(event.button == 0 && !item.m1 && !item.m2) { if(event.button == 0 && !item.m1 && !item.m2) {
item.m1 = true; item.m1 = true;
PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 0)); PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 0));
//System.out.println("M1"); item.startActionClient(player.getHeldItem(), player.worldObj, player, true);
} }
else if(event.button == 1 && !item.m2 && !item.m1) { else if(event.button == 1 && !item.m2 && !item.m1) {
item.m2 = true; item.m2 = true;
PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 1)); PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 1));
//System.out.println("M2"); item.startActionClient(player.getHeldItem(), player.worldObj, player, false);
} }
} }

View File

@ -1,5 +1,7 @@
package com.hbm.main; package com.hbm.main;
import com.hbm.sound.AudioWrapper;
public class ServerProxy public class ServerProxy
{ {
public void registerRenderInfo() public void registerRenderInfo()
@ -14,4 +16,6 @@ public class ServerProxy
public void spawnParticle(double x, double y, double z, String type, float[] args) { } public void spawnParticle(double x, double y, double z, String type, float[] args) { }
public void registerMissileItems() { } public void registerMissileItems() { }
public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float pitch) { return null; }
} }

View File

@ -87,8 +87,10 @@ public class GunButtonPacket implements IMessage {
item.endAction(p.getHeldItem(), p.worldObj, p, false); item.endAction(p.getHeldItem(), p.worldObj, p, false);
break; break;
case 2: ItemGunBase.setIsReloading(p.getHeldItem(), true); case 2:
ItemGunBase.resetReloadCycle(p.getHeldItem()); if(item.canReload(p.getHeldItem(), p.worldObj, p)) {
item.startReloadAction(p.getHeldItem(), p.worldObj, p);
}
break; break;
} }
} }

View File

@ -8,9 +8,12 @@ import com.hbm.entity.projectile.EntityBullet;
import com.hbm.handler.BulletConfiguration; import com.hbm.handler.BulletConfiguration;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.main.ResourceManager; import com.hbm.main.ResourceManager;
import com.hbm.render.model.ModelBaleflare;
import com.hbm.render.model.ModelBuckshot; import com.hbm.render.model.ModelBuckshot;
import com.hbm.render.model.ModelBullet; import com.hbm.render.model.ModelBullet;
import com.hbm.render.model.ModelGrenade; import com.hbm.render.model.ModelGrenade;
import com.hbm.render.model.ModelMIRV;
import com.hbm.render.model.ModelMiniNuke;
import com.hbm.render.model.ModelRocket; import com.hbm.render.model.ModelRocket;
import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.Tessellator;
@ -24,12 +27,18 @@ public class RenderBullet extends Render {
private ModelBuckshot buckshot; private ModelBuckshot buckshot;
private ModelRocket rocket; private ModelRocket rocket;
private ModelGrenade grenade; private ModelGrenade grenade;
private ModelMiniNuke nuke;
private ModelMIRV mirv;
private ModelBaleflare bf;
public RenderBullet() { public RenderBullet() {
bullet = new ModelBullet(); bullet = new ModelBullet();
buckshot = new ModelBuckshot(); buckshot = new ModelBuckshot();
rocket = new ModelRocket(); rocket = new ModelRocket();
grenade = new ModelGrenade(); grenade = new ModelGrenade();
nuke = new ModelMiniNuke();
mirv = new ModelMIRV();
bf = new ModelBaleflare();
} }
@Override @Override
@ -56,6 +65,9 @@ public class RenderBullet extends Render {
case BulletConfiguration.STYLE_PELLET: renderBuckshot(); break; case BulletConfiguration.STYLE_PELLET: renderBuckshot(); break;
case BulletConfiguration.STYLE_ROCKET: renderRocket(trail); break; case BulletConfiguration.STYLE_ROCKET: renderRocket(trail); break;
case BulletConfiguration.STYLE_GRENADE: renderGrenade(trail); break; case BulletConfiguration.STYLE_GRENADE: renderGrenade(trail); break;
case BulletConfiguration.STYLE_NUKE: renderNuke(0); break;
case BulletConfiguration.STYLE_MIRV: renderNuke(1); break;
case BulletConfiguration.STYLE_BF: renderNuke(2); break;
default: renderBullet(trail); break; default: renderBullet(trail); break;
} }
@ -135,6 +147,24 @@ public class RenderBullet extends Render {
grenade.renderAll(0.0625F); grenade.renderAll(0.0625F);
} }
private void renderNuke(int type) {
GL11.glScalef(1.5F, 1.5F, 1.5F);
switch(type) {
case 0:
bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/MiniNuke.png"));
nuke.renderAll(0.0625F); break;
case 1:
bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/Mirv.png"));
mirv.renderAll(0.0625F); break;
case 2:
bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/BaleFlare.png"));
bf.renderAll(0.0625F); break;
}
}
private void renderFlechette() { private void renderFlechette() {
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glDisable(GL11.GL_TEXTURE_2D);

View File

@ -41,11 +41,11 @@ public class ItemRenderBFLauncher implements IItemRenderer {
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glEnable(GL11.GL_CULL_FACE); GL11.glEnable(GL11.GL_CULL_FACE);
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/BFLauncher.png")); Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/BFLauncher.png"));
GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(-150.0F, 0.0F, 0.0F, 1.0F);
GL11.glTranslatef(-0.5F, 0.0F, -0.2F); GL11.glTranslatef(-0.6F, -0.1F, -0.2F);
//GL11.glScalef(2.0F, 2.0F, 2.0F); //GL11.glScalef(2.0F, 2.0F, 2.0F);
GL11.glScalef(0.5F, 0.5F, 0.5F); GL11.glScalef(0.5F, 0.5F, 0.5F);
swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item);
GL11.glPopMatrix(); GL11.glPopMatrix();
break; break;
case EQUIPPED: case EQUIPPED:
@ -60,7 +60,7 @@ public class ItemRenderBFLauncher implements IItemRenderer {
GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F);
GL11.glTranslatef(0.5F, -0.2F, 0.0F); GL11.glTranslatef(0.5F, -0.2F, 0.0F);
GL11.glScalef(1.5F, 1.5F, 1.5F); GL11.glScalef(1.5F, 1.5F, 1.5F);
swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item);
GL11.glPopMatrix(); GL11.glPopMatrix();
default: break; default: break;
} }

View File

@ -42,11 +42,11 @@ public class ItemRenderFatMan implements IItemRenderer {
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glEnable(GL11.GL_CULL_FACE); GL11.glEnable(GL11.GL_CULL_FACE);
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/FatmanLauncher.png")); Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/FatmanLauncher.png"));
GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(-150.0F, 0.0F, 0.0F, 1.0F);
GL11.glTranslatef(-0.5F, 0.0F, -0.2F); GL11.glTranslatef(-0.6F, -0.1F, -0.2F);
//GL11.glScalef(2.0F, 2.0F, 2.0F); //GL11.glScalef(2.0F, 2.0F, 2.0F);
GL11.glScalef(0.5F, 0.5F, 0.5F); GL11.glScalef(0.5F, 0.5F, 0.5F);
swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item);
GL11.glPopMatrix(); GL11.glPopMatrix();
break; break;
case EQUIPPED: case EQUIPPED:
@ -61,7 +61,7 @@ public class ItemRenderFatMan implements IItemRenderer {
GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F);
GL11.glTranslatef(0.5F, -0.2F, 0.0F); GL11.glTranslatef(0.5F, -0.2F, 0.0F);
GL11.glScalef(1.5F, 1.5F, 1.5F); GL11.glScalef(1.5F, 1.5F, 1.5F);
swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item);
GL11.glPopMatrix(); GL11.glPopMatrix();
default: break; default: break;
} }

View File

@ -125,7 +125,8 @@ public class ItemRenderGunAnim implements IItemRenderer {
} }
if(item.getItem() == ModItems.gun_bolt_action || item.getItem() == ModItems.gun_bolt_action_green || if(item.getItem() == ModItems.gun_bolt_action || item.getItem() == ModItems.gun_bolt_action_green ||
item.getItem() == ModItems.gun_lever_action || item.getItem() == ModItems.gun_lever_action_dark) { item.getItem() == ModItems.gun_lever_action || item.getItem() == ModItems.gun_lever_action_dark
|| item.getItem() == ModItems.gun_bolt_action_saturnite) {
GL11.glTranslatef(0.0F, -0.4F, 0.0F); GL11.glTranslatef(0.0F, -0.4F, 0.0F);
GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F);

View File

@ -42,11 +42,11 @@ public class ItemRenderMIRVLauncher implements IItemRenderer {
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glEnable(GL11.GL_CULL_FACE); GL11.glEnable(GL11.GL_CULL_FACE);
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/MIRVLauncher.png")); Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/MIRVLauncher.png"));
GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(-150.0F, 0.0F, 0.0F, 1.0F);
GL11.glTranslatef(-0.5F, 0.0F, -0.2F); GL11.glTranslatef(-0.6F, -0.1F, -0.2F);
//GL11.glScalef(2.0F, 2.0F, 2.0F); //GL11.glScalef(2.0F, 2.0F, 2.0F);
GL11.glScalef(0.5F, 0.5F, 0.5F); GL11.glScalef(0.5F, 0.5F, 0.5F);
swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item);
GL11.glPopMatrix(); GL11.glPopMatrix();
break; break;
case EQUIPPED: case EQUIPPED:
@ -61,7 +61,7 @@ public class ItemRenderMIRVLauncher implements IItemRenderer {
GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F);
GL11.glTranslatef(0.5F, -0.2F, 0.0F); GL11.glTranslatef(0.5F, -0.2F, 0.0F);
GL11.glScalef(1.5F, 1.5F, 1.5F); GL11.glScalef(1.5F, 1.5F, 1.5F);
swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item);
GL11.glPopMatrix(); GL11.glPopMatrix();
default: break; default: break;
} }

View File

@ -46,7 +46,8 @@ public class ItemRenderOSIPR implements IItemRenderer {
GL11.glTranslatef(-0.5F, 0.0F, -0.2F); GL11.glTranslatef(-0.5F, 0.0F, -0.2F);
//GL11.glScalef(2.0F, 2.0F, 2.0F); //GL11.glScalef(2.0F, 2.0F, 2.0F);
GL11.glScalef(0.5F, 0.5F, 0.5F); GL11.glScalef(0.5F, 0.5F, 0.5F);
GL11.glTranslatef(-0.4F, -0.1F, -0.1F); GL11.glTranslatef(-0.4F, -0.2F, -0.1F);
GL11.glRotatef(-15.0F, 0.0F, 0.0F, 1.0F);
swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
GL11.glPopMatrix(); GL11.glPopMatrix();
break; break;

View File

@ -48,8 +48,8 @@ public class ItemRenderXVL1456 implements IItemRenderer {
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glEnable(GL11.GL_CULL_FACE); GL11.glEnable(GL11.GL_CULL_FACE);
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelXVL1456.png")); Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelXVL1456.png"));
GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(-150.0F, 0.0F, 0.0F, 1.0F);
GL11.glTranslatef(-0.9F, 0.0F, -0.2F); GL11.glTranslatef(-0.9F, -0.1F, -0.1F);
GL11.glScalef(0.3F, 0.3F, 0.3F); GL11.glScalef(0.3F, 0.3F, 0.3F);
swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, f); swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, f);
GL11.glPopMatrix(); GL11.glPopMatrix();

View File

@ -8,9 +8,12 @@ package com.hbm.render.model;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import com.hbm.items.weapon.ItemGunBase;
import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.item.ItemStack;
public class ModelBFLauncher extends ModelBase { public class ModelBFLauncher extends ModelBase {
// fields // fields
@ -203,8 +206,7 @@ public class ModelBFLauncher extends ModelBase {
setRotation(Shape20, 0F, 0F, 0F); setRotation(Shape20, 0F, 0F, 0F);
} }
@Override public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ItemStack item) {
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) {
super.render(entity, f, f1, f2, f3, f4, f5); super.render(entity, f, f1, f2, f3, f4, f5);
setRotationAngles(f, f1, f2, f3, f4, f5, entity); setRotationAngles(f, f1, f2, f3, f4, f5, entity);
Shape1.render(f5); Shape1.render(f5);
@ -231,14 +233,18 @@ public class ModelBFLauncher extends ModelBase {
Shape31.render(f5); Shape31.render(f5);
Shape32.render(f5); Shape32.render(f5);
Shape33.render(f5); Shape33.render(f5);
Shape13.render(f5);
Shape14.render(f5); int ammo = ItemGunBase.getMag(item);
Shape15.render(f5); if(ammo > 0) {
Shape16.render(f5); Shape13.render(f5);
Shape17.render(f5); Shape14.render(f5);
Shape18.render(f5); Shape15.render(f5);
Shape19.render(f5); Shape16.render(f5);
Shape20.render(f5); Shape17.render(f5);
Shape18.render(f5);
Shape19.render(f5);
Shape20.render(f5);
}
} }
private void setRotation(ModelRenderer model, float x, float y, float z) { private void setRotation(ModelRenderer model, float x, float y, float z) {

View File

@ -202,8 +202,6 @@ public class ModelBoltAction extends ModelBase {
HandleBottom.render(f5); HandleBottom.render(f5);
HandleGrip.render(f5); HandleGrip.render(f5);
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glDisable(GL11.GL_TEXTURE_2D);
GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_LIGHTING);

View File

@ -4,318 +4,315 @@
// Keep in mind that you still need to fill in some blanks // Keep in mind that you still need to fill in some blanks
// - ZeuX // - ZeuX
package com.hbm.render.model; package com.hbm.render.model;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import com.hbm.items.weapon.ItemGunBase;
import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.item.ItemStack;
public class ModelFatman extends ModelBase public class ModelFatman extends ModelBase {
{ // fields
//fields ModelRenderer Shape1;
ModelRenderer Shape1; ModelRenderer Shape2;
ModelRenderer Shape2; ModelRenderer Shape3;
ModelRenderer Shape3; ModelRenderer Shape4;
ModelRenderer Shape4; ModelRenderer Shape5;
ModelRenderer Shape5; ModelRenderer Shape6;
ModelRenderer Shape6; ModelRenderer Shape7;
ModelRenderer Shape7; ModelRenderer Shape8;
ModelRenderer Shape8; ModelRenderer Shape9;
ModelRenderer Shape9; ModelRenderer Shape10;
ModelRenderer Shape10; ModelRenderer Shape11;
ModelRenderer Shape11; ModelRenderer Shape12;
ModelRenderer Shape12; ModelRenderer Shape13;
ModelRenderer Shape13; ModelRenderer Shape14;
ModelRenderer Shape14; ModelRenderer Shape15;
ModelRenderer Shape15; ModelRenderer Shape16;
ModelRenderer Shape16; ModelRenderer Shape17;
ModelRenderer Shape17; ModelRenderer Shape18;
ModelRenderer Shape18; ModelRenderer Shape19;
ModelRenderer Shape19; ModelRenderer Shape20;
ModelRenderer Shape20; ModelRenderer Shape21;
ModelRenderer Shape21; ModelRenderer Shape22;
ModelRenderer Shape22; ModelRenderer Shape23;
ModelRenderer Shape23; ModelRenderer Shape24;
ModelRenderer Shape24; ModelRenderer Shape25;
ModelRenderer Shape25; ModelRenderer Shape26;
ModelRenderer Shape26; ModelRenderer Shape27;
ModelRenderer Shape27; ModelRenderer Shape28;
ModelRenderer Shape28; ModelRenderer Shape29;
ModelRenderer Shape29; ModelRenderer Shape30;
ModelRenderer Shape30; ModelRenderer Shape31;
ModelRenderer Shape31; ModelRenderer Shape32;
ModelRenderer Shape32; ModelRenderer Shape33;
ModelRenderer Shape33;
public ModelFatman() {
public ModelFatman() textureWidth = 128;
{ textureHeight = 64;
textureWidth = 128;
textureHeight = 64; Shape1 = new ModelRenderer(this, 0, 0);
Shape1.addBox(0F, 0F, 0F, 40, 2, 4);
Shape1 = new ModelRenderer(this, 0, 0); Shape1.setRotationPoint(-20F, 0F, 0F);
Shape1.addBox(0F, 0F, 0F, 40, 2, 4); Shape1.setTextureSize(128, 64);
Shape1.setRotationPoint(-20F, 0F, 0F); Shape1.mirror = true;
Shape1.setTextureSize(128, 64); setRotation(Shape1, 0F, 0F, 0F);
Shape1.mirror = true; Shape2 = new ModelRenderer(this, 0, 6);
setRotation(Shape1, 0F, 0F, 0F); Shape2.addBox(0F, 0F, 0F, 6, 2, 2);
Shape2 = new ModelRenderer(this, 0, 6); Shape2.setRotationPoint(-19F, 2F, 1F);
Shape2.addBox(0F, 0F, 0F, 6, 2, 2); Shape2.setTextureSize(128, 64);
Shape2.setRotationPoint(-19F, 2F, 1F); Shape2.mirror = true;
Shape2.setTextureSize(128, 64); setRotation(Shape2, 0F, 0F, 0F);
Shape2.mirror = true; Shape3 = new ModelRenderer(this, 0, 10);
setRotation(Shape2, 0F, 0F, 0F); Shape3.addBox(0F, 0F, 0F, 1, 4, 1);
Shape3 = new ModelRenderer(this, 0, 10); Shape3.setRotationPoint(-12F, 2F, 1.5F);
Shape3.addBox(0F, 0F, 0F, 1, 4, 1); Shape3.setTextureSize(128, 64);
Shape3.setRotationPoint(-12F, 2F, 1.5F); Shape3.mirror = true;
Shape3.setTextureSize(128, 64); setRotation(Shape3, 0F, 0F, 0F);
Shape3.mirror = true; Shape4 = new ModelRenderer(this, 16, 6);
setRotation(Shape3, 0F, 0F, 0F); Shape4.addBox(0F, 0F, 0F, 6, 1, 4);
Shape4 = new ModelRenderer(this, 16, 6); Shape4.setRotationPoint(-10F, 2F, 0F);
Shape4.addBox(0F, 0F, 0F, 6, 1, 4); Shape4.setTextureSize(128, 64);
Shape4.setRotationPoint(-10F, 2F, 0F); Shape4.mirror = true;
Shape4.setTextureSize(128, 64); setRotation(Shape4, 0F, 0F, 0F);
Shape4.mirror = true; Shape5 = new ModelRenderer(this, 0, 15);
setRotation(Shape4, 0F, 0F, 0F); Shape5.addBox(0F, 0F, 0F, 2, 3, 1);
Shape5 = new ModelRenderer(this, 0, 15); Shape5.setRotationPoint(-7F, 3F, 1.5F);
Shape5.addBox(0F, 0F, 0F, 2, 3, 1); Shape5.setTextureSize(128, 64);
Shape5.setRotationPoint(-7F, 3F, 1.5F); Shape5.mirror = true;
Shape5.setTextureSize(128, 64); setRotation(Shape5, 0F, 0F, 0F);
Shape5.mirror = true; Shape6 = new ModelRenderer(this, 4, 10);
setRotation(Shape5, 0F, 0F, 0F); Shape6.addBox(0F, 0F, 0F, 3, 3, 1);
Shape6 = new ModelRenderer(this, 4, 10); Shape6.setRotationPoint(-10F, 3F, 1.5F);
Shape6.addBox(0F, 0F, 0F, 3, 3, 1); Shape6.setTextureSize(128, 64);
Shape6.setRotationPoint(-10F, 3F, 1.5F); Shape6.mirror = true;
Shape6.setTextureSize(128, 64); setRotation(Shape6, 0F, 0F, 0F);
Shape6.mirror = true; Shape7 = new ModelRenderer(this, 12, 10);
setRotation(Shape6, 0F, 0F, 0F); Shape7.addBox(-1F, 0F, 0F, 1, 2, 1);
Shape7 = new ModelRenderer(this, 12, 10); Shape7.setRotationPoint(-7F, 3F, 1.5F);
Shape7.addBox(-1F, 0F, 0F, 1, 2, 1); Shape7.setTextureSize(128, 64);
Shape7.setRotationPoint(-7F, 3F, 1.5F); Shape7.mirror = true;
Shape7.setTextureSize(128, 64); setRotation(Shape7, 0F, 0F, 0.5235988F);
Shape7.mirror = true; Shape8 = new ModelRenderer(this, 36, 6);
setRotation(Shape7, 0F, 0F, 0.5235988F); Shape8.addBox(0F, 0F, 0F, 10, 1, 4);
Shape8 = new ModelRenderer(this, 36, 6); Shape8.setRotationPoint(-3F, 2F, 0F);
Shape8.addBox(0F, 0F, 0F, 10, 1, 4); Shape8.setTextureSize(128, 64);
Shape8.setRotationPoint(-3F, 2F, 0F); Shape8.mirror = true;
Shape8.setTextureSize(128, 64); setRotation(Shape8, 0F, 0F, 0F);
Shape8.mirror = true; Shape9 = new ModelRenderer(this, 64, 6);
setRotation(Shape8, 0F, 0F, 0F); Shape9.addBox(0F, 0F, 0F, 2, 3, 2);
Shape9 = new ModelRenderer(this, 64, 6); Shape9.setRotationPoint(7F, 2F, 1F);
Shape9.addBox(0F, 0F, 0F, 2, 3, 2); Shape9.setTextureSize(128, 64);
Shape9.setRotationPoint(7F, 2F, 1F); Shape9.mirror = true;
Shape9.setTextureSize(128, 64); setRotation(Shape9, 0F, 0F, 0F);
Shape9.mirror = true; Shape10 = new ModelRenderer(this, 88, 0);
setRotation(Shape9, 0F, 0F, 0F); Shape10.addBox(0F, 0F, 0F, 3, 4, 4);
Shape10 = new ModelRenderer(this, 88, 0); Shape10.setRotationPoint(17F, -4F, 0F);
Shape10.addBox(0F, 0F, 0F, 3, 4, 4); Shape10.setTextureSize(128, 64);
Shape10.setRotationPoint(17F, -4F, 0F); Shape10.mirror = true;
Shape10.setTextureSize(128, 64); setRotation(Shape10, 0F, 0F, 0F);
Shape10.mirror = true; Shape11 = new ModelRenderer(this, 72, 6);
setRotation(Shape10, 0F, 0F, 0F); Shape11.addBox(0F, 0F, 0F, 2, 3, 1);
Shape11 = new ModelRenderer(this, 72, 6); Shape11.setRotationPoint(18F, -7F, 0F);
Shape11.addBox(0F, 0F, 0F, 2, 3, 1); Shape11.setTextureSize(128, 64);
Shape11.setRotationPoint(18F, -7F, 0F); Shape11.mirror = true;
Shape11.setTextureSize(128, 64); setRotation(Shape11, 0F, 0F, 0F);
Shape11.mirror = true; Shape12 = new ModelRenderer(this, 78, 6);
setRotation(Shape11, 0F, 0F, 0F); Shape12.addBox(0F, 0F, 0F, 2, 3, 1);
Shape12 = new ModelRenderer(this, 78, 6); Shape12.setRotationPoint(18F, -7F, 3F);
Shape12.addBox(0F, 0F, 0F, 2, 3, 1); Shape12.setTextureSize(128, 64);
Shape12.setRotationPoint(18F, -7F, 3F); Shape12.mirror = true;
Shape12.setTextureSize(128, 64); setRotation(Shape12, 0F, 0F, 0F);
Shape12.mirror = true; Shape13 = new ModelRenderer(this, 0, 19);
setRotation(Shape12, 0F, 0F, 0F); Shape13.addBox(0F, -4F, 0F, 22, 4, 0);
Shape13 = new ModelRenderer(this, 0, 19); Shape13.setRotationPoint(-17F, 0F, 1F);
Shape13.addBox(0F, -4F, 0F, 22, 4, 0); Shape13.setTextureSize(128, 64);
Shape13.setRotationPoint(-17F, 0F, 1F); Shape13.mirror = true;
Shape13.setTextureSize(128, 64); setRotation(Shape13, 0.4363323F, 0F, 0F);
Shape13.mirror = true; Shape14 = new ModelRenderer(this, 16, 11);
setRotation(Shape13, 0.4363323F, 0F, 0F); Shape14.addBox(0F, 0F, 0F, 33, 1, 1);
Shape14 = new ModelRenderer(this, 16, 11); Shape14.setRotationPoint(-17F, -4F, -1F);
Shape14.addBox(0F, 0F, 0F, 33, 1, 1); Shape14.setTextureSize(128, 64);
Shape14.setRotationPoint(-17F, -4F, -1F); Shape14.mirror = true;
Shape14.setTextureSize(128, 64); setRotation(Shape14, 0F, 0F, 0F);
Shape14.mirror = true; Shape15 = new ModelRenderer(this, 0, 23);
setRotation(Shape14, 0F, 0F, 0F); Shape15.addBox(0F, -4F, 0F, 22, 4, 0);
Shape15 = new ModelRenderer(this, 0, 23); Shape15.setRotationPoint(-17F, 0F, 3F);
Shape15.addBox(0F, -4F, 0F, 22, 4, 0); Shape15.setTextureSize(128, 64);
Shape15.setRotationPoint(-17F, 0F, 3F); Shape15.mirror = true;
Shape15.setTextureSize(128, 64); setRotation(Shape15, -0.4363323F, 0F, 0F);
Shape15.mirror = true; Shape16 = new ModelRenderer(this, 16, 13);
setRotation(Shape15, -0.4363323F, 0F, 0F); Shape16.addBox(0F, 0F, 0F, 33, 1, 1);
Shape16 = new ModelRenderer(this, 16, 13); Shape16.setRotationPoint(-17F, -4F, 4F);
Shape16.addBox(0F, 0F, 0F, 33, 1, 1); Shape16.setTextureSize(128, 64);
Shape16.setRotationPoint(-17F, -4F, 4F); Shape16.mirror = true;
Shape16.setTextureSize(128, 64); setRotation(Shape16, 0F, 0F, 0F);
Shape16.mirror = true; Shape17 = new ModelRenderer(this, 44, 25);
setRotation(Shape16, 0F, 0F, 0F); Shape17.addBox(0F, -4F, 0F, 8, 4, 0);
Shape17 = new ModelRenderer(this, 44, 25); Shape17.setRotationPoint(8F, 0F, 1F);
Shape17.addBox(0F, -4F, 0F, 8, 4, 0); Shape17.setTextureSize(128, 64);
Shape17.setRotationPoint(8F, 0F, 1F); Shape17.mirror = true;
Shape17.setTextureSize(128, 64); setRotation(Shape17, 0.4363323F, 0F, 0F);
Shape17.mirror = true; Shape18 = new ModelRenderer(this, 44, 21);
setRotation(Shape17, 0.4363323F, 0F, 0F); Shape18.addBox(0F, -4F, 0F, 8, 4, 0);
Shape18 = new ModelRenderer(this, 44, 21); Shape18.setRotationPoint(8F, 0F, 3F);
Shape18.addBox(0F, -4F, 0F, 8, 4, 0); Shape18.setTextureSize(128, 64);
Shape18.setRotationPoint(8F, 0F, 3F); Shape18.mirror = true;
Shape18.setTextureSize(128, 64); setRotation(Shape18, -0.4363323F, 0F, 0F);
Shape18.mirror = true; Shape19 = new ModelRenderer(this, 0, 37);
setRotation(Shape18, -0.4363323F, 0F, 0F); Shape19.addBox(0F, 0F, 0F, 5, 4, 2);
Shape19 = new ModelRenderer(this, 0, 37); Shape19.setRotationPoint(5F, -6F, 1F);
Shape19.addBox(0F, 0F, 0F, 5, 4, 2); Shape19.setTextureSize(128, 64);
Shape19.setRotationPoint(5F, -6F, 1F); Shape19.mirror = true;
Shape19.setTextureSize(128, 64); setRotation(Shape19, 0F, 0F, 0F);
Shape19.mirror = true; Shape20 = new ModelRenderer(this, 0, 31);
setRotation(Shape19, 0F, 0F, 0F); Shape20.addBox(0F, 0F, 0F, 5, 2, 4);
Shape20 = new ModelRenderer(this, 0, 31); Shape20.setRotationPoint(5F, -5F, 0F);
Shape20.addBox(0F, 0F, 0F, 5, 2, 4); Shape20.setTextureSize(128, 64);
Shape20.setRotationPoint(5F, -5F, 0F); Shape20.mirror = true;
Shape20.setTextureSize(128, 64); setRotation(Shape20, 0F, 0F, 0F);
Shape20.mirror = true; Shape21 = new ModelRenderer(this, 0, 27);
setRotation(Shape20, 0F, 0F, 0F); Shape21.addBox(0F, 0F, 0F, 1, 2, 2);
Shape21 = new ModelRenderer(this, 0, 27); Shape21.setRotationPoint(4F, -5F, 1F);
Shape21.addBox(0F, 0F, 0F, 1, 2, 2); Shape21.setTextureSize(128, 64);
Shape21.setRotationPoint(4F, -5F, 1F); Shape21.mirror = true;
Shape21.setTextureSize(128, 64); setRotation(Shape21, 0F, 0F, 0F);
Shape21.mirror = true; Shape22 = new ModelRenderer(this, 6, 27);
setRotation(Shape21, 0F, 0F, 0F); Shape22.addBox(0F, 0F, 0F, 1, 2, 2);
Shape22 = new ModelRenderer(this, 6, 27); Shape22.setRotationPoint(10F, -5F, 1F);
Shape22.addBox(0F, 0F, 0F, 1, 2, 2); Shape22.setTextureSize(128, 64);
Shape22.setRotationPoint(10F, -5F, 1F); Shape22.mirror = true;
Shape22.setTextureSize(128, 64); setRotation(Shape22, 0F, 0F, 0F);
Shape22.mirror = true; Shape23 = new ModelRenderer(this, 8, 43);
setRotation(Shape22, 0F, 0F, 0F); Shape23.addBox(0F, 0F, 0F, 2, 2, 1);
Shape23 = new ModelRenderer(this, 8, 43); Shape23.setRotationPoint(11F, -5F, 0F);
Shape23.addBox(0F, 0F, 0F, 2, 2, 1); Shape23.setTextureSize(128, 64);
Shape23.setRotationPoint(11F, -5F, 0F); Shape23.mirror = true;
Shape23.setTextureSize(128, 64); setRotation(Shape23, 0F, 0F, 0F);
Shape23.mirror = true; Shape24 = new ModelRenderer(this, 8, 46);
setRotation(Shape23, 0F, 0F, 0F); Shape24.addBox(0F, 0F, 0F, 2, 2, 1);
Shape24 = new ModelRenderer(this, 8, 46); Shape24.setRotationPoint(11F, -5F, 3F);
Shape24.addBox(0F, 0F, 0F, 2, 2, 1); Shape24.setTextureSize(128, 64);
Shape24.setRotationPoint(11F, -5F, 3F); Shape24.mirror = true;
Shape24.setTextureSize(128, 64); setRotation(Shape24, 0F, 0F, 0F);
Shape24.mirror = true; Shape25 = new ModelRenderer(this, 0, 43);
setRotation(Shape24, 0F, 0F, 0F); Shape25.addBox(0F, 0F, 0F, 2, 1, 2);
Shape25 = new ModelRenderer(this, 0, 43); Shape25.setRotationPoint(11F, -6F, 1F);
Shape25.addBox(0F, 0F, 0F, 2, 1, 2); Shape25.setTextureSize(128, 64);
Shape25.setRotationPoint(11F, -6F, 1F); Shape25.mirror = true;
Shape25.setTextureSize(128, 64); setRotation(Shape25, 0F, 0F, 0F);
Shape25.mirror = true; Shape26 = new ModelRenderer(this, 0, 46);
setRotation(Shape25, 0F, 0F, 0F); Shape26.addBox(0F, 0F, 0F, 2, 1, 2);
Shape26 = new ModelRenderer(this, 0, 46); Shape26.setRotationPoint(11F, -3F, 1F);
Shape26.addBox(0F, 0F, 0F, 2, 1, 2); Shape26.setTextureSize(128, 64);
Shape26.setRotationPoint(11F, -3F, 1F); Shape26.mirror = true;
Shape26.setTextureSize(128, 64); setRotation(Shape26, 0F, 0F, 0F);
Shape26.mirror = true; Shape27 = new ModelRenderer(this, 18, 27);
setRotation(Shape26, 0F, 0F, 0F); Shape27.addBox(0F, 0F, 0F, 2, 5, 1);
Shape27 = new ModelRenderer(this, 18, 27); Shape27.setRotationPoint(13F, -5F, 1.5F);
Shape27.addBox(0F, 0F, 0F, 2, 5, 1); Shape27.setTextureSize(128, 64);
Shape27.setRotationPoint(13F, -5F, 1.5F); Shape27.mirror = true;
Shape27.setTextureSize(128, 64); setRotation(Shape27, 0F, 0F, 0F);
Shape27.mirror = true; Shape28 = new ModelRenderer(this, 84, 6);
setRotation(Shape27, 0F, 0F, 0F); Shape28.addBox(0F, 0F, 0F, 1, 3, 1);
Shape28 = new ModelRenderer(this, 84, 6); Shape28.setRotationPoint(16F, -3F, 1.5F);
Shape28.addBox(0F, 0F, 0F, 1, 3, 1); Shape28.setTextureSize(128, 64);
Shape28.setRotationPoint(16F, -3F, 1.5F); Shape28.mirror = true;
Shape28.setTextureSize(128, 64); setRotation(Shape28, 0F, 0F, 0F);
Shape28.mirror = true; Shape29 = new ModelRenderer(this, 6, 15);
setRotation(Shape28, 0F, 0F, 0F); Shape29.addBox(0F, 0F, 0F, 10, 2, 2);
Shape29 = new ModelRenderer(this, 6, 15); Shape29.setRotationPoint(3F, -2F, 1F);
Shape29.addBox(0F, 0F, 0F, 10, 2, 2); Shape29.setTextureSize(128, 64);
Shape29.setRotationPoint(3F, -2F, 1F); Shape29.mirror = true;
Shape29.setTextureSize(128, 64); setRotation(Shape29, 0F, 0F, 0F);
Shape29.mirror = true; Shape30 = new ModelRenderer(this, 30, 15);
setRotation(Shape29, 0F, 0F, 0F); Shape30.addBox(0F, 0F, 0F, 12, 2, 2);
Shape30 = new ModelRenderer(this, 30, 15); Shape30.setRotationPoint(-7F, -1F, 4F);
Shape30.addBox(0F, 0F, 0F, 12, 2, 2); Shape30.setTextureSize(128, 64);
Shape30.setRotationPoint(-7F, -1F, 4F); Shape30.mirror = true;
Shape30.setTextureSize(128, 64); setRotation(Shape30, 0F, 0F, 0F);
Shape30.mirror = true; Shape31 = new ModelRenderer(this, 44, 19);
setRotation(Shape30, 0F, 0F, 0F); Shape31.addBox(0F, 0F, 0F, 14, 1, 1);
Shape31 = new ModelRenderer(this, 44, 19); Shape31.setRotationPoint(5F, -0.5F, 4.5F);
Shape31.addBox(0F, 0F, 0F, 14, 1, 1); Shape31.setTextureSize(128, 64);
Shape31.setRotationPoint(5F, -0.5F, 4.5F); Shape31.mirror = true;
Shape31.setTextureSize(128, 64); setRotation(Shape31, 0F, 0F, 0F);
Shape31.mirror = true; Shape32 = new ModelRenderer(this, 12, 27);
setRotation(Shape31, 0F, 0F, 0F); Shape32.addBox(0F, 0F, 0F, 1, 1, 1);
Shape32 = new ModelRenderer(this, 12, 27); Shape32.setRotationPoint(18F, -0.5F, 3.5F);
Shape32.addBox(0F, 0F, 0F, 1, 1, 1); Shape32.setTextureSize(128, 64);
Shape32.setRotationPoint(18F, -0.5F, 3.5F); Shape32.mirror = true;
Shape32.setTextureSize(128, 64); setRotation(Shape32, 0F, 0F, 0F);
Shape32.mirror = true; Shape33 = new ModelRenderer(this, 24, 29);
setRotation(Shape32, 0F, 0F, 0F); Shape33.addBox(0F, 0F, 0F, 21, 1, 2);
Shape33 = new ModelRenderer(this, 24, 29); Shape33.setRotationPoint(-18F, -1F, 1F);
Shape33.addBox(0F, 0F, 0F, 21, 1, 2); Shape33.setTextureSize(128, 64);
Shape33.setRotationPoint(-18F, -1F, 1F); Shape33.mirror = true;
Shape33.setTextureSize(128, 64); setRotation(Shape33, 0F, 0F, 0F);
Shape33.mirror = true; }
setRotation(Shape33, 0F, 0F, 0F);
} public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ItemStack item) {
super.render(entity, f, f1, f2, f3, f4, f5);
@Override setRotationAngles(f, f1, f2, f3, f4, f5, entity);
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) Shape1.render(f5);
{ GL11.glDisable(GL11.GL_CULL_FACE);
super.render(entity, f, f1, f2, f3, f4, f5); Shape2.render(f5);
setRotationAngles(f, f1, f2, f3, f4, f5, entity); GL11.glEnable(GL11.GL_CULL_FACE);
Shape1.render(f5); Shape3.render(f5);
GL11.glDisable(GL11.GL_CULL_FACE); Shape4.render(f5);
Shape2.render(f5); Shape5.render(f5);
GL11.glEnable(GL11.GL_CULL_FACE); GL11.glDisable(GL11.GL_CULL_FACE);
Shape3.render(f5); Shape6.render(f5);
Shape4.render(f5); GL11.glEnable(GL11.GL_CULL_FACE);
Shape5.render(f5); Shape7.render(f5);
GL11.glDisable(GL11.GL_CULL_FACE); Shape8.render(f5);
Shape6.render(f5); GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glEnable(GL11.GL_CULL_FACE); Shape9.render(f5);
Shape7.render(f5); GL11.glEnable(GL11.GL_CULL_FACE);
Shape8.render(f5); Shape10.render(f5);
GL11.glDisable(GL11.GL_CULL_FACE); Shape11.render(f5);
Shape9.render(f5); Shape12.render(f5);
GL11.glEnable(GL11.GL_CULL_FACE); Shape13.render(f5);
Shape10.render(f5); Shape14.render(f5);
Shape11.render(f5); Shape15.render(f5);
Shape12.render(f5); Shape16.render(f5);
Shape13.render(f5); Shape17.render(f5);
Shape14.render(f5); Shape18.render(f5);
Shape15.render(f5);
Shape16.render(f5); int ammo = ItemGunBase.getMag(item);
Shape17.render(f5); if(ammo > 0) {
Shape18.render(f5); Shape19.render(f5);
Shape19.render(f5); Shape20.render(f5);
Shape20.render(f5); Shape21.render(f5);
Shape21.render(f5); Shape22.render(f5);
Shape22.render(f5); Shape23.render(f5);
Shape23.render(f5); Shape24.render(f5);
Shape24.render(f5); Shape25.render(f5);
Shape25.render(f5); Shape26.render(f5);
Shape26.render(f5); }
Shape27.render(f5);
Shape28.render(f5); Shape27.render(f5);
Shape29.render(f5); Shape28.render(f5);
Shape30.render(f5); Shape29.render(f5);
Shape31.render(f5); Shape30.render(f5);
Shape32.render(f5); Shape31.render(f5);
Shape33.render(f5); Shape32.render(f5);
} Shape33.render(f5);
}
private void setRotation(ModelRenderer model, float x, float y, float z)
{ private void setRotation(ModelRenderer model, float x, float y, float z) {
model.rotateAngleX = x; model.rotateAngleX = x;
model.rotateAngleY = y; model.rotateAngleY = y;
model.rotateAngleZ = z; model.rotateAngleZ = z;
} }
@Override @Override
public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) {
{ super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); }
}
} }

View File

@ -4,288 +4,284 @@
// Keep in mind that you still need to fill in some blanks // Keep in mind that you still need to fill in some blanks
// - ZeuX // - ZeuX
package com.hbm.render.model; package com.hbm.render.model;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import com.hbm.items.weapon.ItemGunBase;
import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.item.ItemStack;
public class ModelMIRVLauncher extends ModelBase public class ModelMIRVLauncher extends ModelBase {
{ // fields
//fields ModelRenderer Shape1;
ModelRenderer Shape1; ModelRenderer Shape2;
ModelRenderer Shape2; ModelRenderer Shape3;
ModelRenderer Shape3; ModelRenderer Shape4;
ModelRenderer Shape4; ModelRenderer Shape5;
ModelRenderer Shape5; ModelRenderer Shape6;
ModelRenderer Shape6; ModelRenderer Shape7;
ModelRenderer Shape7; ModelRenderer Shape8;
ModelRenderer Shape8; ModelRenderer Shape9;
ModelRenderer Shape9; ModelRenderer Shape10;
ModelRenderer Shape10; ModelRenderer Shape11;
ModelRenderer Shape11; ModelRenderer Shape12;
ModelRenderer Shape12; ModelRenderer Shape13;
ModelRenderer Shape13; ModelRenderer Shape14;
ModelRenderer Shape14; ModelRenderer Shape15;
ModelRenderer Shape15; ModelRenderer Shape16;
ModelRenderer Shape16; ModelRenderer Shape17;
ModelRenderer Shape17; ModelRenderer Shape18;
ModelRenderer Shape18; ModelRenderer Shape27;
ModelRenderer Shape27; ModelRenderer Shape28;
ModelRenderer Shape28; ModelRenderer Shape29;
ModelRenderer Shape29; ModelRenderer Shape30;
ModelRenderer Shape30; ModelRenderer Shape31;
ModelRenderer Shape31; ModelRenderer Shape32;
ModelRenderer Shape32; ModelRenderer Shape33;
ModelRenderer Shape33; ModelRenderer Shape19;
ModelRenderer Shape19; ModelRenderer Shape20;
ModelRenderer Shape20; ModelRenderer Shape21;
ModelRenderer Shape21; ModelRenderer Shape22;
ModelRenderer Shape22;
public ModelMIRVLauncher() {
public ModelMIRVLauncher() textureWidth = 128;
{ textureHeight = 64;
textureWidth = 128;
textureHeight = 64; Shape1 = new ModelRenderer(this, 0, 0);
Shape1.addBox(0F, 0F, 0F, 40, 2, 4);
Shape1 = new ModelRenderer(this, 0, 0); Shape1.setRotationPoint(-20F, 0F, 0F);
Shape1.addBox(0F, 0F, 0F, 40, 2, 4); Shape1.setTextureSize(128, 64);
Shape1.setRotationPoint(-20F, 0F, 0F); Shape1.mirror = true;
Shape1.setTextureSize(128, 64); setRotation(Shape1, 0F, 0F, 0F);
Shape1.mirror = true; Shape2 = new ModelRenderer(this, 0, 6);
setRotation(Shape1, 0F, 0F, 0F); Shape2.addBox(0F, 0F, 0F, 6, 2, 2);
Shape2 = new ModelRenderer(this, 0, 6); Shape2.setRotationPoint(-19F, 2F, 1F);
Shape2.addBox(0F, 0F, 0F, 6, 2, 2); Shape2.setTextureSize(128, 64);
Shape2.setRotationPoint(-19F, 2F, 1F); Shape2.mirror = true;
Shape2.setTextureSize(128, 64); setRotation(Shape2, 0F, 0F, 0F);
Shape2.mirror = true; Shape3 = new ModelRenderer(this, 0, 10);
setRotation(Shape2, 0F, 0F, 0F); Shape3.addBox(0F, 0F, 0F, 1, 4, 1);
Shape3 = new ModelRenderer(this, 0, 10); Shape3.setRotationPoint(-12F, 2F, 1.5F);
Shape3.addBox(0F, 0F, 0F, 1, 4, 1); Shape3.setTextureSize(128, 64);
Shape3.setRotationPoint(-12F, 2F, 1.5F); Shape3.mirror = true;
Shape3.setTextureSize(128, 64); setRotation(Shape3, 0F, 0F, 0F);
Shape3.mirror = true; Shape4 = new ModelRenderer(this, 16, 6);
setRotation(Shape3, 0F, 0F, 0F); Shape4.addBox(0F, 0F, 0F, 6, 1, 4);
Shape4 = new ModelRenderer(this, 16, 6); Shape4.setRotationPoint(-10F, 2F, 0F);
Shape4.addBox(0F, 0F, 0F, 6, 1, 4); Shape4.setTextureSize(128, 64);
Shape4.setRotationPoint(-10F, 2F, 0F); Shape4.mirror = true;
Shape4.setTextureSize(128, 64); setRotation(Shape4, 0F, 0F, 0F);
Shape4.mirror = true; Shape5 = new ModelRenderer(this, 0, 15);
setRotation(Shape4, 0F, 0F, 0F); Shape5.addBox(0F, 0F, 0F, 2, 3, 1);
Shape5 = new ModelRenderer(this, 0, 15); Shape5.setRotationPoint(-7F, 3F, 1.5F);
Shape5.addBox(0F, 0F, 0F, 2, 3, 1); Shape5.setTextureSize(128, 64);
Shape5.setRotationPoint(-7F, 3F, 1.5F); Shape5.mirror = true;
Shape5.setTextureSize(128, 64); setRotation(Shape5, 0F, 0F, 0F);
Shape5.mirror = true; Shape6 = new ModelRenderer(this, 4, 10);
setRotation(Shape5, 0F, 0F, 0F); Shape6.addBox(0F, 0F, 0F, 3, 3, 1);
Shape6 = new ModelRenderer(this, 4, 10); Shape6.setRotationPoint(-10F, 3F, 1.5F);
Shape6.addBox(0F, 0F, 0F, 3, 3, 1); Shape6.setTextureSize(128, 64);
Shape6.setRotationPoint(-10F, 3F, 1.5F); Shape6.mirror = true;
Shape6.setTextureSize(128, 64); setRotation(Shape6, 0F, 0F, 0F);
Shape6.mirror = true; Shape7 = new ModelRenderer(this, 12, 10);
setRotation(Shape6, 0F, 0F, 0F); Shape7.addBox(-1F, 0F, 0F, 1, 2, 1);
Shape7 = new ModelRenderer(this, 12, 10); Shape7.setRotationPoint(-7F, 3F, 1.5F);
Shape7.addBox(-1F, 0F, 0F, 1, 2, 1); Shape7.setTextureSize(128, 64);
Shape7.setRotationPoint(-7F, 3F, 1.5F); Shape7.mirror = true;
Shape7.setTextureSize(128, 64); setRotation(Shape7, 0F, 0F, 0.5235988F);
Shape7.mirror = true; Shape8 = new ModelRenderer(this, 36, 6);
setRotation(Shape7, 0F, 0F, 0.5235988F); Shape8.addBox(0F, 0F, 0F, 10, 1, 4);
Shape8 = new ModelRenderer(this, 36, 6); Shape8.setRotationPoint(-3F, 2F, 0F);
Shape8.addBox(0F, 0F, 0F, 10, 1, 4); Shape8.setTextureSize(128, 64);
Shape8.setRotationPoint(-3F, 2F, 0F); Shape8.mirror = true;
Shape8.setTextureSize(128, 64); setRotation(Shape8, 0F, 0F, 0F);
Shape8.mirror = true; Shape9 = new ModelRenderer(this, 64, 6);
setRotation(Shape8, 0F, 0F, 0F); Shape9.addBox(0F, 0F, 0F, 2, 3, 2);
Shape9 = new ModelRenderer(this, 64, 6); Shape9.setRotationPoint(7F, 2F, 1F);
Shape9.addBox(0F, 0F, 0F, 2, 3, 2); Shape9.setTextureSize(128, 64);
Shape9.setRotationPoint(7F, 2F, 1F); Shape9.mirror = true;
Shape9.setTextureSize(128, 64); setRotation(Shape9, 0F, 0F, 0F);
Shape9.mirror = true; Shape10 = new ModelRenderer(this, 88, 0);
setRotation(Shape9, 0F, 0F, 0F); Shape10.addBox(0F, 0F, 0F, 3, 4, 4);
Shape10 = new ModelRenderer(this, 88, 0); Shape10.setRotationPoint(17F, -4F, 0F);
Shape10.addBox(0F, 0F, 0F, 3, 4, 4); Shape10.setTextureSize(128, 64);
Shape10.setRotationPoint(17F, -4F, 0F); Shape10.mirror = true;
Shape10.setTextureSize(128, 64); setRotation(Shape10, 0F, 0F, 0F);
Shape10.mirror = true; Shape11 = new ModelRenderer(this, 72, 6);
setRotation(Shape10, 0F, 0F, 0F); Shape11.addBox(0F, 0F, 0F, 2, 3, 1);
Shape11 = new ModelRenderer(this, 72, 6); Shape11.setRotationPoint(18F, -7F, 0F);
Shape11.addBox(0F, 0F, 0F, 2, 3, 1); Shape11.setTextureSize(128, 64);
Shape11.setRotationPoint(18F, -7F, 0F); Shape11.mirror = true;
Shape11.setTextureSize(128, 64); setRotation(Shape11, 0F, 0F, 0F);
Shape11.mirror = true; Shape12 = new ModelRenderer(this, 78, 6);
setRotation(Shape11, 0F, 0F, 0F); Shape12.addBox(0F, 0F, 0F, 2, 3, 1);
Shape12 = new ModelRenderer(this, 78, 6); Shape12.setRotationPoint(18F, -7F, 3F);
Shape12.addBox(0F, 0F, 0F, 2, 3, 1); Shape12.setTextureSize(128, 64);
Shape12.setRotationPoint(18F, -7F, 3F); Shape12.mirror = true;
Shape12.setTextureSize(128, 64); setRotation(Shape12, 0F, 0F, 0F);
Shape12.mirror = true; Shape13 = new ModelRenderer(this, 0, 19);
setRotation(Shape12, 0F, 0F, 0F); Shape13.addBox(0F, -4F, 0F, 22, 4, 0);
Shape13 = new ModelRenderer(this, 0, 19); Shape13.setRotationPoint(-17F, 0F, 1F);
Shape13.addBox(0F, -4F, 0F, 22, 4, 0); Shape13.setTextureSize(128, 64);
Shape13.setRotationPoint(-17F, 0F, 1F); Shape13.mirror = true;
Shape13.setTextureSize(128, 64); setRotation(Shape13, 0.4363323F, 0F, 0F);
Shape13.mirror = true; Shape14 = new ModelRenderer(this, 16, 11);
setRotation(Shape13, 0.4363323F, 0F, 0F); Shape14.addBox(0F, 0F, 0F, 33, 1, 1);
Shape14 = new ModelRenderer(this, 16, 11); Shape14.setRotationPoint(-17F, -4F, -1F);
Shape14.addBox(0F, 0F, 0F, 33, 1, 1); Shape14.setTextureSize(128, 64);
Shape14.setRotationPoint(-17F, -4F, -1F); Shape14.mirror = true;
Shape14.setTextureSize(128, 64); setRotation(Shape14, 0F, 0F, 0F);
Shape14.mirror = true; Shape15 = new ModelRenderer(this, 0, 23);
setRotation(Shape14, 0F, 0F, 0F); Shape15.addBox(0F, -4F, 0F, 22, 4, 0);
Shape15 = new ModelRenderer(this, 0, 23); Shape15.setRotationPoint(-17F, 0F, 3F);
Shape15.addBox(0F, -4F, 0F, 22, 4, 0); Shape15.setTextureSize(128, 64);
Shape15.setRotationPoint(-17F, 0F, 3F); Shape15.mirror = true;
Shape15.setTextureSize(128, 64); setRotation(Shape15, -0.4363323F, 0F, 0F);
Shape15.mirror = true; Shape16 = new ModelRenderer(this, 16, 13);
setRotation(Shape15, -0.4363323F, 0F, 0F); Shape16.addBox(0F, 0F, 0F, 33, 1, 1);
Shape16 = new ModelRenderer(this, 16, 13); Shape16.setRotationPoint(-17F, -4F, 4F);
Shape16.addBox(0F, 0F, 0F, 33, 1, 1); Shape16.setTextureSize(128, 64);
Shape16.setRotationPoint(-17F, -4F, 4F); Shape16.mirror = true;
Shape16.setTextureSize(128, 64); setRotation(Shape16, 0F, 0F, 0F);
Shape16.mirror = true; Shape17 = new ModelRenderer(this, 44, 25);
setRotation(Shape16, 0F, 0F, 0F); Shape17.addBox(0F, -4F, 0F, 8, 4, 0);
Shape17 = new ModelRenderer(this, 44, 25); Shape17.setRotationPoint(8F, 0F, 1F);
Shape17.addBox(0F, -4F, 0F, 8, 4, 0); Shape17.setTextureSize(128, 64);
Shape17.setRotationPoint(8F, 0F, 1F); Shape17.mirror = true;
Shape17.setTextureSize(128, 64); setRotation(Shape17, 0.4363323F, 0F, 0F);
Shape17.mirror = true; Shape18 = new ModelRenderer(this, 44, 21);
setRotation(Shape17, 0.4363323F, 0F, 0F); Shape18.addBox(0F, -4F, 0F, 8, 4, 0);
Shape18 = new ModelRenderer(this, 44, 21); Shape18.setRotationPoint(8F, 0F, 3F);
Shape18.addBox(0F, -4F, 0F, 8, 4, 0); Shape18.setTextureSize(128, 64);
Shape18.setRotationPoint(8F, 0F, 3F); Shape18.mirror = true;
Shape18.setTextureSize(128, 64); setRotation(Shape18, -0.4363323F, 0F, 0F);
Shape18.mirror = true; Shape27 = new ModelRenderer(this, 18, 27);
setRotation(Shape18, -0.4363323F, 0F, 0F); Shape27.addBox(0F, 0F, 0F, 2, 5, 1);
Shape27 = new ModelRenderer(this, 18, 27); Shape27.setRotationPoint(13F, -5F, 1.5F);
Shape27.addBox(0F, 0F, 0F, 2, 5, 1); Shape27.setTextureSize(128, 64);
Shape27.setRotationPoint(13F, -5F, 1.5F); Shape27.mirror = true;
Shape27.setTextureSize(128, 64); setRotation(Shape27, 0F, 0F, 0F);
Shape27.mirror = true; Shape28 = new ModelRenderer(this, 84, 6);
setRotation(Shape27, 0F, 0F, 0F); Shape28.addBox(0F, 0F, 0F, 1, 3, 1);
Shape28 = new ModelRenderer(this, 84, 6); Shape28.setRotationPoint(16F, -3F, 1.5F);
Shape28.addBox(0F, 0F, 0F, 1, 3, 1); Shape28.setTextureSize(128, 64);
Shape28.setRotationPoint(16F, -3F, 1.5F); Shape28.mirror = true;
Shape28.setTextureSize(128, 64); setRotation(Shape28, 0F, 0F, 0F);
Shape28.mirror = true; Shape29 = new ModelRenderer(this, 6, 15);
setRotation(Shape28, 0F, 0F, 0F); Shape29.addBox(0F, 0F, 0F, 10, 2, 2);
Shape29 = new ModelRenderer(this, 6, 15); Shape29.setRotationPoint(3F, -2F, 1F);
Shape29.addBox(0F, 0F, 0F, 10, 2, 2); Shape29.setTextureSize(128, 64);
Shape29.setRotationPoint(3F, -2F, 1F); Shape29.mirror = true;
Shape29.setTextureSize(128, 64); setRotation(Shape29, 0F, 0F, 0F);
Shape29.mirror = true; Shape30 = new ModelRenderer(this, 30, 15);
setRotation(Shape29, 0F, 0F, 0F); Shape30.addBox(0F, 0F, 0F, 12, 2, 2);
Shape30 = new ModelRenderer(this, 30, 15); Shape30.setRotationPoint(-7F, -1F, 4F);
Shape30.addBox(0F, 0F, 0F, 12, 2, 2); Shape30.setTextureSize(128, 64);
Shape30.setRotationPoint(-7F, -1F, 4F); Shape30.mirror = true;
Shape30.setTextureSize(128, 64); setRotation(Shape30, 0F, 0F, 0F);
Shape30.mirror = true; Shape31 = new ModelRenderer(this, 44, 19);
setRotation(Shape30, 0F, 0F, 0F); Shape31.addBox(0F, 0F, 0F, 14, 1, 1);
Shape31 = new ModelRenderer(this, 44, 19); Shape31.setRotationPoint(5F, -0.5F, 4.5F);
Shape31.addBox(0F, 0F, 0F, 14, 1, 1); Shape31.setTextureSize(128, 64);
Shape31.setRotationPoint(5F, -0.5F, 4.5F); Shape31.mirror = true;
Shape31.setTextureSize(128, 64); setRotation(Shape31, 0F, 0F, 0F);
Shape31.mirror = true; Shape32 = new ModelRenderer(this, 12, 27);
setRotation(Shape31, 0F, 0F, 0F); Shape32.addBox(0F, 0F, 0F, 1, 1, 1);
Shape32 = new ModelRenderer(this, 12, 27); Shape32.setRotationPoint(18F, -0.5F, 3.5F);
Shape32.addBox(0F, 0F, 0F, 1, 1, 1); Shape32.setTextureSize(128, 64);
Shape32.setRotationPoint(18F, -0.5F, 3.5F); Shape32.mirror = true;
Shape32.setTextureSize(128, 64); setRotation(Shape32, 0F, 0F, 0F);
Shape32.mirror = true; Shape33 = new ModelRenderer(this, 24, 29);
setRotation(Shape32, 0F, 0F, 0F); Shape33.addBox(0F, 0F, 0F, 21, 1, 2);
Shape33 = new ModelRenderer(this, 24, 29); Shape33.setRotationPoint(-18F, -1F, 1F);
Shape33.addBox(0F, 0F, 0F, 21, 1, 2); Shape33.setTextureSize(128, 64);
Shape33.setRotationPoint(-18F, -1F, 1F); Shape33.mirror = true;
Shape33.setTextureSize(128, 64); setRotation(Shape33, 0F, 0F, 0F);
Shape33.mirror = true; Shape19 = new ModelRenderer(this, 0, 33);
setRotation(Shape33, 0F, 0F, 0F); Shape19.addBox(0F, 0F, 0F, 10, 4, 2);
Shape19 = new ModelRenderer(this, 0, 33); Shape19.setRotationPoint(-9F, -5F, 1F);
Shape19.addBox(0F, 0F, 0F, 10, 4, 2); Shape19.setTextureSize(128, 64);
Shape19.setRotationPoint(-9F, -5F, 1F); Shape19.mirror = true;
Shape19.setTextureSize(128, 64); setRotation(Shape19, 0F, 0F, 0F);
Shape19.mirror = true; Shape20 = new ModelRenderer(this, 0, 39);
setRotation(Shape19, 0F, 0F, 0F); Shape20.addBox(0F, 0F, 0F, 10, 2, 4);
Shape20 = new ModelRenderer(this, 0, 39); Shape20.setRotationPoint(-9F, -4F, 0F);
Shape20.addBox(0F, 0F, 0F, 10, 2, 4); Shape20.setTextureSize(128, 64);
Shape20.setRotationPoint(-9F, -4F, 0F); Shape20.mirror = true;
Shape20.setTextureSize(128, 64); setRotation(Shape20, 0F, 0F, 0F);
Shape20.mirror = true; Shape21 = new ModelRenderer(this, 0, 45);
setRotation(Shape20, 0F, 0F, 0F); Shape21.addBox(0F, 0F, 0F, 10, 3, 3);
Shape21 = new ModelRenderer(this, 0, 45); Shape21.setRotationPoint(-9F, -4.5F, 0.5F);
Shape21.addBox(0F, 0F, 0F, 10, 3, 3); Shape21.setTextureSize(128, 64);
Shape21.setRotationPoint(-9F, -4.5F, 0.5F); Shape21.mirror = true;
Shape21.setTextureSize(128, 64); setRotation(Shape21, 0F, 0F, 0F);
Shape21.mirror = true; Shape22 = new ModelRenderer(this, 0, 51);
setRotation(Shape21, 0F, 0F, 0F); Shape22.addBox(0F, 0F, 0F, 4, 1, 1);
Shape22 = new ModelRenderer(this, 0, 51); Shape22.setRotationPoint(-6F, -6F, 1F);
Shape22.addBox(0F, 0F, 0F, 4, 1, 1); Shape22.setTextureSize(128, 64);
Shape22.setRotationPoint(-6F, -6F, 1F); Shape22.mirror = true;
Shape22.setTextureSize(128, 64); setRotation(Shape22, 0F, 0F, 0F);
Shape22.mirror = true; }
setRotation(Shape22, 0F, 0F, 0F);
} public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ItemStack item) {
super.render(entity, f, f1, f2, f3, f4, f5);
@Override setRotationAngles(f, f1, f2, f3, f4, f5, entity);
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) Shape1.render(f5);
{ GL11.glDisable(GL11.GL_CULL_FACE);
super.render(entity, f, f1, f2, f3, f4, f5); Shape2.render(f5);
setRotationAngles(f, f1, f2, f3, f4, f5, entity); GL11.glEnable(GL11.GL_CULL_FACE);
Shape1.render(f5); Shape3.render(f5);
GL11.glDisable(GL11.GL_CULL_FACE); Shape4.render(f5);
Shape2.render(f5); Shape5.render(f5);
GL11.glEnable(GL11.GL_CULL_FACE); GL11.glDisable(GL11.GL_CULL_FACE);
Shape3.render(f5); Shape6.render(f5);
Shape4.render(f5); GL11.glEnable(GL11.GL_CULL_FACE);
Shape5.render(f5); Shape7.render(f5);
GL11.glDisable(GL11.GL_CULL_FACE); Shape8.render(f5);
Shape6.render(f5); GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glEnable(GL11.GL_CULL_FACE); Shape9.render(f5);
Shape7.render(f5); GL11.glEnable(GL11.GL_CULL_FACE);
Shape8.render(f5); Shape10.render(f5);
GL11.glDisable(GL11.GL_CULL_FACE); Shape11.render(f5);
Shape9.render(f5); Shape12.render(f5);
GL11.glEnable(GL11.GL_CULL_FACE); Shape13.render(f5);
Shape10.render(f5); Shape14.render(f5);
Shape11.render(f5); Shape15.render(f5);
Shape12.render(f5); Shape16.render(f5);
Shape13.render(f5); Shape17.render(f5);
Shape14.render(f5); Shape18.render(f5);
Shape15.render(f5); Shape27.render(f5);
Shape16.render(f5); Shape28.render(f5);
Shape17.render(f5); Shape29.render(f5);
Shape18.render(f5); Shape30.render(f5);
Shape27.render(f5); Shape31.render(f5);
Shape28.render(f5); Shape32.render(f5);
Shape29.render(f5); Shape33.render(f5);
Shape30.render(f5);
Shape31.render(f5); int ammo = ItemGunBase.getMag(item);
Shape32.render(f5); if(ammo > 0) {
Shape33.render(f5); Shape19.render(f5);
Shape19.render(f5); Shape20.render(f5);
Shape20.render(f5); Shape21.render(f5);
Shape21.render(f5); GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glDisable(GL11.GL_CULL_FACE); Shape22.render(f5);
Shape22.render(f5); GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glEnable(GL11.GL_CULL_FACE); }
} }
private void setRotation(ModelRenderer model, float x, float y, float z) private void setRotation(ModelRenderer model, float x, float y, float z) {
{ model.rotateAngleX = x;
model.rotateAngleX = x; model.rotateAngleY = y;
model.rotateAngleY = y; model.rotateAngleZ = z;
model.rotateAngleZ = z; }
}
@Override
@Override public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) {
public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
{ }
super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
}
} }

View File

@ -12,6 +12,7 @@ import com.hbm.items.weapon.ItemGunBase;
import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.model.ModelRenderer;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -231,6 +232,23 @@ public class ModelNightmare2 extends ModelBase {
Bullet5.render(f5); Bullet5.render(f5);
if(ammo > 5) if(ammo > 5)
Bullet6.render(f5); Bullet6.render(f5);
GL11.glPushMatrix();
GL11.glDisable(GL11.GL_TEXTURE_2D);
GL11.glDisable(GL11.GL_LIGHTING);
Tessellator tessellator = Tessellator.instance;
int color = 0xFF0000;
tessellator.startDrawing(3);
tessellator.setColorOpaque_I(color);
tessellator.addVertex(-19F / 16F, -3F / 16F, -1F / 16F);
tessellator.addVertex(-150, 0, 0);
tessellator.draw();
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glPopMatrix();
} }
private void setRotation(ModelRenderer model, float x, float y, float z) { private void setRotation(ModelRenderer model, float x, float y, float z) {

View File

@ -0,0 +1,43 @@
package com.hbm.sound;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.Minecraft;
import net.minecraft.client.audio.MovingSound;
import net.minecraft.client.audio.PositionedSound;
import net.minecraft.util.ResourceLocation;
@SideOnly(Side.CLIENT)
public class AudioDynamic extends MovingSound {
protected AudioDynamic(ResourceLocation loc) {
super(loc);
this.repeat = true;
}
public void setPosition(float x, float y, float z) {
this.xPosF = x;
this.yPosF = y;
this.zPosF = z;
}
@Override
public void update() { }
public void start() {
Minecraft.getMinecraft().getSoundHandler().playSound(this);
}
public void stop() {
Minecraft.getMinecraft().getSoundHandler().stopSound(this);
}
public void setVolume(float volume) {
this.volume = volume;
}
public void setPitch(float pitch) {
this.field_147663_c = pitch;
}
}

View File

@ -0,0 +1,17 @@
package com.hbm.sound;
public class AudioWrapper {
public void updatePosition(float x, float y, float z) { }
public void updateVolume(float pitch) { }
public void updatePitch(float pitch) { }
public void setDoesRepeat(boolean repeats) { }
public void startSound() { }
public void stopSound() { }
}

View File

@ -0,0 +1,37 @@
package com.hbm.sound;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.audio.MovingSound;
import net.minecraft.util.ResourceLocation;
@SideOnly(Side.CLIENT)
public class AudioWrapperClient extends AudioWrapper {
AudioDynamic sound;
public AudioWrapperClient(ResourceLocation source) {
sound = new AudioDynamic(source);
}
public void updatePosition(float x, float y, float z) {
sound.setPosition(x, y, z);
}
public void updateVolume(float volume) {
sound.setVolume(volume);
}
public void updatePitch(float pitch) {
sound.setPitch(pitch);
}
public void startSound() {
sound.start();
}
public void stopSound() {
sound.stop();
}
}

View File

@ -1,12 +1,290 @@
package com.hbm.tileentity.machine; package com.hbm.tileentity.machine;
import java.util.ArrayList;
import java.util.List;
import com.hbm.entity.missile.EntityMissileCustom;
import com.hbm.handler.MissileStruct;
import com.hbm.handler.FluidTypeHandler.FluidType;
import com.hbm.interfaces.IConsumer;
import com.hbm.interfaces.IFluidAcceptor;
import com.hbm.interfaces.IFluidContainer;
import com.hbm.inventory.FluidTank;
import com.hbm.items.ModItems;
import com.hbm.items.weapon.ItemCustomMissile;
import com.hbm.items.weapon.ItemMissile;
import com.hbm.items.weapon.ItemMissile.FuelType;
import com.hbm.items.weapon.ItemMissile.PartSize;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.packet.AuxElectricityPacket;
import com.hbm.packet.AuxGaugePacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.TEMissileMultipartPacket;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
public class TileEntitySoyuzLauncher extends TileEntity { public class TileEntitySoyuzLauncher extends TileEntity implements ISidedInventory, IConsumer, IFluidContainer, IFluidAcceptor {
private ItemStack slots[];
public long power;
public static final long maxPower = 100000;
public FluidTank[] tanks;
public MissileStruct load;
private static final int[] access = new int[] { 0 };
private String customName;
public TileEntitySoyuzLauncher() {
slots = new ItemStack[27];
tanks = new FluidTank[2];
tanks[0] = new FluidTank(FluidType.KEROSENE, 100000, 0);
tanks[1] = new FluidTank(FluidType.ACID, 100000, 1);
}
@Override
public int getSizeInventory() {
return slots.length;
}
@Override
public ItemStack getStackInSlot(int i) {
return slots[i];
}
@Override
public ItemStack getStackInSlotOnClosing(int i) {
if (slots[i] != null) {
ItemStack itemStack = slots[i];
slots[i] = null;
return itemStack;
} else {
return null;
}
}
@Override
public void setInventorySlotContents(int i, ItemStack itemStack) {
slots[i] = itemStack;
if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) {
itemStack.stackSize = getInventoryStackLimit();
}
}
@Override
public String getInventoryName() {
return this.hasCustomInventoryName() ? this.customName : "container.launchTable";
}
@Override
public boolean hasCustomInventoryName() {
return this.customName != null && this.customName.length() > 0;
}
public void setCustomName(String name) {
this.customName = name;
}
@Override
public int getInventoryStackLimit() {
return 64;
}
@Override
public boolean isUseableByPlayer(EntityPlayer player) {
if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) {
return false;
} else {
return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64;
}
}
// You scrubs aren't needed for anything (right now)
@Override
public void openInventory() {
}
@Override
public void closeInventory() {
}
@Override
public boolean isItemValidForSlot(int i, ItemStack stack) {
return false;
}
@Override
public ItemStack decrStackSize(int i, int j) {
if (slots[i] != null) {
if (slots[i].stackSize <= j) {
ItemStack itemStack = slots[i];
slots[i] = null;
return itemStack;
}
ItemStack itemStack1 = slots[i].splitStack(j);
if (slots[i].stackSize == 0) {
slots[i] = null;
}
return itemStack1;
} else {
return null;
}
}
public long getPowerScaled(long i) {
return (power * i) / maxPower;
}
@Override
public void updateEntity() {
if (!worldObj.isRemote) {
tanks[0].loadTank(2, 3, slots);
tanks[1].loadTank(2, 3, slots);
for (int i = 0; i < 2; i++)
tanks[i].updateTank(xCoord, yCoord, zCoord);
power = Library.chargeTEFromItems(slots, 5, power, maxPower);
PacketDispatcher.wrapper.sendToAll(new AuxElectricityPacket(xCoord, yCoord, zCoord, power));
} else {
List<Entity> entities = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord - 0.5, yCoord, zCoord - 0.5, xCoord + 1.5, yCoord + 10, zCoord + 1.5));
for(Entity e : entities) {
if(e instanceof EntityMissileCustom) {
for(int i = 0; i < 15; i++)
MainRegistry.proxy.spawnParticle(xCoord + 0.5, yCoord + 0.25, zCoord + 0.5, "largelaunchsmoke", null);
break;
}
}
}
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
NBTTagList list = nbt.getTagList("items", 10);
tanks[0].readFromNBT(nbt, "fuel");
tanks[1].readFromNBT(nbt, "oxidizer");
power = nbt.getLong("power");
slots = new ItemStack[getSizeInventory()];
for (int i = 0; i < list.tagCount(); i++) {
NBTTagCompound nbt1 = list.getCompoundTagAt(i);
byte b0 = nbt1.getByte("slot");
if (b0 >= 0 && b0 < slots.length) {
slots[b0] = ItemStack.loadItemStackFromNBT(nbt1);
}
}
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
NBTTagList list = new NBTTagList();
tanks[0].writeToNBT(nbt, "fuel");
tanks[1].writeToNBT(nbt, "oxidizer");
nbt.setLong("power", power);
for (int i = 0; i < slots.length; i++) {
if (slots[i] != null) {
NBTTagCompound nbt1 = new NBTTagCompound();
nbt1.setByte("slot", (byte) i);
slots[i].writeToNBT(nbt1);
list.appendTag(nbt1);
}
}
nbt.setTag("items", list);
}
@Override
public int[] getAccessibleSlotsFromSide(int p_94128_1_) {
return access;
}
@Override
public boolean canInsertItem(int i, ItemStack itemStack, int j) {
return this.isItemValidForSlot(i, itemStack);
}
@Override
public boolean canExtractItem(int i, ItemStack itemStack, int j) {
return false;
}
@Override
public int getMaxFluidFill(FluidType type) {
if (type.name().equals(tanks[0].getTankType().name()))
return tanks[0].getMaxFill();
else if (type.name().equals(tanks[1].getTankType().name()))
return tanks[1].getMaxFill();
else
return 0;
}
@Override
public void setFillstate(int fill, int index) {
if (index < 2 && tanks[index] != null)
tanks[index].setFill(fill);
}
@Override
public void setFluidFill(int fill, FluidType type) {
if (type.name().equals(tanks[0].getTankType().name()))
tanks[0].setFill(fill);
else if (type.name().equals(tanks[1].getTankType().name()))
tanks[1].setFill(fill);
}
@Override
public void setType(FluidType type, int index) {
if (index < 2 && tanks[index] != null)
tanks[index].setTankType(type);
}
@Override
public List<FluidTank> getTanks() {
List<FluidTank> list = new ArrayList();
list.add(tanks[0]);
list.add(tanks[1]);
return list;
}
@Override
public int getFluidFill(FluidType type) {
if (type.name().equals(tanks[0].getTankType().name()))
return tanks[0].getFill();
else if (type.name().equals(tanks[1].getTankType().name()))
return tanks[1].getFill();
else
return 0;
}
@Override @Override
public AxisAlignedBB getRenderBoundingBox() { public AxisAlignedBB getRenderBoundingBox() {
return TileEntity.INFINITE_EXTENT_AABB; return TileEntity.INFINITE_EXTENT_AABB;
@ -18,4 +296,19 @@ public class TileEntitySoyuzLauncher extends TileEntity {
{ {
return 65536.0D; return 65536.0D;
} }
@Override
public void setPower(long i) {
this.power = i;
}
@Override
public long getPower() {
return this.power;
}
@Override
public long getMaxPower() {
return this.maxPower;
}
} }