This commit is contained in:
Boblet 2026-04-08 15:21:22 +02:00
parent aa50173c2b
commit e07b7c5fef
18 changed files with 76 additions and 96 deletions

View File

@ -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
* This basically fixes the aforementioned inconsistency
* Fixed meteorite sword progression having some issues ever since the fusion reactor rework

View File

@ -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<EntityGrenadeUniversal> explode;
public Set<EnumGrenadeShell> compatibleShells = new HashSet();

View File

@ -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) {

View File

@ -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");

View File

@ -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);
}
}

View File

@ -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;

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 968 B

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 881 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 B