Make a function with inputs and an output, e.g. function f(v) { return 1; }
apply0 the function and put the output in a display panel
Crashes, and upon adding/removing a cable after reloading the world (removing and re-inserting variable cards into displays doesn't crash and doesn't update display panels - I assume that behaviour is intentional to allow people to remove the bugged cards)
Expected behaviour:
An error instead of a crash.
Versions:
Log file:
---- Minecraft Crash Report ----
// Don't do that.
Time: [REDACTED]
Description: Exception in server tick loop
java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
at org.cyclops.integrateddynamics.core.evaluate.operator.OperatorBase$SafeVariablesGetter.getValue(OperatorBase.java:276) ~[IntegratedDynamics-1.20.1-1.22.0.jar%23167!/:1.22.0] {re:classloading}
at org.cyclops.integrateddynamics.core.evaluate.OperatorBuilders.lambda$static$10(OperatorBuilders.java:204) ~[IntegratedDynamics-1.20.1-1.22.0.jar%23167!/:1.22.0] {re:classloading}
at org.cyclops.integrateddynamics.core.evaluate.operator.IterativeFunction.evaluate(IterativeFunction.java:28) ~[IntegratedDynamics-1.20.1-1.22.0.jar%23167!/:1.22.0] {re:classloading}
at org.cyclops.integrateddynamics.core.evaluate.operator.OperatorBase.evaluate(OperatorBase.java:214) ~[IntegratedDynamics-1.20.1-1.22.0.jar%23167!/:1.22.0] {re:classloading}
at org.cyclops.integrateddynamics.core.evaluate.expression.LazyExpression.evaluate(LazyExpression.java:43) ~[IntegratedDynamics-1.20.1-1.22.0.jar%23167!/:1.22.0] {re:classloading}
at org.cyclops.integrateddynamics.core.evaluate.expression.LazyExpression.getValue(LazyExpression.java:65) ~[IntegratedDynamics-1.20.1-1.22.0.jar%23167!/:1.22.0] {re:classloading}
at org.cyclops.integrateddynamics.core.part.panel.PartTypePanelVariableDriven.update(PartTypePanelVariableDriven.java:129) ~[IntegratedDynamics-1.20.1-1.22.0.jar%23167!/:1.22.0] {re:classloading}
at org.cyclops.integrateddynamics.core.part.panel.PartTypePanelVariableDriven.update(PartTypePanelVariableDriven.java:68) ~[IntegratedDynamics-1.20.1-1.22.0.jar%23167!/:1.22.0] {re:classloading}
at org.cyclops.integrateddynamics.core.network.PartNetworkElement.update(PartNetworkElement.java:168) ~[IntegratedDynamics-1.20.1-1.22.0.jar%23167!/:1.22.0] {re:classloading}
at org.cyclops.integrateddynamics.core.network.Network.update(Network.java:409) ~[IntegratedDynamics-1.20.1-1.22.0.jar%23167!/:1.22.0] {re:classloading}
at org.cyclops.integrateddynamics.core.TickHandler.onTick(TickHandler.java:74) ~[IntegratedDynamics-1.20.1-1.22.0.jar%23167!/:1.22.0] {re:classloading}
at org.cyclops.integrateddynamics.core.__TickHandler_onTick_TickEvent.invoke(.dynamic) ~[IntegratedDynamics-1.20.1-1.22.0.jar%23167!/:1.22.0] {re:classloading,pl:eventbus:B}
at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:73) ~[eventbus-6.0.5.jar%2387!/:?] {}
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:315) ~[eventbus-6.0.5.jar%2387!/:?] {}
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:296) ~[eventbus-6.0.5.jar%2387!/:?] {}
at net.minecraftforge.event.ForgeEventFactory.onPostServerTick(ForgeEventFactory.java:950) ~[forge-1.20.1-47.2.0-universal.jar%23177!/:?] {re:classloading}
at net.minecraft.server.MinecraftServer.m_5705_(MinecraftServer.java:835) ~[client-1.20.1-20230612.114412-srg.jar%23172!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.client.server.IntegratedServer.m_5705_(IntegratedServer.java:89) ~[client-1.20.1-20230612.114412-srg.jar%23172!/:?] {re:classloading,pl:runtimedistcleaner:A}
at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:661) ~[client-1.20.1-20230612.114412-srg.jar%23172!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251) ~[client-1.20.1-20230612.114412-srg.jar%23172!/:?] {re:classloading,pl:accesstransformer:B}
at java.lang.Thread.run(Thread.java:833) ~[?:?] {}
Issue type:
Short description:
apply0
on a function with inputs causes a crash.Steps to reproduce the problem:
function f(v) { return 1; }
apply0
the function and put the output in a display panelExpected behaviour:
An error instead of a crash.
Versions:
Log file: