diff options
Diffstat (limited to 'features/dungeonMap2/index.js')
-rw-r--r-- | features/dungeonMap2/index.js | 312 |
1 files changed, 0 insertions, 312 deletions
diff --git a/features/dungeonMap2/index.js b/features/dungeonMap2/index.js deleted file mode 100644 index 61909a0..0000000 --- a/features/dungeonMap2/index.js +++ /dev/null @@ -1,312 +0,0 @@ -/// <reference types="../../../CTAutocomplete" /> -/// <reference lib="es2015" /> - -import Feature from "../../featureClass/class"; -import renderLibs from "../../../guimanager/renderLibs"; -import DungeonMapData from "./DungeonMapData"; -import DungeonRoomStaticData from "./DungeonRoomStaticData"; -import ImageLocationSetting from "../settings/settingThings/imageLocation"; -import ToggleSetting from "../settings/settingThings/toggle"; -import { f, m } from "../../../mappings/mappings"; - -const DefaultVertexFormats = Java.type("net.minecraft.client.renderer.vertex.DefaultVertexFormats") -const MCTessellator = Java.type("net.minecraft.client.renderer.Tessellator") - -class DungeonMap extends Feature { - constructor() { - super() - } - - onEnable() { - if (Player.getUUID().toString() !== "dc8c3964-7b29-4e03-ae9e-d13ebd65dd29") { - new SettingBase("not Coming soontm", "maby", undefined, "coming_soontm", this) - return - } - 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"))), 150, 150) - this.mapSecrets = new ToggleSetting("Show secret count instead of tick", "Syncs between soopyv2 users", true, "dmap_secrets", this) - - this.lastRoomId = undefined - - /**@type {DungeonMapData} */ - this.currentDungeon = undefined - this.lastChange = 0 - - this.roomXY = this.getRoomXYWorld().join(",") - this.lastXY = undefined - - let registerActionBar = this.registerCustom("actionbar", (curr, max) => { - - let roomid = this.getCurrentRoomId() - let roomWorldData = this.getRoomWorldData() - - let rotation = roomWorldData.width > roomWorldData.height ? 0 : 1 - - if (this.getCurrentRoomData().shape === "L") rotation = roomWorldData.rotation - if (this.getCurrentRoomData().type === "spawn") { - roomWorldData.x = x + 1 - roomWorldData.y = y + 1 - } - - this.currentDungeon.roomSecrets(roomWorldData.x, roomWorldData.y, rotation, roomid, curr, max) - }) - registerActionBar.trigger.setCriteria('&7${curr}/${max} Secrets').setParameter('contains'); - - this.registerStep(true, 5, this.update) - - this.registerEvent("renderOverlay", this.renderOverlay) - this.registerEvent("worldLoad", this.worldLoad) - - } - - update() { - if (!this.isInDungeon()) { - if (this.currentDungeon) { - this.currentDungeon.destroy() - this.lastRoomId = undefined - this.currentDungeon = undefined - } - return - } - - if (!this.currentDungeon) { - this.currentDungeon = new DungeonMapData(this.FeatureManager.features["dataLoader"].class.dungeonFloor) - } - this.currentDungeon.setRenderTicks(!this.mapSecrets.getValue()) - - this.currentDungeon.updatePlayers() - this.currentDungeon.updateHotbarData() - - let roomid = this.getCurrentRoomId() - if (!roomid.includes(",")) return - if (this.roomXY !== this.getRoomXYWorld().join(",")) { - this.roomXY = this.getRoomXYWorld().join(",") - this.lastChange = Date.now() - } - - let x = Math.floor((Player.getX() + 8) / 32) * 32 - 9 - let y = Math.floor((Player.getZ() + 8) / 32) * 32 - 9 - - if (roomid !== this.lastRoomId && Date.now() - this.lastChange > 500) { - this.lastRoomId = roomid - - let roomWorldData = this.getRoomWorldData() - - let rotation = roomWorldData.width > roomWorldData.height ? 0 : 1 - - if (this.getCurrentRoomData().shape === "L") rotation = roomWorldData.rotation - if (this.getCurrentRoomData().type === "spawn") { - roomWorldData.x = x + 1 - roomWorldData.y = y + 1 - } - - this.currentDungeon.setRoom(roomWorldData.x, roomWorldData.y, rotation, roomid) - } - - - if (this.lastXY !== x + "," + y) { - this.lastXY = x + "," + y - if (this.getBlockAt(x + 16, 73, y) !== 0) { - this.currentDungeon.setDoor(x + 16, y, -1, 0) - } - if (this.getBlockAt(x, 73, y + 16) !== 0) { - this.currentDungeon.setDoor(x, y + 16, -1, 1) - } - if (this.getBlockAt(x + 16, 73, y + 32) !== 0) { - this.currentDungeon.setDoor(x + 16, y + 32, -1, 0) - } - if (this.getBlockAt(x + 32, 73, y + 16) !== 0) { - this.currentDungeon.setDoor(x + 32, y + 16, -1, 1) - } - } - } - - renderOverlay() { - if (this.currentDungeon) { - this.currentDungeon.updatePlayersFast() - - let x = this.mapLocation.getValue()[0] - let y = this.mapLocation.getValue()[1] - let size = 150 * this.mapLocation.getValue()[2] - Renderer.drawRect(Renderer.color(0, 0, 0, 100), x, y, size, size) - - this.currentDungeon.getImage().draw(x, y, size, size) - - Renderer.drawRect(Renderer.color(0, 0, 0), x, y, size, 2) - Renderer.drawRect(Renderer.color(0, 0, 0), x, y, 2, size) - Renderer.drawRect(Renderer.color(0, 0, 0), x + size - 2, y, 2, size) - Renderer.drawRect(Renderer.color(0, 0, 0), x, y + size - 2, size, 2) - - for (let player of this.currentDungeon.getPlayers()) { - let x2 = this.currentDungeon.toImageX(player.x) * size + x - let y2 = this.currentDungeon.toImageY(player.y) * size + y - let rx = -6 - let ry = -6 - let rw = 12 - let rh = 12 - - Renderer.translate(x2, y2) - Renderer.rotate(player.rotate) - GlStateManager[m.enableBlend]() - GlStateManager[m.scale](1, 1, 50) - Client.getMinecraft()[m.getTextureManager]()[m.bindTexture.TextureManager](player.skin) - GlStateManager[m.enableTexture2D]() - - let tessellator = MCTessellator[m.getInstance.Tessellator]() - let worldRenderer = tessellator[m.getWorldRenderer]() - worldRenderer[m.begin](7, DefaultVertexFormats[f.POSITION_TEX]) - - worldRenderer[m.pos](rx, ry + rh, 0.0)[m.tex](8 / 64, 16 / 64)[m.endVertex]() - worldRenderer[m.pos](rx + rw, ry + rh, 0.0)[m.tex](16 / 64, 16 / 64)[m.endVertex]() - worldRenderer[m.pos](rx + rw, ry, 0.0)[m.tex](16 / 64, 8 / 64)[m.endVertex]() - worldRenderer[m.pos](rx, ry, 0.0)[m.tex](8 / 64, 8 / 64)[m.endVertex]() - tessellator[m.draw.Tessellator]() - - Tessellator.popMatrix() - Tessellator.pushMatrix() - } - - if (this.mapSecrets.getValue()) { - Renderer.retainTransforms(true) - Renderer.translate(x, y) - this.currentDungeon.renderSecrets(size) - Renderer.translate(-x, -y) - Renderer.retainTransforms(false) - } - } - } - - worldLoad() { - if (this.currentDungeon) this.currentDungeon.destroy() - this.lastRoomId = undefined - this.currentDungeon = undefined - } - - getCurrentRoomId() { - if (Scoreboard.getLines().length === 0) return undefined - let id = Scoreboard.getLineByIndex(Scoreboard.getLines().length - 1).getName().trim().split(" ").pop() - - return id - } - - isInDungeon() { - if (!this.FeatureManager || !this.FeatureManager.features["dataLoader"]) return false - return this.FeatureManager.features["dataLoader"].class.isInDungeon - } - - getRoomXYWorld() { - let roomData = this.getRoomWorldData() - if (roomData.rotation === 4) { - return [roomData.x, roomData.y + 32] - } - - return [roomData.x, roomData.y] - } - - getCurrentRoomData() { - return DungeonRoomStaticData.getDataFromId(this.getCurrentRoomId()) - } - - getRotation(x, y, width, height, roofY) { - let currRoomData = this.getCurrentRoomData() - if (!currRoomData) return -1 - - if (currRoomData.shape !== "L") { - if (this.getTopBlockAt(x, y, roofY) === 11) return 0 - if (this.getTopBlockAt(x + width, y, roofY) === 11) return 1 - if (this.getTopBlockAt(x + width, y + height, roofY) === 11) return 2 - if (this.getTopBlockAt(x, y + height, roofY) === 11) return 3 - } else { - 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 0 - if (two === 0 && three === 0) return 1 - if (one === 0 && four === 0) return 3 - if (two === 0 && four === 0) return 2//3 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)).getMetadata() - } - getBlockAt(x, y, z) { - return World.getBlockStateAt(new BlockPos(x, y, z)).getBlockId() - } - getTopBlockAt2(x, z, y) { - if (!y) y = this.getHeightAt(x, z) - - return World.getBlockStateAt(new BlockPos(x, y, z)).getBlockId() - } - onDisable() { - } -} - -module.exports = { - class: new DungeonMap() -}
\ No newline at end of file |