From 23951fce167d50486ac957669ef89c9e8d855138 Mon Sep 17 00:00:00 2001 From: Jackson Abney Date: Sat, 13 May 2023 15:02:35 -0800 Subject: [PATCH] FIX --- .../li/cil/oc2/client/gui/KeyboardScreen.java | 3 --- .../oc2/common/vm/AbstractVirtualMachine.java | 4 +++- src/main/java/li/cil/oc2/common/vm/Terminal.java | 16 ++++++++++------ 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/main/java/li/cil/oc2/client/gui/KeyboardScreen.java b/src/main/java/li/cil/oc2/client/gui/KeyboardScreen.java index 59eac8f4..66c70158 100644 --- a/src/main/java/li/cil/oc2/client/gui/KeyboardScreen.java +++ b/src/main/java/li/cil/oc2/client/gui/KeyboardScreen.java @@ -19,9 +19,6 @@ import net.minecraft.network.chat.MutableComponent; import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.phys.Vec3; -import net.minecraftforge.client.event.RenderGuiOverlayEvent; -import net.minecraftforge.client.gui.overlay.VanillaGuiOverlay; -import net.minecraftforge.eventbus.api.SubscribeEvent; import org.lwjgl.glfw.GLFW; public final class KeyboardScreen extends Screen { diff --git a/src/main/java/li/cil/oc2/common/vm/AbstractVirtualMachine.java b/src/main/java/li/cil/oc2/common/vm/AbstractVirtualMachine.java index 9faca5fd..c667c1d7 100644 --- a/src/main/java/li/cil/oc2/common/vm/AbstractVirtualMachine.java +++ b/src/main/java/li/cil/oc2/common/vm/AbstractVirtualMachine.java @@ -162,7 +162,7 @@ public abstract class AbstractVirtualMachine implements VirtualMachine { return; } - setBootError(null); + setBootError(Component.literal("")); setRunState(VMRunState.LOADING_DEVICES); loadDevicesDelay = 0; } @@ -343,12 +343,14 @@ public abstract class AbstractVirtualMachine implements VirtualMachine { } if (!state.board.isRunning()) { + stopRunnerAndReset(); return; } if (!consumeEnergy(busController.getEnergyConsumption(), false)) { error(Component.translatable(Constants.COMPUTER_ERROR_NOT_ENOUGH_ENERGY)); + return; } diff --git a/src/main/java/li/cil/oc2/common/vm/Terminal.java b/src/main/java/li/cil/oc2/common/vm/Terminal.java index 805d254c..7817250e 100644 --- a/src/main/java/li/cil/oc2/common/vm/Terminal.java +++ b/src/main/java/li/cil/oc2/common/vm/Terminal.java @@ -760,12 +760,15 @@ public final class Terminal { if (shader == null) { return; } - RenderSystem.depthMask(false); RenderSystem.setShaderTexture(0, LOCATION_FONT_TEXTURE); for (final VertexBuffer line : lines) { - line.drawWithShader(stack.last().pose(), projectionMatrix, shader); + try { + line.drawWithShader(stack.last().pose(), projectionMatrix, shader); + } catch (Exception e) { + System.out.println("ERROR: " + e.getMessage()); + } } RenderSystem.depthMask(true); @@ -776,13 +779,14 @@ public final class Terminal { return; } - final BufferBuilder builder = Tesselator.getInstance().getBuilder(); + final int mask = dirty.getAndSet(0); for (int row = 0; row < lines.length; row++) { if ((mask & (1 << row)) == 0) { continue; } + BufferBuilder builder = Tesselator.getInstance().getBuilder(); final Matrix4f matrix = Matrix4f.createTranslateMatrix(0, row * CHAR_HEIGHT, 0); @@ -797,9 +801,9 @@ public final class Terminal { lines[row] = new VertexBuffer(); } - - - lines[row].upload(rb); + if (!lines[row].isInvalid() && !rb.isEmpty()) { + lines[row].upload(rb); + } } }