SGS hotfix

- Fixed Sequenced Gearshift crashing when removing instructions while active
This commit is contained in:
simibubi 2020-04-27 14:44:57 +02:00
parent 91ba47ba33
commit 76f81910c4

View file

@ -50,6 +50,8 @@ public class SequencedGearshiftTileEntity extends SplitShaftTileEntity {
Instruction instruction = getInstruction(currentInstruction); Instruction instruction = getInstruction(currentInstruction);
if (instruction == null) if (instruction == null)
return; return;
if (getSpeed() == 0)
run(-1);
// Update instruction time with regards to new speed // Update instruction time with regards to new speed
float initialProgress = timer / (float) currentInstructionDuration; float initialProgress = timer / (float) currentInstructionDuration;
@ -68,6 +70,8 @@ public class SequencedGearshiftTileEntity extends SplitShaftTileEntity {
world.setBlockState(pos, getBlockState().with(SequencedGearshiftBlock.STATE, 0), 3); world.setBlockState(pos, getBlockState().with(SequencedGearshiftBlock.STATE, 0), 3);
return; return;
} }
if (getSpeed() == 0)
return;
run(0); run(0);
} }
@ -122,6 +126,8 @@ public class SequencedGearshiftTileEntity extends SplitShaftTileEntity {
} }
public int getModifier() { public int getModifier() {
if (currentInstruction >= instructions.size())
return 0;
return isIdle() ? 0 : instructions.get(currentInstruction).getSpeedModifier(); return isIdle() ? 0 : instructions.get(currentInstruction).getSpeedModifier();
} }