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 000000000..f3a8bc4a7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/grenade_filling.cluster.png differ diff --git a/src/main/resources/assets/hbm/textures/items/grenade_filling.demo.png b/src/main/resources/assets/hbm/textures/items/grenade_filling.demo.png new file mode 100644 index 000000000..ea809d5fe Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/grenade_filling.demo.png differ 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 000000000..4861dfad2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/grenade_filling.he.png differ diff --git a/src/main/resources/assets/hbm/textures/items/grenade_filling.inc.png b/src/main/resources/assets/hbm/textures/items/grenade_filling.inc.png new file mode 100644 index 000000000..66e1e8d7a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/grenade_filling.inc.png differ diff --git a/src/main/resources/assets/hbm/textures/items/grenade_filling.nuclear.png b/src/main/resources/assets/hbm/textures/items/grenade_filling.nuclear.png new file mode 100644 index 000000000..444e2a3da Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/grenade_filling.nuclear.png differ 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 000000000..0e82b5c92 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/grenade_filling.nuclear_demo.png differ diff --git a/src/main/resources/assets/hbm/textures/items/grenade_filling.powder.png b/src/main/resources/assets/hbm/textures/items/grenade_filling.powder.png new file mode 100644 index 000000000..630ea05b5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/grenade_filling.powder.png differ 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 000000000..8c469900c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/grenade_shell.nuke.png differ 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 f7623bb62..56811fe04 100644 Binary files a/src/main/resources/assets/hbm/textures/models/grenades/nuka.png and b/src/main/resources/assets/hbm/textures/models/grenades/nuka.png differ diff --git a/src/main/resources/assets/hbm/textures/models/grenades/nuka_body.png b/src/main/resources/assets/hbm/textures/models/grenades/nuka_body.png new file mode 100644 index 000000000..8dfae1224 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/grenades/nuka_body.png differ 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 000000000..dd6a95d8e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/grenades/nuka_fuze.png differ diff --git a/src/main/resources/assets/hbm/textures/models/grenades/nuka_label.png b/src/main/resources/assets/hbm/textures/models/grenades/nuka_label.png new file mode 100644 index 000000000..129d606ac Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/grenades/nuka_label.png differ