From f4018248f1b55fe6d954b893158c967a2386a8af Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 24 Oct 2024 16:36:29 +0200 Subject: [PATCH] *BOOM!* *camera zoom noise* *BOOM!* *camera zoom noise* *BOOM!* --- src/main/java/com/hbm/items/ItemEnums.java | 2 +- .../hbm/items/weapon/sedna/BulletConfig.java | 1 + .../weapon/sedna/factory/GunFactory.java | 2 +- .../hbm/items/weapon/sedna/factory/Lego.java | 6 +-- .../weapon/sedna/factory/XFactory12ga.java | 51 +++++++++++++----- .../weapon/sedna/mags/MagazineFluid.java | 2 - .../item/weapon/sedna/ItemRenderShredder.java | 19 +++++-- .../assets/hbm/textures/items/ammo.png | Bin 11226 -> 12122 bytes .../items/ammo_standard.g12_anthrax.png | Bin 0 -> 348 bytes .../items/ammo_standard.g12_explosive.png | Bin 0 -> 294 bytes .../items/ammo_standard.g12_flechette.png | Bin 0 -> 273 bytes .../items/ammo_standard.g12_magnum.png | Bin 0 -> 288 bytes .../items/ammo_standard.g12_phosphorus.png | Bin 0 -> 337 bytes .../textures/items/ammo_standard.g12_slug.png | Bin 0 -> 259 bytes .../items/casing.buckshot_advanced.png | Bin 0 -> 256 bytes 15 files changed, 61 insertions(+), 22 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.g12_anthrax.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.g12_explosive.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.g12_flechette.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.g12_magnum.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.g12_phosphorus.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.g12_slug.png create mode 100644 src/main/resources/assets/hbm/textures/items/casing.buckshot_advanced.png 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 afb65b571dc8513355868ef9412ff0b23b849307..088300636baa462d8e1da600b5db5a51def2fd16 100644 GIT binary patch literal 12122 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 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 0000000000000000000000000000000000000000..28848a839c6b54126768b070da8c5f3429870533 GIT binary patch literal 348 zcmV-i0i*tjP)To}tVb^y>cl!_K zvnlJ<0q0x`AA||)MLux7_t$}lnoHN#1VvN1a0oneEP)8}s>ew6ZRWH-M##ex*e69)chL%0fP z2!1C809`+qp@0O;RjS)y3~D zfOE)`-=eAuWcM2|A&rd=@XVgWp{A;;DfXOmxCl&$uy<9(%mBza^Ko`F`*TkK5D~BI s+C{|MwsjF%zwUEn_3#|oJbbR+0nhq&taLV$})*+%u!o%!{L+Er0Wd7%nkh(dt7k`8sd*0nlnYPABtTSnHeW`B42 U9NkTafqr7}boFyt=akR{0G8@&=Kufz literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5d04ed39efe9094252081a18a43558436dfcf73d GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfu1FD&{*Qu6Txh4l)VjAyPpME&VIQfqNCXL0VK2^kel zDw`b-DCIJjq(9hH|MoLeu;6mZt|RYzUo&3(o5p_YRL4lE)+%8m>v5-zky2XT7nOlF-sA0u!&4>bi)0 kxhtz;VdJ9KUi+27VO{*I#}#fdKrb?Qy85}Sb4q9e0E{1sx5JjJjz(q=LIRd$G5%vVTmB>l<2C35fD85A6;3`+x zVp9mDEmNl5NfSFZv4b7RfQkYA$D5JhA4<1e&c}_2=;3fcL{>w_0JYZApJ%sQ1?d4Q zA^^k~dA-l6t8x`28ykoSFZCS&b+zMoz7b<2rIgLb!Hi)~>8ck~QdcF%^9^h50AGSk zmiUNfZ{eMX%f~QIzmuiKE~%-A3^4FHfCW7K<32myeu>-g$5gs}KJlXA}K>2y-(oVIPN&bdwB j{Rd=ocntY-c&R=Cvg>AnQD(lE00000NkvXXu0mjfiyL#C}eqMF}I%A1RSLPT(|#d$W9=8K6l3wNJ= zQu~wjU%(chbC2CzBBrUjq?kT>G&NLo)vs6195;zvO< z#k`BNC)QXRD1NxdTyej1)uQ}6$6qgLP${yD+h{L4>BRa)9UIm<@`?W3QTT>y)`V?r z@2ATiU#HOCRr}bYjP>@d56S5%_c}G_IGuSYaZ~1BnE!&$jpAaQ|26}C!QkoY=d#Wz Gp$P!X&1KsF literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d50a478b212dadfe4f9141976b38357eb3891cf2 GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfCM0=L;<-HG%-^><5e8`z5w8IZ4FruVNLiuKmvUk<9=I_SAjtdic9vz9Kh0;lM-I zpaTV_2P&>twY|5mGpMQj#nSiR|Lw6XhI0`&o@X5``1&f;!k)3+Y7Se>-m0k&4>q$G w^l(4mWp