diff --git a/src/main/java/be/uantwerpen/minelabs/gui/lewis_gui/LewisBlockScreenHandler.java b/src/main/java/be/uantwerpen/minelabs/gui/lewis_gui/LewisBlockScreenHandler.java index a9a049cfb..9f430fd5a 100644 --- a/src/main/java/be/uantwerpen/minelabs/gui/lewis_gui/LewisBlockScreenHandler.java +++ b/src/main/java/be/uantwerpen/minelabs/gui/lewis_gui/LewisBlockScreenHandler.java @@ -284,9 +284,11 @@ public int getStatus() { return 2; } else { if (craftingGrid.isEmpty() - || craftingGrid.getPartialMolecule().getStructure().getTotalOpenConnections() != 0) { + || craftingGrid.getPartialMolecule().getStructure().getTotalOpenConnections() != 0 ) { // Empty grid or still has possible conections return 0; + } if (!craftingGrid.getPartialMolecule().getStructure().isConnectedManagerFunctieOmdatJoeyZaagtZoalsVaak()){ + return 3; } else { return 1; } diff --git a/src/main/java/be/uantwerpen/minelabs/gui/lewis_gui/LewisScreen.java b/src/main/java/be/uantwerpen/minelabs/gui/lewis_gui/LewisScreen.java index cc18dfb12..bb90624c4 100644 --- a/src/main/java/be/uantwerpen/minelabs/gui/lewis_gui/LewisScreen.java +++ b/src/main/java/be/uantwerpen/minelabs/gui/lewis_gui/LewisScreen.java @@ -176,6 +176,8 @@ public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { Text.translatable("text.minelabs.not_implemented")), mouseX, mouseY); case 2 -> renderTooltip(matrices, Text.translatable("text.minelabs.valid"), mouseX, mouseY); + case 3 -> renderTooltip(matrices, + Text.translatable("text.minelabs.multiple_molecules"), mouseX, mouseY); default -> renderTooltip(matrices, Text.translatable("text.minelabs.invalid"), mouseX, mouseY); } @@ -194,6 +196,7 @@ private void renderRecipeCheck(MatrixStack matrices, int x, int y) { switch (handler.getStatus()) { case 1 -> drawTexture(matrices, x + 105, y + 17, 176, 38, 16, 16); // NOT IMPLEMENTED case 2 -> drawTexture(matrices, x + 105, y + 17, 176, 55, 16, 16); // VALID + case 3 -> drawTexture(matrices, x + 105, y + 17, 176, 38, 16, 16); default -> drawTexture(matrices, x + 105, y + 17, 176, 21, 16, 16); // INVALID } } diff --git a/src/main/java/be/uantwerpen/minelabs/util/Graph.java b/src/main/java/be/uantwerpen/minelabs/util/Graph.java index 3b4da7edd..f0a4bb998 100644 --- a/src/main/java/be/uantwerpen/minelabs/util/Graph.java +++ b/src/main/java/be/uantwerpen/minelabs/util/Graph.java @@ -162,4 +162,27 @@ public String toCanonical() { public String toString() { return toCanonical(); } + + public boolean isConnectedManagerFunctieOmdatJoeyZaagtZoalsVaak() { + // Dit is de beste functie die sowiezo nooit gaat crashen <3 LIEEEESSSSSS + // we've been bamboozled!!!!!!!!!!!!! + // NEVERRRRRRRRRRRRRRR! I AM ALL POWERFUL! I AM GOD + + List vertices = new ArrayList<>(); + vertices.add(this.vertices.get(0)); + boolean hasAdded = true; + while(hasAdded) { + hasAdded = false; + List copy = new ArrayList<>(vertices); + for(Vertex v: copy) { + for(Vertex w: v.getNeighbours()) { + if(!vertices.contains(w)) { + vertices.add(w); + hasAdded = true; + } + } + } + } + return (vertices.size() == this.vertices.size()); + } } diff --git a/src/main/resources/assets/minelabs/lang/en_us.json b/src/main/resources/assets/minelabs/lang/en_us.json index eb12471dc..d9e732c72 100644 --- a/src/main/resources/assets/minelabs/lang/en_us.json +++ b/src/main/resources/assets/minelabs/lang/en_us.json @@ -7,6 +7,7 @@ "text.minelabs.valid": "Correct Molecule", "text.minelabs.invalid": "Incomplete Molecule", "text.minelabs.not_implemented": "Molecule is not implemented", + "text.minelabs.multiple_molecules": "Too many molecules", "block.minelabs.salt_ore": "Salt Ore", "block.minelabs.deepslate_salt_ore": "Deepslate Salt Ore", diff --git a/src/main/resources/assets/minelabs/lang/nl_be.json b/src/main/resources/assets/minelabs/lang/nl_be.json index 8296e130e..9b5c4a3ed 100644 --- a/src/main/resources/assets/minelabs/lang/nl_be.json +++ b/src/main/resources/assets/minelabs/lang/nl_be.json @@ -7,6 +7,7 @@ "text.minelabs.valid": "Correcte Molecule", "text.minelabs.invalid": "Onvolledige Molecule", "text.minelabs.not_implemented": "Molecule zit niet in het spel", + "text.minelabs.multiple_molecules": "Te veel moleculen", "block.minelabs.salt_ore": "Zouterts", "block.minelabs.deepslate_salt_ore": "Deepslate Zouterts", @@ -166,7 +167,7 @@ "item.minelabs.erlenmeyer_hf.effect.empty": "Waterstoffluoride (HF)", "item.minelabs.erlenmeyer_sih4.effect.empty": "Silaan (SiH\u2084)", "item.minelabs.erlenmeyer_ph3.effect.empty": "Fosfine (PH\u2083)", - "item.minelabs.erlenmeyer_h2s.effect.empty": "Waterstofsulfide (H\u2082S)", + "item.minelabs.erlenmeyer_h2s.effect.empty": "Waterstofsulfide (H\u2082§S)", "item.minelabs.erlenmeyer_cf4.effect.empty": "Koolstoftetrafluoride (CF\u2084)", "item.minelabs.erlenmeyer_bf3.effect.empty": "Boortrifluoride (BF\u2083)", "item.minelabs.erlenmeyer_bcl3.effect.empty": "Boortrichloride (BCl\u2083)", diff --git a/src/main/resources/assets/minelabs/lang/nl_nl.json b/src/main/resources/assets/minelabs/lang/nl_nl.json index 8296e130e..9b5c4a3ed 100644 --- a/src/main/resources/assets/minelabs/lang/nl_nl.json +++ b/src/main/resources/assets/minelabs/lang/nl_nl.json @@ -7,6 +7,7 @@ "text.minelabs.valid": "Correcte Molecule", "text.minelabs.invalid": "Onvolledige Molecule", "text.minelabs.not_implemented": "Molecule zit niet in het spel", + "text.minelabs.multiple_molecules": "Te veel moleculen", "block.minelabs.salt_ore": "Zouterts", "block.minelabs.deepslate_salt_ore": "Deepslate Zouterts", @@ -166,7 +167,7 @@ "item.minelabs.erlenmeyer_hf.effect.empty": "Waterstoffluoride (HF)", "item.minelabs.erlenmeyer_sih4.effect.empty": "Silaan (SiH\u2084)", "item.minelabs.erlenmeyer_ph3.effect.empty": "Fosfine (PH\u2083)", - "item.minelabs.erlenmeyer_h2s.effect.empty": "Waterstofsulfide (H\u2082S)", + "item.minelabs.erlenmeyer_h2s.effect.empty": "Waterstofsulfide (H\u2082§S)", "item.minelabs.erlenmeyer_cf4.effect.empty": "Koolstoftetrafluoride (CF\u2084)", "item.minelabs.erlenmeyer_bf3.effect.empty": "Boortrifluoride (BF\u2083)", "item.minelabs.erlenmeyer_bcl3.effect.empty": "Boortrichloride (BCl\u2083)",