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