This commit is contained in:
Bob 2025-09-14 22:51:27 +02:00
parent c0cb28c2ad
commit afb559d604
16 changed files with 84 additions and 15 deletions

View File

@ -15,9 +15,13 @@
* PgUp and PgDown scroll by 5 lines (full page)
* Pos1 and End keys scroll to the top and bottom of the list respectively
* C4, like semtex, is now edible
* Assembly machines can now be made with the assembly machine
* The recipe is similar to the anvil recipe, but it uses only half as much steel, and one analog circuit instead of four vacuum tubes
## Fixed
* Fixed fusion reactor item IO being broken
* Fixed issue with the chemical factory where the declogging feature would be triggered by a recipe processor that doesn't even own the reported slot
* Fixed the new PA not triggering the omega-12 achievement
* In addition to granting the achievement to nearby players on recipe completion, it is also granted when taking it out of the output slot
* In addition to granting the achievement to nearby players on recipe completion, it is also granted when taking it out of the output slot
* Fixed the PUREX recipe for processing ZIRNOX MEU fuel not yielding technetium as it should
* Fixed turbofans pulling in players even when disabled via redstone

View File

@ -1,6 +1,6 @@
mod_version=1.0.27
# Empty build number makes a release type
mod_build_number=5441
mod_build_number=5453
credits=HbMinecraft,\
\ rodolphito (explosion algorithms),\

View File

@ -36,8 +36,8 @@ public class GUIMachineAssemblyFactory extends GuiInfoContainer {
super.drawScreen(mouseX, mouseY, f);
for(int j = 0; j < 4; j++) {
assembler.inputTanks[j].renderTankInfo(this, mouseX, mouseY, guiLeft + 105 + (j % 2) * 109, guiTop + 20 + (j / 2) * 56, 3, 16);
assembler.outputTanks[j].renderTankInfo(this, mouseX, mouseY, guiLeft + 105 + (j % 2) * 109, guiTop + 54 + (j / 2) * 56, 3, 16);
assembler.inputTanks[j].renderTankInfo(this, mouseX, mouseY, guiLeft + 105 + (j % 2) * 109, guiTop + 20 + (j / 2) * 56, 5, 32);
assembler.outputTanks[j].renderTankInfo(this, mouseX, mouseY, guiLeft + 105 + (j % 2) * 109, guiTop + 54 + (j / 2) * 56, 5, 16);
}
assembler.water.renderTankInfo(this, mouseX, mouseY, guiLeft + 232, guiTop + 149, 7, 52);

View File

@ -216,6 +216,8 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
this.register(new GenericRecipe("ass.shredder").setup(100, 100).outputItems(new ItemStack(ModBlocks.machine_shredder, 1))
.inputItems(new OreDictStack(STEEL.plate528(), 8), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.motor, 2))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.STEEL_PLATING), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.motor, 2)));
this.register(new GenericRecipe("ass.assembler").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_assembly_machine, 1))
.inputItems(new OreDictStack(STEEL.ingot(), 4), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG)));
this.register(new GenericRecipe("ass.chemplant").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_chemical_plant, 1))
.inputItems(new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.pipe(), 2), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.coil_tungsten, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.STEEL_PLATING), new OreDictStack(CU.pipe(), 2), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.coil_tungsten, 2), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ANALOG)));

View File

@ -53,9 +53,9 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
this.register(new GenericRecipe("purex.zirnoxmeu").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
.inputItems(new ComparableStack(ModItems.waste_uranium))
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
.outputItems(new ItemStack(ModItems.nugget_u238, 1),
new ItemStack(ModItems.nugget_pu_mix, 2),
new ItemStack(ModItems.nugget_pu239, 1),
.outputItems(new ItemStack(ModItems.nugget_pu_mix, 1),
new ItemStack(ModItems.nugget_plutonium, 2),
new ItemStack(ModItems.nugget_technetium, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 2))
.setIconToFirstIngredient());
@ -80,8 +80,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
this.register(new GenericRecipe("purex.zirnoxmep").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
.inputItems(new ComparableStack(ModItems.waste_plutonium))
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
.outputItems(new ItemStack(ModItems.nugget_pu_mix, 1),
new ItemStack(ModItems.nugget_pu_mix, 1),
.outputItems(new ItemStack(ModItems.nugget_pu_mix, 2),
new ItemStack(ModItems.nugget_technetium, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 3))
.setIconToFirstIngredient());

View File

@ -3,7 +3,7 @@ package com.hbm.lib;
public class RefStrings {
public static final String MODID = "hbm";
public static final String NAME = "Hbm's Nuclear Tech Mod";
public static final String VERSION = "1.0.27 BETA (5441)";
public static final String VERSION = "1.0.27 BETA (5453)";
//HBM's Beta Naming Convention:
//V T (X)
//V -> next release version

View File

@ -580,6 +580,7 @@ public class ResourceManager {
public static final ResourceLocation assembly_machine_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/assembly_machine.png");
public static final ResourceLocation assemfac_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/assemfac.png");
public static final ResourceLocation assembly_factory_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/assembly_factory.png");
public static final ResourceLocation assembly_factory_sparks_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/assembly_factory_sparks.png");
//Chemplant
public static final ResourceLocation chemplant_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/chemplant_base_new.png");

View File

@ -12,7 +12,9 @@ import com.hbm.render.item.ItemRenderBase;
import com.hbm.tileentity.machine.TileEntityMachineAssemblyFactory;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
@ -145,7 +147,7 @@ public class RenderAssemblyFactory extends TileEntitySpecialRenderer implements
GL11.glTranslated(0, arm4[3], 0);
ResourceManager.assembly_factory.renderPart("Striker4");
GL11.glTranslated(0, 1.625, -0.3125);
GL11.glRotated(-arm4[4], 1, 0, 0);
GL11.glRotated(arm4[4], 1, 0, 0);
GL11.glTranslated(0, -1.625, 0.3125);
ResourceManager.assembly_factory.renderPart("Blade4");
} GL11.glPopMatrix();
@ -189,6 +191,67 @@ public class RenderAssemblyFactory extends TileEntitySpecialRenderer implements
}
GL11.glPopMatrix();
}
RenderArcFurnace.fullbright(true);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glEnable(GL11.GL_BLEND);
GL11.glAlphaFunc(GL11.GL_GREATER, 0);
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
bindTexture(ResourceManager.assembly_factory_sparks_tex);
Tessellator tess = Tessellator.instance;
double wide = 0.1875D;
double narrow = 0.00D;
double length = 1.25D;
double uMin = ((tileEntity.getWorldObj().getTotalWorldTime() / 10D + interp)) % 10;
double uMax = uMin + 1;
double epsilon = 0.01D;
// renders two layers of sparks, one with regular UV and one with mirrored +0.5 offset
// render left and right of the blade with small offset to eliminate z-fighting
GL11.glPushMatrix(); if(arm2[3] <= -0.375D) {
GL11.glTranslated(0.5 + slide1, 1.0625D, -arm2[2] / 45D); // arm angle/45 is a seemingly good enough approximation
tess.startDrawingQuads();
tess.setColorRGBA_F(1F, 1F, 1F, 0F);
tess.addVertexWithUV(-epsilon, -wide, length, uMin + 0.5, 0);
tess.addVertexWithUV(-epsilon, wide, length, uMin + 0.5, 1);
tess.setColorRGBA_F(1F, 1F, 1F, 1F);
tess.addVertexWithUV(-epsilon, narrow, 0, uMax + 0.5, 1);
tess.addVertexWithUV(-epsilon, -narrow, 0, uMax + 0.5, 0);
tess.setColorRGBA_F(1F, 1F, 1F, 0F);
tess.addVertexWithUV(epsilon, -wide, length, uMin, 1);
tess.addVertexWithUV(epsilon, wide, length, uMin, 0);
tess.setColorRGBA_F(1F, 1F, 1F, 1F);
tess.addVertexWithUV(epsilon, narrow, 0, uMax, 0);
tess.addVertexWithUV(epsilon, -narrow, 0, uMax, 1);
tess.draw();
} GL11.glPopMatrix();
GL11.glPushMatrix(); if(arm4[3] <= -0.375D) {
GL11.glTranslated(-0.5 - slide2, 1.0625D, arm4[2] / 45D);
tess.startDrawingQuads();
tess.setColorRGBA_F(1F, 1F, 1F, 0F);
tess.addVertexWithUV(-epsilon, -wide, -length, uMin + 0.5, 0);
tess.addVertexWithUV(-epsilon, wide, -length, uMin + 0.5, 1);
tess.setColorRGBA_F(1F, 1F, 1F, 1F);
tess.addVertexWithUV(-epsilon, narrow, 0, uMax + 0.5, 1);
tess.addVertexWithUV(-epsilon, -narrow, 0, uMax + 0.5, 0);
tess.setNormal(-1, 0, 0);
tess.setColorRGBA_F(1F, 1F, 1F, 0F);
tess.addVertexWithUV(epsilon, -wide, -length, uMin, 1);
tess.addVertexWithUV(epsilon, wide, -length, uMin, 0);
tess.setColorRGBA_F(1F, 1F, 1F, 1F);
tess.addVertexWithUV(epsilon, narrow, 0, uMax, 0);
tess.addVertexWithUV(epsilon, -narrow, 0, uMax, 1);
tess.draw();
} GL11.glPopMatrix();
GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);
GL11.glDisable(GL11.GL_BLEND);
GL11.glEnable(GL11.GL_CULL_FACE);
RenderArcFurnace.fullbright(false);
}
GL11.glShadeModel(GL11.GL_FLAT);

View File

@ -186,7 +186,7 @@ public class TileEntityMachineAssemblyFactory extends TileEntityMachineBase impl
this.networkPackNT(100);
} else {
if(MainRegistry.proxy.me().getDistance(xCoord , yCoord, zCoord) < 50) {
if((didProcess[0] ||didProcess[1] ||didProcess[2] ||didProcess[3]) && MainRegistry.proxy.me().getDistance(xCoord , yCoord, zCoord) < 50) {
if(audio == null) {
audio = createAudioLoop();
audio.startSound();
@ -443,7 +443,7 @@ public class TileEntityMachineAssemblyFactory extends TileEntityMachineBase impl
public TragicYuri(int group) {
striker = new AssemblerArm( group == 0 ? 0 : 3);
saw = new AssemblerArm( group == 0 ? 1 : 2).yepThatsASaw();
timeUntilReposition = 200;
timeUntilReposition = 140 + rand.nextInt(161);
}
public void update(boolean working) {

View File

@ -346,7 +346,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem
* All movement related stuff has to be repeated on the client, but only for the client's player
* Otherwise this could lead to desync since the motion is never sent form the server
*/
if(tank.getFill() > 0 && !MainRegistry.proxy.me().capabilities.isCreativeMode) {
if(wasOn && !MainRegistry.proxy.me().capabilities.isCreativeMode) {
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10).getRotation(ForgeDirection.UP);
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);

View File

@ -7,7 +7,7 @@
"zh_CN": "装配机"
},
"content": {
"en_US": "Universal machine for building things with up to twelve item inputs. Important early on and used widely throughout progression. Build in an [[anvil|Anvil]], using plates from a [[press|Press]].",
"en_US": "Universal machine for building things with up to twelve item inputs. Important early on and used widely throughout progression. Built in an [[anvil|Anvil]], using plates from a [[press|Press]].",
"zh_CN": "用于装配物品的通用机器,最多能够输入十二种物品。前期的重要机器,并且在 整个游戏流程中广泛使用。在[[砧|Anvil]]中使用金属板等合成,需要的金属板可在[[锻压机|Press]]中制造。"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B