aboutsummaryrefslogtreecommitdiff
path: root/features/dungeonMap2/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'features/dungeonMap2/index.js')
-rw-r--r--features/dungeonMap2/index.js312
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