From 1d26a47068b357c4a9f4cb0225aa063134e9a0d9 Mon Sep 17 00:00:00 2001 From: Ninjune Date: Fri, 2 Dec 2022 17:42:08 -0600 Subject: v1.6.10 --- render/coordsGui.js | 18 +++--- render/cwGui.js | 159 +++++++++++++++++++++++++++++++++++++++++++++----- render/downtimeGui.js | 31 +++++----- render/naturals.js | 15 +++-- 4 files changed, 181 insertions(+), 42 deletions(-) (limited to 'render') diff --git a/render/coordsGui.js b/render/coordsGui.js index f36ccf2..9fd5f43 100644 --- a/render/coordsGui.js +++ b/render/coordsGui.js @@ -20,18 +20,20 @@ import { } from "../../Elementa" // stylla made 2 lines of code (gamer) -const Color = Java.type("java.awt.Color") -const URL = Java.type("java.net.URL") +const Color = Java.type("java.awt.Color"), + URL = Java.type("java.net.URL"), + WIDTH = 3.5, // not actually width more like reverse of width lmao, bigger = smaller + HEIGHT = 2.877 // ^ let ScreenW = Renderer.screen.getWidth(), ScreenH = Renderer.screen.getHeight() function coordsWindow(row, column, title, command, desc, image=false, alternateText="") { const coordWindow = new UIBlock(new Color(0, 0, 0, 0.5)) // 320 960 - .setX(((ScreenW/3*(column))-ScreenW/3.5).pixels()) + .setX(((ScreenW/3*(column))-ScreenW/3.25).pixels()) .setY((ScreenH/2*(row-1)+ScreenH/10.8).pixels()) - .setWidth((ScreenW/4.5).pixels()) - .setHeight((ScreenH/3.7).pixels()) + .setWidth((ScreenW/WIDTH).pixels()) + .setHeight((ScreenH/HEIGHT).pixels()) .onMouseClick(() => { ChatLib.command(command, true) }) @@ -53,8 +55,8 @@ function coordsWindow(row, column, title, command, desc, image=false, alternateT new UIImage.ofURL(new URL(desc)) .setX(new CenterConstraint()) .setY(new AdditiveConstraint(new CenterConstraint(), (4).pixels())) - .setWidth((ScreenW/5).pixels()) - .setHeight((ScreenH/5).pixels()) + .setWidth((ScreenW/3.7).pixels()) + .setHeight((ScreenH/3.7).pixels()) .setChildOf(coordWindow) } else @@ -62,7 +64,7 @@ function coordsWindow(row, column, title, command, desc, image=false, alternateT new UIWrappedText(desc) .setX((2).pixels()) .setY((25).pixels()) - .setWidth((ScreenW/4.5).pixels()) + .setWidth((ScreenW/3.7).pixels()) .setTextScale((1).pixels()) .setColor(new ConstantColorConstraint(Color.WHITE)) .setChildOf(coordWindow) diff --git a/render/cwGui.js b/render/cwGui.js index 96c0bf6..4e0f660 100644 --- a/render/cwGui.js +++ b/render/cwGui.js @@ -1,9 +1,19 @@ import settings from "../settings"; import constants from "../util/constants"; - +import axios from "../../axios" const cwGui = new Gui() let txt = "Please set your api key with /cw setkey (key)!" +let cwValues = [], + calcCwPerHr = false, + upTimeTrack = false, + uptime = 0, + baseColeweight = 0, + stepsSinceLast = 0, + coleweightHr = 0, + cwValuesSum = 0 + + export function openCwGui() { cwGui.open() @@ -30,25 +40,148 @@ register("renderOverlay", () => { if(!settings.cwToggle || constants.data.api_key == undefined) return let coleweight = constants.data.coleweight || 0, coleweightMessage = "", - uptimeHr = Math.floor(constants.uptime/60/60) + uptimeHr = Math.floor(uptime/60/60) coleweight > 1000 ?coleweightMessage = `&b${coleweight.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')}`: coleweightMessage = `&b${coleweight.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')}` - if(constants.cwValues[0] != undefined && constants.upTimeTrack && constants.calcCwPerHr) + if(cwValues[0] != undefined && upTimeTrack && calcCwPerHr) { - constants.cwValuesSum = 0 - for(let i = 0; i < constants.cwValues.length; i++) + cwValuesSum = 0 + for(let i = 0; i < cwValues.length; i++) { - constants.cwValuesSum += constants.cwValues[i] + cwValuesSum += cwValues[i] } - let eq = Math.ceil((constants.cwValuesSum*(3600/constants.uptime)) * 100) / 100 - eq != Infinity ? constants.coleweightHr = eq : constants.coleweightHr = "Calculating..." - constants.calcCwPerHr = false + let eq = Math.ceil((cwValuesSum*(3600/uptime)) * 100) / 100 + eq != Infinity ? coleweightHr = eq : coleweightHr = "Calculating..." + calcCwPerHr = false } - if (cwGui.isOpen() || !constants.upTimeTrack) return + if (cwGui.isOpen() || !upTimeTrack) return if(uptimeHr >= 1) - Renderer.drawStringWithShadow(`&aCW: &b${coleweightMessage}\n&aCW/hr: &b${constants.coleweightHr}\n&aUptime: &b${uptimeHr}h ${Math.floor(constants.uptime/60) - uptimeHr*60}m\n&aColeweight Gained: &b${Math.ceil(constants.cwValuesSum*100) / 100}`, constants.data.x, constants.data.y) + Renderer.drawStringWithShadow(`&aCW: &b${coleweightMessage}\n&aCW/hr: &b${coleweightHr}\n&aUptime: &b${uptimeHr}h ${Math.floor(uptime/60) - uptimeHr*60}m\n&aColeweight Gained: &b${Math.ceil(cwValuesSum*100) / 100}`, data.x, data.y) else - Renderer.drawStringWithShadow(`&aCW: &b${coleweightMessage}\n&aCW/hr: &b${constants.coleweightHr}\n&aUptime: &b${Math.floor(constants.uptime/60)}m ${Math.floor(constants.uptime%60)}s\n&aColeweight Gained: &b${Math.ceil(constants.cwValuesSum*100) / 100}`, constants.data.x, constants.data.y) -}) \ No newline at end of file + Renderer.drawStringWithShadow(`&aCW: &b${coleweightMessage}\n&aCW/hr: &b${coleweightHr}\n&aUptime: &b${Math.floor(uptime/60)}m ${Math.floor(uptime%60)}s\n&aColeweight Gained: &b${Math.ceil(cwValuesSum*100) / 100}`, data.x, data.y) +}) + + + +register("step", () => { + // updates coleweight for gui + let date_ob = new Date(), + seconds = date_ob.getSeconds() + + if(upTimeTrack == true) + uptime += 1 + if(seconds == 0 || seconds == 15 || seconds == 30 || seconds == 45) + { + try + { + let tempUuid = Player.getUUID(), + profileData = "", + coleweight = 0, + uuid = "" + + for(let i = 0; i < tempUuid.length; i++) + { + if(tempUuid[i] != "-") + { + uuid = uuid + tempUuid[i] + } + } + axios.get(`https://ninjune.dev/api/cwinfo`) + .then(cwInfoRes => { + axios.get(`https://api.hypixel.net/skyblock/profiles?key=${constants.data.api_key}&uuid=${uuid}`) + .then(res => { + let eq = 0, + cwInfo = cwInfoRes.data + + for(let i=0; i < res.data.profiles.length; i+=1) + { + if(res.data.profiles[i].selected == true) + profileData = res.data.profiles[i] + } + + coleweight += Math.ceil((profileData.members[uuid][cwInfo.experience.name]/cwInfo.experience.req)*100) / 100 + + for(let i = 0; i < cwInfo.powder.length; i++) + { + let sourceToSearch = cwInfo.powder[i].name, + source = profileData.members[uuid].mining_core[sourceToSearch] + + if(source != undefined) + { + eq = Math.ceil(source/cwInfo.powder[i].req*100) / 100 + + if(i == 0) + { + let powder2 = profileData.members[uuid].mining_core['powder_spent_mithril'] + + if(powder2 != undefined) + eq = Math.ceil((source+powder2)/cwInfo.powder[i].req*100) / 100 + } + else + { + let powder2 = profileData.members[uuid].mining_core['powder_spent_gemstone'] + + if(powder2 != undefined) + eq = Math.ceil((source+powder2)/cwInfo.powder[i].req*100) / 100 + } + coleweight += eq + } + } + + for(let i = 0; i < cwInfo.collection.length; i++) + { + let sourceToSearch = cwInfo.collection[i].name, + source = profileData.members[uuid].collection[sourceToSearch] + + if(source != undefined) + { + eq = Math.ceil(source/cwInfo.collection[i].req*100) / 100 + coleweight += eq + } + } + for(let i = 0; i < cwInfo.miscellaneous.length; i++) + { + let sourceToSearch = cwInfo.miscellaneous[i].name + if(i == 0 || i == 1) + source = profileData.members[uuid].bestiary[sourceToSearch] + else + source = profileData.members[uuid].mining_core.crystals.jade_crystal[sourceToSearch] + if (source != undefined) + { + eq = Math.ceil(source/cwInfo.miscellaneous[i].req*100) / 100 + coleweight += eq + } + } + if(baseColeweight == 0) + { + baseColeweight = coleweight + } + else if((coleweight - baseColeweight) > 0) + { + cwValues.push(coleweight - baseColeweight) + calcCwPerHr = true + upTimeTrack = true + stepsSinceLast = 0 + baseColeweight = coleweight + } + else if(stepsSinceLast > 20) + { + upTimeTrack = false + stepsSinceLast = 0 + cwValues = [] + } + else + { + stepsSinceLast += 1 + } + + data.coleweight = Math.ceil(coleweight*100)/100 + data.save() + }) + }) + } + catch(e) {} + } +}).setFps(1) \ No newline at end of file diff --git a/render/downtimeGui.js b/render/downtimeGui.js index 149718c..538c590 100644 --- a/render/downtimeGui.js +++ b/render/downtimeGui.js @@ -1,8 +1,9 @@ import settings from "../settings" -import { createGui } from "./textGuiCreator" import constants from "../util/constants" +import { textGui } from "../util/helperFunctions" -const downtimeGui = new Gui() +const downtimeMoveGui = new Gui() +const downtimeGui = new textGui() let oldFuel = 0, timeAtLastFuel = 0, overallDowntime = 0, @@ -14,12 +15,12 @@ let oldFuel = 0, export function openDowntimeGui() { - downtimeGui.open() + downtimeMoveGui.open() } register("dragged", (dx, dy, x, y) => { - if (!downtimeGui.isOpen()) return + if (!downtimeMoveGui.isOpen()) return constants.downtimedata.x = x constants.downtimedata.y = y constants.downtimedata.save() @@ -51,24 +52,22 @@ register('actionbar', (xp) => { register("renderOverlay", () => { - if (downtimeGui.isOpen()) + if (downtimeMoveGui.isOpen()) { let txt = "Drag to move." Renderer.drawStringWithShadow(txt, Renderer.screen.getWidth()/2 - Renderer.getStringWidth(txt)/2, Renderer.screen.getHeight()/2) - createGui( - {leftValues: ["Downtime", "Overall Downtime", "Average Downtime", "Uptime"], rightValues: [0, 0, 0, 0]}, - constants.downtimedata.x, - constants.downtimedata.y - ) + downtimeGui.guiObject = {leftValues: ["Downtime", "Overall Downtime", "Average Downtime", "Uptime"], rightValues: [0, 0, 0, 0]} + downtimeGui.x = constants.downtimedata.x + downtimeGui.y = constants.downtimedata.y + downtimeGui.renderGui() return } - if (downtimeCount == 0 || !trackingDowntime) return + if (downtimeCount == 0 || !trackingDowntime || !settings.downtimeTracker) return let avgDowntime = Math.ceil((overallDowntime/downtimeCount)*100) / 100 - createGui( - {leftValues: ["Downtime", "Overall Downtime", "Average Downtime", "Uptime"], rightValues: [downtime, overallDowntime, avgDowntime, uptime]}, - constants.downtimedata.x, - constants.downtimedata.y - ) + downtimeGui.guiObject = {leftValues: ["Downtime", "Overall Downtime", "Average Downtime", "Uptime"], rightValues: [downtime, overallDowntime, avgDowntime, uptime]} + downtimeGui.x = constants.downtimedata.x + downtimeGui.y = constants.downtimedata.y + downtimeGui.renderGui() }) diff --git a/render/naturals.js b/render/naturals.js index d0443a3..595c32d 100644 --- a/render/naturals.js +++ b/render/naturals.js @@ -1,9 +1,11 @@ import axios from "../../axios" import settings from "../settings" import constants from "../util/constants" +import { waypointRender } from "../util/helperFunctions" const PREFIX = constants.PREFIX let coords = [] + register("step", () => { if(constants.serverData.map != "Crystal Hollows") return axios.get(`https://ninjune.dev/api/coords`) @@ -14,7 +16,7 @@ register("step", () => { && ((-1 * settings.naturalRange)/2 < (parseInt(Player.getY()) - coord.y)) && ((parseInt(Player.getY()) - coord.y) < settings.naturalRange/2) && ((-1 * settings.naturalRange)/2 < (parseInt(Player.getZ()) - coord.z)) && ((parseInt(Player.getZ()) - coord.z) < settings.naturalRange/2)) ).forEach(coord => { - coords.push({x: coord.x, y: coord.y, z: coord.z}) + coords.push([coord.x, coord.y, coord.z]) }) }) .catch((err) => { @@ -22,13 +24,16 @@ register("step", () => { }) }).setFps(1) + register("renderWorld", () => { if(!settings.showNaturals) return if(coords.length < 1) return - coords - .forEach((coord) => { - Tessellator.drawString(Math.floor((Math.abs(parseInt(Player.getX()) - coord.x) + Math.abs(parseInt(Player.getY()) - coord.y) + Math.abs(parseInt(Player.getZ()) - coord.z))/3) + "m", coord.x, coord.y, coord.z) - }) + waypointRender(coords) }) +register("worldUnload", () => { + coords = [] +}) + + export default "" \ No newline at end of file -- cgit