diff options
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/RoomMatchDisplayPane.java')
-rwxr-xr-x | src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/RoomMatchDisplayPane.java | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/RoomMatchDisplayPane.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/RoomMatchDisplayPane.java deleted file mode 100755 index 3379098b..00000000 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/RoomMatchDisplayPane.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Dungeons Guide - The most intelligent Hypixel Skyblock Dungeons Mod - * Copyright (C) 2021 cyoung06 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <https://www.gnu.org/licenses/>. - */ - -package kr.syeyoung.dungeonsguide.roomedit.panes; - -import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom; -import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoomInfoRegistry; -import kr.syeyoung.dungeonsguide.gui.MPanel; -import kr.syeyoung.dungeonsguide.gui.elements.MTooltip; -import kr.syeyoung.dungeonsguide.gui.elements.MTooltipText; -import kr.syeyoung.dungeonsguide.utils.ArrayUtils; -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -import java.awt.*; -import java.util.Arrays; -import java.util.UUID; - -public class RoomMatchDisplayPane extends MPanel { - - private int offsetX = 0; - private int offsetY = 0; - - private final DungeonRoom dungeonRoom; - - private final int[][] currentBlocks; - private int[][] targetBlocks; - public RoomMatchDisplayPane(DungeonRoom dungeonRoom, UUID uid, int rotation) { - this.dungeonRoom = dungeonRoom; - - currentBlocks = dungeonRoom.getRoomMatcher().createNew().getBlocks(); - targetBlocks = DungeonRoomInfoRegistry.getByUUID(uid).getBlocks(); - for (int i = 0; i < rotation; i++) - targetBlocks = ArrayUtils.rotateCounterClockwise(targetBlocks); - } - - MTooltip mTooltip; - int lastTooltipX = -1, lastTooltipZ = -1; - - @Override - public void render(int absMousex, int absMousey, int relMousex0, int relMousey0, float partialTicks, Rectangle clip) { - ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft()); - - FontRenderer fr = Minecraft.getMinecraft().fontRendererObj; - - int height = Math.max(currentBlocks.length, targetBlocks.length); - int width = Math.max(currentBlocks[0].length, targetBlocks[0].length); - - // draw Axis; - Gui.drawRect(0,0,10,10,0x77777777); - clip(clip.x + 10, clip.y, clip.width - 10, 10); - Gui.drawRect(0,0,getBounds().width, getBounds().height, 0x77777777); - for (int x = 0; x < width; x++) { - fr.drawString(x+"", x * 16 +10 + offsetX, 0, 0xFFFFFFFF); - } - clip(clip.x, clip.y +10, 10, clip.height-10); - Gui.drawRect(0,0,getBounds().width, getBounds().height, 0x77777777); - for (int z = 0; z < height; z++) { - fr.drawString(z+"", 2, z * 16 + 10 + offsetY, 0xFFFFFFFF); - } - - int hoverX = (relMousex0 - offsetX - 10) / 16; - int hoverY = (relMousey0 - offsetY - 10) / 16; - // draw Content - clip(clip.x + 10, clip.y +10, clip.width - 10, clip.height - 10); - boolean tooltiped=false; - for (int z = 0; z < height; z++) { - for (int x = 0; x < width; x++) { - int data1; - try { data1 = currentBlocks[z][x]; } catch (Exception e) { - data1 = -2; - } - int data2; - try { data2 = targetBlocks[z][x]; } catch (Exception e) { - data2 = -2; - } - - if (z == hoverY && x == hoverX) { - Gui.drawRect(x *16 +10+offsetX, z *16 +10 + offsetY, x *16 +26 +offsetX, z *16 +26 + offsetY, 0xAA505050); - } - - if (data1 == data2) drawItemStack(new ItemStack(Item.getItemFromBlock(Block.getBlockById(data1)), 1), x * 16 +10 + offsetX, z *16 +10 + offsetY); - else if (data2 == -1 || data1 == -1) { - drawItemStack(new ItemStack(Item.getItemFromBlock(Block.getBlockById(data1 == -1 ? data2 : data1)), 1), x * 16 +10 + offsetX, z *16 +10 + offsetY); - fr.drawString("S", x *16 +10 + offsetX, z *16 +10 + offsetY,0xFFFFFF00); - } else { - fr.drawString("N", x *16 +10 + offsetX, z *16 +10 + offsetY,0xFFFF0000); - } - if (z == hoverY && x == hoverX) { - tooltiped = true; - if (lastTooltipX != x || lastTooltipZ != z){ - if (mTooltip != null) mTooltip.close(); - mTooltip = new MTooltipText(Arrays.asList("Expected "+data2 +" But found "+data1)); - mTooltip.open(this); - } - } - } - } - if (!tooltiped && mTooltip != null) { - mTooltip.close(); - mTooltip = null; - } - - } - private void drawItemStack(ItemStack stack, int x, int y) - { - Minecraft.getMinecraft().getRenderItem().renderItemAndEffectIntoGUI(stack, x, y); - } - - @Override - public void resize(int parentWidth, int parentHeight) { - this.setBounds(new Rectangle(5,5,parentWidth-10,parentHeight-10)); - } - - private int lastX; - private int lastY; - @Override - public void mouseClicked(int absMouseX, int absMouseY, int relMouseX, int relMouseY, int mouseButton) { - lastX = absMouseX; - lastY = absMouseY; - } - - @Override - public void mouseClickMove(int absMouseX, int absMouseY, int relMouseX, int relMouseY, int clickedMouseButton, long timeSinceLastClick) { - int dX = absMouseX - lastX; - int dY = absMouseY - lastY; - offsetX += dX; - offsetY += dY; - lastX = absMouseX; - lastY = absMouseY; - } -} |