aboutsummaryrefslogtreecommitdiff
path: root/features/betterGuis/dungeonReadyGui.js
diff options
context:
space:
mode:
Diffstat (limited to 'features/betterGuis/dungeonReadyGui.js')
-rw-r--r--features/betterGuis/dungeonReadyGui.js206
1 files changed, 192 insertions, 14 deletions
diff --git a/features/betterGuis/dungeonReadyGui.js b/features/betterGuis/dungeonReadyGui.js
index 956d4a6..a0c928c 100644
--- a/features/betterGuis/dungeonReadyGui.js
+++ b/features/betterGuis/dungeonReadyGui.js
@@ -1,32 +1,206 @@
-import { SoopyGui } from "../../../guimanager"
+import { SoopyGui, SoopyRenderEvent } from "../../../guimanager"
+import SoopyKeyPressEvent from "../../../guimanager/EventListener/SoopyKeyPressEvent"
+import SoopyMouseClickEvent from "../../../guimanager/EventListener/SoopyMouseClickEvent"
+import BoxWithTextAndDescription from "../../../guimanager/GuiElement/BoxWithTextAndDescription"
+import ButtonWithArrow from "../../../guimanager/GuiElement/ButtonWithArrow"
+import SoopyGuiElement from "../../../guimanager/GuiElement/SoopyGuiElement"
const ContainerChest = Java.type("net.minecraft.inventory.ContainerChest")
class DungeonReadyGui {
- constructor(){
+ constructor() {
this.checkMenu = false
this.soopyGui = new SoopyGui()
this.soopyGui.optimisedLocations = true
+
+ this.mainPage = new SoopyGuiElement().setLocation(0, 0, 1, 1)
+ this.soopyGui.element.addChild(this.mainPage)
+ this.soopyGui.element.addEvent(new SoopyKeyPressEvent().setHandler((...args) => {
+ this.keyPress(...args)
+ }))
+
+
+ this.startButton = new ButtonWithArrow().setText("§0Start Dungeon").setLocation(0.25, 0.25, 0.5, 0.5).addEvent(new SoopyMouseClickEvent().setHandler(() => {
+ this.startDungeon()
+ }))
+ this.soopyGui.element.addChild(this.startButton)
+
+ this.closeMenu = 0
+ this.nameToId = {}
+ this.nextId = 0
+ this.readyBoxes = []
+ for (let i = 0; i < 4; i++) {
+ let readyBox = new BoxWithTextAndDescription().setText("§0").setDesc("§0").setLocation(0.1 + 0.2 * i, 0.75, 0.15, 0.15).setColor(255, 150, 150)
+ this.readyBoxes.push(readyBox)
+
+
+ readyBox.text.setLocation(0, 0, 1, 0.6)
+ readyBox.description.setLocation(0.05, 0.6, 0.9, 0.4)
+ readyBox.visable = false
+
+
+ this.mainPage.addChild(readyBox)
+ }
+
+ this.classBoxes = []
+ this.currentPlayerClass = -1
+ this.classes = { "Healer": new Item("minecraft:potion"), "Mage": new Item("minecraft:blaze_rod"), "Berserker": new Item("minecraft:iron_sword"), "Archer": new Item("minecraft:bow"), "Tank": new Item("minecraft:leather_chestplate") }
+ Object.keys(this.classes).forEach((clas, i) => {
+ let classBox = new BoxWithTextAndDescription().setText("§0" + clas + "&7 - 0").setDesc("§0").setLocation(0.1 + 0.1625 * i, 0.1, 0.15, 0.1)
+ this.classBoxes.push(classBox)
+
+ let classIndex = i
+
+ classBox.text.setLocation(0, 0, 1, 0.6)
+ classBox.description.setLocation(0.05, 0.6, 0.9, 0.4)
+ classBox.addEvent(new SoopyRenderEvent().setHandler(() => {
+ let scale = 16 / Math.min(classBox.location.getWidthExact(), classBox.location.getHeightExact() / 2) * 3
+ this.classes[clas].draw(classBox.location.getXExact() + classBox.location.getWidthExact() / 2 - 16 * scale / 2, classBox.location.getYExact() + classBox.location.getHeightExact() - 16 * scale - 4, scale)
+ })).addEvent(new SoopyMouseClickEvent().setHandler(() => {
+ this.clickedClass(classIndex)
+ }))
+
+ this.mainPage.addChild(classBox)
+ })
+
+ this.playerReadyButton = new ButtonWithArrow().setText("§0Ready").setLocation(0.33, 0.33, 0.33, 0.33).setColor(255, 150, 150).addEvent(new SoopyMouseClickEvent().setHandler(() => {
+ this.ready()
+ }))
+ this.mainPage.addChild(this.playerReadyButton)
}
- tickMenu(){
+ startDungeon() {
+ if (Player.getContainer().getName() !== "Start Dungeon?") return
+ this.startButton.visable = false
+ Player.getContainer().click(13, false, "MIDDLE")
}
- guiOpened(event){
+ ready() {
+ if (!Player.getContainer().getName().startsWith("Catacombs - Floor ")) return
+ this.playerReadyButton.setColor(150, 150, 150)
+ for (let i = 0; i < 5; i++) {
+ if (ChatLib.removeFormatting(Player.getContainer().getStackInSlot(3 + i).getName().split(" ").pop()) === Player.getName()) {
+ Player.getContainer().drop(12 + i, false)
+ }
+ }
+ }
+
+ clickedClass(classIndex) {
+ if (!Player.getContainer().getName().startsWith("Catacombs - Floor ")) return
+
+ Player.getContainer().drop(2 + 4 * 9 + classIndex, false)
+
+ this.classBoxes[classIndex].setColor(150, 150, 150)
+
+ if (this.currentPlayerClass !== -1) this.classBoxes[this.currentPlayerClass].setColor(253, 255, 227)
+ }
+
+ reset() {
+ this.startButton.visable = true
+ this.playerReadyButton.setColor(255, 150, 150)
+
+ this.nameToId = {}
+ this.nextId = 0
+ this.closeMenu = 0
+
+ this.readyBoxes.forEach(b => {
+ b.visable = false
+ })
+ }
+
+ readyInOneSecond() {
+ this.closeMenu = Date.now() + 1000
+ }
+
+ tick() {
+ if (!this.soopyGui.ctGui.isOpen()) return
+
+ if (this.closeMenu > 0 && Date.now() > this.closeMenu) {
+ this.soopyGui.close()
+ Client.currentGui.close()
+ this.closeMenu = 0
+ return
+ }
+
+ if (Player.getContainer().getName().startsWith("Catacombs - Floor ")) {
+ this.startButton.visable = false
+
+ let clickingClassButton = -1
+
+ for (let i = 0; i < 5; i++) {
+ //ready up buttons
+ if (Player.getContainer().getStackInSlot(3 + i)) {
+ if (ChatLib.removeFormatting(Player.getContainer().getStackInSlot(3 + i).getName().split(" ").pop()) === Player.getName()) {
+ if (Player.getContainer().getStackInSlot(12 + i)) {
+ if (ChatLib.removeFormatting(Player.getContainer().getStackInSlot(12 + i).getName()) === "Ready") {
+ this.playerReadyButton.setColor(150, 255, 150)
+ } else {
+ this.playerReadyButton.setColor(255, 150, 150)
+ }
+ } else {
+ this.playerReadyButton.setColor(150, 150, 150)
+ }
+ } else {
+ let boxId = this.nameToId[ChatLib.removeFormatting(Player.getContainer().getStackInSlot(3 + i).getName().split(" ").pop())]
+
+ if (boxId) {
+ if (ChatLib.removeFormatting(Player.getContainer().getStackInSlot(12 + i).getName()) === "Ready") {
+ this.readyBoxes[boxId].setColor(150, 255, 150)
+ } else {
+ this.readyBoxes[boxId].setColor(255, 150, 150)
+ }
+ this.readyBoxes[boxId].setDesc("§0" + Player.getContainer().getStackInSlot(3 + i).getLore()[1])
+ }
+ }
+ }
+
+
+ //select class buttons
+ if (Player.getContainer().getStackInSlot(2 + 4 * 9 + i)) {
+ if (Player.getContainer().getStackInSlot(2 + 4 * 9 + i).getDamage() === 10) {
+ this.currentPlayerClass = i
+ this.classBoxes[i].setColor(250, 255, 150)
+ } else {
+ this.classBoxes[i].setColor(253, 255, 227)
+ }
+ this.classBoxes[i].setText("§0" + Object.keys(this.classes)[i] + "§7 - " + ChatLib.removeFormatting(Player.getContainer().getStackInSlot(2 + 4 * 9 + i).getName().split(" ")[0])).setLore(Player.getContainer().getStackInSlot(2 + 4 * 9 + i).getLore())
+ } else {
+ clickingClassButton = i
+ }
+ }
+
+ if (clickingClassButton !== -1) {
+ this.classBoxes[clickingClassButton].setColor(150, 150, 150)
+ if (this.currentPlayerClass !== -1) this.classBoxes[this.currentPlayerClass].setColor(253, 255, 227)
+ }
+ }
+
+ World.getAllPlayers().filter(p => p.getPing() === 1).forEach(p => {
+ if (p.getUUID().toString() === Player.getUUID().toString()) return
+
+ if (p.getName() in this.nameToId) return
+
+ this.nameToId[p.getName()] = this.nextId++
+
+ this.readyBoxes[this.nameToId[p.getName()]].setText("§0" + p.getName()).visable = true
+ })
+ }
+
+ guiOpened(event) {
let name = ""
- if(event.gui && event.gui.field_147002_h instanceof ContainerChest){
+ if (event.gui && event.gui.field_147002_h instanceof ContainerChest) {
name = event.gui.field_147002_h.func_85151_d().func_145748_c_().func_150260_c()
}
- if(this.soopyGui.ctGui.isOpen()){
- if(event.gui && event.gui.field_147002_h){
+ if (this.soopyGui.ctGui.isOpen()) {
+ if (event.gui && event.gui.field_147002_h) {
Player.getPlayer().field_71070_bA = event.gui.field_147002_h
- if(!Player.getContainer().getName().startsWith("Catacombs - Floor ")){
- return
+ if (!Player.getContainer().getName().startsWith("Catacombs - Floor ")) {
+ return
}
event.gui = this.soopyGui.ctGui
@@ -34,17 +208,21 @@ class DungeonReadyGui {
}
return
}
- if(name === "Start Dungeon?" || name.startsWith("Catacombs - Floor ")){
- if(event.gui && event.gui.field_147002_h) Player.getPlayer().field_71070_bA = event.gui.field_147002_h
+ if (name === "Start Dungeon?" || name.startsWith("Catacombs - Floor ")) {
+ if (event.gui && event.gui.field_147002_h) Player.getPlayer().field_71070_bA = event.gui.field_147002_h
this.soopyGui.open()
event.gui = this.soopyGui.ctGui
}
}
- tick(){
- if(this.soopyGui.ctGui.isOpen()){
- this.tickMenu()
+ keyPress(key, keyId) {
+ if (keyId === 1) { //escape key
+ // this.dontOpen = 1
+ Client.currentGui.close()
+ }
+ if (keyId === 18) { //'e' key
+ Client.currentGui.close()
}
}
}