From e07b7c5fef09a9e8f8caa69bf1aabad36199c866 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 8 Apr 2026 15:21:22 +0200 Subject: [PATCH] spingus --- changelog | 3 +- .../weapon/grenade/ItemGrenadeFilling.java | 4 +- .../weapon/grenade/ItemGrenadeUniversal.java | 6 +- .../java/com/hbm/main/ResourceManager.java | 3 + .../hbm/render/item/ItemRenderGrenade.java | 152 ++++++++---------- .../fusion/TileEntityFusionBreeder.java | 4 +- .../items/grenade_filling.cluster.png | Bin 0 -> 385 bytes .../textures/items/grenade_filling.demo.png | Bin 0 -> 368 bytes .../hbm/textures/items/grenade_filling.he.png | Bin 0 -> 380 bytes .../textures/items/grenade_filling.inc.png | Bin 0 -> 375 bytes .../items/grenade_filling.nuclear.png | Bin 0 -> 309 bytes .../items/grenade_filling.nuclear_demo.png | Bin 0 -> 307 bytes .../textures/items/grenade_filling.powder.png | Bin 0 -> 417 bytes .../hbm/textures/items/grenade_shell.nuke.png | Bin 0 -> 311 bytes .../hbm/textures/models/grenades/nuka.png | Bin 968 -> 1692 bytes .../textures/models/grenades/nuka_body.png | Bin 0 -> 881 bytes .../textures/models/grenades/nuka_fuze.png | Bin 0 -> 175 bytes .../textures/models/grenades/nuka_label.png | Bin 0 -> 329 bytes 18 files changed, 76 insertions(+), 96 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/grenade_filling.cluster.png create mode 100644 src/main/resources/assets/hbm/textures/items/grenade_filling.demo.png create mode 100644 src/main/resources/assets/hbm/textures/items/grenade_filling.he.png create mode 100644 src/main/resources/assets/hbm/textures/items/grenade_filling.inc.png create mode 100644 src/main/resources/assets/hbm/textures/items/grenade_filling.nuclear.png create mode 100644 src/main/resources/assets/hbm/textures/items/grenade_filling.nuclear_demo.png create mode 100644 src/main/resources/assets/hbm/textures/items/grenade_filling.powder.png create mode 100644 src/main/resources/assets/hbm/textures/items/grenade_shell.nuke.png create mode 100644 src/main/resources/assets/hbm/textures/models/grenades/nuka_body.png create mode 100644 src/main/resources/assets/hbm/textures/models/grenades/nuka_fuze.png create mode 100644 src/main/resources/assets/hbm/textures/models/grenades/nuka_label.png diff --git a/changelog b/changelog index c6030241b..fcdcccd30 100644 --- a/changelog +++ b/changelog @@ -30,4 +30,5 @@ * Undid the change to the crucible where using no recipe would fill up the recipe stack anyway because people would NOT STOP smelting stuff then setting the recipe after the fact which DOES NOT WORK. * This change however introduced yet another inconsistency with external pouring behavior that I simply cannot be assed to fix, so we are just rolling all that back * If you're still to dumb, old or irradiated to use the crucible correctly, please bother LITERALLY ANOYNE EXCEPT ME. - * This basically fixes the aforementioned inconsistency \ No newline at end of file + * This basically fixes the aforementioned inconsistency +* Fixed meteorite sword progression having some issues ever since the fusion reactor rework \ No newline at end of file diff --git a/src/main/java/com/hbm/items/weapon/grenade/ItemGrenadeFilling.java b/src/main/java/com/hbm/items/weapon/grenade/ItemGrenadeFilling.java index b92196714..963e75ed5 100644 --- a/src/main/java/com/hbm/items/weapon/grenade/ItemGrenadeFilling.java +++ b/src/main/java/com/hbm/items/weapon/grenade/ItemGrenadeFilling.java @@ -64,8 +64,8 @@ public class ItemGrenadeFilling extends ItemEnumMulti { EMP(EXPLODE_EMP, 0x93A1AC, 0x00FFFF, TECH), // tesla PLASMA(EXPLODE_PLASMA, 0x655B2C, 0x4CFF00, TECH), // EMP but more oomph LASER(EXPLODE_LASER, 0x493A3A, 0xFF0000, TECH), // pew pew pew - NUCLEAR(EXPLODE_NUKE, 0, 0xA49D62, NUKE), // nuka grenade - NUCLEAR_DEMO(EXPLODE_NUKE_DEMO, 0, 0xDD4029, NUKE); // demolition nuka grenade + NUCLEAR(EXPLODE_NUKE, 0xDFD7A8, 0xA49D62, NUKE), // nuka grenade + NUCLEAR_DEMO(EXPLODE_NUKE_DEMO, 0xDFD7A8, 0xDD4029, NUKE); // demolition nuka grenade public Consumer explode; public Set compatibleShells = new HashSet(); diff --git a/src/main/java/com/hbm/items/weapon/grenade/ItemGrenadeUniversal.java b/src/main/java/com/hbm/items/weapon/grenade/ItemGrenadeUniversal.java index dbf065e1a..438115292 100644 --- a/src/main/java/com/hbm/items/weapon/grenade/ItemGrenadeUniversal.java +++ b/src/main/java/com/hbm/items/weapon/grenade/ItemGrenadeUniversal.java @@ -200,9 +200,9 @@ public class ItemGrenadeUniversal extends Item implements IEquipReceiver, IAnima return new BusAnimation() .addBus("BODYMOVE", new BusAnimationSequence().setPos(0, -7, 0).addPos(0, 3, 0, 750, IType.SIN_DOWN).holdUntil(1900).addPos(0, 0, 0, 250, IType.SIN_FULL)) .addBus("BODYTURN", new BusAnimationSequence().setPos(0, 0, 90).addPos(0, 0, -45, 750, IType.SIN_DOWN).holdUntil(1900).addPos(0, 0, 0, 250, IType.SIN_FULL)) - .addBus("CAPMOVE", new BusAnimationSequence().hold(800).addPos(0, -0.25, 0, 200, IType.SIN_FULL).hold(250).addPos(0, -0.5, 0, 200, IType.SIN_FULL).addPos(2, -5, 0, 350, IType.SIN_UP)) - .addBus("CAPTURN", new BusAnimationSequence().hold(800).addPos(0, 360, 0, 200, IType.SIN_FULL).hold(250).addPos(0, 360 * 2, 0, 200, IType.SIN_FULL)) - .addBus("RENDERCAP", new BusAnimationSequence().setPos(1, 1, 1).hold(2100).setPos(0, 0, 0)); + .addBus("RINGMOVE", new BusAnimationSequence().hold(800).addPos(0, -0.25, 0, 200, IType.SIN_FULL).hold(250).addPos(0, -0.5, 0, 200, IType.SIN_FULL).addPos(2, -5, 0, 350, IType.SIN_UP)) + .addBus("RINGTURN", new BusAnimationSequence().hold(800).addPos(0, 360, 0, 200, IType.SIN_FULL).hold(250).addPos(0, 360 * 2, 0, 200, IType.SIN_FULL)) + .addBus("RENDERRING", new BusAnimationSequence().setPos(1, 1, 1).hold(2100).setPos(0, 0, 0)); } if(shell == EnumGrenadeShell.TECH) { diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index ee9c886fe..374087e3d 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1117,6 +1117,9 @@ public class ResourceManager { public static final ResourceLocation grenade_tech_lights_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/tech_lights.png"); public static final ResourceLocation grenade_tech_fuze_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/tech_fuze.png"); public static final ResourceLocation grenade_nuka_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/nuka.png"); + public static final ResourceLocation grenade_nuka_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/nuka_body.png"); + public static final ResourceLocation grenade_nuka_label_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/nuka_label.png"); + public static final ResourceLocation grenade_nuka_fuze_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/nuka_fuze.png"); public static final ResourceLocation bj_eyepatch = new ResourceLocation(RefStrings.MODID, "textures/armor/bj_eyepatch.png"); public static final ResourceLocation bj_leg = new ResourceLocation(RefStrings.MODID, "textures/armor/bj_leg.png"); diff --git a/src/main/java/com/hbm/render/item/ItemRenderGrenade.java b/src/main/java/com/hbm/render/item/ItemRenderGrenade.java index beab5be6e..4dc519d4d 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderGrenade.java +++ b/src/main/java/com/hbm/render/item/ItemRenderGrenade.java @@ -79,13 +79,14 @@ public class ItemRenderGrenade implements IItemRenderer { GL11.glTranslated(3, 1, -3); GL11.glRotated(180, 0, -1, 0); + double[] bodyMove = HbmAnimations.getRelevantTransformation("BODYMOVE"); + double[] bodyTurn = HbmAnimations.getRelevantTransformation("BODYTURN"); + double[] ringMove = HbmAnimations.getRelevantTransformation("RINGMOVE"); + double[] ringTurn = HbmAnimations.getRelevantTransformation("RINGTURN"); + double[] renderRing = HbmAnimations.getRelevantTransformation("RENDERRING"); + GL11.glTranslated(bodyMove[0], bodyMove[1], bodyMove[2]); + if(shell == EnumGrenadeShell.FRAG) { - double[] bodyMove = HbmAnimations.getRelevantTransformation("BODYMOVE"); - double[] bodyTurn = HbmAnimations.getRelevantTransformation("BODYTURN"); - double[] ringMove = HbmAnimations.getRelevantTransformation("RINGMOVE"); - double[] ringTurn = HbmAnimations.getRelevantTransformation("RINGTURN"); - double[] renderRing = HbmAnimations.getRelevantTransformation("RENDERRING"); - GL11.glTranslated(bodyMove[0], bodyMove[1], bodyMove[2]); GL11.glRotated(bodyTurn[2], 1, 0, 0); renderFragBody(stack); Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_frag_tex); @@ -98,23 +99,17 @@ public class ItemRenderGrenade implements IItemRenderer { } if(shell == EnumGrenadeShell.STICK) { - double[] bodyMove = HbmAnimations.getRelevantTransformation("BODYMOVE"); - double[] bodyTurn = HbmAnimations.getRelevantTransformation("BODYTURN"); - double[] capMove = HbmAnimations.getRelevantTransformation("CAPMOVE"); - double[] capTurn = HbmAnimations.getRelevantTransformation("CAPTURN"); - double[] renderCap = HbmAnimations.getRelevantTransformation("RENDERCAP"); - GL11.glTranslated(bodyMove[0], bodyMove[1], bodyMove[2]); GL11.glRotated(bodyTurn[2], 0, 0, 1); renderStickBody(stack); - if(renderCap[0] != 0) { - GL11.glTranslated(capMove[0], capMove[1], capMove[2]); - GL11.glRotated(capTurn[1], 0, 1, 0); + if(renderRing[0] != 0) { + GL11.glTranslated(ringMove[0], ringMove[1], ringMove[2]); + GL11.glRotated(ringTurn[1], 0, 1, 0); EnumGrenadeFilling filling = ItemGrenadeUniversal.getFilling(stack); GL11.glEnable(GL11.GL_BLEND); OpenGlHelper.glBlendFunc(770, 771, 1, 0); bind(ResourceManager.grenade_stick_tex); ResourceManager.grenades.renderPart("StickCap"); - GL11.glColor3f(ColorUtil.fr(filling.bodyColor), ColorUtil.fg(filling.bodyColor), ColorUtil.fb(filling.bodyColor)); + setColor(filling.bodyColor); bind(ResourceManager.grenade_stick_body_tex); ResourceManager.grenades.renderPart("StickCap"); GL11.glColor3f(1F, 1F, 1F); @@ -123,12 +118,6 @@ public class ItemRenderGrenade implements IItemRenderer { } if(shell == EnumGrenadeShell.TECH) { - double[] bodyMove = HbmAnimations.getRelevantTransformation("BODYMOVE"); - double[] bodyTurn = HbmAnimations.getRelevantTransformation("BODYTURN"); - double[] ringMove = HbmAnimations.getRelevantTransformation("RINGMOVE"); - double[] ringTurn = HbmAnimations.getRelevantTransformation("RINGTURN"); - double[] renderRing = HbmAnimations.getRelevantTransformation("RENDERRING"); - GL11.glTranslated(bodyMove[0], bodyMove[1], bodyMove[2]); GL11.glRotated(bodyTurn[2], 1, 0, 0); renderTechBody(stack); if(renderRing[0] != 0) { @@ -140,10 +129,15 @@ public class ItemRenderGrenade implements IItemRenderer { } if(shell == EnumGrenadeShell.NUKE) { + //GL11.glRotated(bodyTurn[2], 1, 0, 0); + renderNukeBody(stack); Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_nuka_tex); - ResourceManager.grenades.renderPart("Nuka"); ResourceManager.grenades.renderPart("NukaSpoon"); - ResourceManager.grenades.renderPart("NukaRing"); + if(renderRing[0] != 0) { + GL11.glTranslated(ringMove[0], ringMove[1], ringMove[2]); + //GL11.glRotated(ringTurn[2], 1, 0, 0); + ResourceManager.grenades.renderPart("NukaRing"); + } } } @@ -202,7 +196,7 @@ public class ItemRenderGrenade implements IItemRenderer { } renderTechBody(stack); if(renderType != null) { - Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_tech_tex); + Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_tech_tex); ResourceManager.grenades.renderPart("TechRing"); } } @@ -220,9 +214,9 @@ public class ItemRenderGrenade implements IItemRenderer { GL11.glScaled(1.5, 1.5, 1.5); GL11.glTranslated(0, -3, 0); } - Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_nuka_tex); - ResourceManager.grenades.renderPart("Nuka"); + renderNukeBody(stack); if(renderType != null) { + Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_nuka_tex); ResourceManager.grenades.renderPart("NukaSpoon"); ResourceManager.grenades.renderPart("NukaRing"); } @@ -230,57 +224,11 @@ public class ItemRenderGrenade implements IItemRenderer { } public static void renderFragBody(ItemStack stack) { - - EnumGrenadeFilling filling = ItemGrenadeUniversal.getFilling(stack); - EnumGrenadeFuze fuze = ItemGrenadeUniversal.getFuze(stack); - - bind(ResourceManager.grenade_frag_tex); - ResourceManager.grenades.renderPart("Frag"); - - GL11.glEnable(GL11.GL_BLEND); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - - GL11.glColor3f(ColorUtil.fr(filling.bodyColor), ColorUtil.fg(filling.bodyColor), ColorUtil.fb(filling.bodyColor)); - bind(ResourceManager.grenade_frag_body_tex); - ResourceManager.grenades.renderPart("Frag"); - - GL11.glColor3f(ColorUtil.fr(filling.labelColor), ColorUtil.fg(filling.labelColor), ColorUtil.fb(filling.labelColor)); - bind(ResourceManager.grenade_frag_label_tex); - ResourceManager.grenades.renderPart("Frag"); - - GL11.glColor3f(ColorUtil.fr(fuze.bandColor), ColorUtil.fg(fuze.bandColor), ColorUtil.fb(fuze.bandColor)); - bind(ResourceManager.grenade_frag_fuze_tex); - ResourceManager.grenades.renderPart("Frag"); - - GL11.glColor3f(1F, 1F, 1F); - GL11.glDisable(GL11.GL_BLEND); + renderBodyStandard(stack, "Frag", ResourceManager.grenade_frag_tex, ResourceManager.grenade_frag_body_tex, ResourceManager.grenade_frag_label_tex, ResourceManager.grenade_frag_fuze_tex); } public static void renderStickBody(ItemStack stack) { - - EnumGrenadeFilling filling = ItemGrenadeUniversal.getFilling(stack); - EnumGrenadeFuze fuze = ItemGrenadeUniversal.getFuze(stack); - - bind(ResourceManager.grenade_stick_tex); - ResourceManager.grenades.renderPart("Stick"); - - GL11.glEnable(GL11.GL_BLEND); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - - GL11.glColor3f(ColorUtil.fr(filling.bodyColor), ColorUtil.fg(filling.bodyColor), ColorUtil.fb(filling.bodyColor)); - bind(ResourceManager.grenade_stick_body_tex); - ResourceManager.grenades.renderPart("Stick"); - - GL11.glColor3f(ColorUtil.fr(filling.labelColor), ColorUtil.fg(filling.labelColor), ColorUtil.fb(filling.labelColor)); - bind(ResourceManager.grenade_stick_label_tex); - ResourceManager.grenades.renderPart("Stick"); - - GL11.glColor3f(ColorUtil.fr(fuze.bandColor), ColorUtil.fg(fuze.bandColor), ColorUtil.fb(fuze.bandColor)); - bind(ResourceManager.grenade_stick_fuze_tex); - ResourceManager.grenades.renderPart("Stick"); - - GL11.glColor3f(1F, 1F, 1F); - GL11.glDisable(GL11.GL_BLEND); + renderBodyStandard(stack, "Stick", ResourceManager.grenade_stick_tex, ResourceManager.grenade_stick_body_tex, ResourceManager.grenade_stick_label_tex, ResourceManager.grenade_stick_fuze_tex); } public static void renderTechBody(ItemStack stack) { @@ -288,31 +236,59 @@ public class ItemRenderGrenade implements IItemRenderer { EnumGrenadeFilling filling = ItemGrenadeUniversal.getFilling(stack); EnumGrenadeFuze fuze = ItemGrenadeUniversal.getFuze(stack); - bind(ResourceManager.grenade_tech_tex); - ResourceManager.grenades.renderPart("Tech"); + renderWithTexture(ResourceManager.grenade_tech_tex, "Tech"); GL11.glEnable(GL11.GL_BLEND); OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glColor3f(ColorUtil.fr(filling.bodyColor), ColorUtil.fg(filling.bodyColor), ColorUtil.fb(filling.bodyColor)); - bind(ResourceManager.grenade_tech_body_tex); - ResourceManager.grenades.renderPart("Tech"); - - GL11.glColor3f(ColorUtil.fr(fuze.bandColor), ColorUtil.fg(fuze.bandColor), ColorUtil.fb(fuze.bandColor)); - bind(ResourceManager.grenade_tech_fuze_tex); - ResourceManager.grenades.renderPart("Tech"); - + setColor(filling.bodyColor); + renderWithTexture(ResourceManager.grenade_tech_body_tex, "Tech"); + setColor(fuze.bandColor); + renderWithTexture(ResourceManager.grenade_tech_fuze_tex, "Tech"); RenderArcFurnace.fullbright(true); - GL11.glColor3f(ColorUtil.fr(filling.labelColor), ColorUtil.fg(filling.labelColor), ColorUtil.fb(filling.labelColor)); - bind(ResourceManager.grenade_tech_lights_tex); - ResourceManager.grenades.renderPart("Tech"); + setColor(filling.labelColor); + renderWithTexture(ResourceManager.grenade_tech_lights_tex, "Tech"); RenderArcFurnace.fullbright(false); GL11.glColor3f(1F, 1F, 1F); GL11.glDisable(GL11.GL_BLEND); } + public static void renderNukeBody(ItemStack stack) { + renderBodyStandard(stack, "Nuka", ResourceManager.grenade_nuka_tex, ResourceManager.grenade_nuka_body_tex, ResourceManager.grenade_nuka_label_tex, ResourceManager.grenade_nuka_fuze_tex); + } + + public static void renderBodyStandard(ItemStack stack, String part, ResourceLocation baseTex, ResourceLocation bodyTex, ResourceLocation labelTex, ResourceLocation fuzeTex) { + + EnumGrenadeFilling filling = ItemGrenadeUniversal.getFilling(stack); + EnumGrenadeFuze fuze = ItemGrenadeUniversal.getFuze(stack); + + renderWithTexture(baseTex, part); + + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + + setColor(filling.bodyColor); + renderWithTexture(bodyTex, part); + setColor(filling.labelColor); + renderWithTexture(labelTex, part); + setColor(fuze.bandColor); + renderWithTexture(fuzeTex, part); + + GL11.glColor3f(1F, 1F, 1F); + GL11.glDisable(GL11.GL_BLEND); + } + + public static void setColor(int hex) { + GL11.glColor3f(ColorUtil.fr(hex), ColorUtil.fg(hex), ColorUtil.fb(hex)); + } + public static void bind(ResourceLocation res) { Minecraft.getMinecraft().getTextureManager().bindTexture(res); } + + public static void renderWithTexture(ResourceLocation res, String part) { + bind(res); + ResourceManager.grenades.renderPart(part); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionBreeder.java b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionBreeder.java index ae304271c..2b3328ab9 100644 --- a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionBreeder.java +++ b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionBreeder.java @@ -106,7 +106,7 @@ public class TileEntityFusionBreeder extends TileEntityMachineBase implements IF public boolean canProcessSolid() { if(slots[1] == null) return false; - if(slots[1].getItem() == ModItems.meteorite_sword_bred && slots[2] == null) return true; + if(slots[1].getItem() == ModItems.meteorite_sword_irradiated && slots[2] == null) return true; OutgasserRecipe output = OutgasserRecipes.getOutput(slots[1]); if(output == null) return false; @@ -142,7 +142,7 @@ public class TileEntityFusionBreeder extends TileEntityMachineBase implements IF private void processSolid() { - if(slots[1].getItem() == ModItems.meteorite_sword_bred) { + if(slots[1].getItem() == ModItems.meteorite_sword_irradiated) { this.decrStackSize(1, 1); slots[2] = new ItemStack(ModItems.meteorite_sword_fused); this.progress = 0; diff --git a/src/main/resources/assets/hbm/textures/items/grenade_filling.cluster.png b/src/main/resources/assets/hbm/textures/items/grenade_filling.cluster.png new file mode 100644 index 0000000000000000000000000000000000000000..f3a8bc4a7b6adccf683de1e01ce4bbfe6dd6d569 GIT binary patch literal 385 zcmV-{0e=38P)1B#l@zZl&YyF*VW|QTnVCV|v`7Xjqf})(EC})twO^BidLsw|i&#?&Z{0Muy z1BjwjYnNBIENi=gEN|idA^grFY^<*W0M0!h<+KIBCP*?4vYaDLUjP8*l;ZX66GE@k z^0syW0G4GTe_unAafsp%92_1)(=_G?t*wqnLwe&EAcVlSZFruCIF3OGfzaz9oTPI# z3kft$gX_8of}qa-34x(2G|4z7!Jxl_i|faQ=ReoPG)=0iDis8QI*vnGSI8u&Vmuns fpLful{m1vUiwy@-k>*IiK?ipcp+h%+LP19t5&9cC^$$2G zxVXCb4=gwYElLp_Lg*}sSCNK7hmLWm7bSOrK)>bg-h03Id+)nDSTSm48@E^InVvgN zos+XmE7uC@WHtHDvAx|LtH@drXt(^#aq5K82h()HG+iLwZCqE7MP|0 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/grenade_filling.he.png b/src/main/resources/assets/hbm/textures/items/grenade_filling.he.png new file mode 100644 index 0000000000000000000000000000000000000000..4861dfad2c093ca7e1bcf392e86013a73221f4b6 GIT binary patch literal 380 zcmV-?0fYXDP)1vUiwy}<5mVd5K?ipcp+kQ~3+faXNBdVSxC$K| zia(%3hoZ$A3LQe}oHkks4W$`6#>E88U7*l!x_j@v_nz;#gDoqUweb9OAH`!u$#Z@8 zDD_Ikc=Pw%Pqees6KTj!TBugak)q^r#x9Fs%_3M+)DO}1BGpPcO8a+Z1Ot1*)#W+5 zUQD#N_Yav>3@DY37>=C3*@T0_9sr%LO|TRI#1;S=R*kvuGaNZ|x;8JbpERu6W&{B4 z)aAjt1>nn@CYr3I1g2pE5QeK{W2|jVa9lD_RSnZHGf&S9Fb$J1TnR)l5WLbB08~{& zRkeRqvJwJ3?K9Q=6D%W~v6t!H as(t}pk7@$DzNvix0000x~)!y}nBnmkg9g0BCo*EP{aH$fMVHxxRU%-RUmp0N~^O zjf<-u0I&0>oKr#RK+_EX(j?9cGj3@I05wrZ(~ZjRl>(Y>kS1}-kqXKYvhFoeFS+_v z!1rJBxcCN*dgbPShhw*7l7uozLOGibSsx5>cKGX5xp3K}tvBVquOSbyU#$t9`wfuFnQRmU^ZnMUItUd7>&>WE9jlZoa7;QNgY_w`uJHC6>z>Vh6u$ z>@v(&YI?M~?EblGYh!Efc%|h+d)En;-O^>)_M7>W&c#(ypL7^4VpE(Z|F2{d4C~`y zjL~OEu-O=#9Dl-Nh0w)>M!f&kKYQo7q=P~-AQhqqJcn6UMC znT%K0ygB9fHoayw;okV6a;;MFge!UVHXil=x#J)6X}3l*$|)TE0Q5J5r>mdKI;Vst E0Qhfny8r+H literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/grenade_filling.nuclear_demo.png b/src/main/resources/assets/hbm/textures/items/grenade_filling.nuclear_demo.png new file mode 100644 index 0000000000000000000000000000000000000000..0e82b5c923956263e0473e89f9161de946ce3a33 GIT binary patch literal 307 zcmV-30nGl1P)zh8?TWf@2^G7?s zxbmTSgH~&a+q>TPuFpcF3c$(f4a2uw0DppdV}rp&)E!;B;n(u zjtgoSWB7ClLTDgwkb6V`Aq2)4Mxzm0Ybuor)>jLI^MFH&9BErYY81f*?Q$L6&8+8AQ<&&N<5EGUM@>VzEfITBT4Z(3sB` z*IVUor|qO#$68C8res;hT;-Xw%f}o)^)v15Y`Wh)=-o$C*?-L!K8S(3+8Bn500000 LNkvXXu0mjfJ`J=` literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/grenade_shell.nuke.png b/src/main/resources/assets/hbm/textures/items/grenade_shell.nuke.png new file mode 100644 index 0000000000000000000000000000000000000000..8c469900c0d85b72ca2ad813006eb4f4f36ae42a GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfS=IVTP31_xJto3GG|J?XxCW zQr`aep@yEqN=9ad+eOvf-~X4kCjH-d@*u;tjFg0imc#CBY-~FP*xJ5^#s7O;#Mt)W z?`!RU`)j|?bd2bj-q_g4D96`7zc$g}!o-w-D?JVun+4fUaEVALOZ2n`Z#?zTq#>li zm`4H#&h4A)dx2q2VDp?A9$jv1Y%XyT`*;1f*I|8hYAVA~hQjPuOOMP0`kcYj)z4*} HQ$iB}ez%3I literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/grenades/nuka.png b/src/main/resources/assets/hbm/textures/models/grenades/nuka.png index f7623bb623a6a3b3fb8aabf09aefe3e67139fbdb..56811fe04fd3071ce4a9ffd6b270ea08b80cd80d 100644 GIT binary patch delta 1660 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/grenades/nuka_fuze.png b/src/main/resources/assets/hbm/textures/models/grenades/nuka_fuze.png new file mode 100644 index 0000000000000000000000000000000000000000..dd6a95d8e37d54e25a748a7c3ba367d625fa2cc3 GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^4M3d7!3HGX7f4$IDVAa<&kznEsNqQI0P@p3T^vIy z=DfXRD9B*I!@P0FAIs%3yOxws( aKe)+yIGu$4lvHJbmtzv=` zWk1U=uC~}}zuVf+`b72nyP1D)?!Ep;KyW|XqDl9v@5|nJ`B(GT>A$=jJ@kGS^O}1nH@!apVrFcr+Q-IkhhY{izi$mtcZp@PmqUElD1Uy~+T-G@yGywns8iVfu literal 0 HcmV?d00001