diff options
| author | Soopyboo32 <49228220+Soopyboo32@users.noreply.github.com> | 2022-09-17 19:39:05 +0800 |
|---|---|---|
| committer | Soopyboo32 <49228220+Soopyboo32@users.noreply.github.com> | 2022-09-17 19:39:05 +0800 |
| commit | 431e4fc9d1657a50ebc34b8ac24f9bfaea06417f (patch) | |
| tree | 5987bb14f38d2999c682970429f34b41eb3e5826 /features/dungeonMap | |
| parent | e73f2efdf0f50aa775c540317394d46428e9704f (diff) | |
| download | SoopyV2-431e4fc9d1657a50ebc34b8ac24f9bfaea06417f.tar.gz SoopyV2-431e4fc9d1657a50ebc34b8ac24f9bfaea06417f.tar.bz2 SoopyV2-431e4fc9d1657a50ebc34b8ac24f9bfaea06417f.zip | |
Initial move to babel + change fetch to use async/await
Diffstat (limited to 'features/dungeonMap')
| -rw-r--r-- | features/dungeonMap/dungeonBossImages/f1.png | bin | 4681 -> 0 bytes | |||
| -rw-r--r-- | features/dungeonMap/index.js | 1186 | ||||
| -rw-r--r-- | features/dungeonMap/map.png | bin | 5648 -> 0 bytes | |||
| -rw-r--r-- | features/dungeonMap/metadata.json | 8 |
4 files changed, 0 insertions, 1194 deletions
diff --git a/features/dungeonMap/dungeonBossImages/f1.png b/features/dungeonMap/dungeonBossImages/f1.png Binary files differdeleted file mode 100644 index 5bc2d08..0000000 --- a/features/dungeonMap/dungeonBossImages/f1.png +++ /dev/null diff --git a/features/dungeonMap/index.js b/features/dungeonMap/index.js deleted file mode 100644 index 6fb0511..0000000 --- a/features/dungeonMap/index.js +++ /dev/null @@ -1,1186 +0,0 @@ -/// <reference types="../../../CTAutocomplete" /> -/// <reference lib="es2015" /> - -const Color = Java.type("java.awt.Color") - -import Feature from "../../featureClass/class"; -import { f, m } from "../../../mappings/mappings"; -import renderLibs from "../../../guimanager/renderLibs"; -import ToggleSetting from "../settings/settingThings/toggle"; -import { drawBoxAtBlock } from "../../utils/renderUtils"; -import { SoopyGui, SoopyRenderEvent } from "../../../guimanager"; -import SoopyGuiElement from "../../../guimanager/GuiElement/SoopyGuiElement"; -import SoopyMouseClickEvent from "../../../guimanager/EventListener/SoopyMouseClickEvent"; -import ButtonWithArrow from "../../../guimanager/GuiElement/ButtonWithArrow"; -import ImageLocationSetting from "../settings/settingThings/imageLocation"; -import socketConnection from "../../socketConnection"; -import SoopyKeyPressEvent from "../../../guimanager/EventListener/SoopyKeyPressEvent"; -import SettingBase from "../settings/settingThings/settingBase"; -import { Box } from "../../utils/renderJavaUtils"; -const BufferedImage = Java.type("java.awt.image.BufferedImage") -const AlphaComposite = Java.type("java.awt.AlphaComposite") - -class DungeonMap extends Feature { - constructor() { - super() - } - - isInDungeon() { - if (!this.FeatureManager || !this.FeatureManager.features["dataLoader"]) return false - return this.FeatureManager.features["dataLoader"].class.isInDungeon - } - - onEnable() { - this.initVariables() - - this.mapInfo = new SettingBase("NOTE: The more players in the party with this", "category enabled the more accurate the map will be.", undefined, "map_info", this) - this.renderMap = new ToggleSetting("Render Map", "Toggles Rendering the map on the hud", false, "dmap_render", this) - this.mapIcons = new ToggleSetting("Icons for puzzles on map", "Toggles Rendering the puzzle icons on map", true, "dmap_icons", this).requires(this.renderMap) - this.mapLocation = new ImageLocationSetting("Map Location", "Sets the location of the map on the hud", "dmap_location", this, [10, 10, 1], new Image(javax.imageio.ImageIO.read(new java.io.File("./config/ChatTriggers/modules/SoopyV2/features/dungeonMap/map.png"))), 100, 100).requires(this.renderMap) - this.mapBackground = new ToggleSetting("Map Background And Border", "Puts a grey background behind the map + Black border", true, "dmap_background", this) - this.showMapInBoss = new ToggleSetting("Keep showing the map in the dungeon boss room", "This will center the map when in boss to still be usefull", true, "dmap_enable_boss", this) - this.borderedHeads = new ToggleSetting("Add a black border around heads on map", "", false, "dmap_border_head", this) - this.roomsecrets = new ToggleSetting("Shows secretscompleted/total secrets in room", "(works best when all of party is using soopy map)", false, "roomsecrets", this) - this.brBox = new ToggleSetting("Box around doors in br", "In map category because it uses map to find location (no esp)", true, "dmap_door", this) - this.spiritLeapOverlay = new ToggleSetting("Spirit leap overlay", "Cool overlay for the spirit leap menu", true, "spirit_leap_overlay", this) - // this.spiritLeapOverlay = new ToggleSetting("Spirit leap overlay", "Cool overlay for the spirit leap menu", true, "spirit_leap_overlay", this).requires(this.spiritLeapOverlay) - - this.MAP_QUALITY_SCALE = 1 - this.IMAGE_SIZE = 128 * this.MAP_QUALITY_SCALE - - this.defaultPlayerImage = renderLibs.getImage("https://crafatar.com/avatars/dc8c39647b294e03ae9ed13ebd65dd29?size=8", true) - this.mapDataPlayers = {} - this.offset = [] - this.people = [] - this.mapScale = 1 - this.puzzles = {} - this.puzzlesTab = [] - this.roomWidth = 1 - this.nameToUUID = {} - this.deadPlayers = new Set() - this.newPuzzlesTab = [] - this.mortLocationOnMap = undefined - this.brBoxLoc = undefined - this.keys = 0 - - this.roomDataStuff = new Map() - this.roomDataStuffRender = new Map() - // this.invMapImage = new BufferedImage(128, 128, BufferedImage.TYPE_INT_ARGB) - // this.renderImage = new BufferedImage(this.IMAGE_SIZE, this.IMAGE_SIZE, BufferedImage.TYPE_INT_ARGB) - this.mapData = undefined - this.idToPlayer = {} - - this.barrier_block_item = new Item("minecraft:barrier") - this.puzzleItems = { - "Water Board": new Item("minecraft:water_bucket"), - "Higher Or Lower": new Item("minecraft:blaze_powder"), - "Quiz": new Item("minecraft:book"), - "Three Weirdos": new Item("minecraft:chest"), - "Tic Tac Toe": new Item("minecraft:shears"), - "Teleport Maze": new Item("minecraft:end_portal_frame"), - "Ice Fill": new Item("minecraft:ice"), - "Creeper Beams": new Item("minecraft:sea_lantern"), - "Bomb Defuse": new Item("minecraft:tnt"), - "Boulder": new Item("minecraft:planks"), - "Ice Path": new Item("minecraft:mob_spawner") - } - - this.dungeonBossImages = { - // "F1": [ - // { - // image: new Image(javax.imageio.ImageIO.read(new java.io.File("./config/ChatTriggers/modules/SoopyV2/features/dungeonMap/dungeonBossImages/f1.png"))), - // bounds: [[-65, 70, -3], [-19, 90, 45]], - // widthInWorld: 46, - // heightInWorld: 48, - // topLeftLocation: [-64, -2] - // } - // ] - } - - this.currDungeonBossImage = undefined - this.dungeonBrBoxElm = new Box([0, 0, 0], [3, 4, 3], 1, 0, 0, 1, 3, false) - - this.bloodOpened = false - this.registerChat("&r&cThe &r&c&lBLOOD DOOR&r&c has been opened!&r", () => { - this.bloodOpened = true - this.keys-- - this.dungeonBrBoxElm.setRGBA(1, 0, 0, 1) - this.dungeonBrBoxElm.stopRender() - }) - - this.registerChat("${*} &r&ehas obtained &r&a&r&${*} Key&r&e!&r", () => { - this.keys++ - this.dungeonBrBoxElm.setRGBA(0, 1, 0, 1) - }) - this.registerChat("&r&eA &r&a&r&${*} Key&r&e was picked up!&r", () => { - this.keys++ - this.dungeonBrBoxElm.setRGBA(0, 1, 0, 1) - }) - - this.lastDoorOpener = undefined - this.registerChat("&r&a${player}&r&a opened a &r&8&lWITHER &r&adoor!&r", (player) => { - this.lastDoorOpener = ChatLib.removeFormatting(player) - this.keys-- - this.dungeonBrBoxElm.setRGBA(1, 0, 0, 1) - }) - - this.spiritLeapOverlayGui = new SpiritLeapOverlay(this) - - // this.registerEvent("tick", this.tick) - this.registerStep(true, 3, this.step) - this.registerStep(true, 10, () => { - this.spiritLeapOverlayGui.tick() - }).registeredWhen(() => this.isInDungeon()) - this.registerStep(false, 5, this.step5s).registeredWhen(() => this.isInDungeon()) - this.registerEvent("renderOverlay", this.renderOverlay).registeredWhen(() => this.isInDungeon()) - this.registerEvent("worldLoad", this.worldLoad) - this.renderingPlayerList = false - this.registerEvent("renderPlayerList", () => { - this.renderingPlayerList = true - }) - this.registerEvent("renderDebug", () => { - this.renderingPlayerList = true - }) - - this.registerEvent("guiOpened", (event) => { - if (this.spiritLeapOverlay.getValue()) this.spiritLeapOverlayGui.guiOpened.call(this.spiritLeapOverlayGui, event) - }) - - this.boringMap = false - this.registerChat("&r&r&r ${*}&r&cThe Catacombs &r&8- &r&eFloor ${*}&r", () => { - this.boringMap = true - }) - this.registerChat("&r&r&r ${*}&r&cMaster Mode Catacombs &r&8- &r&eFloor ${*}&r", () => { - this.boringMap = true - }) - this.registerChat("&r&aDungeon starts in 1 second.&r", () => { - this.boringMap = false - }) - this.registerChat("&r&aDungeon starts in 1 second. Get ready!&r", () => { - this.boringMap = false - }) - - this.running = true - this.registerEvent("gameUnload", () => { - this.running = false - }) - this.registerChat("&r&c ☠ ${info} and became a ghost&r&7.&r", (info, e) => { - let player = ChatLib.removeFormatting(info.split(" ")[0]) - - this.deadPlayers.add(this.nameToUUID[player.toLowerCase()]) - }); - this.registerChat("&r&a ❣ &r${info} was revived${*}!&r", (info, e) => { - let player = ChatLib.removeFormatting(info.split(" ")[0]) - - this.deadPlayers.delete(this.nameToUUID[player.toLowerCase()]) - }); - - this.registerStep(true, 3, () => { - if (!this.isInDungeon()) return - - this.updateMapImage() - }).registeredWhen(() => this.isInDungeon()) - - this.registerChat("&r&r&r &r&cThe Catacombs &r&8- &r&eFloor ${*} Stats&r", () => { - this.puzzles = {} - }) - - let lastXY = "" - let registerActionBar = this.registerCustom("actionbar", (curr, max) => { - let loc = this.getRoomXYWorld() - - if (lastXY !== loc.join(",")) { - lastXY = loc.join(",") - return - } - // if (curr === max) curr = "&a" + curr - if (!this.roomDataStuff.get(loc.join(",")) || this.roomDataStuff.get(loc.join(","))[0] !== curr + " " + max) { - this.roomDataStuff.set(loc.join(","), [curr + " " + max, this.getCurrentRoomId()]) - - socketConnection.sendDungeonData2(this.people, [loc.join(","), curr + " " + max, this.getCurrentRoomId()]) - } - }) - registerActionBar.trigger.setCriteria('&7${curr}/${max} Secrets').setParameter('contains'); - } - - getCurrentRoomId() { - let id = Scoreboard.getLineByIndex(Scoreboard.getLines().length - 1).getName().trim().split(" ").pop() - - return id - } - - updateDungeonMapData2(data) { - // console.log("Recieved: " + JSON.stringify(data, undefined, 2)) - this.roomDataStuff.set(data[0], [data[1], data[2]]) - } - worldLoad() { - this.dungeonBrBoxElm.stopRender() - this.mortLocation = undefined - this.mapDataPlayers = {} - this.offset = [] - this.mapScale = 1 - this.puzzles = {} - this.puzzlesTab = [] - this.brBoxLoc = undefined - this.mortLocationOnMap = undefined - this.bloodOpened = false - this.keys = 0 - this.idToPlayer = {} - this.roomDataStuff.clear() - } - - renderOverlay() { - if (!this.renderingPlayerList && this.isInDungeon() && this.renderMap.getValue() && !this.spiritLeapOverlayGui.soopyGui.ctGui.isOpen()) { - this.drawMap(this.mapLocation.getValue()[0], this.mapLocation.getValue()[1], 100 * this.mapLocation.getValue()[2], 0.5 * this.mapLocation.getValue()[2]) - } - this.renderingPlayerList = false - } - - drawMap(x, y, size, scale) { - if (this.mapData) { - if (this.FeatureManager.features["dataLoader"].class.stats.Time === "Soon!" && Player.getInventory().getStackInSlot(8).getID() !== 358) return - if (this.boringMap) { - if (this.mapBackground.getValue()) Renderer.drawRect(Renderer.color(0, 0, 0, 100), x, y, size, size) - - if (this.mapBackground.getValue()) Renderer.drawRect(Renderer.color(0, 0, 0), x, y, size, 2) - if (this.mapBackground.getValue()) Renderer.drawRect(Renderer.color(0, 0, 0), x, y, 2, size) - if (this.mapBackground.getValue()) Renderer.drawRect(Renderer.color(0, 0, 0), x + size - 2, y, 2, size) - if (this.mapBackground.getValue()) Renderer.drawRect(Renderer.color(0, 0, 0), x, y + size - 2, size, 2) - if (this.currDungeonBossImage) { - this.currDungeonBossImage.image.draw(x, y, size, size) - } else { - GlStateManager.func_179094_E(); //GlStateManager.push() - Renderer.translate(x, y, 1) - GlStateManager.func_179152_a(size / 128, size / 128, 1); //GlStateManager.scale() - GlStateManager.func_179131_c(1.0, 1.0, 1.0, 1.0); // GlStateManager.color() - Client.getMinecraft().field_71460_t.func_147701_i().func_148250_a(this.mapData, true); - GlStateManager.func_179121_F(); //GlStateManager.pop() - } - - return - } - - World.getAllPlayers().forEach(player => { - if (player.getPing() === -1) return - if (!this.people.includes(player.getName())) return - this.mapDataPlayers[player.getUUID().toString()] = { - x: player.getX(), - y: player.getZ(), - rot: player.getYaw() + 180, - username: player.getName(), - uuid: player.getUUID().toString() - } - }) - this.mapDataPlayers[Player.getUUID().toString()] = { - x: Player.getX(), - y: Player.getZ(), - rot: Player.getYaw() + 180, - username: Player.getName(), - uuid: Player.getUUID().toString() - } - - let uuid = Player.getUUID().toString() - let renderX - let renderY - let xOff = 0 - let yOff = 0 - let disableMap = false - if (this.mapDataPlayers[uuid]) { - - if (this.currDungeonBossImage) { - renderX = (this.mapDataPlayers[uuid].x - this.currDungeonBossImage.topLeftLocation[0]) / this.currDungeonBossImage.widthInWorld * size - renderY = (this.mapDataPlayers[uuid].y - this.currDungeonBossImage.topLeftLocation[1]) / this.currDungeonBossImage.heightInWorld * size - } else { - renderX = this.mapDataPlayers[uuid].x / this.mapScale / 128 * size + this.offset[0] / 128 * size//*16/this.roomWidth - renderY = this.mapDataPlayers[uuid].y / this.mapScale / 128 * size + this.offset[1] / 128 * size//*16/this.roomWidth - } - - if (renderX < 0 || renderX > size - || renderY < 0 || renderY > size) { - xOff = size / 2 - renderX - yOff = size / 2 - renderY - - if (!this.showMapInBoss.getValue()) { - disableMap = true - } - } - } - if (disableMap) return - - if (this.mapBackground.getValue()) Renderer.drawRect(Renderer.color(0, 0, 0, 100), x, y, size, size) - renderLibs.scizzor(x + 2, y + 2, size - 4, size - 4) - - if (this.currDungeonBossImage) { - this.currDungeonBossImage.image.draw(x + xOff, y + yOff, size, size) - } else { - GlStateManager.func_179094_E(); //GlStateManager.push() - Renderer.translate(x + xOff, y + yOff, 1) - GlStateManager.func_179152_a(size / 128, size / 128, 1); //GlStateManager.scale() - GlStateManager.func_179131_c(1.0, 1.0, 1.0, 1.0); // GlStateManager.color() - Client.getMinecraft().field_71460_t.func_147701_i().func_148250_a(this.mapData, true); - GlStateManager.func_179121_F(); //GlStateManager.pop() - } - try { - this.drawOtherMisc(x + xOff, y + yOff, size, scale) - - this.drawPlayersLocations(x + xOff, y + yOff, size, scale) - - this.drawOtherMisc2(x + xOff, y + yOff, size, scale) - } catch (e) { - console.error(e) - console.error(e.stack) - } - renderLibs.stopScizzor() - - if (this.mapBackground.getValue()) Renderer.drawRect(Renderer.color(0, 0, 0), x, y, size, 2) - if (this.mapBackground.getValue()) Renderer.drawRect(Renderer.color(0, 0, 0), x, y, 2, size) - if (this.mapBackground.getValue()) Renderer.drawRect(Renderer.color(0, 0, 0), x + size - 2, y, 2, size) - if (this.mapBackground.getValue()) Renderer.drawRect(Renderer.color(0, 0, 0), x, y + size - 2, size, 2) - - } - } - - drawOtherMisc(x2, y2, size, scale) { - if (this.currDungeonBossImage) return - if (this.mapIcons.getValue()) { - Object.keys(this.puzzles).forEach(loc => { - if (!this.puzzles[loc]) return - if (this.puzzles[loc][1]) return - let y = (loc % 128) / 128 * 100 - let x = (Math.floor(loc / 128)) / 128 * 100 - - let item = this.puzzleItems[this.puzzles[loc][0]] || this.barrier_block_item - - // lines.forEach((l, i)=>{ - // renderLibs.drawStringCentered("&0&l" + l, x*scale*2+x2-l.length/2*scale*2, y*scale*2+y2-this.roomWidth/3*scale*2+this.roomWidth/3*scale*2+i*6*scale*2-((lines.length-1)*3+4)*scale*2, scale*2) - // }) - - item.draw(x * scale * 2 + x2 - this.roomWidth / 4 * scale * 2, y * scale * 2 + y2 - this.roomWidth / 4 * scale * 2, 1.5 * scale) - }) - } - } - - drawOtherMisc2(x2, y2, size, scale) { - if (this.currDungeonBossImage) return - if (this.roomsecrets.getValue()) { - for (let ent of this.roomDataStuffRender.entries()) { - let [loc, [secrets, roomid, color]] = ent - let [x, y] = loc.split(",") - - let renderText = color + secrets - - let val2 = ChatLib.removeFormatting(renderText) - - let renderX = (parseInt(x) + 16) / this.mapScale / 128 * size + this.offset[0] / 128 * size - let renderY = (parseInt(y) + 16) / this.mapScale / 128 * size + this.offset[1] / 128 * size - - Renderer.translate(0, 0, 1000) - renderLibs.drawStringCentered("§0" + val2, x2 + renderX + scale * 1.25, y2 + renderY - 2 * scale * 1.25, scale * 1.25) - Renderer.translate(0, 0, 1000) - renderLibs.drawStringCentered("§0" + val2, x2 + renderX - scale * 1.25, y2 + renderY - 2 * scale * 1.25, scale * 1.25) - Renderer.translate(0, 0, 1000) - renderLibs.drawStringCentered("§0" + val2, x2 + renderX, y2 + renderY + scale * 1.25 - 2 * scale * 1.25, scale * 1.25) - Renderer.translate(0, 0, 1000) - renderLibs.drawStringCentered("§0" + val2, x2 + renderX, y2 + renderY - scale * 1.25 - 2 * scale * 1.25, scale * 1.25) - Renderer.translate(0, 0, 1000) - renderLibs.drawStringCentered("§f" + renderText, x2 + renderX, y2 + renderY - 2 * scale * 1.25, scale * 1.25) - } - } - } - - drawPlayersLocations(x, y, size, scale) { - - let uuidToPlayer = {} - World.getAllPlayers().forEach(player => { - if (player.getPing() === -1) return - if (!this.people.includes(player.getName())) return - uuidToPlayer[player.getUUID().toString()] = player - }) - - Object.keys(this.mapDataPlayers).forEach((uuid) => { - if (this.deadPlayers.has(uuid)) return - if (uuid === Player.getUUID().toString()) return - let renderX - let renderY - - if (this.currDungeonBossImage) { - renderX = (this.mapDataPlayers[uuid].x - this.currDungeonBossImage.topLeftLocation[0]) / this.currDungeonBossImage.widthInWorld * size - renderY = (this.mapDataPlayers[uuid].y - this.currDungeonBossImage.topLeftLocation[1]) / this.currDungeonBossImage.heightInWorld * size - } else { - renderX = this.mapDataPlayers[uuid].x / this.mapScale / 128 * size + this.offset[0] / 128 * size//*16/this.roomWidth - renderY = this.mapDataPlayers[uuid].y / this.mapScale / 128 * size + this.offset[1] / 128 * size//*16/this.roomWidth - } - - if (this.borderedHeads.getValue()) { - Renderer.translate(renderX + x, renderY + y, 1000) - Renderer.scale(scale * 1.5, scale * 1.5) - Renderer.rotate(this.mapDataPlayers[uuid].rot) - Renderer.drawRect(Renderer.color(0, 0, 0), -6, -6, 12, 12) - } - Renderer.translate(renderX + x, renderY + y, 1000) - Renderer.scale(scale * 1.5, scale * 1.5) - Renderer.rotate(this.mapDataPlayers[uuid].rot) - this.getImageForPlayer(uuid).draw(-5, -5, 10, 10) - }) - - let uuid = Player.getUUID().toString() - if (!this.mapDataPlayers[uuid]) return - let renderX - let renderY - - if (this.currDungeonBossImage) { - renderX = (this.mapDataPlayers[uuid].x - this.currDungeonBossImage.topLeftLocation[0]) / this.currDungeonBossImage.widthInWorld * size - renderY = (this.mapDataPlayers[uuid].y - this.currDungeonBossImage.topLeftLocation[1]) / this.currDungeonBossImage.heightInWorld * size - } else { - renderX = this.mapDataPlayers[uuid].x / this.mapScale / 128 * size + this.offset[0] / 128 * size//*16/this.roomWidth - renderY = this.mapDataPlayers[uuid].y / this.mapScale / 128 * size + this.offset[1] / 128 * size//*16/this.roomWidth - } - - - if (this.borderedHeads.getValue()) { - Renderer.translate(renderX + x, renderY + y, 1000) - Renderer.scale(scale * 1.5, scale * 1.5) - Renderer.rotate(this.mapDataPlayers[uuid].rot) - Renderer.drawRect(Renderer.color(0, 0, 0), -6, -6, 12, 12) - } - Renderer.translate(renderX + x, renderY + y, 1000) - Renderer.scale(scale * 1.5, scale * 1.5) - Renderer.rotate(this.mapDataPlayers[uuid].rot) - this.getImageForPlayer(uuid).draw(-5, -5, 10, 10) - } - - getRoomXYWorld() { - let roomData = this.getRoomWorldData() - if (roomData.rotation === 4) { - return [roomData.x, roomData.y + 32] - } - - return [roomData.x, roomData.y] - } - - getRotation(x, y, width, height, roofY) { - let one = this.getTopBlockAt(x + width / 2 + 1, y + height / 2, roofY) - let two = this.getTopBlockAt(x + width / 2 - 1, y + height / 2, roofY) - let three = this.getTopBlockAt(x + width / 2, y + height / 2 + 1, roofY) - let four = this.getTopBlockAt(x + width / 2, y + height / 2 - 1, roofY) - - if (one === 0 && three === 0) return 1 - if (two === 0 && three === 0) return 2 - if (one === 0 && four === 0) return 3 - if (two === 0 && four === 0) return 4 //4 IS SO TOXIK HGOLY HEL I HATE L SHAPE ROOMS WHY DO THIS TO ME - - return -1 - } - - getRoomWorldData() { - let x = Math.floor((Player.getX() + 8) / 32) * 32 - 8 - let y = Math.floor((Player.getZ() + 8) / 32) * 32 - 8 - let width = 30 - let height = 30 - - let roofY = this.getRoofAt(x, y) - - while (World.getBlockStateAt(new BlockPos(x - 1, roofY, y)).getBlockId() !== 0) { - x -= 32 - width += 32 - } - while (World.getBlockStateAt(new BlockPos(x, roofY, y - 1)).getBlockId() !== 0) { - y -= 32 - height += 32 - } - while (World.getBlockStateAt(new BlockPos(x - 1, roofY, y)).getBlockId() !== 0) { //second iteration incase of L shape - x -= 32 - width += 32 - } - while (World.getBlockStateAt(new BlockPos(x + width + 1, roofY, y)).getBlockId() !== 0) { - width += 32 - } - while (World.getBlockStateAt(new BlockPos(x, roofY, y + height + 1)).getBlockId() !== 0) { - height += 32 - } - while (World.getBlockStateAt(new BlockPos(x + width, roofY, y + height + 1)).getBlockId() !== 0) { //second iteration incase of L shape - height += 32 - } - while (World.getBlockStateAt(new BlockPos(x + width + 1, roofY, y + height)).getBlockId() !== 0) { //second iteration incase of L shape - width += 32 - } - while (World.getBlockStateAt(new BlockPos(x + width, roofY, y - 1)).getBlockId() !== 0) {//second iteration incase of L shape - y -= 32 - height += 32 - } - while (World.getBlockStateAt(new BlockPos(x - 1, roofY, y + height)).getBlockId() !== 0) { //third iteration incase of L shape - x -= 32 - width += 32 - } - - - return { - x, - y, - width, - height, - cx: x + width / 2, - cy: y + height / 2, - rotation: this.getRotation(x, y, width, height, roofY) - } - } - - getRoofAt(x, z) { - let y = 255 - while (y > 0 && World.getBlockStateAt(new BlockPos(x, y, z)).getBlockId() === 0) y-- - - return y - } - - getTopBlockAt(x, z, y) { - if (!y) y = this.getHeightAt(x, z) - - return World.getBlockStateAt(new BlockPos(x, y, z)).getBlockId() - } - - step() { - if (!World.getWorld()) return - if (!this.isInDungeon()) return - if (Player.getContainer().getName().startsWith("Catacombs - Floor ")) { - this.nameToUUID = {} - World.getAllPlayers().forEach(p => { - this.nameToUUID[p.getName().toLowerCase()] = p.getUUID().toString() - }) - let playerI = 0 - for (let i = 0; i < 5; i++) { - let name = ChatLib.removeFormatting(Player.getContainer().getStackInSlot(3 + i)?.getName()?.split(" ")?.pop() || "") - if (this.nameToUUID[name.toLowerCase()] && this.nameToUUID[name.toLowerCase()] !== Player.getUUID().toString()) { - this.idToPlayer[playerI] = this.nameToUUID[name.toLowerCase()] - if (name) playerI++ - } - } - this.idToPlayer[playerI] = Player.getUUID().toString() - playerI++ - if (playerI !== World.getAllPlayers().filter(p => p.getPing() === 1).length) this.idToPlayer = {} - } - // console.log("asjbfoasbgp") - this.people = [] - this.puzzlesTab = [] - TabList.getNames().forEach(nameo => { - - - // Party (2) | Soopyboo32 (Mage XXXVI) | Ultimate: Ready | Revive Stones: 1 | | zZzJAKE ♲ (DEAD) | Ultimate: 00m 45s | Revive Stones: 0 | | | | | | | | | | | | | Player Stats | Downed: zZzJAKE | Time: 00m 47s | Revive: 01m 40s | | Deaths: (2) | Damage Dealt: 4.7M❤ | Healing Done: 718❤ | Milestone: ☠❸ | | Discoveries: (0) | Secrets Found: 0 | Crypts: 0 | | | | | | | | Dungeon Stats | Dungeon: Catacombs | Opened Rooms: 13 | Completed Rooms: 12 | Secrets Found: 0% | Time: 01m 51s | | Puzzles: (3) | ???: [✦] | ???: [✦] | ???: [✦] | | | | | | | | | | Account Info | Profile: Pomegranate | Pet Sitter: N/A | Bank: 57M/11M | Interest: 04h 19m 10s | | Skills: Combat 60: MAX | Speed: ✦457 | Strength: ❁859 | Crit Chance: ☣62 | Crit Damage: ☠1479 | Attack Speed: ⚔92 | | Event: Election Over! | Starts In: 2h 39m 10s | | Election: 0d 2h 39m 10s | Aatrox: |||||||||| (79%) | Marina: |||||||||| (7%) | Cole: |||||||||| (6%) | Soopyboo32 - let line = ChatLib.removeFormatting(nameo).trim().replace("♲ ", "") //TODO: Remove bingo symbol - if (line.endsWith(")") && line.includes(" (") && line.split(" (").length === 2 && line.split(" (")[0].split(" ").length === 1 && line.split(" (")[1].length > 5) { - this.people.push(line.split(" ")[0]) - } - - name = ChatLib.removeFormatting(nameo).trim().split(" ") - let end = name.pop() - // console.log(end) Water Board: [✔] - if (end !== "[✦]" && end !== "[✔]") return - name = name.join(" ").trim().replace(":", "") - if (name.length > 1 && !name.includes("?")) { - this.puzzlesTab.push([name, end === "[✔]"]) - } - // console.log(name) - }) - let puzzlesTab2 = this.puzzlesTab.map(a => a) - // console.log(this.puzzlesTab.length) - // Object.keys(this.puzzles).forEach(key=>{ - // let y = (key%128) - // let x = (Math.floor(key/128)) - - // if(x>100&&y>100){ - // this.puzzles[key] = puzzlesTab2.shift() - // } - // }) - Object.keys(this.puzzles).forEach(key => { - // let y = (key%128) - // let x = (Math.floor(key/128)) - - // if(x>100&&y>100){ - // return - // } - this.puzzles[key] = puzzlesTab2.shift() - // console.log(key, this.puzzles[key], this.puzzlesTab.length) - }) - } - - updateMapImage() { - if (!this.mortLocation) { - try { - World.getAllEntities().forEach(entity => { - if (ChatLib.removeFormatting(entity.getName()) === ("Mort")) { - this.mortLocation = [ - entity.getX(), - entity.getZ() - ] - } - }) - } catch (e) { } - } - - // let graphics = this.renderImage.getGraphics() - - // graphics.setComposite(AlphaComposite.Clear); - // graphics.fillRect(0, 0, this.IMAGE_SIZE, this.IMAGE_SIZE) - // graphics.setComposite(AlphaComposite.SrcOver); - - let mapData - try { - let item = Player.getInventory().getStackInSlot(8) - mapData = item.getItem()[m.getMapData](item.getItemStack(), World.getWorld()); // ItemStack.getItem().getMapData() - } catch (error) { - } - if (mapData && !this.boringMap) { - this.mapData = mapData - - - // console.log("has map data poggies") - let bytes = mapData[f.colors.MapData] - - // let newArr = java.lang.reflect.Array.newInstance(java.lang.Integer.TYPE, bytes.length) - // for (let i = 0; i < bytes.length; i++) { - // // console.log(bytes[i]/4) - - // if (bytes[i] !== 0) { - // let j = bytes[i] & 255 - // newArr[i] = net.minecraft.block.material.MapColor[f.mapColorArray][j >> 2][m.getMapColor.MapColor](j & 3) - // // graphics.setColor(color) - // // graphics.fillRect(x * this.MAP_QUALITY_SCALE, y * this.MAP_QUALITY_SCALE, this.MAP_QUALITY_SCALE, this.MAP_QUALITY_SCALE) - // } - // // x++ - // // if (x >= 128) { - // // x = 0 - // // y++ - - // // if (y > 128) break - // // } - - // // mapImage.getRGB() - // } - // this.renderImage.setRGB(0, 0, 128, 128, newArr, 0, 128) - - // newImage.setRGB(0,0,128,128, ints, 0, 1) - - // graphics. () - //room size is 18 - //4 inbetween - - //finding room offsets - let brBoxTemp = undefined - let roomOffsets - let roomWidth1 = 0 - let roomWidth2 = 0 - let rx = 0 - let ry = 0 - for (let x = 0; x < 128; x += 5) { - for (let y = 0; y < 128; y += 5) { - if (bytes[x + y * 128] === 30 - && bytes[x + 1 + y * 128] === 30 - && bytes[x + 2 + y * 128] === 30 - && bytes[x + 3 + y * 128] === 30 - && bytes[x + 5 + y * 128] === 30 - && bytes[x + 10 + y * 128] === 30) { - rx = x - ry = y - while (bytes[(rx - 1) + ry * 128] === 30) { - rx-- - } - while (bytes[(rx) + (ry - 1) * 128] === 30) { - ry-- - } - break; - } - } - if (rx) break; - } - let x = rx - while (bytes[x + ry * 128] === 30) { - x++ - roomWidth2++ - } - let y = ry - while (bytes[rx + y * 128] === 30) { - y++ - roomWidth1++ - } - - let roomWidth = Math.floor(Math.max(roomWidth1, roomWidth2) * 5 / 4) - - this.mapScale = 32 / roomWidth - let mortLocationOnMap - roomOffsets = [rx % roomWidth - 3, ry % roomWidth - 3] - - let dir = roomWidth / 2 - 5 / this.mapScale - - //top - for (let i = 0; i < roomWidth; i++) { - if (bytes[(i + rx - 3) + (ry - 3) * 128] !== 0) { - mortLocationOnMap = [rx - 2 + roomWidth / 2, ry - 2 + roomWidth / 2 - dir] - break - } - } - // if(mortLocationOnMap) break - //bottom - for (let i = 0; i < roomWidth; i++) { - if (bytes[(i + rx - 3) + (ry + roomWidth - 3) * 128] !== 0) { - mortLocationOnMap = [rx - 2 + roomWidth / 2, ry - 2 + roomWidth / 2 + dir] - break - } - } - //left - for (let i = 0; i < roomWidth; i++) { - if (bytes[(rx - 3) + (i + ry - 3) * 128] !== 0) { - mortLocationOnMap = [rx - 2 + roomWidth / 2 - dir, ry - 2 + roomWidth / 2] - break - } - } - //right - for (let i = 0; i < roomWidth; i++) { - if (bytes[(rx + roomWidth - 3) + (i + ry - 3) * 128] !== 0) { - mortLocationOnMap = [rx - 2 + roomWidth / 2 + dir, ry - 2 + roomWidth / 2] - } - } - - if (mortLocationOnMap && this.mortLocation) { - - for (let x = roomOffsets[0]; x < 128; x += roomWidth) { - for (let y = roomOffsets[1]; y < 128; y += roomWidth) { - let testLocs = [[x, y + roomWidth / 2, false], [x + roomWidth / 2, y, true]] - testLocs.forEach(([ux, uy, isX]) => { - - // console.log(bytes[~~ux+~~uy*128]) - if (bytes[~~ux + ~~uy * 128] === 119 || bytes[~~ux + ~~uy * 128] === 18) { - - brBoxTemp = [ - (ux - mortLocationOnMap[0]) / roomWidth * 32 + this.mortLocation[0], - (uy - mortLocationOnMap[1]) / roomWidth * 32 + this.mortLocation[1] - ] - - if (isX) { - brBoxTemp[0] = Math.floor(brBoxTemp[0] / 32 + 0.5) * 32 + 16 - brBoxTemp[1] = Math.floor(brBoxTemp[1] / 32 + 0.5) * 32 - } else { - brBoxTemp[0] = Math.floor(brBoxTemp[0] / 32 + 0.5) * 32 - brBoxTemp[1] = Math.floor(brBoxTemp[1] / 32 + 0.5) * 32 + 16 - } - - brBoxTemp = [ - (~~brBoxTemp[0]) - 8.5, - (~~brBoxTemp[1]) - 8.5 - ] - } - }) - - let [tx, ty] = [~~(x + roomWidth / 2), ~~(y + roomWidth / 2)] - - if (bytes[tx + ty * 128] === 66) { - - if (!this.puzzles[(tx) * 128 + ty] && Object.keys(this.puzzles).length < 10) { - this.puzzles[(tx) * 128 + ty] = ["Loading", false] - } - } - } - } - } - - this.brBoxLoc = brBoxTemp - - - if (this.brBox.getValue() && !this.bloodOpened) this.dungeonBrBoxElm.startRender() - - if (this.brBoxLoc) this.dungeonBrBoxElm.setLocationSize([this.brBoxLoc[0] - 1.5, 69, this.brBoxLoc[1] - 1.5], [3, 4, 3]) - - if (roomOffsets) { - // for(let x = 0;x<128;x++){ - // for(let y = 0;y<128;y++){ - // if((x-roomOffsets[0])%roomWidth===0 || (y-roomOffsets[1])%roomWidth===0){ - // this.renderImage.setRGB(x*this.MAP_QUALITY_SCALE, y*this.MAP_QUALITY_SCALE, Renderer.color(0,0,0)) - // } - // } - // } - - // for(let x = roomOffsets[0];x<128;x+=roomWidth){ - // for(let y = roomOffsets[1];y<128;y+=roomWidth){ - // let testLocs = [[x, y+roomWidth/2],[x+roomWidth/2, y]] - // testLocs.forEach(([ux, uy])=>{ - // ux = ~~ux - // uy = ~~uy - - // try{ - // this.renderImage.setRGB(ux*this.MAP_QUALITY_SCALE, uy*this.MAP_QUALITY_SCALE, Renderer.color(255,0,0)) - // }catch(e){} - // }) - // } - - |
