the Q in NTM stands for QoL

This commit is contained in:
Boblet 2026-03-31 10:44:36 +02:00
parent 07eff2a32a
commit 653e428462
10 changed files with 50 additions and 29 deletions

View File

@ -7,6 +7,11 @@
* The ZIRNOX now outputs its heat and pressure
* The CCGT can output the turbine setting in percent, the turbine's RPM and the produced energy
* The fusion reactor plasma vessel can output its output plasma energy and fuel consumption in percent
* Cast plate foundry molds now have a triple variant
* Zombies now have a chance to drop copper, aluminium and titanium ingots (1:200 each)
* The burner press now has nine additional storage slots for things like stamps and reserve fuel
## Fixed
* Fixed euphemium compound plate recipe not yielding four items as it should in the plasma forge
* Fixed euphemium compound plate recipe not yielding four items as it should in the plasma forge
* Fixed NTM rare item drops ignoring the mob loot gamerule
* Fixed flamethrowers not properly igniting entities on direct hit, only via lingering fire

View File

@ -26,15 +26,19 @@ public class ContainerMachinePress extends Container {
this.addSlotToContainer(new Slot(tedf, 2, 80, 53));
// Output
this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 3, 140, 35));
// Extra Storage
for(int i = 0; i < 9; i++) {
this.addSlotToContainer(new Slot(tedf, 4 + i, 8 + i * 18, 84));
}
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 9; j++) {
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 120 + i * 18));
}
}
for(int i = 0; i < 9; i++) {
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142));
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 178));
}
}
@ -47,23 +51,29 @@ public class ContainerMachinePress extends Container {
ItemStack var5 = var4.getStack();
var3 = var5.copy();
if(par2 <= 3) {
if(!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) {
if(par2 <= 12) {
if(!this.mergeItemStack(var5, 13, this.inventorySlots.size(), true)) {
return null;
}
} else {
if(TileEntityFurnace.isItemFuel(var3)) {
if(!this.mergeItemStack(var5, 0, 1, false)) {
return null;
if(!this.mergeItemStack(var5, 4, 13, false)) {
return null;
}
}
} else if(var3.getItem() instanceof ItemStamp) {
if(!this.mergeItemStack(var5, 1, 2, false)) {
return null;
if(!this.mergeItemStack(var5, 4, 13, false)) {
return null;
}
}
} else {
if(!this.mergeItemStack(var5, 2, 3, false)) {
return null;
if(!this.mergeItemStack(var5, 4, 13, false)) {
return null;
}
}
}
}

View File

@ -22,7 +22,7 @@ public class GUIMachinePress extends GuiInfoContainer {
press = tedf;
this.xSize = 176;
this.ySize = 166;
this.ySize = 202;
}
@Override
@ -48,11 +48,11 @@ public class GUIMachinePress extends GuiInfoContainer {
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
if(press.burnTime >= 20) {
this.drawTexturedModalRect(guiLeft + 27, guiTop + 36, 176, 0, 14, 14);
this.drawTexturedModalRect(guiLeft + 27, guiTop + 36, 0, 202, 14, 14);
}
int k = (int) (press.renderPress * 16 / press.maxPress);
this.drawTexturedModalRect(guiLeft + 79, guiTop + 35, 194, 0, 18, k);
this.drawTexturedModalRect(guiLeft + 79, guiTop + 35, 14, 202, 18, k);
double i = (double) press.speed / (double) press.maxSpeed;
GaugeUtil.drawSmoothGauge(guiLeft + 34, guiTop + 25, this.zLevel, i, 5, 2, 1, 0x7f0000);

View File

@ -100,6 +100,7 @@ public class AnvilRecipes extends SerializableRecipe {
smithingRecipes.add(new AnvilSmithingMold(2, new OreDictStack(IRON.ingot()), new OreDictStack("ingot")));
smithingRecipes.add(new AnvilSmithingMold(3, new OreDictStack(IRON.plate()), new OreDictStack("plate")));
smithingRecipes.add(new AnvilSmithingMold(19, new OreDictStack(IRON.plateCast()), new OreDictStack("plateTriple")));
smithingRecipes.add(new AnvilSmithingMold(13, new OreDictStack(IRON.plateCast(), 3), new OreDictStack("plateTriple", 3)));
smithingRecipes.add(new AnvilSmithingMold(4, new OreDictStack(CU.wireFine()), new OreDictStack("wireFine")));
smithingRecipes.add(new AnvilSmithingMold(5, new ComparableStack(ModItems.blade_titanium), new ItemStack[] {
new ItemStack(ModItems.blade_titanium),

View File

@ -73,9 +73,9 @@ public class ItemMold extends Item {
registerMold(new MoldShape( 10, L, "ingots", MaterialShapes.INGOT, 9));
registerMold(new MoldShape( 11, L, "plates", MaterialShapes.PLATE, 9));
registerMold(new MoldShape( 13, L, "plates_cast", MaterialShapes.CASTPLATE, 3));
registerMold(new MoldShape( 21, L, "wires_dense", MaterialShapes.DENSEWIRE, 9));
registerMold(new MoldBlock( 12, L, "block", MaterialShapes.BLOCK));
//registerMold(new MoldSingle( 13, L, "pipes", new ItemStack(ModItems.pipes_steel), Mats.MAT_STEEL, MaterialShapes.BLOCK.q(3)));
registerMold(new MoldMulti( 16, S, "c9", MaterialShapes.PLATE.q(1, 4),
Mats.MAT_GUNMETAL, DictFrame.fromOne(ModItems.casing, EnumCasingType.SMALL),

View File

@ -113,13 +113,13 @@ public class XFactoryFlamer {
public static void init() {
flame_diesel = new BulletConfig().setItem(EnumAmmo.FLAME_DIESEL).setCasing(new ItemStack(ModItems.plate_steel, 2), 500).setupDamageClass(DamageClass.FIRE).setLife(100).setVel(1F).setGrav(0.02D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F)
.setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_DIESEL);
.setOnImpact(LAMBDA_IGNITE_FIRE).setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_DIESEL);
flame_gas = new BulletConfig().setItem(EnumAmmo.FLAME_GAS).setCasing(new ItemStack(ModItems.plate_steel, 2), 500).setupDamageClass(DamageClass.FIRE).setLife(10).setSpread(0.05F).setVel(1F).setGrav(0.0D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F)
.setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_GAS);
.setOnImpact(LAMBDA_IGNITE_FIRE).setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_GAS);
flame_napalm = new BulletConfig().setItem(EnumAmmo.FLAME_NAPALM).setCasing(new ItemStack(ModItems.plate_steel, 2), 500).setupDamageClass(DamageClass.FIRE).setLife(200).setVel(1F).setGrav(0.02D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F)
.setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_NAPALM);
.setOnImpact(LAMBDA_IGNITE_FIRE).setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_NAPALM);
flame_balefire = new BulletConfig().setItem(EnumAmmo.FLAME_BALEFIRE).setCasing(new ItemStack(ModItems.plate_steel, 2), 500).setupDamageClass(DamageClass.FIRE).setLife(200).setVel(1F).setGrav(0.02D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F)
.setOnUpdate(LAMBDA_BALEFIRE).setOnRicochet(LAMBDA_LINGER_BALEFIRE);
.setOnImpact(LAMBDA_IGNITE_BALEFIRE).setOnUpdate(LAMBDA_BALEFIRE).setOnRicochet(LAMBDA_LINGER_BALEFIRE);
flame_nograv = flame_diesel.clone().setGrav(0);
flame_nograv_bf = flame_balefire.clone().setGrav(0).setLife(100);

View File

@ -311,32 +311,40 @@ public class ModEventHandler {
}
}
if(!event.entityLiving.worldObj.isRemote) {
if(!event.entityLiving.worldObj.isRemote && event.entityLiving.worldObj.getGameRules().getGameRuleBooleanValue("doMobLoot")) {
if(event.source instanceof EntityDamageSource && ((EntityDamageSource)event.source).getEntity() instanceof EntityPlayer
&& !(((EntityDamageSource)event.source).getEntity() instanceof FakePlayer)) {
if(event.entityLiving instanceof EntitySpider && event.entityLiving.getRNG().nextInt(500) == 0) {
Random rng = event.entityLiving.getRNG();
if(event.entityLiving instanceof EntitySpider && rng.nextInt(500) == 0) {
event.entityLiving.dropItem(ModItems.spider_milk, 1);
}
if(event.entityLiving instanceof EntityCaveSpider && event.entityLiving.getRNG().nextInt(100) == 0) {
if(event.entityLiving instanceof EntityCaveSpider && rng.nextInt(100) == 0) {
event.entityLiving.dropItem(ModItems.serum, 1);
}
if(event.entityLiving instanceof EntityAnimal && event.entityLiving.getRNG().nextInt(500) == 0) {
if(event.entityLiving instanceof EntityAnimal && rng.nextInt(500) == 0) {
event.entityLiving.dropItem(ModItems.bandaid, 1);
}
if(event.entityLiving instanceof IMob) {
if(event.entityLiving.getRNG().nextInt(1000) == 0) event.entityLiving.dropItem(ModItems.heart_piece, 1);
if(event.entityLiving.getRNG().nextInt(250) == 0) event.entityLiving.dropItem(ModItems.key_red_cracked, 1);
if(event.entityLiving.getRNG().nextInt(250) == 0) event.entityLiving.dropItem(ModItems.launch_code_piece, 1);
if(rng.nextInt(1000) == 0) event.entityLiving.dropItem(ModItems.heart_piece, 1);
if(rng.nextInt(250) == 0) event.entityLiving.dropItem(ModItems.key_red_cracked, 1);
if(rng.nextInt(250) == 0) event.entityLiving.dropItem(ModItems.launch_code_piece, 1);
}
if(event.entityLiving instanceof EntityCyberCrab && event.entityLiving.getRNG().nextInt(500) == 0) {
if(event.entityLiving instanceof EntityCyberCrab && rng.nextInt(500) == 0) {
event.entityLiving.dropItem(ModItems.wd40, 1);
}
if(event.entityLiving instanceof EntityZombie) {
if(rng.nextInt(200) == 0) event.entityLiving.dropItem(ModItems.ingot_copper, 1);
if(rng.nextInt(200) == 0) event.entityLiving.dropItem(ModItems.ingot_aluminium, 1);
if(rng.nextInt(200) == 0) event.entityLiving.dropItem(ModItems.ingot_titanium, 1);
}
}
}
}

View File

@ -40,7 +40,7 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU
public ItemStack syncStack;
public TileEntityMachinePress() {
super(4);
super(13);
}
@Override
@ -237,10 +237,7 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU
@Override
public AxisAlignedBB getRenderBoundingBox() {
if(aabb != null)
return aabb;
if(aabb != null) return aabb;
aabb = AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 3, zCoord + 1);
return aabb;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 B