NuclearCraft

NuclearCraft

31M Downloads

Machine ordered ingredientNumber crash

Lithorn opened this issue ยท 11 comments

commented

Was making Tough Alloy when this happened.

https://pastebin.com/WXHALeU7

Now when I load the world this happens.

https://pastebin.com/MsLpHHuJ

Am backed up but I want to use that Alloy Furnace.. Dangit.

Not sure if I posted this to the right Github as I was asked why I was posting it there.. I thought you would post issues in the pack github and then the Dev would seek the aid of the mod maker. Hopefully I won't be bouncing between Githubs

commented

This is a Nuclearcraft bug, crashed in a fresh install with just Nuclearcraft and JEI.
Crashlog: https://pastebin.com/bAYgNRWa

Steps to replicate:

  1. Have a powered Alloy Furnace (used Califwhatever RTGs on 5 sides)
  2. Fully upgrade the Alloy Furnace with Speed and Energy Upgrades. (upgrades are important, doesn't seem to crash without upgrades. It will crash with less but either didn't crash or I'm misremembering my tests when I only used 1 upgrade, and I don't have time to keep making new worlds to test right now.)
  3. Place Lithium DUST in the first slot. (doesn't seem to crash in the second slot)
  4. Place Ferroborn Ingot in the second slot.
  5. Crash almost always happens before the first ingot is produced.
commented

Thanks for the heads up - this was actually reported to me in our Discord server the other day, and I know how to fix it. I'll try to get a new build out as soon as possible, but right now I'm in the middle of a few mock-exam-type-things and it'll be a couple of days before I can sort it out!

commented

Real Life comes first...glad you already know the fix, and look forward to seeing it out when you have time.

commented

I should mention that, for now, you should be able to avoid crashes like this in general as long as the ingredients are positioned in the order they appear in JEI ;)

commented

I have the same problem.
But i found out that it only happens with lithium dust in the false slot.
When you take lithium ingots it dosen't crash no matter which slot you use.

commented

Yep, that's because the ingot is the first of the allowed lithium ingredients in the registered recipe. What's happening is that NC needs to know which ingredient in that list of possible inputs is actually being used, but it's getting them the wrong way round because it's incorrectly taking into account the ordering of the inputs in the machine. When the dust goes into the second slot, which is specified as the second allowed lithium-type ingredient in the recipe, it tries to get the second allowed ferroboron instead because ferroboron is the second ingredient in the tough alloy recipe, which doesn't exist and throws that out of bounds error.

commented

Hey, just wanted to report that this same issue happens with the chemical reactor. The small difference in my crash is that it's all fluid based and not item based:

java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
        at java.util.ArrayList.rangeCheck(ArrayList.java:657)
        at java.util.ArrayList.get(ArrayList.java:433)
        at nc.recipe.ingredient.FluidArrayIngredient.getMaxStackSize(FluidArrayIngredient.java:53)
        at nc.tile.processor.TileFluidProcessor.produceProducts(TileFluidProcessor.java:282)
        at nc.tile.processor.TileFluidProcessor.finishProcess(TileFluidProcessor.java:263)
        at nc.tile.processor.TileFluidProcessor.process(TileFluidProcessor.java:258)
        at nc.tile.processor.TileFluidProcessor.updateProcessor(TileFluidProcessor.java:127)
        at nc.tile.processor.TileFluidProcessor.func_73660_a(TileFluidProcessor.java:119)
        at net.minecraft.world.World.func_72939_s(World.java:1835)
        at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:613)
        at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:767)
        at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:397)
        at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526)
        at java.lang.Thread.run(Thread.java:748)
-- Block entity being ticked --
Details:
        Name: nuclearcraft:chemical_reactor // nc.tile.processor.TileProcessor.ChemicalReactor
        Block type: ID #452 (tile.nuclearcraft.chemical_reactor_idle // nc.block.tile.processor.BlockProcessor // nuclearcraft:chemical_reactor_idle)
        Block data value: 5 / 0x5 / 0b0101
        Block location: World: (-3067,64,1029), Chunk: (at 5,4,5 in -192,64; contains blocks -3072,0,1024 to -3057,255,1039), Region: (-6,2; contains chunks -192,64 to -161,95, blocks -3072,0,1024 to -2561,255,1535)
        Actual block type: ID #453 (tile.nuclearcraft.chemical_reactor_active // nc.block.tile.processor.BlockProcessor // nuclearcraft:chemical_reactor_active)
        Actual block data value: 5 / 0x5 / 0b0101
Stacktrace:
        at net.minecraft.world.World.func_72939_s(World.java:1835)
        at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:613)

Hope this helps :)

commented

Yep, exactly the same thing, but with fluids!

commented

I have another crash report for ya just for record keeping :) https://pastebin.com/k4XjrJ8G

commented

Perfect!

commented

Fixed with version 2.16f ;)