diff options
Diffstat (limited to 'features')
-rw-r--r-- | features/changeLogGUI/index.js | 4 | ||||
-rw-r--r-- | features/dungeonMap/index.js | 180 | ||||
-rw-r--r-- | features/dungeonRoutes/index.js | 262 | ||||
-rw-r--r-- | features/dungeonRoutes/routesData.json | 6543 | ||||
-rw-r--r-- | features/dungeonSolvers/index.js | 69 | ||||
-rw-r--r-- | features/fpsImproveGui/index.js | 58 | ||||
-rw-r--r-- | features/fpsImproveGui/metadata.json | 8 | ||||
-rw-r--r-- | features/globalSettings/index.js | 24 |
8 files changed, 858 insertions, 6290 deletions
diff --git a/features/changeLogGUI/index.js b/features/changeLogGUI/index.js index 6b50fdb..d370b50 100644 --- a/features/changeLogGUI/index.js +++ b/features/changeLogGUI/index.js @@ -24,7 +24,7 @@ class ChangeLogGui extends Feature { onEnable() { this.initVariables() - + this.ChangelogPage = new ChangelogPage() this.latestAnnouncedVersion = this.ChangelogPage.currVersionId @@ -168,7 +168,7 @@ class ChangelogPage extends GuiPage { this.openSidebarPage(this.updatingSidebar) } - + downloadUpdate() { new Thread(() => { this.updatingSidebarConfirmPage.location.location.x.set(-1, 500) diff --git a/features/dungeonMap/index.js b/features/dungeonMap/index.js index 7a9b7cb..68adf7e 100644 --- a/features/dungeonMap/index.js +++ b/features/dungeonMap/index.js @@ -40,6 +40,7 @@ class DungeonMap extends Feature { 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) @@ -61,6 +62,8 @@ class DungeonMap extends Feature { this.mortLocationOnMap = undefined this.brBoxLoc = undefined this.keys = 0 + + this.roomDataStuff = 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 @@ -177,8 +180,29 @@ class DungeonMap extends Feature { 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(",")) !== curr + " " + max) { + this.roomDataStuff.set(loc.join(","), curr + " " + max) + + socketConnection.sendDungeonData2(this.people, [loc.join(","), curr + " " + max]) + } + }) + registerActionBar.trigger.setCriteria('&7${curr}/${max} Secrets').setParameter('contains'); } + updateDungeonMapData2(data) { + // console.log("Recieved: " + JSON.stringify(data, undefined, 2)) + this.roomDataStuff.set(data[0], data[1]) + } worldLoad() { this.dungeonBrBoxElm.stopRender() this.mortLocation = undefined @@ -192,6 +216,7 @@ class DungeonMap extends Feature { this.bloodOpened = false this.keys = 0 this.idToPlayer = {} + this.roomDataStuff.clear() } renderOverlay() { @@ -285,11 +310,16 @@ class DungeonMap extends Feature { 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.drawOtherMisc(x + xOff, y + yOff, size, scale) - - this.drawPlayersLocations(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) @@ -300,7 +330,7 @@ class DungeonMap extends Feature { } } - drawOtherMisc(x2, y2, size2, scale) { + drawOtherMisc(x2, y2, size, scale) { if (this.currDungeonBossImage) return if (this.mapIcons.getValue()) { Object.keys(this.puzzles).forEach(loc => { @@ -320,6 +350,32 @@ class DungeonMap extends Feature { } } + drawOtherMisc2(x2, y2, size, scale) { + if (this.currDungeonBossImage) return + if (this.roomsecrets.getValue()) { + for (let ent of this.roomDataStuff.entries()) { + let [loc, val] = ent + let [x, y] = loc.split(",") + + let val2 = ChatLib.removeFormatting(val) + + 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" + val, x2 + renderX, y2 + renderY - 2 * scale * 1.25, scale * 1.25) + } + } + } + drawPlayersLocations(x, y, size, scale) { let uuidToPlayer = {} @@ -381,6 +437,95 @@ class DungeonMap extends Feature { 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 @@ -707,6 +852,32 @@ class DungeonMap extends Feature { }); } catch (e) { } } + + + if (this.offset && this.offset.length === 2) { + for (let ent of this.roomDataStuff.entries()) { + let [loc] = ent + let [x, y] = loc.split(",") + + let renderX = Math.round((parseInt(x) + 16) / this.mapScale + this.offset[0]) // / 128 * size + let renderY = Math.round((parseInt(y) + 16) / this.mapScale + this.offset[1])// / 128 * size + // console.log(renderX, renderY) + let isGreen = false + for (let i = 0; i < 10; i++) { + if (bytes[renderX + i + (renderY + i) * 128] === 30 + || bytes[renderX + i + 1 + (renderY + i) * 128] === 30) { + isGreen = true + } + } + console.log(ent[1], isGreen) + if (isGreen) { + let total = ent[1].split(" ")[1] + ent[1] = "&a" + total + " " + total + console.log(ent[1]) + } + console.log(ent[1], isGreen) + } + } // if (!this.renderImage) return // let newMapImageThing = new Image(this.renderImage) @@ -776,6 +947,7 @@ class DungeonMap extends Feature { this.dungeonBrBoxElm.stopRender() this.initVariables() this.running = false + this.roomDataStuff.clear() } } diff --git a/features/dungeonRoutes/index.js b/features/dungeonRoutes/index.js index 1c49dab..a7d8691 100644 --- a/features/dungeonRoutes/index.js +++ b/features/dungeonRoutes/index.js @@ -7,6 +7,7 @@ import SettingBase from "../settings/settingThings/settingBase"; const EntityItem = Java.type("net.minecraft.entity.item.EntityItem") +const EnumParticleTypes = Java.type('net.minecraft.util.EnumParticleTypes'); class DungeonRoutes extends Feature { constructor() { @@ -19,13 +20,8 @@ class DungeonRoutes extends Feature { return } - this.actionId = 0 - - this.recentEtherwarps = [] - this.recentMines = [] - this.recentLocations = [] - this.recentInteracts = [] - this.recentTnts = [] + this.recordingData = [] + this.currentActionIndex = 0 this.lastLocationUpdatedTime = Date.now() this.registerEvent("soundPlay", this.playSound) @@ -42,68 +38,69 @@ class DungeonRoutes extends Feature { let roomId = this.getCurrentRoomId() if (this.lastRoomId !== roomId) { this.lastRoomId = roomId - this.actionId = 0 - this.recentEtherwarps = [] - this.recentMines = [] - this.recentLocations = [] - this.recentTnts = [] - this.recentInteracts = [] + this.recordingData = [] this.currRoomData = this.getRoomWorldData() - this.currentRouteDisplay = this.routesIndexMap.get(this.fullRoomData[this.idMap.get(roomId)].index) + this.currentRouteDisplay = this.routesIndexMap.get(this.fullRoomData[this.idMap.get(roomId)].index)?.data ChatLib.chat(JSON.stringify(this.currentRouteDisplay, undefined, 2)) } if (!this.recordRoute) return - if (this.recentLocations.length === 0 - || Math.ceil(Player.getX()) !== this.recentLocations[this.recentLocations.length - 1].loc[0] - || Math.ceil(Player.getY()) !== this.recentLocations[this.recentLocations.length - 1].loc[1] - || Math.ceil(Player.getZ()) !== this.recentLocations[this.recentLocations.length - 1].loc[2]) { - - this.recentLocations.push({ loc: [Math.ceil(Player.getX()), Math.ceil(Player.getY()), Math.ceil(Player.getZ())], id: this.actionId++ }) + if (!this.recordingData[this.recordingData.length - 1]) return + let locs = this.recordingData[this.recordingData.length - 1].locations + if (locs.length === 0 + || Math.ceil(Player.getX()) !== locs[locs.length - 1][0] + || Math.ceil(Player.getY()) !== locs[locs.length - 1][1] + || Math.ceil(Player.getZ()) !== locs[locs.length - 1][2]) { + + this.addRecordingPoint("locations", [Math.ceil(Player.getX()), Math.ceil(Player.getY()), Math.ceil(Player.getZ())]) } }) this.registerEvent("renderWorld", () => { - this.recentEtherwarps.forEach(({ loc }) => { - drawFilledBox(loc.x, loc.y - 1, loc.z, 1, 1, 1, 0, 0, 50 / 255, true) - drawBoxAtBlock(loc.x - 0.5, loc.y - 1, loc.z - 0.5, 1, 0, 0, 1, 1, 1) - }) - this.recentMines.forEach(({ loc }) => { - drawFilledBox(loc.x, loc.y - 0.5, loc.z, 1, 1, 0, 1, 0, 50 / 255, true) - }) - this.recentTnts.forEach(({ loc }) => { - drawFilledBox(loc.x, loc.y - 0.5, loc.z, 1, 1, 1, 0, 0, 50 / 255, true) - }) - this.recentInteracts.forEach(({ loc }) => { - drawFilledBox(loc.x, loc.y, loc.z, 1, 1, 0, 0, 1, 50 / 255, true) - drawBoxAtBlock(loc.x - 0.5, loc.y, loc.z - 0.5, 0, 0, 1, 1, 1, 1) - }) - if (this.recentLocations.length >= 2) drawLinePoints(this.recentLocations.map(a => [a.loc[0] - 0.5, a.loc[1] + 0.1, a.loc[2] - 0.5]), 0, 0, 255, 2, false) + if (this.recordingData && this.recordingData[this.recordingData.length - 1]) { + this.recordingData[this.recordingData.length - 1].etherwarps.forEach((loc) => { + drawFilledBox(loc[0], loc[1] - 1, loc[2], 1, 1, 1, 0, 0, 50 / 255, true) + drawBoxAtBlock(loc[0] - 0.5, loc[1] - 1, loc[2] - 0.5, 1, 0, 0, 1, 1, 1) + }) + this.recordingData[this.recordingData.length - 1].mines.forEach((loc) => { + drawFilledBox(loc[0], loc[1] - 0.5, loc[2], 1, 1, 0, 1, 0, 50 / 255, true) + }) + this.recordingData[this.recordingData.length - 1].tnts.forEach((loc) => { + drawFilledBox(loc[0], loc[1] - 0.5, loc[2], 1, 1, 1, 0, 0, 50 / 255, true) + }) + this.recordingData[this.recordingData.length - 1].interacts.forEach(({ loc }) => { + drawFilledBox(loc[0], loc[1], loc[2], 1, 1, 0, 0, 1, 50 / 255, true) + drawBoxAtBlock(loc[0] - 0.5, loc[1], loc[2] - 0.5, 0, 0, 1, 1, 1, 1) + }) + let locs = this.recordingData[this.recordingData.length - 1].locations + if (locs.length >= 2) drawLinePoints(locs.map(a => [a[0] - 0.5, a[1] + 0.1, a[2] - 0.5]), 0, 0, 255, 2, false) + } if (this.currRoomData) { + drawBoxAtBlock(...this.toRoomCoordinates(0, 70, 0), 1, 0, 0, 1, 1, 1) if (this.currentRouteDisplay) { - this.currentRouteDisplay.etherwarps.forEach(loc => { + this.currentRouteDisplay[this.currentActionIndex].etherwarps.forEach(loc => { let coords = this.toRoomCoordinates(loc[0], loc[1] - 1, loc[2]) - drawFilledBox(coords[0] + 0.5, coords[1], coords[2] + 0.5, 1, 1, 1, 0, 0, 50 / 255, true) - drawBoxAtBlock(coords[0], coords[1], coords[2], 1, 0, 0, 1, 1, 1) + drawFilledBox(coords[0], coords[1], coords[2], 1, 1, 1, 0, 0, 50 / 255, true) + drawBoxAtBlock(coords[0] - 0.5, coords[1], coords[2] - 0.5, 1, 0, 0, 1, 1, 1) }) - this.currentRouteDisplay.mines.forEach(loc => { + this.currentRouteDisplay[this.currentActionIndex].mines.forEach(loc => { let coords = this.toRoomCoordinates(loc[0], loc[1] - 1, loc[2]) - drawFilledBox(coords[0] + 0.5, coords[1] + 0.5, coords[2] + 0.5, 1, 1, 0, 255, 0, 50 / 255, true) + drawFilledBox(coords[0], coords[1] + 0.5, coords[2], 1, 1, 0, 255, 0, 50 / 255, true) }) - this.currentRouteDisplay.tnts.forEach(loc => { + this.currentRouteDisplay[this.currentActionIndex].tnts.forEach(loc => { let coords = this.toRoomCoordinates(loc[0], loc[1] - 1, loc[2]) - drawFilledBox(coords[0] + 0.5, coords[1] + 0.5, coords[2] + 0.5, 1, 1, 255, 0, 0, 50 / 255, true) + drawFilledBox(coords[0], coords[1] + 0.5, coords[2] + 0.5, 1, 1, 255, 0, 0, 50 / 255, true) }) - this.currentRouteDisplay.interacts.forEach(loc => { - let coords = this.toRoomCoordinates(loc[0], loc[1], loc[2]) - drawFilledBox(coords[0] + 0.5, coords[1], coords[2] + 0.5, 1, 1, 0, 0, 1, 50 / 255, true) + this.currentRouteDisplay[this.currentActionIndex].interacts.forEach((data) => { + let coords = this.toRoomCoordinates(data.loc[0], data.loc[1], data.loc[2]) + drawFilledBox(coords[0], coords[1], coords[2], 1, 1, 0, 0, 1, 50 / 255, true) drawBoxAtBlock(coords[0], coords[1], coords[2], 0, 0, 1, 1, 1, 1) }) - if (this.currentRouteDisplay.locations.length >= 2) drawLinePoints(this.currentRouteDisplay.locations.map(a => this.toRoomCoordinates(...a)).map(a => [a[0] - 0.5, a[1] + 0.1, a[2] - 0.5]), 0, 0, 255, 2, false) + // if (this.currentRouteDisplay.locations.length >= 2) drawLinePoints(this.currentRouteDisplay.locations.map(a => this.toRoomCoordinates(...a)).map(a => [a[0] - 0.5, a[1] + 0.1, a[2] - 0.5]), 0, 0, 255, 2, false) } } @@ -138,28 +135,128 @@ class DungeonRoutes extends Feature { this.registerCommand("startroute", (...name) => { this.recordRoute = true - this.recentEtherwarps = [] - this.recentMines = [] - this.recentLocations = [] - this.recentInteracts = [] - this.recentTnts = [] + this.recordingData = [] + this.addRecordingPoint() ChatLib.chat(this.FeatureManager.messagePrefix + "Started recording route!") }) this.registerCommand("saveroute", () => { let data = { index: this.fullRoomData[this.idMap.get(this.lastRoomId)].index, - etherwarps: this.recentEtherwarps.map(ether => this.fromRoomCoordinates(ether.loc.x - 0.5, ether.loc.y, ether.loc.z - 0.5)), - mines: this.recentMines.map(ether => this.fromRoomCoordinates(ether.loc.x - 0.5, ether.loc.y, ether.loc.z - 0.5)), - locations: this.recentLocations.map(ether => this.fromRoomCoordinates(ether.loc[0], ether.loc[1], ether.loc[2])), - interacts: this.recentInteracts.map(ether => this.fromRoomCoordinates(ether.loc.x - 0.5, ether.loc.y, ether.loc.z - 0.5)), - tnts: this.recentTnts.map(ether => this.fromRoomCoordinates(ether.loc.x - 0.5, ether.loc.y, ether.loc.z - 0.5)), + data: this.recordingData.map(a => { + a.etherwarps = a.etherwarps.map(a => this.fromRoomCoordinates(a[0] + 0.5, a[1], a[2] + 0.5)) + a.mines = a.mines.map(a => this.fromRoomCoordinates(a[0] + 0.5, a[1], a[2] + 0.5)) + a.locations = a.locations.map(a => this.fromRoomCoordinates(...a)) + a.interacts = a.interacts.map(b => { + b.pos = this.fromRoomCoordinates(...b.pos) + return b + }) + a.tnts = a.tnts.map(a => this.fromRoomCoordinates(a[0] + 0.5, a[1], a[2] + 0.5)) + + return a + }) } + // this.recordingData.push({ + // etherwarps: [], + // mines: [], + // locations: [], + // interacts: [], + // tnts: [] + // }) ChatLib.chat(JSON.stringify(data, undefined, 4)) ChatLib.chat(this.FeatureManager.messagePrefix + "Saved route!") this.recordRoute = false }) + + this.registerStep(true, 5, () => { + if (this.currRoomData) { + if (this.currentRouteDisplay) { + // this.currentRouteDisplay.etherwarps.forEach(loc => { + // let coords = this.toRoomCoordinates(loc[0], loc[1] - 1, loc[2]) + // drawFilledBox(coords[0] + 0.5, coords[1], coords[2] + 0.5, 1, 1, 1, 0, 0, 50 / 255, true) + // drawBoxAtBlock(coords[0], coords[1], coords[2], 1, 0, 0, 1, 1, 1) + // }) + // this.currentRouteDisplay.mines.forEach(loc => { + // let coords = this.toRoomCoordinates(loc[0], loc[1] - 1, loc[2]) + // drawFilledBox(coords[0] + 0.5, coords[1] + 0.5, coords[2] + 0.5, 1, 1, 0, 255, 0, 50 / 255, true) + // }) + // this.currentRouteDisplay.tnts.forEach(loc => { + // let coords = this.toRoomCoordinates(loc[0], loc[1] - 1, loc[2]) + // drawFilledBox(coords[0] + 0.5, coords[1] + 0.5, coords[2] + 0.5, 1, 1, 255, 0, 0, 50 / 255, true) + // }) + // this.currentRouteDisplay.interacts.forEach(loc => { + // let coords = this.toRoomCoordinates(loc[0], loc[1], loc[2]) + // drawFilledBox(coords[0] + 0.5, coords[1], coords[2] + 0.5, 1, 1, 0, 0, 1, 50 / 255, true) + // drawBoxAtBlock(coords[0], coords[1], coords[2], 0, 0, 1, 1, 1, 1) + // }) + + if (this.currentRouteDisplay[this.currentActionIndex].locations.length >= 2) this.drawLineMultipleParticles(this.currentRouteDisplay[this.currentActionIndex].locations.map(a => this.toRoomCoordinates(a[0], a[1], a[2]))) + + } + } + }) + } + + addRecordingPoint(type, point) { + if (type) { + this.recordingData[this.recordingData.length - 1][type].push(point) + } + if (!type || type === "interact") { + this.recordingData.push({ + etherwarps: [], + mines: [], + locations: [], + interacts: [], + tnts: [] + }) + } + } + drawLineMultipleParticles(locations) { + let lastLoc = undefined + locations.forEach(loc => { + if (!lastLoc) { + lastLoc = loc + return + } + + this.drawLineParticles(lastLoc, loc) + lastLoc = loc + }) + } + + drawLineParticles(loc1, loc2) { + let distance = Math.hypot(...loc1.map((a, i) => a - loc2[i])) + let maxPoints = Math.ceil(distance * 1) + for (let i = 0; i < maxPoints; i++) { + let actualI = i + Math.random() + let a = actualI / maxPoints + let loc = [loc1[0] * a + loc2[0] * (1 - a) - 0.5, loc1[1] * a + loc2[1] * (1 - a) + 0.1, loc1[2] * a + loc2[2] * (1 - a) - 0.5] + + let a2 = (actualI + 0.02) / maxPoints + let loc3 = [loc1[0] * a2 + loc2[0] * (1 - a2) - 0.5, loc1[1] * a2 + loc2[1] * (1 - a2) + 0.1, loc1[2] * a2 + loc2[2] * (1 - a2) - 0.5] + loc3 = loc3.map((a, i) => loc[i] - a) + + this.spawnParticleAtLocation(loc, loc3, "FLAME") + } + } + + spawnParticleAtLocation(loc, velo, particle) { + let particleType = EnumParticleTypes.valueOf(particle); + let idField = particleType.getClass().getDeclaredField('field_179372_R'); + idField.setAccessible(true); + let id = idField.get(particleType); + + Client.getMinecraft().field_71438_f.func_174974_b( + id, // particleID + true, // shouldIgnoreRange + loc[0], // x + loc[1], // y + loc[2], // z + velo[0], // speedX + velo[1], // speedY + velo[2], // speedZ + ); } toRoomCoordinates(x, y, z) { //From relative coords to world coords @@ -208,14 +305,14 @@ class DungeonRoutes extends Feature { if (this.getTopBlockAt(x + width, y + height, roofY) === 11) return 3 if (this.getTopBlockAt(x, y + height, roofY) === 11) return 4 } else { - 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) + let one = this.getTopBlockAt2(x + width / 2 + 1, y + height / 2, roofY) + let two = this.getTopBlockAt2(x + width / 2 - 1, y + height / 2, roofY) + let three = this.getTopBlockAt2(x + width / 2, y + height / 2 + 1, roofY) + let four = this.getTopBlockAt2(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 && three === 0) return 3 + if (one === 0 && four === 0) return 3 if (two === 0 && four === 0) return 4 } @@ -251,6 +348,17 @@ class DungeonRoutes extends Feature { 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 { @@ -276,6 +384,11 @@ class DungeonRoutes extends Feature { return World.getBlockStateAt(new BlockPos(x, y, z)).getMetadata() } + getTopBlockAt2(x, z, y) { + if (!y) y = this.getHeightAt(x, z) + + return World.getBlockStateAt(new BlockPos(x, y, z)).getBlockId() + } getCurrentRoomData() { let roomId = this.idMap.get(this.getCurrentRoomId()) @@ -291,11 +404,7 @@ class DungeonRoutes extends Feature { } worldLoad() { - this.recentEtherwarps = [] - this.recentMines = [] - this.recentLocations = [] - this.recentInteracts = [] - this.recentTnts = [] + } entityJoinWorldEvent(event) { @@ -315,7 +424,7 @@ class DungeonRoutes extends Feature { if (packetType === "S0DPacketCollectItem") { let pos = this.tempItemIdLocs.get(packet[m.getCollectedItemEntityID]()) - if (pos) this.recentInteracts.push({ loc: pos, id: this.actionId++ }) + if (pos) this.addRecordingPoint("interacts", { loc: pos, type: "item" }) } } @@ -328,29 +437,30 @@ class DungeonRoutes extends Feature { let id = Player.lookingAt().getType().getID() if (id !== 54 && id !== 144 && id !== 69) return - this.recentInteracts.push({ loc: pos, id: this.actionId++ }) + this.addRecordingPoint("interacts", { loc: pos, type: "interact" }) } playSound(pos, name, volume, pitch, categoryName, event) { if (!this.recordRoute) return + let loc = [pos.x, pos.y, pos.z] let nameSplitted = name.split(".") if (name === "mob.enderdragon.hit") { //etherwarp - this.recentEtherwarps.push({ loc: pos, id: this.actionId++ }) + this.addRecordingPoint("etherwarps", loc) } if (name === "random.explode" && pitch !== 1) { //tnt OR MIGHT BE spirit scepter - this.recentTnts.push({ loc: pos, id: this.actionId++ }) + this.addRecordingPoint("tnts", loc) } if (name === "mob.bat.death") { - this.recentInteracts.push({ loc: pos, id: this.actionId++ }) + this.addRecordingPoint("interacts", { loc: loc, type: "bat" }) } if (nameSplitted[0] === "dig") { //mining block - if (!this.recentMines.some(a => - a.loc.x === pos.x - && a.loc.y === pos.y - && a.loc.z === pos.z + if (!this.recordingData[this.recordingData.length - 1].mines.some(a => + a[0] === pos[0] + && a[1] === pos[1] + && a[2] === pos[2] )) { - this.recentMines.push({ loc: pos, id: this.actionId++ }) + this.addRecordingPoint("mines", loc) } } } diff --git a/features/dungeonRoutes/routesData.json b/features/dungeonRoutes/routesData.json index 2a6db6c..ed64acf 100644 --- a/features/dungeonRoutes/routesData.json +++ b/features/dungeonRoutes/routesData.json @@ -1,6200 +1,353 @@ [ { - "index": 0, - "etherwarps": [ - [ - -8, - 76, - 14 - ], - [ - -13, - 71, - 5 - ], - [ - 13, - 73, - 9 - ] + "index": 86, + "data": [ + { + "etherwarps": [ + [ + 10.5, + 82, + -20.5 + ], + [ + 8.5, + 82, + 19.5 + ], + [ + 12.5, + 93, + 21.5 + ] + ], + "mines": [ + [ + 4.5, + 82.5, + -19.5 + ] + ], + "locations": [ + [ + 18, + 69, + -25 + ], + [ + 16, + 69, + -24 + ], + [ + 15, + 69, + -24 + ], + [ + 14, + 69, + -24 + ], + [ + 14, + 67, + -24 + ], + [ + 14, + 64, + -24 + ], + [ + 14, + 61, + -24 + ], + [ + 11, + 82, + -20 + ], + [ + 10, + 82, + -20 + ], + [ + 9, + 82, + -20 + ], + [ + 8, + 82, + -19 + ], + [ + 7, + 82, + -19 + ], + [ + 6, + 82, + -19 + ], + [ + 6, + 83, + -19 + ], + [ + 5, + 82, + -19 + ], + [ + 5, + 80, + -19 + ], + [ + 5, + 78, + -19 + ], + [ + 5, + 74, + -19 + ], + [ + 5, + 72, + -19 + ], + [ + 4, + 69, + -19 + ], + [ + 5, + 69, + -19 + ], + [ + 7, + 69, + -16 + ], + [ + 8, + 71, + -16 + ], + [ + 9, + 71, + -15 + ], + [ + 9, + 72, + -2 + ], + [ + 9, + 71, + -1 + ], + [ + 9, + 68, + 0 + ], + [ + 8, + 65, + 1 + ], + [ + 4, + 70, + 12 + ], + [ + -1, + 71, + 22 + ], + [ + -1, + 69, + 22 + ], + [ + -1, + 69, + 23 + ], + [ + 0, + 69, + 25 + ], + [ + 0, + 69, + 26 + ], + [ + 0, + 69, + 27 + ], + [ + 0, + 69, + 25 + ], + [ + 1, + 69, + 22 + ], + [ + 3, + 69, + 21 + ], + [ + 8, + 69, + 20 + ], + [ + 9, + 69, + 20 + ], + [ + 9, + 82, + 20 + ], + [ + 11, + 82, + 19 + ], + [ + 12, + 82, + 19 + ], + [ + 13, + 94, + 22 + ], + [ + 13, + 93, + 22 + ], + [ + 15, + 93, + 23 + ], + [ + 17, + 91, + 23 + ], + [ + 17, + 89, + 23 + ], + [ + 18, + 85, + 23 + ], + [ + 18, + 82, + 23 + ], + [ + 17, + 82, + 22 + ], + [ + 15, + 82, + 18 + ], + [ + 13, + 82, + 14 + ], + [ + 11, + 82, + 11 + ], + [ + 10, + 80, + 9 + ], + [ + 9, + 77, + 8 + ], + [ + 8, + 73, + 6 + ], + [ + 8, + 68, + 5 + ], + [ + 6, + 65, + 3 + ], + [ + 2, + 65, + 2 + ], + [ + 0, + 65, + 1 + ] + ], + "interacts": [], + "tnts": [ + [ + 12.5, + 69.5, + -24.5 + ], + [ + 0.5, + 70.5, + 25.5 + ] + ] + } ] - }, - { - "index": 128, - "etherwarps": [ - [ - 2, - 72, - 3 - ], - [ - 0, - 91, - -10 - ], - [ - 8, - 72, - -9 - ] - ] - }, - { - "index": 127, - "etherwarps": [ - [ - 0, - 77, - -12 - ], - [ - 0, - 80, - 14 - ], - [ - -12, - 72, - 0 - ] - ] - }, - { - "index": 95, - "etherwarps": [], - "mines": [ - [ - -18, - 51.5, - 22 - ], - [ - -18, - 52.5, - 22 - ] - ], - "locations": [ - [ - -11, - 69, - 4 - ], - [ - -12, - 69, - 5 - ], - [ - -13, - 69, - 5 - ], - [ - -13, - 69, - 6 - ], - [ - -13, - 69, - 7 - ], - [ - -13, - 69, - 8 - ], - [ - -13, - 68, - 8 - ], - [ - -13, - 65, - 8 - ], - [ - -12, - 62, - 9 - ], - [ - -12, - 57, - 9 - ], - [ - -12, - 56, - 11 - ], - [ - -10, - 56, - 15 - ], - [ - -10, - 58, - 14 - ], - [ - -9, - 58, - 14 - ], - [ - -9, - 57, - 14 - ], - [ - -8, - 57, - 15 - ], - [ - -7, - 57, - 15 - ], - [ - -9, - 57, - 16 - ], - [ - -11, - 57, - 17 - ], - [ - -12, - 56, - 18 - ], - [ - -12, - 53, - 18 - ], - [ - -12, - 50, - 19 - ], - [ - -13, - 50, - 22 - ], - [ - -14, - 50, - 23 - ], - [ - -15, - 50, - 23 - ], - [ - -14, - 50, - 24 - ], - [ - -13, - 50, - 23 - ], - [ - -13, - 50, - 20 - ], - [ - -12, - 50, - 19 - ], - [ - -13, - 50, - 19 - ], - [ - -13, - 51, - 16 - ], - [ - -13, - 51, - 15 - ], - [ - -15, - 51, - 4 - ], - [ - -15, - 50, - 3 - ], - [ - -16, - 48, - -6 - ], - [ - -16, - 48, - -5 - ], - [ - -16, - 48, - -8 - ], - [ - -16, - 48, - -17 - ], - [ - -15, - 47, - -20 - ], - [ - -14, - 47, - -22 - ], - [ - -12, - 48, - -25 - ], - [ - -12, - 47, - -25 - ], - [ - -10, - 47, - -24 - ], - [ - -9, - 47, - -24 - ], - [ - -9, - 47, - -23 - ], - [ - -8, - 47, - -22 - ], - [ - -6, - 47, - -22 - ], - [ - -5, - 47, - -22 - ], - [ - -5, - 46, - -22 - ], - [ - -5, - 46, - -23 - ], - [ - -7, - 47, - -23 - ], - [ - -9, - 47, - -24 - ], - [ - -11, - 47, - -24 - ], - [ - -15, - 47, - -22 - ], - [ - -17, - 47, - -20 - ], - [ - -18, - 46, - -19 - ], - [ - -18, - 46, - -18 - ], - [ - -18, - 59, - -15 - ], - [ - -18, - 72, - -12 - ], - [ - -18, - 85, - -9 - ], - [ - -18, - 83, - -8 - ], - [ - -17, - 80, - -8 - ], - [ - -16, - 76, - -8 - ], - [ - -9, - 90, - -7 - ], - [ - -9, - 89, - -7 - ], - [ - -2, - 95, - -7 - ], - [ - -2, - 94, - -7 - ], - [ - -1, - 93, - -7 - ], - [ - -4, - 92, - -7 - ], - [ - -7, - 92, - -6 - ], - [ - -9, - 91, - -5 - ], - [ - -11, - 88, - -4 - ], - [ - -14, - 84, - 1 - ], - [ - -15, - 85, - 3 - ], - [ - -15, - 86, - 3 - ], - [ - -15, - 86, - 5 - ], - [ - -15, - 85, - 8 - ], - [ - -15, - 83, - 9 - ], - [ - -15, - 80, - 11 - ], - [ - -15, - 69, - 17 - ] - ], - "interacts": [ - [ - -20, - 52, - 23 - ], - [ - 2, - 92, - -7 - ] - ], - "tnts": [] - }, - { - "index": 75, - "etherwarps": [ - [ - -54, - 76, - 6 - ], - [ - -60, - 74, - -12 - ] - ], - "mines": [ - [ - -60, - 74.5, - -12 - ], - [ - -60, - 73.5, - -12 - ], - [ - -60, - 72.5, - -12 - ], - [ - -60, - 71.5, - -12 - ] - ], - "locations": [ - [ - -51, - 69, - -3 - ], - [ - -53, - 77, - 5 - ], - [ - -53, - 76, - 5 - ], - [ - -54, - 76, - 8 - ], - [ - -56, - 76, - 10 - ], - [ - -59, - 76, - 10 - ], - [ - -60, - 76, - 10 - ], - [ - -60, - 76, - 11 - ], - [ - -59, - 76, - 10 - ], - [ - -57, - 76, - 9 - ], - [ - -57, - 76, - 10 - ], - [ - -55, - 76, - 11 - ], - [ - -53, - 76, - 9 - ], - [ - -53, - 76, - 8 - ], - [ - -53, - 76, - 7 - ], - [ - -53, - 76, - 6 - ], - [ - -54, - 76, - 5 - ], - [ - -59, - 75, - -13 - ], - [ - -59, - 74, - -13 - ], - [ - -59, - 73, - -13 - ], - [ - -59, - 72, - -13 - ], - [ - -59, - 69, - -13 - ], - [ - -59, - 67, - -13 - ], - [ - -59, - 65, - -13 - ], - [ - -57, - 65, - -11 - ], - [ - -58, - 65, - -12 - ], - [ - -59, - 65, - -12 - ], - [ - -59, - 65, - -13 - ], - [ - -61, - 65, - -13 - ], - [ - -61, - 66, - -12 - ], - [ - -61, - 74, - -12 - ], - [ - -60, - 75, - -12 - ], - [ - -61, - 73, - -12 - ], - [ - -48, - 78, - -12 - ], - [ - -49, - 78, - -12 - ], - [ - -40, - 83, - -12 - ], - [ - -41, - 84, - -12 - ], - [ - -39, - 83, - -12 - ], - [ - -36, - 82, - -12 - ], - [ - -32, - 82, - -12 - ], - [ - -13, - 82, - -10 - ], - [ - -10, - 82, - -10 - ], - [ - -6, - 82, - -10 - ], - [ - -1, - 82, - -10 - ], - [ - 15, - 82, - -10 - ], - [ - 18, - 82, - -10 - ], - [ - 22, - 82, - -10 - ], - [ - 31, - 82, - -10 - ], - [ - 30, - 82, - -10 - ], - [ - 32, - 82, - -10 - ], - [ - 35, - 82, - -10 - ], - [ - 41, - 83, - -9 - ], - [ - 44, - 83, - -8 - ], - [ - 48, - 83, - -8 - ], - [ - 50, - 84, - -5 - ], - [ - 51, - 85, - -2 - ], - [ - 52, - 84, - 0 - ], - [ - 51, - 93, - 9 - ], - [ - 51, - 92, - 9 - ], - [ - 51, - 92, - 8 - ], - [ - 53, - 92, - 6 - ], - [ - 53, - 91, - 5 - ], - [ - 54, - 89, - 4 - ], - [ - 54, - 86, - 4 - ], - [ - 55, - 83, - 3 - ] - ], - "interacts": [ - [ - -56, - 65, - -8 - ], - [ - 50, - 92, - 13 - ], - [ - 50, - 92, - 13 - ] - ], - "tnts": [ - [ - -54, - 76.5, - 6 - ], - [ - 38.25, - 83.375, - -9.125 - ] - ] - }, - { - "index": 93, - "etherwarps": [], - "mines": [ - [ - 39, - 76.5, - -1 - ], - [ - 40, - 76.5, - -1 - ] - ], - "locations": [ - [ - -24, - 69, - -9 - ], - [ - -26, - 69, - -8 - ], - [ - -28, - 69, - -5 - ], - [ - -28, - 69, - -1 - ], - [ - -26, - 69, - 3 - ], - [ - -27, - 69, - 6 - ], - [ - -29, - 69, - 8 - ], - [ - -33, - 69, - 8 - ], - [ - -34, - 69, - 7 - ], - [ - -35, - 69, - 5 - ], - [ - -35, - 70, - 5 - ], - [ - -35, - 60, - 5 - ], - [ - -35, - 60, - 4 - ], - [ - -35, - 60, - 2 - ], - [ - -35, - 60, - -1 - ], - [ - -35, - 60, - -2 - ], - [ - -35, - 60, - -3 - ], - [ - -35, - 60, - -4 - ], - [ - -34, - 60, - -1 - ], - [ - -34, - 60, - 2 - ], - [ - -35, - 60, - 5 - ], - [ - -35, - 61, - 5 - ], - [ - -35, - 69, - 5 - ], - [ - -34, - 69, - 7 - ], - [ - -32, - 69, - 10 - ], - [ - -29, - 69, - 11 - ], - [ - -26, - 69, - 9 - ], - [ - -26, - 69, - 5 - ], - [ - -26, - 69, - 1 - ], - [ - -27, - 69, - -3 - ], - [ - -27, - 69, - -7 - ], - [ - -24, - 69, - -8 - ], - [ - -20, - 69, - -8 - ], - [ - -17, - 69, - -5 - ], - [ - -13, - 70, - -6 - ], - [ - -11, - 70, - -9 - ], - [ - -12, - 70, - -11 - ], - [ - -12, - 71, - -11 - ], - [ - -12, - 70, - -11 - ], - [ - -11, - 70, - -11 - ], - [ - -8, - 70, - -10 - ], - [ - -4, - 71, - -8 - ], - [ - 0, - 71, - -7 - ], - [ - 2, - 71, - -8 - ], - [ - 4, - 69, - -9 - ], - [ - 7, - 69, - -8 - ], - [ - 9, - 69, - -6 - ], - [ - 16, - 69, - -1 - ], - [ - 19, - 69, - 1 - ], - [ - 22, - 69, - 1 - ], - [ - 23, - 69, - -1 - ], - [ - 23, - 71, - -1 - ], - [ - 23, - 70, - -1 - ], - [ - 23, - 70, - -3 - ], - [ - 23, - 61, - -3 - ], - [ - 23, - 60, - -3 - ], - [ - 23, - 60, - -2 - ], - [ - 23, - 60, - 9 - ], - [ - 23, - 60, - 12 - ], - [ - 23, - 62, - 5 - ], - [ - 23, - 60, - 5 - ], - [ - 24, - 61, - 5 - ], - [ - 24, - 60, - 5 - ], - [ - 23, - 60, - 5 - ], - [ - 23, - 61, - 5 - ], - [ - 23, - 60, - 5 - ], - [ - 23, - 60, - 3 - ], - [ - 23, - 60, - -1 - ], - [ - 23, - 61, - -3 - ], - [ - 23, - 70, - -3 - ], - [ - 23, - 71, - -3 - ], - [ - 23, - 70, - -2 - ], - [ - 22, - 70, - -1 - ], - [ - 22, - 69, - -1 - ], - [ - 20, - 69, - 1 - ], - [ - 17, - 69, - 1 - ], - [ - 15, - 69, - -2 - ], - [ - 15, - 69, - -3 - ], - [ - 16, - 69, - -2 - ], - [ - 25, - 77, - -2 - ], - [ - 26, - 77, - -2 - ], - [ - 28, - 75, - -2 - ], - [ - 31, - 76, - -2 - ], - [ - 34, - 75, - -2 - ], - [ - 35, - 75, - -2 - ], - [ - 34, - 75, - -2 - ], - [ - 33, - 75, - -2 - ], - [ - 35, - 75, - -2 - ], - [ - 36, - 75, - -2 - ], - [ - 37, - 75, - -2 - ], - [ - 38, - 75, - -2 - ], - [ - 39, - 75, - -2 - ], - [ - 38, - 75, - -2 - ], - [ - 38, - 75, - -3 - ], - [ - 37, - 75, - -4 - ], - [ - 36, - 75, - -4 - ], - [ - 34, - 75, - -3 - ], - [ - 33, - 75, - -3 - ] - ], - "interacts": [ - [ - -36, - 60, - -6 - ], - [ - 22, - 60, - 14 - ], - [ - 43, - 77, - -1 - ], - [ - 43, - 77, - -1 - ], - [ - 43, - 77, - -1 - ] - ], - "tnts": [ - [ - 34, - 75.5, - -1 - ] - ] - }, - { - "index": 77, - "etherwarps": [ - [ - -24, - 71, - 6 - ], - [ - 18, - 78, - -24 - ], - [ - 21, - 79, - -39 - ], - [ - 25, - 96, - 8 - ] - ], - "mines": [], - "locations": [ - [ - -14, - 69, - 3 - ], - [ - -14, - 69, - -1 - ], - [ - -12, - 69, - -5 - ], - [ - -9, - 69, - -9 - ], - [ - -7, - 69, - -10 - ], - [ - -7, - 71, - -9 - ], - [ - -7, - 70, - -9 - ], - [ - -7, - 71, - -9 - ], - [ - -7, - 70, - -9 - ], - [ - -5, - 70, - -9 - ], - [ - -3, - 70, - -9 - ], - [ - -2, - 70, - -9 - ], - [ - -4, - 70, - -8 - ], - [ - -6, - 70, - -8 - ], - [ - -7, - 69, - -8 - ], - [ - -7, - 69, - -9 - ], - [ - -11, - 69, - -9 - ], - [ - -13, - 69, - -7 - ], - [ - -13, - 69, - -5 - ], - [ - -13, - 69, - -2 - ], - [ - -16, - 69, - 0 - ], - [ - -18, - 69, - 1 - ], - [ - -21, - 69, - 2 - ], - [ - -23, - 69, - 3 - ], - [ - -23, - 71, - 7 - ], - [ - -23, - 71, - 8 - ], - [ - -23, - 71, - 11 - ], - [ - -23, - 70, - 11 - ], - [ - -23, - 69, - 11 - ], - [ - -24, - 69, - 11 - ], - [ - -25, - 69, - 11 - ], - [ - -26, - 69, - 11 - ], - [ - -27, - 69, - 11 - ], - [ - -27, - 70, - 11 - ], - [ - -27, - 71, - 11 - ], - [ - -27, - 70, - 11 - ], - [ - -27, - 71, - 11 - ], - [ - -27, - 72, - 11 - ], - [ - -27, - 71, - 11 - ], - [ - -27, - 70, - 11 - ], - [ - -26, - 70, - 11 - ], - [ - -25, - 69, - 11 - ], - [ - -24, - 69, - 11 - ], - [ - -23, - 69, - 11 - ], - [ - -22, - 69, - 11 - ], - [ - -19, - 69, - 10 - ], - [ - -16, - 69, - 10 - ], - [ - -13, - 69, - 11 - ], - [ - -9, - 69, - 11 - ], - [ - -6, - 69, - 11 - ], - [ - -4, - 69, - 9 - ], - [ - -4, - 69, - 8 - ], - [ - -4, - 69, - 7 - ], - [ - -4, - 69, - 5 - ], - [ - -4, - 69, - 6 - ], - [ - -3, - 69, - 8 - ], - [ - -3, - 69, - 10 - ], - [ - 1, - 70, - 11 - ], - [ - 5, - 70, - 11 - ], - [ - 9, - 70, - 10 - ], - [ - 13, - 70, - 7 - ], - [ - 15, - 69, - 3 - ], - [ - 16, - 69, - -2 - ], - [ - 15, - 69, - -6 - ], - [ - 16, - 69, - -10 - ], - [ - 16, - 70, - -15 - ], - [ - 17, - 69, - -19 - ], - [ - 17, - 70, - -24 - ], - [ - 17, - 70, - -27 - ], - [ - 17, - 69, - -28 - ], - [ - 19, - 70, - -26 - ], - [ - 21, - 69, - -22 - ], - [ - 23, - 69, - -18 - ], - [ - 26, - 69, - -18 - ], - [ - 27, - 69, - -19 - ], - [ - 27, - 59, - -19 - ], - [ - 25, - 59, - -20 - ], - [ - 23, - 59, - -20 - ], - [ - 21, - 59, - -19 - ], - [ - 23, - 59, - -20 - ], - [ - 21, - 59, - -20 - ], - [ - 22, - 59, - -20 - ], - [ - 25, - 59, - -20 - ], - [ - 26, - 59, - -20 - ], - [ - 27, - 59, - -20 - ], - [ - 27, - 59, - -19 - ], - [ - 27, - 60, - -19 - ], - [ - 27, - 59, - -19 - ], - [ - 27, - 60, - -18 - ], - [ - 27, - 70, - -19 - ], - [ - 27, - 72, - -19 - ], - [ - 27, - 70, - -19 - ], - [ - 26, - 69, - -18 - ], - [ - 23, - 69, - -18 - ], - [ - 22, - 69, - -20 - ], - [ - 21, - 69, - -22 - ], - [ - 20, - 69, - -23 - ], - [ - 19, - 79, - -23 - ], - [ - 19, - 78, - -23 - ], - [ - 19, - 78, - -24 - ], - [ - 18, - 78, - -27 - ], - [ - 18, - 78, - -29 - ], - [ - 17, - 78, - -29 - ], - [ - 14, - 78, - -30 - ], - [ - 13, - 78, - -31 - ], - [ - 10, - 78, - -31 - ], - [ - 7, - 78, - -31 - ], - [ - 4, - 80, - -31 - ], - [ - 4, - 79, - -31 - ], - [ - 5, - 79, - -31 - ], - [ - 7, - 79, - -31 - ], - [ - 11, - 78, - -32 - ], - [ - 15, - 78, - -33 - ], - [ - 17, - 78, - -35 - ], - [ - 17, - 78, - -36 - ], - [ - 18, - 78, - -37 - ], - [ - 22, - 80, - -38 - ], - [ - 22, - 79, - -38 - ], - [ - 23, - 79, - -38 - ], - [ - 27, - 79, - -38 - ], - [ - 28, - 78, - -38 - ], - [ - 27, - 78, - -38 - ], - [ - 27, - 78, - -36 - ], - [ - 27, - 79, - -25 - ], - [ - 27, - 78, - -24 - ], - [ - 23, - 78, - -24 - ], - [ - 20, - 78, - -21 - ], - [ - 17, - 78, - -17 - ], - [ - 16, - 79, - -13 - ], - [ - 15, - 79, - -11 - ], - [ - 15, - 79, - -10 - ], - [ - 12, - 86, - -4 - ], - [ - 11, - 86, - -2 - ], - [ - 9, - 93, - 2 - ], - [ - 9, - 91, - 2 - ], - [ - 9, - 89, - 3 - ], - [ - 8, - 90, - 7 - ], - [ - 4, - 89, - 8 - ], - [ - 7, - 89, - 8 - ], - [ - 11, - 90, - 8 - ], - [ - 16, - 90, - 9 - ], - [ - 18, - 89, - 9 - ], - [ - 26, - 97, - 9 - ], - [ - 26, - 96, - 9 - ], - [ - 27, - 96, - 9 - ], - [ - 27, - 95, - 9 - ], - [ - 27, - 93, - 9 - ], - [ - 27, - 90, - 9 - ], - [ - 24, - 89, - 9 - ], - [ - 20, - 89, - 8 - ], - [ - 16, - 89, - 5 - ], - [ - 12, - 89, - 1 - ], - [ - 11, - 89, - -2 - ], - [ - 10, - 88, - -4 - ], - [ - 10, - 85, - -5 - ], - [ - 10, - 82, - -6 - ], - [ - 18, - 80, - 1 - ], - [ - 18, - 75, - 1 - ], - [ - 17, - 73, - 0 - ], - [ - 17, - 71, - 0 - ], - [ - 16, - 69, - -3 - ], - [ - 16, - 69, - -6 - ], - [ - 17, - 70, - -11 - ], - [ - 17, - 70, - -16 - ], - [ - 17, - 69, - -21 - ], - [ - 17, - 70, - -25 - ], - [ - 17, - 70, - -27 - ] - ], - "interacts": [ - [ - -29, - 69, - 10 - ], - [ - -29, - 76, - 10 - ], - [ - -29, - 76, - 10 - ], - [ - -5, - 69, - 2 - ], - [ - 16, - 69, - -32 - ], - [ - 25, - 78, - -39 - ], - [ - 1, - 91, - 7 - ], - [ - 16, - 69, - -32 - ] - ], - "tnts": [ - [ - -5, - 69.5, - 7 - ], - [ - 12, - 78.5, - -31 - ] - ] - }, - { - "index": 64, - "etherwarps": [ - [ - 19, - 83, - -13 - ] - ], - "mines": [ - [ - 18, - 84.5, - -13 - ], - [ - 18, - 83.5, - -13 - ], - [ - 16, - 82.5, - -13 - ], - [ - -7, - 70.5, - -23 - ], - [ - -7, - 69.5, - -23 - ] - ], - "locations": [ - [ - -11, - 69, - 15 - ], - [ - -13, - 69, - 15 - ], - [ - -14, - 69, - 15 - ], - [ - -14, - 69, - 16 - ], - [ - -14, - 69, - 17 - ], - [ - -14, - 69, - 15 - ], - [ - -14, - 69, - 14 - ], - [ - -15, - 87, - 11 - ], - [ - -15, - 85, - 10 - ], - [ - -16, - 82, - 10 - ], - [ - -17, - 80, - 8 - ], - [ - -21, - 80, - 7 - ], - [ - -22, - 80, - 6 - ], - [ - -24, - 80, - 6 - ], - [ - -25, - 81, - 6 - ], - [ - -25, - 82, - 6 - ], - [ - -25, - 81, - 6 - ], - [ - -24, - 81, - 6 - ], - [ - -23, - 80, - 4 - ], - [ - -23, - 80, - 1 - ], - [ - -23, - 81, - 0 - ], - [ - -23, - 80, - 0 - ], - [ - -22, - 80, - 0 - ], - [ - -21, - 80, - 2 - ], - [ - -21, - 80, - 4 - ], - [ - -20, - 80, - 5 - ], - [ - -18, - 80, - 7 - ], - [ - -16, - 80, - 5 - ], - [ - -16, - 80, - 4 - ], - [ - -18, - 80, - 3 - ], - [ - -17, - 80, - 2 - ], - [ - -16, - 80, - 2 - ], - [ - -16, - 80, - 0 - ], - [ - -16, - 80, - -2 - ], - [ - -16, - 80, - -4 - ], - [ - -15, - 80, - -11 - ], - [ - -14, - 80, - -21 - ], - [ - -13, - 80, - -20 - ], - [ - -13, - 80, - -17 - ], - [ - -10, - 80, - -14 - ], - [ - -6, - 80, - -14 - ], - [ - -3, - 80, - -12 - ], - [ - -2, - 80, - -8 - ], - [ - 1, - 80, - -6 - ], - [ - 3, - 81, - -5 - ], - [ - 12, - 82, - -6 - ], - [ - 14, - 82, - -6 - ], - [ - 15, - 81, - -6 - ], - [ - 16, - 81, - -6 - ], - [ - 19, - 81, - -6 - ], - [ - 23, - 81, - -7 - ], - [ - 24, - 81, - -9 - ], - [ - 26, - 81, - -14 - ], - [ - 27, - 82, - -15 - ], - [ - 27, - 83, - -15 - ], - [ - 27, - 82, - -15 - ], - [ - 27, - 83, - -15 - ], - [ - 27, - 82, - -15 - ], - [ - 20, - 84, - -14 - ], - [ - 20, - 83, - -14 - ], - [ - 17, - 83, - -14 - ], - [ - 16, - 82, - -14 - ], - [ - 18, - 83, - -14 - ], - [ - 18, - 81, - -14 - ], - [ - 18, - 83, - -14 - ], - [ - 15, - 83, - -15 - ], - [ - 14, - 82, - -15 - ], - [ - 7, - 76, - -18 - ], - [ - 7, - 74, - -19 - ], - [ - 6, - 71, - -19 - ], - [ - 6, - 67, - -20 - ], - [ - 4, - 65, - -21 - ], - [ - -4, - 69, - -25 - ], - [ - -4, - 69, - -24 - ], - [ - -5, - 69, - -22 - ], - [ - -6, - 69, - -20 - ], - [ - -10, - 69, - -20 - ], - [ - -15, - 69, - -19 - ], - [ - -22, - 69, - -18 - ], - [ - -24, - 69, - -18 - ], - [ - -25, - 69, - -18 - ], - [ - -25, - 69, - -19 - ], - [ - -25, - 69, - -20 - ], - [ - -25, - 69, - -21 - ], - [ - -25, - 69, - -22 - ], - [ - -25, - 69, - -23 - ], - [ - -25, - 69, - -24 - ], - [ - -25, - 69, - -25 - ], - [ - -25, - 69, - -22 - ], - [ - -25, - 69, - -20 - ], - [ - -23, - 69, - -18 - ], - [ - -20, - 69, - -16 - ], - [ - -16, - 69, - -15 - ], - [ - -15, - 69, - -13 - ], - [ - -15, - 69, - -11 - ], - [ - -16, - 69, - -7 - ], - [ - -18, - 69, - -4 - ], - [ - -18, - 69, - 1 - ], - [ - -17, - 69, - 3 - ], - [ - -17, - 69, - 6 - ], - [ - -17, - 69, - 9 - ], - [ - -17, - 69, - 14 - ], - [ - -17, - 69, - 17 - ], - [ - -17, - 68, - 19 - ], - [ - -17, - 65, - 19 - ], - [ - -17, - 64, - 19 - ], - [ - -17, - 63, - 19 - ], - [ - -17, - 62, - 19 - ], - [ - -17, - 61, - 19 - ], - [ - -17, - 60, - 19 - ], - [ - -17, - 59, - 19 - ], - [ - -17, - 58, - 19 - ], - [ - -17, - 59, - 19 - ], - [ - -17, - 84, - 19 - ], - [ - -17, - 82, - 18 - ], - [ - -17, - 80, - 18 - ], - [ - -17, - 76, - 17 - ], - [ - -17, - 71, - 16 - ], - [ - -17, - 69, - 15 - ], - [ - -16, - 69, - 12 - ], - [ - -16, - 69, - 11 - ] - ], - "interacts": [ - [ - -25.75, - 82, - 1.75 - ], - [ - 29, - 83, - -16 - ], - [ - -9, - 69, - -24 - ], - [ - -9, - 69, - -24 - ], - [ - -26, - 69, - -27 - ], - [ - -16, - 57, - 22 - ] - ], - "tnts": [ - [ - -18.75, - 81.375, - 10 - ], - [ - 14, - 81.5, - -5 - ], - [ - -8.125, - 69, - -19.125 - ], - [ - -26, - 69.5, - -19 - ] - ] - }, - { - "index": 87, - "etherwarps": [ - [ - -16, - 79, - 15 - ], - [ - -18, - 80, - 13 - ], - [ - -19, - 86, - -14 - ], - [ - -9, - 61, - 1 - ], - [ - -13, - 67, - 0 - ] - ], - "mines": [ - [ - -18, - 80.5, - 12 - ], - [ - -18, - 79.5, - 12 - ], - [ - -18, - 80.5, - 11 - ], - [ - -18, - 79.5, - 11 - ], - [ - -18, - 80.5, - 10 - ], - [ - -18, - 79.5, - 10 - ], - [ - -18, - 78.5, - 8 - ], - [ - -18, - 78.5, - 7 - ], - [ - -20, - 87.5, - -15 - ], - [ - -20, - 86.5, - -15 - ], - [ - -20, - 86.5, - -14 - ], - [ - -21, - 86.5, - -14 - ], - [ - -21, - 87.5, - -14 - ], - [ - -22, - 86.5, - -14 - ], - [ - -22, - 87.5, - -14 - ], - [ - -21, - 87.5, - -15 - ], - [ - -21, - 86.5, - -15 - ], - [ - -22, - 86.5, - -15 - ], - [ - -22, - 87.5, - -15 - ] - ], - "locations": [ - [ - -19, - 69, - 18 - ], - [ - -18, - 69, - 18 - ], - [ - -17, - 69, - 17 - ], - [ - -16, - 69, - 17 - ], - [ - -14, - 69, - 16 - ], - [ - -15, - 79, - 16 - ], - [ - -16, - 79, - 17 - ], - [ - -18, - 79, - 18 - ], - [ - -17, - 81, - 14 - ], - [ - -17, - 80, - 14 - ], - [ - -17, - 79, - 14 - ], - [ - -17, - 79, - 13 - ], - [ - -17, - 79, - 11 - ], - [ - -17, - 79, - 9 - ], - [ - -17, - 79, - 8 - ], - [ - -17, - 79, - 5 - ], - [ - -17, - 79, - 1 - ], - [ - -17, - 79, - -4 - ], - [ - -17, - 79, - -8 - ], - [ - -17, - 79, - -13 - ], - [ - -17, - 79, - -15 - ], - [ - -18, - 77, - -17 - ], - [ - -18, - 74, - -19 - ], - [ - -20, - 69, - -23 - ], - [ - -20, - 68, - -23 - ], - [ - -20, - 66, - -23 - ], - [ - -20, - 59, - -23 - ], - [ - -20, - 59, - -22 - ], - [ - -18, - 59, - -21 - ], - [ - -16, - 59, - -21 - ], - [ - -15, - 59, - -21 - ], - [ - -16, - 59, - -21 - ], - [ - -19, - 59, - -20 - ], - [ - -21, - 59, - -22 - ], - [ - -21, - 59, - -23 - ], - [ - -21, - 59, - -24 - ], - [ - -19, - 72, - -26 - ], - [ - -18, - 72, - -27 - ], - [ - -18, - 70, - -27 - ], - [ - -16, - 69, - -26 - ], - [ - -15, - 69, - -23 - ], - [ - -15, - 69, - -20 - ], - [ - -14, - 69, - -17 - ], - [ - -13, - 69, - -14 - ], - [ - -12, - 69, - -12 - ], - [ - -10, - 70, - -12 - ], - [ - -9, - 70, - -12 - ], - [ - -18, - 87, - -13 - ], - [ - -18, - 86, - -13 - ], - [ - -17, - 86, - -13 - ], - [ - -17, - 86, - -12 - ], - [ - -19, - 86, - -13 - ], - [ - -18, - 86, - -13 - ], - [ - -20, - 86, - -13 - ], - [ - -18, - 86, - -13 - ], - [ - -21, - 86, - -13 - ], - [ - -19, - 86, - -13 - ], - [ - -20, - 86, - -13 - ], - [ - -19, - 86, - -13 - ], - [ - -22, - 86, - -13 - ], - [ - -18, - 86, - -13 - ], - [ - -19, - 86, - -13 - ], - [ - -17, - 86, - -12 - ], - [ - -15, - 86, - -12 - ], - [ - -14, - 84, - -12 - ], - [ - -13, - 82, - -11 - ], - [ - -12, - 78, - -11 - ], - [ - -11, - 73, - -12 - ], - [ - -10, - 69, - -12 - ], - [ - -8, - 69, - -16 - ], - [ - -10, - 69, - -13 - ], - [ - -8, - 69, - -16 - ], - [ - -5, - 69, - -19 - ], - [ - -4, - 69, - -19 - ], - [ - -5, - 69, - -19 - ], - [ - -7, - 69, - -23 - ], - [ - -5, - 69, - -25 - ], - [ - -3, - 70, - -26 - ], - [ - 1, - 72, - -26 - ], - [ - 2, - 73, - -25 - ], - [ - 0, - 72, - -25 - ], - [ - -4, - 84, - -24 - ], - [ - -8, - 92, - -23 - ], - [ - -8, - 91, - -23 - ], - [ - -8, - 89, - -23 - ], - [ - -9, - 86, - -23 - ], - [ - -11, - 86, - -23 - ], - [ - -21, - 86, - -23 - ], - [ - -25, - 87, - -22 - ], - [ - -26, - 87, - -19 - ], - [ - -26, - 86, - -17 - ], - [ - -27, - 86, - -19 - ], - [ - -26, - 87, - -21 - ], - [ - -23, - 88, - -22 - ], - [ - -22, - 88, - -23 - ], - [ - -21, - 87, - -23 - ], - [ - -10, - 89, - -23 - ], - [ - -9, - 88, - -23 - ], - [ - 2, - 89, - -24 - ], - [ - 2, - 87, - -24 - ], - [ - 2, - 84, - -24 - ], - [ - 2, - 80, - -24 - ], - [ - 1, - 75, - -24 - ], - [ - 0, - 72, - -24 - ], - [ - -3, - 71, - -24 - ], - [ - -3, - 70, - -23 - ], - [ - -4, - 70, - -22 - ], - [ - -5, - 69, - -22 - ], - [ - -7, - 69, - -20 - ], - [ - -7, - 69, - -17 - ], - [ - -7, - 70, - -12 - ], - [ - -7, - 71, - -11 - ], - [ - -6, - 71, - -11 - ], - [ - -6, - 69, - -11 - ], - [ - -7, - 68, - -9 - ], - [ - -10, - 68, - -6 - ], - [ - -12, - 68, - -6 - ], - [ - -10, - 68, - -5 - ], - [ - -9, - 67, - -4 - ], - [ - -9, - 67, - -3 - ], - [ - -8, - 69, - -1 - ], - [ - -7, - 69, - 0 - ], - [ - -6, - 68, - 0 - ], - [ - -6, - 68, - 1 - ], - [ - -4, - 68, - 4 - ], - [ - -3, - 68, - 4 - ], - [ - -3, - 67, - 4 - ], - [ - -3, - 67, - 2 - ], - [ - -2, - 67, - 2 - ], - [ - -2, - 66, - 2 - ], - [ - -2, - 60, - 2 - ], - [ - -4, - 60, - 1 - ], - [ - -4, - 60, - 2 - ], - [ - -8, - 62, - 2 - ], - [ - -10, - 61, - 2 - ], - [ - -10, - 60, - 2 - ], - [ - -11, - 60, - 2 - ], - [ - -12, - 60, - 2 - ], - [ - -12, - 67, - 1 - ], - [ - -12, - 68, - 1 - ], - [ - -12, - 69, - 1 - ], - [ - -12, - 68, - 1 - ], - [ - -16, - 75, - 1 - ], - [ - -16, - 74, - 1 - ], - [ - -16, - 72, - 1 - ], - [ - -16, - 69, - 1 - ], - [ - -15, - 69, - 1 - ] - ], - "interacts": [ - [ - -17, - 79, - 15 - ], - [ - -17.09375, - 80.5625, - 14.9375 - ], - [ - -13, - 59, - -24 - ], - [ - -12.75, - 61.5, - -21.125 - ], - [ - -25, - 86, - -15 - ], - [ - -25, - 86, - -15 - ], - [ - -25, - 86, - -15 - ], - [ - -25, - 86, - -15 - ], - [ - -25, - 86, - -15 - ], - [ - -25, - 86, - -15 - ], - [ - -25, - 86, - -15 - ], - [ - -25, - 86, - -15 - ], - [ - -25, - 86, - -15 - ], - [ - -25, - 86, - -15 - ], - [ - -25, - 86, - -15 - ], - [ - -25, - 86, - -15 - ], - [ - -17, - 61, - 1 - ] - ], - "tnts": [ - [ - -18, - 69.5, - 16 - ], - [ - -21, - 68.5, - -24 - ], - [ - -19, - 86.5, - -14 - ], - [ - -3.25, - 94.75, - -26.5 - ], - [ - -8.375, - 70, - -23.75 - ] - ] - }, - { - "index": 83, - "etherwarps": [ - [ - 5, - 86, - 6 - ], - [ - 2, - 84, - 2 - ], - [ - 30, - 83, - -1 - ] - ], - "mines": [ - [ - 8, - 70.5, - -9 - ] - ], - "locations": [ - [ - -12, - 70, - -2 - ], - [ - -10, - 70, - -2 - ], - [ - -6, - 70, - -2 - ], - [ - -2, - 70, - -2 - ], - [ - 2, - 69, - -4 - ], - [ - 6, - 69, - -6 - ], - [ - 7, - 69, - -9 - ], - [ - 7, - 69, - -8 - ], - [ - 7, - 69, - -5 - ], - [ - 6, - 70, - -3 - ], - [ - 6, - 86, - 5 - ], - [ - 9, - 86, - 6 - ], - [ - 11, - 86, - 6 - ], - [ - 13, - 86, - 6 - ], - [ - 10, - 86, - 6 - ], - [ - 7, - 86, - 6 - ], - [ - 5, - 86, - 5 - ], - [ - 4, - 86, - 6 - ], - [ - 3, - 86, - 6 - ], - [ - 3, - 85, - 6 - ], - [ - 3, - 85, - 1 - ], - [ - 3, - 84, - 1 - ], - [ - 3, - 85, - 0 - ], - [ - 4, - 85, - 0 - ], - [ - 31, - 84, - -2 - ], - [ - 31, - 83, - -2 - ], - [ - 30, - 83, - -3 - ], - [ - 30, - 82, - -3 - ], - [ - 29, - 80, - -4 - ], - [ - 29, - 77, - -4 - ], - [ - 29, - 73, - -5 - ], - [ - 29, - 69, - -5 - ] - ], - "interacts": [ - [ - 7, - 69, - -10 - ], - [ - 10, - 70, - -10 - ], - [ - 13.0625, - 86.78125, - 7.15625 - ], - [ - 32, - 83, - 0 - ] - ], - "tnts": [] - }, - { - "index": 58, - "etherwarps": [], - "mines": [], - "locations": [ - [ - -2, - 69, - -2 - ], - [ - -2, - 69, - 0 - ], - [ - -2, - 69, - 3 - ], - [ - -3, - 69, - 2 - ], - [ - -3, - 69, - 0 - ] - ], - "interacts": [ - [ - -5.28125, - 69.6875, - 7.0625 - ] - ], - "tnts": [] - }, - { - "index": 126, - "etherwarps": [], - "mines": [ - [ - -8, - 70.5, - -9 - ], - [ - -9, - 70.5, - -9 - ], - [ - -9, - 70.5, - -8 - ], - [ - -10, - 70.5, - -8 - ], - [ - -10, - 70.5, - -7 - ], - [ - -11, - 70.5, - -7 - ], - [ - -11, - 70.5, - -6 - ], - [ - -11, - 71.5, - -7 - ] - ], - "locations": [ - [ - 1, - 69, - -11 - ], - [ - 0, - 69, - -11 - ], - [ - -1, - 69, - -11 - ], - [ - -2, - 69, - -10 - ], - [ - -1, - 69, - -10 - ], - [ - 0, - 69, - -11 - ], - [ - -3, - 69, - -10 - ], - [ - -6, - 69, - -10 - ], - [ - -7, - 69, - -9 - ], - [ - -5, - 69, - -11 - ], - [ - -3, - 69, - -11 - ], - [ - -2, - 69, - -10 - ], - [ - 0, - 69, - -9 - ], - [ - 3, - 69, - -10 - ], - [ - 4, - 69, - -10 - ], - [ - 1, - 69, - -10 - ], - [ - -2, - 69, - -9 - ], - [ - -3, - 69, - -9 - ], - [ - -5, - 69, - -9 - ], - [ - -7, - 69, - -9 - ], - [ - -7, - 69, - -10 - ], - [ - -5, - 69, - -12 - ], - [ - -3, - 69, - -12 - ], - [ - -3, - 69, - -11 - ], - [ - -2, - 69, - -10 - ], - [ - -1, - 69, - -10 - ], - [ - 0, - 69, - -11 - ] - ], - "interacts": [ - [ - -11, - 71, - -6 - ] - ], - "tnts": [ - [ - -4, - 69.5, - -11 - ], - [ - -8, - 69.5, - -10 - ], - [ - -8, - 69.5, - -10 - ] - ] - }, - { - "index": 51, - "etherwarps": [ - [ - 4, - 77, - 10 - ] - ], - "mines": [ - [ - 9, - 84.5, - -7 - ], - [ - 10, - 84.5, - -7 - ] - ], - "locations": [ - [ - -2, - 68, - 3 - ], - [ - -2, - 70, - 3 - ], - [ - -2, - 68, - 3 - ], - [ - -6, - 82, - 7 - ], - [ - -6, - 80, - 7 - ], - [ - -8, - 79, - 8 - ], - [ - -9, - 78, - 8 - ], - [ - -9, - 77, - 8 - ], - [ - -8, - 77, - 8 - ], - [ - -8, - 77, - 9 - ], - [ - 5, - 78, - 11 - ], - [ - 5, - 77, - 11 - ], - [ - 6, - 77, - 11 - ], - [ - 7, - 77, - 10 - ], - [ - 7, - 78, - 10 - ], - [ - 8, - 78, - 9 - ], - [ - 8, - 79, - 8 - ], - [ - 8, - 81, - 6 - ], - [ - 7, - 83, - 4 - ], - [ - 8, - 83, - 2 - ], - [ - 8, - 83, - -2 - ], - [ - 8, - 83, - -4 - ], - [ - 9, - 83, - -5 - ], - [ - 9, - 83, - -6 - ], - [ - 9, - 83, - -3 - ], - [ - 8, - 83, - 0 - ], - [ - 9, - 83, - 3 - ], - [ - 10, - 83, - 6 - ], - [ - 11, - 82, - 7 - ], - [ - 11, - 79, - 8 - ], - [ - 11, - 78, - 9 - ], - [ - 11, - 78, - 8 - ], - [ - 11, - 78, - 7 - ], - [ - 11, - 77, - 7 - ], - [ - 11, - 75, - 7 - ], - [ - 11, - 75, - 8 - ], - [ - 11, - 73, - 8 - ], - [ - 11, - 71, - 8 - ], - [ - 11, - 69, - 8 - ], - [ - 10, - 69, - 8 - ], - [ - 10, - 69, - 9 - ], - [ - 10, - 69, - 10 - ], - [ - 10, - 69, - 11 - ], - [ - 9, - 69, - 10 - ], - [ - 9, - 69, - 9 - ], - [ - 10, - 69, - 6 - ], - [ - 10, - 69, - 5 - ], - [ - 10, - 69, - 4 - ], - [ - 10, - 69, - 3 - ], - [ - 10, - 69, - 2 - ], - [ - 10, - 69, - 1 - ], - [ - 10, - 69, - 0 - ], - [ - 11, - 69, - -1 - ], - [ - 11, - 69, - -2 - ], - [ - 8, - 69, - -1 - ], - [ - 5, - 69, - -1 - ], - [ - 4, - 69, - 0 - ] - ], - "interacts": [ - [ - -9, - 77, - 9 - ], - [ - 11, - 84, - -7 - ], - [ - 11, - 85.8125, - -6.96875 - ], - [ - 12, - 69, - 9 - ], - [ - 6, - 69, - 9 - ], - [ - 9, - 70, - 13 - ] - ], - "tnts": [ - [ - 10, - 75.5, - 7 - ], - [ - 10, - 69.5, - -3 - ] - ] - }, - { - "index": 70, - "etherwarps": [ - [ - 24, - 58, - 9 - ] - ], - "mines": [ - [ - 0, - 69.5, - -9 - ], - [ - 0, - 66.5, - -10 - ], - [ - 0, - 65.5, - -10 - ] - ], - "locations": [ - [ - -3, - 70, - -11 - ], - [ - -2, - 70, - -11 - ], - [ - -1, - 70, - -10 - ], - [ - 1, - 70, - -10 - ], - [ - 1, - 69, - -10 - ], - [ - 1, - 68, - -10 - ], - [ - 1, - 67, - -10 - ], - [ - 1, - 67, - -11 - ], - [ - 1, - 66, - -11 - ], - [ - 1, - 65, - -11 - ], - [ - 1, - 62, - -11 - ], - [ - 1, - 59, - -11 - ], - [ - 0, - 58, - -11 - ], - [ - -3, - 58, - -11 - ], - [ - -8, - 58, - -11 - ], - [ - -12, - 58, - -11 - ], - [ - -16, - 58, - -11 - ], - [ - -21, - 58, - -10 - ], - [ - -23, - 58, - -7 - ], - [ - -22, - 58, - -4 - ], - [ - -23, - 58, - 1 - ], - [ - -23, - 59, - 5 - ], - [ - -24, - 61, - 7 - ], - [ - -25, - 62, - 11 - ], - [ - -26, - 62, - 12 - ], - [ - -27, - 61, - 12 - ], - [ - -27, - 60, - 12 - ], - [ - -27, - 59, - 12 - ], - [ - -27, - 58, - 12 - ], - [ - -27, - 57, - 12 - ], - [ - -28, - 56, - 12 - ], - [ - -28, - 56, - 9 - ], - [ - -28, - 56, - 7 - ], - [ - -26, - 55, - 7 - ], - [ - -24, - 53, - 7 - ], - [ - -23, - 50, - 7 - ], - [ - -12, - 50, - 9 - ], - [ - -11, - 49, - 9 - ], - [ - -10, - 49, - 9 - ], - [ - -7, - 49, - 9 - ], - [ - -5, - 49, - 9 - ], - [ - -4, - 49, - 10 - ], - [ - -3, - 49, - 9 - ], - [ - -1, - 49, - 9 - ], - [ - 0, - 49, - 10 - ], - [ - -1, - 49, - 10 - ], - [ - -2, - 49, - 10 - ], - [ - -3, - 49, - 10 - ], - [ - -3, - 49, - 11 - ], - [ - -3, - 49, - 10 - ], - [ - -2, - 49, - 9 - ], - [ - -1, - 49, - 9 - ], - [ - 1, - 49, - 8 - ], - [ - 2, - 49, - 8 - ], - [ - 3, - 49, - 9 - ], - [ - 4, - 49, - 10 - ], - [ - 5, - 49, - 11 - ], - [ - 5, - 49, - 12 - ], - [ - 5, - 50, - 12 - ], - [ - 5, - 51, - 12 - ], - [ - 5, - 50, - 12 - ], - [ - 4, - 49, - 11 - ], - [ - 5, - 49, - 11 - ], - [ - 5, - 49, - 10 - ], - [ - 5, - 49, - 9 - ], - [ - 6, - 49, - 9 - ], - [ - 7, - 49, - 9 - ], - [ - 8, - 49, - 10 - ], - [ - 8, - 49, - 9 - ], - [ - 9, - 49, - 8 - ], - [ - 10, - 49, - 8 - ], - [ - 14, - 49, - 8 - ], - [ - 16, - 49, - 8 - ], - [ - 20, - 49, - 8 - ], - [ - 24, - 49, - 8 - ], - [ - 25, - 49, - 8 - ], - [ - 26, - 49, - 8 - ], - [ - 25, - 58, - 8 - ], - [ - 21, - 58, - 9 - ], - [ - 18, - 58, - 10 - ], - [ - 15, - 61, - 10 - ], - [ - 14, - 62, - 11 - ], - [ - 11, - 65, - 11 - ], - [ - 9, - 67, - 11 - ], - [ - 7, - 69, - 10 - ], - [ - 5, - 69, - 10 - ], - [ - 4, - 69, - 10 - ] - ], - "interacts": [ - [ - 1, - 67, - -8 - ], - [ - -25, - 57, - 13 - ], - [ - -4.09375, - 49.71875, - 13.125 - ], - [ - 4, - 55, - 14 - ], - [ - 8, - 49, - 14 - ], - [ - 28, - 49, - 9 - ] - ], - "tnts": [ - [ - -12, - 50.5, - 10 - ] - ] - }, - { - "index": 4, - "etherwarps": [ - [ - -11, - 85, - 3 - ] - ], - "mines": [], - "locations": [ - [ - 0, - 71, - 1 - ], - [ - -1, - 71, - 2 - ], - [ - -3, - 71, - 1 - ], - [ - -11, - 85, - -2 - ], - [ - -12, - 83, - -2 - ], - [ - -12, - 81, - -3 - ], - [ - -12, - 81, - -5 - ], - [ - -11, - 81, - -6 - ], - [ - -11, - 81, - -7 - ], - [ - -10, - 81, - -7 - ], - [ - -10, - 81, - -8 - ], - [ - -10, - 81, - -7 - ], - [ - -11, - 81, - -7 - ], - [ - -11, - 81, - -6 - ], - [ - -12, - 81, - -4 - ], - [ - -12, - 81, - -3 - ], - [ - -12, - 81, - -2 - ], - [ - -12, - 85, - 6 - ], - [ - -12, - 84, - 8 - ], - [ - -11, - 83, - 9 - ], - [ - -8, - 83, - 10 - ], - [ - -7, - 83, - 10 - ], - [ - -7, - 89, - 10 - ], - [ - -7, - 88, - 10 - ], - [ - -7, - 85, - 10 - ], - [ - -7, - 83, - 10 - ], - [ - -6, - 83, - 10 - ], - [ - -2, - 83, - 9 - ], - [ - -1, - 82, - 8 - ], - [ - -1, - 81, - 6 - ], - [ - -3, - 81, - 2 - ], - [ - -2, - 81, - -1 - ], - [ - -1, - 79, - -2 - ], - [ - -1, - 76, - -3 - ], - [ - -1, - 72, - -4 - ], - [ - -1, - 71, - -4 - ], - [ - -1, - 71, - -3 - ], - [ - -2, - 71, - 0 - ], - [ - -2, - 71, - 1 - ], - [ - -3, - 71, - 0 - ], - [ - -5, - 71, - 0 - ], - [ - -5, - 71, - -1 - ], - [ - -5, - 71, - 0 - ], - [ - -5, - 71, - 1 - ], - [ - -5, - 71, - 2 - ], - [ - -5, - 71, - 0 - ] - ], - "interacts": [ - [ - -8, - 81, - -13 - ], - [ - -6.9375, - 92.21875, - 9.875 - ] - ], - "tnts": [] - }, - { - "index": 81, - "etherwarps": [ - [ - 35, - 73, - -12 - ], - [ - 43, - 80, - -6 - ], - [ - 26, - 82, - 1 - ] - ], - "mines": [ - [ - 16, - 69.5, - 10 - ] - ], - "locations": [ - [ - 16, - 69, - 8 - ], - [ - 19, - 69, - 9 - ], - [ - 23, - 69, - 9 - ], - [ - 27, - 69, - 8 - ], - [ - 30, - 69, - 5 - ], - [ - 32, - 69, - 3 - ], - [ - 32, - 69, - 2 - ], - [ - 31, - 69, - 0 - ], - [ - 31, - 69, - -1 - ], - [ - 30, - 69, - -2 - ], - [ - 36, - 73, - -11 - ], - [ - 36, - 74, - -11 - ], - [ - 36, - 73, - -11 - ], - [ - 37, - 73, - -10 - ], - [ - 39, - 73, - -9 - ], - [ - 41, - 73, - -6 - ], - [ - 42, - 72, - -6 - ], - [ - 42, - 70, - -5 - ], - [ - 42, - 69, - -5 - ], - [ - 44, - 69, - -6 - ], - [ - 45, - 69, - -7 - ], - [ - 45, - 69, - -8 - ], - [ - 44, - 81, - -5 - ], - [ - 44, - 80, - -5 - ], - [ - 42, - 80, - -4 - ], - [ - 41, - 81, - -2 - ], - [ - 40, - 81, - 0 - ], - [ - 37, - 81, - 2 - ], - [ - 35, - 81, - 2 - ], - [ - 34, - 81, - 2 - ], - [ - 27, - 82, - 2 - ], - [ - 26, - 82, - 2 - ], - [ - 25, - 81, - 2 - ], - [ - 25, - 81, - 0 - ], - [ - 23, - 81, - 0 - ], - [ - 23, - 82, - 0 - ], - [ - 23, - 89, - 0 - ], - [ - 23, - 88, - 0 - ], - [ - 22, - 88, - 0 - ], - [ - 23, - 87, - 0 - ], - [ - 23, - 81, - 0 - ], - [ - 23, - 82, - 0 - ], - [ - 24, - 81, - 0 - ], - [ - 25, - 81, - 0 - ], - [ - 25, - 81, - 2 - ], - [ - 26, - 81, - 5 - ], - [ - 26, - 81, - 6 - ], - [ - 27, - 82, - 6 - ], - [ - 28, - 82, - 6 - ], - [ - 29, - 80, - 7 - ], - [ - 29, - 79, - 7 - ], - [ - 29, - 74, - 8 - ], - [ - 29, - 70, - 8 - ], - [ - 28, - 69, - 10 - ], - [ - 25, - 69, - 10 - ], - [ - 18, - 70, - 10 - ], - [ - 16, - 69, - 10 - ], - [ - 13, - 69, - 8 - ], - [ - 9, - 69, - 8 - ], - [ - 4, - 69, - 8 - ], - [ - 0, - 69, - 6 - ], - [ - -4, - 69, - 6 - ], - [ - -13, - 69, - 6 - ], - [ - -14, - 69, - 7 - ], - [ - -19, - 69, - 9 - ], - [ - -21, - 69, - 7 - ], - [ - -20, - 69, - 2 - ], - [ - -20, - 69, - 1 - ], - [ - -17, - 69, - -2 - ], - [ - -15, - 69, - -4 - ], - [ - -12, - 69, - -4 - ], - [ - -15, - 69, - -4 - ], - [ - -19, - 69, - -4 - ], - [ - -22, - 69, - -4 - ], - [ - -23, - 69, - -3 - ], - [ - -23, - 69, - -2 - ], - [ - -21, - 69, - -2 - ], - [ - -15, - 93, - -1 - ], - [ - -15, - 92, - -1 - ], - [ - -15, - 93, - -1 - ], - [ - -15, - 91, - -1 - ], - [ - -15, - 89, - -1 - ], - [ - -14, - 88, - -1 - ], - [ - -14, - 89, - -1 - ], - [ - -14, - 88, - -1 - ], - [ - -16, - 88, - -1 - ], - [ - -18, - 86, - -1 - ], - [ - -18, - 84, - 0 - ], - [ - -19, - 82, - 0 - ], - [ - -19, - 81, - 0 - ], - [ - -19, - 79, - 0 - ], - [ - -19, - 75, - 0 - ], - [ - -19, - 71, - 0 - ], - [ - -19, - 69, - 0 - ], - [ - -20, - 69, - 0 - ], - [ - -23, - 69, - 1 - ], - [ - -25, - 69, - 1 - ] - ], - "interacts": [ - [ - 16, - 69, - 11 - ], - [ - 40.03125, - 69.125, - -7.34375 - ], - [ - 45, - 69, - -12 - ], - [ - 25.46875, - 81.40625, - 1.625 - ], - [ - 19.96875, - 87.8125, - -3.125 - ], - [ - 19, - 87, - -1 - ], - [ - 24.21875, - 81.5, - 0.28125 - ], - [ - -12, - 69, - -4 - ], - [ - -13, - 93, - -1.75 - ] - ], - "tnts": [] - }, - { - "index": 63, - "etherwarps": [], - "mines": [ - [ - -19, - 70.5, - 0 - ], - [ - -19, - 70.5, - -1 - ] - ], - "locations": [ - [ - -20, - 69, - -1 - ], - [ - -19, - 69, - -1 - ], - [ - -20, - 69, - -1 - ], - [ - -21, - 69, - -1 - ] - ], - "interacts": [ - [ - -17, - 69, - -2 - ] - ], - "tnts": [] } ]
\ No newline at end of file diff --git a/features/dungeonSolvers/index.js b/features/dungeonSolvers/index.js index 53d1d2d..2095e10 100644 --- a/features/dungeonSolvers/index.js +++ b/features/dungeonSolvers/index.js @@ -11,7 +11,9 @@ import { fetch } from "../../utils/networkUtils"; import { delay } from "../../utils/delayUtils"; import { Waypoint } from "../../utils/renderJavaUtils"; import { calculateDistanceQuick } from "../../utils/utils"; +import { drawLinePoints } from "../../utils/renderUtils"; +const MCBlock = Java.type("net.minecraft.block.Block"); const EntityBlaze = Java.type("net.minecraft.entity.monster.EntityBlaze"); let translate; try { @@ -82,6 +84,7 @@ class DungeonSolvers extends Feature { this.hudElements.push(this.scoreElement); this.blazeSolver = new ToggleSetting("Blaze Puzzle Solver", "Shows what order to kill the blazes in", true, "blaze_solver", this); + this.respawnTimerTerra = new ToggleSetting("Terracotter respawn timer", "", true, "f6_timer_thing", this); this.lastDungFinishes = []; this.lastDungExps = []; @@ -345,6 +348,58 @@ class DungeonSolvers extends Feature { //§r§6Soopyboo32§r§a activated a lever! (§r§c8§r§a/8)§r //§r§6Soopyboo32§r§a completed a device! (§r§c3§r§a/8)§r //§r§bBossmanLeo§r§a activated a terminal! (§r§c2§r§a/8)§r + + this.inf6boss = false + this.registerStep(true, 1, () => { + this.inf6boss = this.getCurrentRoomId() === "sadan" + }) + + let packetRecieved = this.registerCustom("packetReceived", this.packetReceived).registeredWhen(() => this.inf6boss && this.respawnTimerTerra.getValue()) + + try { + packetRecieved.trigger.setPacketClasses([net.minecraft.network.play.server.S23PacketBlockChange, net.minecraft.network.play.server.S22PacketMultiBlockChange]) + } catch (e) { }//older ct version + + this.timersData = [] + } + getCurrentRoomId() { + if (Scoreboard.getLines().length === 0) return + let id = ChatLib.removeFormatting(Scoreboard.getLineByIndex(Scoreboard.getLines().length - 1).getName()).trim().split(" ").pop() + + return id + } + getBlockIdFromState(state) { + return MCBlock[m.getStateId](state) + } + + packetReceived(packet, event) { + if (!this.inf6boss || !this.respawnTimerTerra.getValue()) return + + let packetType = new String(packet.class.getSimpleName()).valueOf() + if (packetType === "S23PacketBlockChange") { + let position = new BlockPos(packet[m.getBlockPosition.S23PacketBlockChange]()) + let blockState = this.getBlockIdFromState(packet[m.getBlockState.S23PacketBlockChange]()) + let oldBlockState = this.getBlockIdFromState(World.getBlockStateAt(position)) + + if (oldBlockState === 0 && blockState === 4240 && this.inf6boss) { + this.timerThing(position) + } + } + if (packetType === "S22PacketMultiBlockChange") { + packet[m.getChangedBlocks]().forEach(b => { + let position = new BlockPos(b[m.getPos.S22PacketMultiBlockChange$BlockUpdateData]()) + let blockState = this.getBlockIdFromState(b[m.getBlockState.S22PacketMultiBlockChange$BlockUpdateData]()) + let oldBlockState = this.getBlockIdFromState(World.getBlockStateAt(position)) + + if (oldBlockState === 0 && blockState === 4240 && this.inf6boss) { + this.timerThing(position) + } + }) + } + } + + timerThing(position) { + this.timersData.push([position, Date.now() + 5000]) } areaUpdated() { @@ -610,6 +665,18 @@ class DungeonSolvers extends Feature { } } } + + let shifts = 0 + for (let data of this.timersData) { + let [position, time] = data + + if (Date.now() > time) { + shifts++ + } + + Tessellator.drawString(((time - Date.now()) / 1000).toFixed(1) + "s", position.getX(), position.getY() + 0.5, position.getZ(), Renderer.color(0, 255, 50), false, 0.025, false) + } + for (let i = 0; i < shifts; i++) this.timersData.shift() } renderEntity(entity, position, ticks, event) { @@ -974,7 +1041,7 @@ class DungeonSolvers extends Feature { step_5fps() { if (this.IceSprayWarn.getValue()) { World.getAllEntitiesOfType(net.minecraft.entity.item.EntityArmorStand).forEach((name) => { - let MobName = name.getName() + let MobName = ChatLib.removeFormatting(name.getName()) if (MobName.includes("Ice Spray Wand") && name.getTicksExisted() <= 199) { Client.showTitle(`&r&6&l[&b&l&kO&6&l] ${MobName.toUpperCase()} &6&l[&b&l&kO&6&l]`, "", 0, 40, 10); ChatLib.chat(`&6&lRARE DROP! &r${MobName}`) diff --git a/features/fpsImproveGui/index.js b/features/fpsImproveGui/index.js new file mode 100644 index 0000000..8387dbd --- /dev/null +++ b/features/fpsImproveGui/index.js @@ -0,0 +1,58 @@ +/// <reference types="../../../CTAutocomplete" /> +/// <reference lib="es2015" /> +import SoopyTextElement from "../../../guimanager/GuiElement/SoopyTextElement"; +import Feature from "../../featureClass/class"; +import GuiPage from "../soopyGui/GuiPage"; +import SoopyBoxElement from "../../../guimanager/GuiElement/SoopyBoxElement"; +import SoopyMarkdownElement from "../../../guimanager/GuiElement/SoopyMarkdownElement"; +import SoopyImageElement from "../../../guimanager/GuiElement/SoopyImageElement"; +import SoopyGuiElement from "../../../guimanager/GuiElement/SoopyGuiElement"; +import SoopyMouseClickEvent from "../../../guimanager/EventListener/SoopyMouseClickEvent"; +import ButtonWithArrow from "../../../guimanager/GuiElement/ButtonWithArrow"; +import BoxWithText from "../../../guimanager/GuiElement/BoxWithText"; +import { fetch } from "../../utils/networkUtils"; + +class FpsImproveGui extends Feature { + constructor() { + super() + } + + onEnable() { + this.initVariables() + + // this.GuiPage = new FpsPage() + + } + + initVariables() { + this.GuiPage = undefined + } + + onDisable() { + this.initVariables() + } +} + + +class FpsPage extends GuiPage { + constructor() { + super(7) + + this.name = "Fps Improve Tips" + + this.pages = [this.newPage()] + + // this.pages[0].addChild(this.streamsBox) + + this.finaliseLoading() + } + + onOpen() { + this.updateStreams() + } +} + + +module.exports = { + class: new FpsImproveGui() +}
\ No newline at end of file diff --git a/features/fpsImproveGui/metadata.json b/features/fpsImproveGui/metadata.json new file mode 100644 index 0000000..a292c1d --- /dev/null +++ b/features/fpsImproveGui/metadata.json @@ -0,0 +1,8 @@ +{ + "name": "Fps improvement tips", + "description": "May help", + "isHidden": true, + "isTogglable": false, + "defaultEnabled": true, + "sortA": 0 +}
\ No newline at end of file diff --git a/features/globalSettings/index.js b/features/globalSettings/index.js index 2f9d3bc..c317eb4 100644 --- a/features/globalSettings/index.js +++ b/features/globalSettings/index.js @@ -42,7 +42,7 @@ class GlobalSettings extends Feature { this.fixNeuNetworth = new ToggleSetting("Change networth in NEU pv to soopynw", "This should make it a lot more accurate", true, "neu_nw_override", this) this.darkTheme = new ToggleSetting("Dark theme", "This might be scuffed because guis are still made in light theme", false, "dark_theme", this) - this.linkPreview = new ToggleSetting("Link preview", "Shows a preview of where a link will take you", true, "link_preview", this) + // this.linkPreview = new ToggleSetting("Link preview", "Shows a preview of where a link will take you", true, "link_preview", this) this.reportErrorsSetting = new ToggleSetting("Send module errors to soopy server", "This will allow me to more effectivly fix them", false, "privacy_send_errors", this) @@ -119,7 +119,7 @@ class GlobalSettings extends Feature { this.registerEvent("postGuiRender", () => { if (Player.getContainer() && Player.getContainer().getName() === "Cookie Clicker v0.01" && Player.getContainer().getStackInSlot(13)) this.renderCookie() - if (this.linkPreview.getValue() && Client.currentGui && Client.currentGui.get() && Client.currentGui.get().toString().startsWith("net.minecraft.client.gui.GuiConfirmOpenLink")) this.renderWebpage() + // if (this.linkPreview.getValue() && Client.currentGui && Client.currentGui.get() && Client.currentGui.get().toString().startsWith("net.minecraft.client.gui.GuiConfirmOpenLink")) this.renderWebpage() }) this.registerStep(false, 1, () => { if (Player.getContainer() && Player.getContainer().getName() === "Cookie Clicker v0.01" && Player.getContainer().getStackInSlot(13)) this.tickCookie() @@ -138,18 +138,18 @@ class GlobalSettings extends Feature { }) } - renderWebpage() { - let url = this.getField(Client.currentGui.get(), f.linkText) + // renderWebpage() { + // let url = this.getField(Client.currentGui.get(), f.linkText) - let image = renderLibs.getImage("https://soopymc.my.to/api/soopyv2/webpage?webpage=" + url) + // let image = renderLibs.getImage("https://soopymc.my.to/api/soopyv2/webpage?webpage=" + url) - if (image) { - let scale = Renderer.screen.getHeight() * 0.5 / image.getTextureHeight() - image.draw(Renderer.screen.getWidth() / 2 - image.getTextureWidth() * scale / 2, Renderer.screen.getHeight() / 2, scale * image.getTextureWidth(), scale * image.getTextureHeight()) - } else { - Renderer.drawString("Loading website preview...", Renderer.screen.getWidth() / 2 - Renderer.getStringWidth("Loading website preview...") / 2, Renderer.screen.getHeight() * 3 / 4) - } - } + // if (image) { + // let scale = Renderer.screen.getHeight() * 0.5 / image.getTextureHeight() + // image.draw(Renderer.screen.getWidth() / 2 - image.getTextureWidth() * scale / 2, Renderer.screen.getHeight() / 2, scale * image.getTextureWidth(), scale * image.getTextureHeight()) + // } else { + // Renderer.drawString("Loading website preview...", Renderer.screen.getWidth() / 2 - Renderer.getStringWidth("Loading website preview...") / 2, Renderer.screen.getHeight() * 3 / 4) + // } + // } guiClicked(mouseX, mouseY, button, gui, event) { if (gui.class.toString() === "class net.minecraft.client.gui.inventory.GuiChest" && Player.getContainer().getName() === "Cookie Clicker v0.01") { |