diff options
Diffstat (limited to 'features/dungeonMap2/DungeonMapRoom.js')
-rw-r--r-- | features/dungeonMap2/DungeonMapRoom.js | 256 |
1 files changed, 0 insertions, 256 deletions
diff --git a/features/dungeonMap2/DungeonMapRoom.js b/features/dungeonMap2/DungeonMapRoom.js deleted file mode 100644 index d6ee014..0000000 --- a/features/dungeonMap2/DungeonMapRoom.js +++ /dev/null @@ -1,256 +0,0 @@ -import DungeonRoomStaticData from "./DungeonRoomStaticData" - -const Color = Java.type("java.awt.Color") - -class DungeonMapRoom { - - static TYPE_SPAWN = 0 - static TYPE_NORMAL = 1 - static TYPE_PUZZLE = 2 - static TYPE_MINIBOSS = 3 - static TYPE_FAIRY = 4 - static TYPE_BLOOD = 5 - static TYPE_TRAP = 7 - static TYPE_UNKNOWN = 6 - - static SHAPE_1X1 = 0 - static SHAPE_1X2 = 1 - static SHAPE_1X3 = 2 - static SHAPE_1X4 = 3 - static SHAPE_2X2 = 4 - static SHAPE_L = 5 - - static fromId(roomId, x, y, rotation) { - let data = DungeonRoomStaticData.getDataFromId(roomId) - let type = DungeonMapRoom.TYPE_NORMAL - switch (data.type) { - case "mobs": - type = DungeonMapRoom.TYPE_NORMAL - break - case "miniboss": - type = DungeonMapRoom.TYPE_NORMAL - break - case "spawn": - type = DungeonMapRoom.TYPE_SPAWN - break - case "puzzle": - type = DungeonMapRoom.TYPE_PUZZLE - break - case "gold": - type = DungeonMapRoom.TYPE_MINIBOSS - break - case "fairy": - type = DungeonMapRoom.TYPE_FAIRY - break - case "blood": - type = DungeonMapRoom.TYPE_BLOOD - break - case "trap": - type = DungeonMapRoom.TYPE_TRAP - break - } - - let shape = DungeonMapRoom.SHAPE_1X1 - switch (data.shape) { - case "1x1": - shape = DungeonMapRoom.SHAPE_1X1 - break - case "1x2": - shape = DungeonMapRoom.SHAPE_1X2 - break - case "1x3": - shape = DungeonMapRoom.SHAPE_1X3 - break - case "1x4": - shape = DungeonMapRoom.SHAPE_1X4 - break - case "2x2": - shape = DungeonMapRoom.SHAPE_2X2 - break - case "L": - shape = DungeonMapRoom.SHAPE_L - break - } - return new DungeonMapRoom(type, shape, rotation, x, y, roomId) - } - - /** - * - * @param {Number} type - * @param {Number} shape - * @param {Number} rotation 0-3 - * @param {Number} x - * @param {Number} y - * @param {String} roomId - */ - constructor(type, shape, rotation, x, y, roomId) { - this.type = type - this.shape = shape - this.rotation = rotation - this.roomId = roomId - this.maxSecrets = roomId ? DungeonRoomStaticData.getDataFromId(roomId).secrets : 0 - this.secrets = 0 - - this.checkedState = 0 - - this.location = [x, y] - } - - setSecrets(curr, max) { - if (this.maxSecrets === 0) return - this.maxSecrets = max - this.secrets = curr - } - - getSecrets() { - let checkColor = "&8" - if (this.checkedState === 1) checkColor = "&f" - if (this.checkedState === 2) checkColor = "&a" - return checkColor + this.secrets + "/" + this.maxSecrets - } - - setId(id) { - if (this.roomId !== id) { - this.roomId = id - - let newRoomData = DungeonMapRoom.fromId(id) - this.type = newRoomData.type - this.shape = newRoomData.shape - this.maxSecrets = newRoomData.maxSecrets - } - } - - setCheckedState(state) { } - - /** - * Renders this room onto the given Graphics2D - * @param {Graphics2D} graphics - */ - draw(graphics, renderTicks) { - - let [roomWidth, roomHeight] = this.getRoomWidthHeight() - - let translateX = this.location[0] + 3 + roomWidth / 2 - let translateY = this.location[1] + 3 + roomHeight / 2 - - graphics.translate(translateX, translateY) - - graphics.setColor(this.getRoomRenderColor()) - - switch (this.shape) { - case DungeonMapRoom.SHAPE_1X1: - case DungeonMapRoom.SHAPE_1X2: - case DungeonMapRoom.SHAPE_1X3: - case DungeonMapRoom.SHAPE_1X4: - case DungeonMapRoom.SHAPE_2X2: - graphics.fillRect(-roomWidth / 2 + 3, -roomHeight / 2 + 3, roomWidth - 6, roomHeight - 6) - break; - case DungeonMapRoom.SHAPE_L: - graphics.rotate(this.rotation * Math.PI / 2) - graphics.fillRect(-(26 + 32) / 2, -(26 + 32) / 2, 26, 26 + 32) - graphics.fillRect(-(26 + 32) / 2, -(26 + 32) / 2, 26 + 32, 26) - graphics.rotate(-this.rotation * Math.PI / 2) - break; - } - - graphics.translate(-translateX, -translateY) - - if (renderTicks || this.maxSecrets === 0) { - if (this.checkedState === 1) { - let loc = this.getIconLocation() - graphics.drawImage(whiteCheck, loc[0] - 2, loc[1] - 2, 10, 10, null) - } - if (this.checkedState === 2) { - let loc = this.getIconLocation() - graphics.drawImage(greenCheck, loc[0] - 2, loc[1] - 2, 10, 10, null) - } - } - } - - getRoomWidthHeight() { - let roomWidth = 32 - let roomHeight = 32 - - switch (this.shape) { - case DungeonMapRoom.SHAPE_1X2: - roomWidth = 64 - break; - case DungeonMapRoom.SHAPE_1X3: - roomWidth = 96 - break; - case DungeonMapRoom.SHAPE_1X4: - roomWidth = 128 - break; - case DungeonMapRoom.SHAPE_2X2: - case DungeonMapRoom.SHAPE_L: - roomWidth = 64 - roomHeight = 64 - break; - } - - if (this.rotation === 1 || this.rotation === 3) { - let tmp = roomWidth - roomWidth = roomHeight - roomHeight = tmp - } - - return [roomWidth, roomHeight] - } - - getRoomRenderColor() { - return roomColorMap.get(this.type) - } - - getIconLocation() { - let [width, height] = this.getRoomWidthHeight() - if (this.shape === DungeonMapRoom.SHAPE_L && this.rotation === 0) { - return [this.location[0] + 16, this.location[1] + 16] - } - if (this.shape === DungeonMapRoom.SHAPE_L && this.rotation === 1) { - return [this.location[0] + 16 + 32, this.location[1] + 16] - } - if (this.shape === DungeonMapRoom.SHAPE_L && this.rotation === 2) { - return [this.location[0] + 16 + 31, this.location[1] + 16 + 31] - } - if (this.shape === DungeonMapRoom.SHAPE_L && this.rotation === 2) { - return [this.location[0] + 16, this.location[1] + 16 + 32] - } - - return [this.location[0] + width / 2, this.location[1] + height / 2] - } - - static drawUnknownRoom(graphics, x, y) { - let roomWidth = 32 - let roomHeight = 32 - - let translateX = x + 3 + roomWidth / 2 - let translateY = y + 3 + roomHeight / 2 - - graphics.translate(translateX, translateY) - - graphics.setColor(roomColorMap.get(DungeonMapRoom.TYPE_UNKNOWN)) - - graphics.fillRect(-13, -13, 26, 26) - - graphics.drawImage(questionMark, -4, -7, 8, 14, null) - - graphics.translate(-translateX, -translateY) - } -} - -let roomColorMap = new Map() -roomColorMap.set(DungeonMapRoom.TYPE_SPAWN, new Color(Renderer.color(0, 124, 0, 255))) -roomColorMap.set(DungeonMapRoom.TYPE_NORMAL, new Color(Renderer.color(114, 67, 27, 255))) -roomColorMap.set(DungeonMapRoom.TYPE_PUZZLE, new Color(Renderer.color(178, 76, 216, 255))) -roomColorMap.set(DungeonMapRoom.TYPE_MINIBOSS, new Color(Renderer.color(229, 229, 51, 255))) -roomColorMap.set(DungeonMapRoom.TYPE_FAIRY, new Color(Renderer.color(242, 127, 165, 255))) -roomColorMap.set(DungeonMapRoom.TYPE_BLOOD, new Color(Renderer.color(255, 0, 0, 255))) -roomColorMap.set(DungeonMapRoom.TYPE_TRAP, new Color(Renderer.color(216, 127, 51, 255))) -roomColorMap.set(DungeonMapRoom.TYPE_UNKNOWN, new Color(Renderer.color(65, 65, 65, 255))) - -const greenCheck = new Image("greenCheckVanilla.png", "https://i.imgur.com/h2WM1LO.png").image -const whiteCheck = new Image("whiteCheckVanilla.png", "https://i.imgur.com/hwEAcnI.png").image -const failedRoom = new Image("failedRoomVanilla.png", "https://i.imgur.com/WqW69z3.png").image -const questionMark = new Image("questionMarkVanilla.png", "https://i.imgur.com/1jyxH9I.png").image - -export default DungeonMapRoom
\ No newline at end of file |