diff options
| author | syeyoung <42869671+cyoung06@users.noreply.github.com> | 2020-12-06 23:57:47 +0900 |
|---|---|---|
| committer | syeyoung <42869671+cyoung06@users.noreply.github.com> | 2020-12-06 23:57:47 +0900 |
| commit | 8345651586a5c68cfb36f3f3eb1a2a97ceb3a4b7 (patch) | |
| tree | 5803acc6e235106489b18b349cfee7fea0cc36c6 /src/main/java/kr/syeyoung/dungeonsguide/roomprocessor | |
| parent | db588ef9127160dffd3b3cd8c4498bd429a7c746 (diff) | |
| download | Skyblock-Dungeons-Guide-8345651586a5c68cfb36f3f3eb1a2a97ceb3a4b7.tar.gz Skyblock-Dungeons-Guide-8345651586a5c68cfb36f3f3eb1a2a97ceb3a4b7.tar.bz2 Skyblock-Dungeons-Guide-8345651586a5c68cfb36f3f3eb1a2a97ceb3a4b7.zip | |
trivia and better box solver
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/roomprocessor')
4 files changed, 29 insertions, 13 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/RoomProcessorCreeperSolver.java b/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/RoomProcessorCreeperSolver.java index 93f5e4e8..91b40112 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/RoomProcessorCreeperSolver.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/RoomProcessorCreeperSolver.java @@ -95,24 +95,21 @@ public class RoomProcessorCreeperSolver extends GeneralRoomProcessor { } - + private static final Color[] colors = new Color[] {Color.red, Color.orange, Color.green, Color.cyan, Color.blue, Color.pink, Color.yellow, Color.darkGray, Color.lightGray}; @Override public void drawWorld(float partialTicks) { super.drawWorld(partialTicks); World w = getDungeonRoom().getContext().getWorld(); - int index = 0; - for (BlockPos[] poset:poses) { - index ++; + for (int i = 0; i < poses.size(); i++) { + BlockPos[] poset = poses.get(i); + Color color = colors[i % colors.length]; + boolean oneIsConnected = false; if (w.getChunkFromBlockCoords(poset[0]).getBlock(poset[0]) != Blocks.sea_lantern && w.getChunkFromBlockCoords(poset[1]).getBlock(poset[1]) != Blocks.sea_lantern) { - continue; + oneIsConnected = true; } RenderUtils.drawLine(new Vec3(poset[0].getX() +0.5, poset[0].getY() +0.5, poset[0].getZ()+0.5), - new Vec3(poset[1].getX() +0.5, poset[1].getY() +0.5, poset[1].getZ()+0.5), new Color(index * 10,255,255,255), partialTicks, true); -//Re -// RenderUtils.highlightBlock(poset[0], new Color(0,255,255,50), partialTicks); -// RenderUtils.highlightBlock(poset[1], new Color(255,0,0,50), partialTicks); - // RenderUtils.drawLines(Arrays.asList(new BlockPos[] {poset[0], poset[1], poset[0]}), new Color(0,255,255,255), partialTicks); + new Vec3(poset[1].getX() +0.5, poset[1].getY() +0.5, poset[1].getZ()+0.5), oneIsConnected ? new Color(0,0,0,50) : color, partialTicks, true); } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/RoomProcessorTrivia.java b/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/RoomProcessorTrivia.java index 7e9d450d..05d236e1 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/RoomProcessorTrivia.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/RoomProcessorTrivia.java @@ -3,6 +3,7 @@ package kr.syeyoung.dungeonsguide.roomprocessor; import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint; import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom; import kr.syeyoung.dungeonsguide.utils.RenderUtils; +import kr.syeyoung.dungeonsguide.utils.SkyblockUtils; import kr.syeyoung.dungeonsguide.utils.TextUtils; import net.minecraft.client.Minecraft; import net.minecraft.util.ChatComponentText; @@ -10,6 +11,7 @@ import net.minecraft.util.IChatComponent; import org.apache.commons.lang3.math.NumberUtils; import java.awt.*; +import java.io.IOException; import java.util.*; import java.util.List; import java.util.regex.Matcher; @@ -104,6 +106,7 @@ public class RoomProcessorTrivia extends GeneralRoomProcessor { } String correctAnswer; + private String getAnswer(String answerString) { Matcher matcher = anwerPattern.matcher(answerString.trim()); if (!matcher.matches()) return ""; @@ -112,12 +115,26 @@ public class RoomProcessorTrivia extends GeneralRoomProcessor { private String match(String question, String a, String b, String c) { String semi_answers = (String) getDungeonRoom().getDungeonRoomInfo().getProperties().get(question.toLowerCase().trim()); if (semi_answers == null) return null; + semi_answers = takeCareOfPlaceHolders(semi_answers); String[] answers = semi_answers.split(","); if (match(answers, a)) return "A"; if (match(answers, b)) return "B"; if (match(answers, c)) return "C"; return semi_answers; } + + private String takeCareOfPlaceHolders(String input) { + String str = input; + if (str.contains("$year")) { + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("§eDungeons Guide §fuses §eInventiveTalent§7(https://github.com/InventivetalentDev)§e's Skyblock Api §fto fetch current skyblock year!")); + try { + str = str.replace("$year", SkyblockUtils.getSkyblockYear()+""); + } catch (IOException e) { + str = str.replace("$year", "Couldn't determine current skyblock year :: "+e.getMessage()); + } + } + return str; + } private boolean match(String[] match, String match2) { for (String s : match) { if (NumberUtils.isNumber(s)) { diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/boxpuzzle/BoxPuzzleSolvingThread.java b/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/boxpuzzle/BoxPuzzleSolvingThread.java index f4412419..8c63694b 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/boxpuzzle/BoxPuzzleSolvingThread.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/boxpuzzle/BoxPuzzleSolvingThread.java @@ -23,6 +23,7 @@ public class BoxPuzzleSolvingThread extends Thread { this.playerX = playerX; this.playerY = playerY; this.callback = onDone; + System.out.println("new solving thread"); } Route solution = null; @@ -33,8 +34,8 @@ public class BoxPuzzleSolvingThread extends Thread { public void run() { solved = false; solution = solve(data,playerX,playerY, 20); - callback.run(); solved = true; + callback.run(); } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/boxpuzzle/RoomProcessorBoxSolver.java b/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/boxpuzzle/RoomProcessorBoxSolver.java index 3b88de2d..e907671a 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/boxpuzzle/RoomProcessorBoxSolver.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/boxpuzzle/RoomProcessorBoxSolver.java @@ -25,7 +25,7 @@ import java.util.List; public class RoomProcessorBoxSolver extends GeneralRoomProcessor { - private BlockPos[][] poses = new BlockPos[6][7]; + private BlockPos[][] poses = new BlockPos[7][7]; private boolean bugged= true; private BoxPuzzleSolvingThread puzzleSolvingThread; @@ -92,7 +92,6 @@ public class RoomProcessorBoxSolver extends GeneralRoomProcessor { puzzleSolvingThread.start(); } if (calcReq) { - OffsetPointSet ops = (OffsetPointSet) getDungeonRoom().getDungeonRoomInfo().getProperties().get("board"); if (ops != null) { poses = new BlockPos[7][7]; @@ -105,6 +104,8 @@ public class RoomProcessorBoxSolver extends GeneralRoomProcessor { } calcDone = false; + if (puzzleSolvingThread != null) + puzzleSolvingThread.stop(); puzzleSolvingThread = new BoxPuzzleSolvingThread(currboard, 0, 6, new Runnable() { @Override public void run() { |
