diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index 97d817daa..ff0afac1e 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -81,6 +81,6 @@ public class ItemEnums { } public static enum EnumCasingType { - SMALL, LARGE, SMALL_STEEL, LARGE_STEEL, SHOTSHELL, BUCKSHOT + SMALL, LARGE, SMALL_STEEL, LARGE_STEEL, SHOTSHELL, BUCKSHOT, BUCKSHOT_ADVANCED } } diff --git a/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java b/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java index 5bb099557..70053a148 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java +++ b/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java @@ -83,6 +83,7 @@ public class BulletConfig { public BulletConfig setVel(float velocity) { this.velocity = velocity; return this; } public BulletConfig setSpread(float spread) { this.spread = spread; return this; } public BulletConfig setWear(float wear) { this.wear = wear; return this; } + public BulletConfig setProjectiles(int amount) { this.projectilesMin = this.projectilesMax = amount; return this; } public BulletConfig setProjectiles(int min, int max) { this.projectilesMin = min; this.projectilesMax = max; return this; } public BulletConfig setDamage(float damageMult) { this.damageMult = damageMult; return this; } public BulletConfig setArmorPiercing(float armorPiercingPercent) { this.armorPiercingPercent = armorPiercingPercent; return this; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java index a8e3bcfba..5cc4c30ba 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java @@ -71,7 +71,7 @@ public class GunFactory { R556_SP, R556_FMJ, R556_JHP, R556_AP, R762_SP, R762_FMJ, R762_JHP, R762_AP, R762_DU, BMG50_SP, BMG50_FMJ, BMG50_JHP, BMG50_AP, BMG50_DU, - G12_BP, G12_BP_MAGNUM, G12_BP_SLUG, G12, + G12_BP, G12_BP_MAGNUM, G12_BP_SLUG, G12, G12_SLUG, G12_FLECHETTE, G12_MAGNUM, G12_EXPLOSIVE, G12_PHOSPHORUS, G12_ANTHRAX, G40_FLARE, G40, ROCKET_HE, ROCKET_HEAT, FLAME_DIESEL, diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java index e3da6fdbe..b177a3d58 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java @@ -195,9 +195,9 @@ public class Lego { double heightOffset = offset.yCoord; double sideOffset = ItemGunBaseNT.getIsAiming(stack) ? 0 : offset.zCoord; - /*forwardOffset = 1; - heightOffset = -0.0625 * 1.5; - sideOffset = -0.1875D;*/ + /*forwardOffset = 0.75; + heightOffset = -0.125; + sideOffset = -0.25D;*/ int projectiles = config.projectilesMin; if(config.projectilesMax > config.projectilesMin) projectiles += entity.getRNG().nextInt(config.projectilesMax - config.projectilesMin + 1); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java index 621b5a214..df352f26b 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java @@ -33,22 +33,34 @@ public class XFactory12ga { public static BulletConfig g12_bp_magnum; public static BulletConfig g12_bp_slug; public static BulletConfig g12; + public static BulletConfig g12_slug; + public static BulletConfig g12_flechette; + public static BulletConfig g12_magnum; + public static BulletConfig g12_explosive; + public static BulletConfig g12_phosphorus; + public static BulletConfig g12_anthrax; public static void init() { - g12_bp = new BulletConfig().setItem(EnumAmmo.G12_BP).setProjectiles(8, 8).setSpread(0.05F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(1.5F).register("12GA_BP")); - g12_bp_magnum = new BulletConfig().setItem(EnumAmmo.G12_BP_MAGNUM).setProjectiles(4, 4).setSpread(0.05F).setRicochetAngle(25).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(1.5F).register("12GA_BP_MAGNUM")); - g12_bp_slug = new BulletConfig().setItem(EnumAmmo.G12_BP_SLUG).setSpread(0.01F).setRicochetAngle(5).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(1.5F).register("12GA_BP_SLUG")); - g12 = new BulletConfig().setItem(EnumAmmo.G12).setProjectiles(8, 8).setSpread(0.05F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xB52B2B, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA")); + g12_bp = new BulletConfig().setItem(EnumAmmo.G12_BP).setProjectiles(8).setSpread(0.05F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP")); + g12_bp_magnum = new BulletConfig().setItem(EnumAmmo.G12_BP_MAGNUM).setProjectiles(4).setSpread(0.05F).setRicochetAngle(25).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP_MAGNUM")); + g12_bp_slug = new BulletConfig().setItem(EnumAmmo.G12_BP_SLUG).setSpread(0.01F).setRicochetAngle(5).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP_SLUG")); + g12 = new BulletConfig().setItem(EnumAmmo.G12).setProjectiles(8).setSpread(0.05F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xB52B2B, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA")); + g12_slug = new BulletConfig().setItem(EnumAmmo.G12_SLUG).setSpread(0.0F).setRicochetAngle(25).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x393939, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_SLUG")); + g12_flechette = new BulletConfig().setItem(EnumAmmo.G12_FLECHETTE).setProjectiles(8).setSpread(0.025F).setRicochetAngle(5).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x3C80F0, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_FLECHETTE")); + g12_magnum = new BulletConfig().setItem(EnumAmmo.G12_MAGNUM).setProjectiles(4).setSpread(0.015F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x278400, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_MAGNUM")); + g12_explosive = new BulletConfig().setItem(EnumAmmo.G12_EXPLOSIVE).setSpread(0F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xDA4127, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_EXPLOSIVE")); + g12_phosphorus = new BulletConfig().setItem(EnumAmmo.G12_PHOSPHORUS).setProjectiles(8).setSpread(0.015F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x910001, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_PHOSPHORUS")); + g12_anthrax = new BulletConfig().setItem(EnumAmmo.G12_ANTHRAX).setProjectiles(8).setSpread(0.015F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x749300, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_ANTHRAX")); - BulletConfig[] all = new BulletConfig[] {g12_bp, g12_bp_magnum, g12_bp_slug, g12}; + BulletConfig[] all = new BulletConfig[] {g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus, g12_anthrax}; ModItems.gun_maresleg = new ItemGunBaseNT(new GunConfig() .dura(600).draw(20).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) .dmg(12F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) .mag(new MagazineSingleReload(0, 6).addConfigs(all)) - .offset(0.75, -0.0625, -0.1875D) + .offset(0.75, -0.0625, -0.1875) .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) .setupStandardConfiguration() .anim(LAMBDA_MARESLEG_ANIMS).orchestra(Orchestras.ORCHESTRA_MARESLEG) @@ -67,7 +79,7 @@ public class XFactory12ga { .rec(new Receiver(0) .dmg(12F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) .mag(new MagazineSingleReload(1, 6).addConfigs(all)) - .offset(0.75, -0.0625, -0.1875D) + .offset(0.75, -0.0625, -0.1875) .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) .ps(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD) .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) @@ -79,7 +91,7 @@ public class XFactory12ga { .rec(new Receiver(0) .dmg(12F).delay(20).rounds(4).reload(25, 15, 7, 0).jam(45).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) .mag(new MagazineSingleReload(0, 4).addConfigs(all)) - .offset(0.75, -0.0625, -0.1875D) + .offset(0.75, -0.0625, -0.1875) .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) .setupStandardConfiguration() .anim(LAMBDA_LIBERATOR_ANIMS).orchestra(Orchestras.ORCHESTRA_LIBERATOR) @@ -90,18 +102,18 @@ public class XFactory12ga { .rec(new Receiver(0) .dmg(12F).delay(20).reload(5, 10, 10, 10, 0).jam(24).sound("hbm:weapon.shotgunShoot", 1.0F, 1.0F) .mag(new MagazineSingleReload(0, 8).addConfigs(all)) - .offset(0.75, -0.0625, -0.1875D) + .offset(0.75, -0.0625, -0.1875) .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) .setupStandardConfiguration().ps(LAMBDA_SPAS_SECONDARY).pt(null) .anim(LAMBDA_SPAS_ANIMS).orchestra(Orchestras.ORCHESTRA_SPAS) ).setUnlocalizedName("gun_spas12").setTextureName(RefStrings.MODID + ":gun_darter"); ModItems.gun_autoshotgun = new ItemGunBaseNT(new GunConfig() - .dura(600).draw(20).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .dura(2_000).draw(10).inspect(33).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(15F).delay(10).auto(true).reload(20).jam(24).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .dmg(15F).delay(10).auto(true).reload(44).jam(19).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 20).addConfigs(all)) - .offset(0.75, -0.0625, -0.1875D) + .offset(0.75, -0.125, -0.25) .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) .setupStandardConfiguration() .anim(LAMBDA_SHREDDER_ANIMS).orchestra(Orchestras.ORCHESTRA_SHREDDER) @@ -324,6 +336,21 @@ public class XFactory12ga { switch(type) { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -1, 50, IType.SIN_DOWN).addPos(0, 0, 0, 150, IType.SIN_FULL)) + .addBus("CYCLE", new BusAnimationSequence().addPos(0, 0, 0, 150).addPos(0, 0, 18, 100)); + case RELOAD: return new BusAnimation() + .addBus("MAG", new BusAnimationSequence().addPos(0, -8, 0, 250, IType.SIN_UP).addPos(0, -8, 0, 1000).addPos(0, 0, 0, 300)) + .addBus("LIFT", new BusAnimationSequence().addPos(0, 0, 0, 750).addPos(-25, 0, 0, 300, IType.SIN_FULL).addPos(-25, 0, 0, 500).addPos(-27, 0, 0, 100, IType.SIN_DOWN).addPos(-25, 0, 0, 100, IType.SIN_FULL).addPos(-25, 0, 0, 150).addPos(0, 0, 0, 300, IType.SIN_FULL)); + case JAMMED: return new BusAnimation() + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, -2, 0, 150, IType.SIN_UP).addPos(0, 0, 0, 100)) + .addBus("LIFT", new BusAnimationSequence().addPos(0, 0, 0, 750).addPos(-2, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)); + case INSPECT: return new BusAnimation() + .addBus("MAG", new BusAnimationSequence() + .addPos(0, -1, 0, 150).addPos(6, -1, 0, 150).addPos(6, 12, 0, 350, IType.SIN_DOWN).addPos(6, -2, 0, 350, IType.SIN_UP).addPos(6, -1, 0, 50) + .addPos(6, -1, 0, 100).addPos(0, -1, 0, 150, IType.SIN_FULL).addPos(0, 0, 0, 150, IType.SIN_UP)) + .addBus("SPEEN", new BusAnimationSequence().addPos(0, 0, 0, 300).addPos(360, 0, 0, 700)) + .addBus("LIFT", new BusAnimationSequence().addPos(0, 0, 0, 1450).addPos(-2, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)); } return null; diff --git a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineFluid.java b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineFluid.java index 977abb51e..5a79b4a64 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineFluid.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineFluid.java @@ -6,8 +6,6 @@ import com.hbm.items.ModItems; import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.particle.SpentCasing; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderShredder.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderShredder.java index 2c778d57c..cc2ef2e18 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderShredder.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderShredder.java @@ -43,6 +43,9 @@ public class ItemRenderShredder extends ItemRenderWeaponBase { double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); double[] lift = HbmAnimations.getRelevantTransformation("LIFT"); double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] mag = HbmAnimations.getRelevantTransformation("MAG"); + double[] speen = HbmAnimations.getRelevantTransformation("SPEEN"); + double[] cycle = HbmAnimations.getRelevantTransformation("CYCLE"); GL11.glTranslated(0, -2, -6); GL11.glRotated(equip[0], 1, 0, 0); @@ -87,13 +90,23 @@ public class ItemRenderShredder extends ItemRenderWeaponBase { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.shredder_tex); ResourceManager.shredder.renderPart("Gun"); + + GL11.glPushMatrix(); + GL11.glTranslated(mag[0], mag[1], mag[2]); + GL11.glTranslated(0, -1, -0.5); + GL11.glRotated(speen[0], 1, 0, 0); + GL11.glTranslated(0, 1, 0.5); ResourceManager.shredder.renderPart("Magazine"); + GL11.glTranslated(0, -1, -0.5); + GL11.glRotated(cycle[2], 0, 0, 1); + GL11.glTranslated(0, 1, 0.5); ResourceManager.shredder.renderPart("Shells"); + GL11.glPopMatrix(); double smokeScale = 0.75; GL11.glPushMatrix(); - GL11.glTranslated(0, 0, 13); + GL11.glTranslated(0, 1, 7.5); GL11.glRotated(90, 0, 1, 0); GL11.glScaled(smokeScale, smokeScale, smokeScale); this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.5D); @@ -102,11 +115,11 @@ public class ItemRenderShredder extends ItemRenderWeaponBase { GL11.glShadeModel(GL11.GL_FLAT); GL11.glPushMatrix(); - GL11.glTranslated(0, 0, 12); + GL11.glTranslated(0, 1, 7.5); GL11.glRotated(90, 0, 1, 0); GL11.glRotated(-25 + gun.shotRand * 10, 1, 0, 0); GL11.glScaled(0.75, 0.75, 0.75); - this.renderMuzzleFlash(gun.lastShot[0], 75, 10); + this.renderMuzzleFlash(gun.lastShot[0], 75, 7.5); GL11.glPopMatrix(); } diff --git a/src/main/resources/assets/hbm/textures/items/ammo.png b/src/main/resources/assets/hbm/textures/items/ammo.png index afb65b571..088300636 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ammo.png and b/src/main/resources/assets/hbm/textures/items/ammo.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_anthrax.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_anthrax.png new file mode 100644 index 000000000..28848a839 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_anthrax.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_explosive.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_explosive.png new file mode 100644 index 000000000..bc382afcd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_explosive.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_flechette.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_flechette.png new file mode 100644 index 000000000..60b41a6cb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_flechette.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_magnum.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_magnum.png new file mode 100644 index 000000000..5d04ed39e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_magnum.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_phosphorus.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_phosphorus.png new file mode 100644 index 000000000..de7316252 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_phosphorus.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_slug.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_slug.png new file mode 100644 index 000000000..e76016992 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_slug.png differ diff --git a/src/main/resources/assets/hbm/textures/items/casing.buckshot_advanced.png b/src/main/resources/assets/hbm/textures/items/casing.buckshot_advanced.png new file mode 100644 index 000000000..d50a478b2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/casing.buckshot_advanced.png differ