diff options
| author | Soopyboo32 <49228220+Soopyboo32@users.noreply.github.com> | 2022-05-29 12:06:18 +0800 |
|---|---|---|
| committer | Soopyboo32 <49228220+Soopyboo32@users.noreply.github.com> | 2022-05-29 12:06:18 +0800 |
| commit | 9ec9aa2d495df5a6c48b8edbd5fe31052d20b37b (patch) | |
| tree | aa20f5314241d517b0a50b123926077685fb700e /features | |
| parent | a6593709b0e1e99e241b6c163fe66623685b6efc (diff) | |
| parent | 51cdd4ca4ea64e1a9a67b99c274693a54f7f535d (diff) | |
| download | SoopyV2-9ec9aa2d495df5a6c48b8edbd5fe31052d20b37b.tar.gz SoopyV2-9ec9aa2d495df5a6c48b8edbd5fe31052d20b37b.tar.bz2 SoopyV2-9ec9aa2d495df5a6c48b8edbd5fe31052d20b37b.zip | |
Merge branch 'master' of https://github.com/Soopyboo32/SoopyV2
Diffstat (limited to 'features')
| -rw-r--r-- | features/agentlaiThings/hiddenRequirement.js | 8 | ||||
| -rw-r--r-- | features/agentlaiThings/index.js | 195 | ||||
| -rw-r--r-- | features/agentlaiThings/metadata.json | 8 | ||||
| -rw-r--r-- | features/bestiary/index.js | 240 | ||||
| -rw-r--r-- | features/betterGuis/index.js | 2 | ||||
| -rw-r--r-- | features/cosmetics/cosmetic/dragon/dragonWings.js | 360 | ||||
| -rw-r--r-- | features/cosmetics/textures/dragon/classic.png | bin | 11845 -> 0 bytes | |||
| -rw-r--r-- | features/cosmetics/textures/dragon/purple.png | bin | 19740 -> 0 bytes | |||
| -rw-r--r-- | features/dataLoader/index.js | 20 | ||||
| -rw-r--r-- | features/dungeonMap/index.js | 5 | ||||
| -rw-r--r-- | features/dungeonSolvers/index.js | 64 | ||||
| -rw-r--r-- | features/events/index.js | 2 | ||||
| -rw-r--r-- | features/eventsGUI/index.js | 221 | ||||
| -rw-r--r-- | features/globalSettings/index.js | 21 | ||||
| -rw-r--r-- | features/hud/index.js | 25 | ||||
| -rw-r--r-- | features/mining/index.js | 92 | ||||
| -rw-r--r-- | features/nether/index.js | 10 | ||||
| -rw-r--r-- | features/soopyGui/GuiPage.js | 8 | ||||
| -rw-r--r-- | features/soopyGui/index.js | 92 |
19 files changed, 893 insertions, 480 deletions
diff --git a/features/agentlaiThings/hiddenRequirement.js b/features/agentlaiThings/hiddenRequirement.js deleted file mode 100644 index effd23b..0000000 --- a/features/agentlaiThings/hiddenRequirement.js +++ /dev/null @@ -1,8 +0,0 @@ -let allowedUUIDS = [ - "f2bcfe6aa54c4eb9b37156b4f1d20beb", - "dc8c39647b294e03ae9ed13ebd65dd29" -] - -module.exports = {hidden: function(featureManager){ - return !allowedUUIDS.includes(Player.getUUID().toString().replace(/-/g, "")) -}}
\ No newline at end of file diff --git a/features/agentlaiThings/index.js b/features/agentlaiThings/index.js deleted file mode 100644 index 1654be4..0000000 --- a/features/agentlaiThings/index.js +++ /dev/null @@ -1,195 +0,0 @@ -/// <reference types="../../../CTAutocomplete" /> -/// <reference lib="es2015" /> -import { SoopyGui, SoopyRenderEvent } from "../../../guimanager"; -import SoopyBoxElement from "../../../guimanager/GuiElement/SoopyBoxElement"; -import SoopyGuiElement from "../../../guimanager/GuiElement/SoopyGuiElement"; -import renderLibs from "../../../guimanager/renderLibs"; -import Feature from "../../featureClass/class"; -import ToggleSetting from "../settings/settingThings/toggle"; - -class AgentThings extends Feature { - constructor() { - super() - } - - onEnable(){ - return; - this.initVariables() - - this.nearPlayerData = [] - while(this.nearPlayerData.length < 100){this.nearPlayerData.push({})} - - this.recordNearestPlayers = new ToggleSetting("Record nearby players", "You can then view this data with /nearplayers", false, "record_near_players", this) - - this.registerStep(false, 1, this.step) - - this.nearPlayersGui = new SoopyGui().setOpenCommand("nearplayers") - - this.nearPlayersGuiBox = new SoopyBoxElement().setLocation(0.25, 0.25, 0.5, 0.5) - this.nearPlayersGui.element.addChild(this.nearPlayersGuiBox) - - this.nearPlayersRenderElement = new SoopyGuiElement() - this.nearPlayersGuiBox.addChild(this.nearPlayersRenderElement) - - - let selected = undefined - let selectedDist = undefined - let lastXY = 0 - this.nearPlayersRenderElement.addEvent(new SoopyRenderEvent().setHandler((mouseX, mouseY)=>{ - let moved = lastXY !== mouseX+mouseY - lastXY = mouseX+mouseY - - let x = this.nearPlayersRenderElement.location.getXExact() - let y = this.nearPlayersRenderElement.location.getYExact() - let width = this.nearPlayersRenderElement.location.getWidthExact() - let height = this.nearPlayersRenderElement.location.getHeightExact() - - x+=width*0.125 - y+=height*0.125 - width*=0.75 - height*=0.75 - - Renderer.drawLine(Renderer.color(0, 0, 0), x, y+height, x+width, y+height, 2)//bottom axis line - Renderer.drawLine(Renderer.color(0, 0, 0), x, y, x, y+height, 2)//left axis line - - renderLibs.drawStringCentered("&0100s ago", x, y+height+6, Renderer.screen.getWidth()/1000) - renderLibs.drawStringCentered("&050s ago", x+width/2, y+height+6, Renderer.screen.getWidth()/1000) - renderLibs.drawStringCentered("&0Now", x+width, y+height+6, Renderer.screen.getWidth()/1000) //bottom axis markers - - - renderLibs.drawStringCenteredVertically("&025m away", x+3-Renderer.getStringWidth("&025m away")*Renderer.screen.getWidth()/1000, y, Renderer.screen.getWidth()/1000) - renderLibs.drawStringCenteredVertically("&020m away", x+3-Renderer.getStringWidth("&020m away")*Renderer.screen.getWidth()/1000, y+height/5*1, Renderer.screen.getWidth()/1000) - renderLibs.drawStringCenteredVertically("&010m away", x+3-Renderer.getStringWidth("&010m away")*Renderer.screen.getWidth()/1000, y+height/5*3, Renderer.screen.getWidth()/1000) - renderLibs.drawStringCenteredVertically("&00m away", x+3-Renderer.getStringWidth("&00m away")*Renderer.screen.getWidth()/1000, y+height-6, Renderer.screen.getWidth()/1000) - - if(moved){ - selected = undefined - selectedDist = undefined - } - let lastUuids = [] - this.nearPlayerData.forEach((data, i)=>{ - let newLastUuids = [] - Object.keys(data).forEach(uuid=>{ - newLastUuids.push(uuid) - lastUuids = lastUuids.filter(a=>a!==uuid) - - let dist = data[uuid].distance - let oldDist = this.nearPlayerData[i-1]?.[uuid]?.distance || 25 - - let thisX = x+(i)/100*width - let thisY = y+height-(dist/25)*height - - if(moved && (thisX-mouseX)**2 + (thisY-mouseY)**2 < 3){ - selected = uuid - selectedDist = dist - } - - if(i !== 0){ - Renderer.drawLine(Renderer.color(0, 0, 0), x+(i-1)/100*width, y+height-(oldDist/25)*height, thisX, thisY, 1) - } - - Renderer.drawRect(Renderer.color(0, 0, 0), thisX-1, thisY-1, 3, 3) - }) - - lastUuids.forEach(uuid=>{ - let dist = 25 - let oldDist = this.nearPlayerData[i-1]?.[uuid]?.distance || 25 - - let thisX = x+(i)/100*width - let thisY = y+height-(dist/25)*height - - if(i !== 0){ - Renderer.drawLine(Renderer.color(0, 0, 0), x+(i-1)/100*width, y+height-(oldDist/25)*height, thisX, thisY, 1) - } - }) - - lastUuids = newLastUuids - }) - - if(selected){ - width = this.nearPlayersRenderElement.location.getWidthExact() - height = this.nearPlayersRenderElement.location.getHeightExact() - - width*=0.75 - height*=0.75 - - renderLibs.scizzorFast(0,0,Renderer.screen.getWidth(), Renderer.screen.getHeight()) - let selectedIgn = undefined - let lastRenderedSelected = false - this.nearPlayerData.forEach((data, i)=>{ - if(data[selected]){ - lastRenderedSelected = true - - selectedIgn = data[selected].name - - let dist = data[selected].distance - let oldDist = this.nearPlayerData[i-1]?.[selected]?.distance || 25 - - let thisX = x+(i)/100*width - let thisY = y+height-(dist/25)*height - - if(i !== 0){ - Renderer.drawLine(Renderer.color(255, 0, 0), x+(i-1)/100*width, y+height-(oldDist/25)*height, thisX, thisY, 3) - } - }else{ - if(lastRenderedSelected){ - lastRenderedSelected = false - - let dist = 25 - let oldDist = this.nearPlayerData[i-1]?.[selected]?.distance || 25 - - let thisX = x+(i)/100*width - let thisY = y+height-(dist/25)*height - - if(i !== 0){ - Renderer.drawLine(Renderer.color(255, 0, 0), x+(i-1)/100*width, y+height-(oldDist/25)*height, thisX, thisY, 3) - } - } - } - }) - - let width = Math.max(Renderer.getStringWidth(selectedIgn)*2, Renderer.getStringWidth("Distance: " + selectedDist.toFixed(1)))+8 - let height = 32 - renderLibs.drawBox([255, 255, 255], mouseX+10, mouseY-height/2, width,height, 3) - renderLibs.drawString("&0" + selectedIgn, mouseX+14, mouseY-height/2+3, 2) - renderLibs.drawString("&0Distance: &7" + selectedDist.toFixed(1) , mouseX+14, mouseY-height/2+21, 1) - } - - })) - } - - step(){ - if(!this.recordNearestPlayers.getValue()) return - - let thisSecondPlayerData = {} - World.getAllPlayers().forEach(p=>{ - let distSq = (p.getX()-Player.getX())**2+(p.getY()-Player.getY())**2+(p.getZ()-Player.getZ())**2 - - if(distSq < 25*25 && distSq !== 0){ - thisSecondPlayerData[p.getUUID().toString()] = {name: p.getName(), distance: Math.sqrt(distSq)} - } - }) - - this.nearPlayerData.push(thisSecondPlayerData) - - if(this.nearPlayerData.length > 100) this.nearPlayerData.shift() - } - - initVariables(){ - this.recordNearestPlayers = undefined - this.nearPlayerData = undefined - this.nearPlayersGui = undefined - this.nearPlayersGuiBox = undefined - this.nearPlayersRenderElement = undefined - } - - onDisable(){ - this.nearPlayersGui.delete() - - this.initVariables() - } -} - -module.exports = { - class: new AgentThings() -}
\ No newline at end of file diff --git a/features/agentlaiThings/metadata.json b/features/agentlaiThings/metadata.json deleted file mode 100644 index e44e8fa..0000000 --- a/features/agentlaiThings/metadata.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "Agentlai Settings", - "description": "Settings only avalible to agentlai", - "isHidden": "hiddenRequirement.js", - "isTogglable": true, - "defaultEnabled": false, - "sortA": 0 -}
\ No newline at end of file diff --git a/features/bestiary/index.js b/features/bestiary/index.js index 3888ffb..00d5752 100644 --- a/features/bestiary/index.js +++ b/features/bestiary/index.js @@ -1,37 +1,257 @@ /// <reference types="../../../CTAutocomplete" /> /// <reference lib="es2015" /> -import { m } from "../../../mappings/mappings"; import Feature from "../../featureClass/class"; -import { drawCoolWaypoint } from "../../utils/renderUtils"; +import { numberWithCommas } from "../../utils/numberUtils"; +import HudTextElement from "../hud/HudTextElement"; +import DropdownSetting from "../settings/settingThings/dropdownSetting"; +import LocationSetting from "../settings/settingThings/location"; import SettingBase from "../settings/settingThings/settingBase"; import ToggleSetting from "../settings/settingThings/toggle"; +let dontUseApi = new Set() +dontUseApi.add("arachne") +dontUseApi.add("barbarian_duke_x") +dontUseApi.add("bladesoul") +dontUseApi.add("mage_outlaw") +dontUseApi.add("ashfang") +dontUseApi.add("magma_cube_boss") +dontUseApi.add("headless_horseman") +dontUseApi.add("dragon") -class Waypoints extends Feature { + +class Bestiary extends Feature { constructor() { super() } onEnable() { - this.initVariables() - this.bestiaryData = JSON.parse(FileLib.read("soopyAddonsData", "bestiaryData.json") || "{}") this.bestiaryChanged = false + + this.bestiaryApiTracking = {} + + this.registerStep(true, 5, this.scanInv) + this.registerStep(false, 5, this.saveData) + + + this.bestiaryStatTypes = { + "barbarian_duke_x": "Barbarian Duke X" + } + Object.keys(this.bestiaryData).forEach(k => { + if (this.bestiaryData[k].guiName) this.bestiaryStatTypes[k] = this.bestiaryData[k].guiName + }) + + new SettingBase("NOTE: u need to open ur bestiary menu", "before this will work", true, "info_bestiary", this) + this.hudStat = [] + for (let i = 0; i < 10; i++) { + this.hudStat[i] = {} + this.hudStat[i].enabled = new ToggleSetting("Bestiary Slot #" + (i + 1), "Allows you to render a custom besiary kills on your hud", false, "bestiary_stat_" + i, this) + this.hudStat[i].type = new DropdownSetting("Bestiary Slot #" + (i + 1) + " Type", "The bestiary type", "barbarian_duke_x", "bestiary_stat_" + i + "_type", this, this.bestiaryStatTypes) + this.hudStat[i].location = new LocationSetting("Bestiary Slot #" + (i + 1) + " Location", "Allows you to edit the location of the bestiary stat", "bestiary_stat_" + i + "_location", this, [10, 50 + i * 10, 1, 1]).editTempText("&6Bestiary Stat Stat&7> &f12,345") + this.hudStat[i].textElement = new HudTextElement().setToggleSetting(this.hudStat[i].enabled).setLocationSetting(this.hudStat[i].location).setText("&6Bestiary Stat&7> &fLoading...") + this.hudStat[i].onlySb = new ToggleSetting("Bestiary Slot #" + (i + 1) + " Only SB", "Only render this stat when you are in skyblock", true, "bestiary_stat_" + i + "_only_sb", this).requires(this.hudStat[i].enabled) + + this.hudStat[i].location.requires(this.hudStat[i].enabled) + this.hudStat[i].type.requires(this.hudStat[i].enabled) + if (this.hudStat[i - 1]) { + this.hudStat[i].enabled.requires(this.hudStat[i - 1].enabled) + } + } + + this.registerStep(false, 5, this.updateHudElements) + this.registerEvent("renderOverlay", this.renderHUD) + // TODO + // dragon + // headless_horseman + let lastThing = undefined + let lastThingTime = 0 + this.registerChat("${chat}", (chat) => { + let thing + switch (chat.trim()) { + case "MAGE OUTLAW DOWN!": + thing = "mage_outlaw" + break; + case "BARBARIAN DUKE X DOWN!": + thing = "barbarian_duke_x" + break; + case "BLADESOUL DOWN!": + thing = "bladesoul" + break; + case "ASHFANG DOWN!": + thing = "ashfang" + break; + // case "MAGMA BOSS DOWN!": + // thing = "magma_cube_boss" + // break; + case "ARACHNE DOWN!": + lastThing = "arachne" + lastThingTime = Date.now() + break; + case "HORSEMAN DOWN!": + lastThing = "arachne" + lastThingTime = Date.now() + break; + default: + break; + } + if (chat.includes("DRAGON")) { + lastThing = "dragon" + lastThingTime = Date.now() + } + + if (chat.trim().startsWith("Your Damage: ")) { + let dmg = parseInt(chat.trim().split("Your Damage: ")[1].split(" ")[0]) + if (dmg > 0 && Date.now() - lastThingTime < 1000) { + thing = lastThing + lastThing = "" + lastThingTime = 0 + } + } + + if (thing) { + this.bestiaryData[thing].guessCount++ + this.bestiaryChanged = true + } + }) + this.registerSoopy("apiLoad", this.apiLoad); + + if (this.FeatureManager.features["dataLoader"] && this.FeatureManager.features["dataLoader"].class.lastApiData.skyblock_raw) { + this.apiLoad(this.FeatureManager.features["dataLoader"].class.lastApiData.skyblock_raw, "skyblock", false, true); + } + } + + renderHUD() { + for (let stat of this.hudStat) { + stat.textElement.render() + } } - initVariables() { + getBestiaryCount(id) { + if (!this.bestiaryData[id]) return "???" + let count = this.bestiaryData[id].count + + if (!dontUseApi.has(id)) { + let currApiData = this.bestiaryApiTracking[id] + + count += currApiData - this.bestiaryData[id].apiCount + } + count += this.bestiaryData[id].guessCount + + return count } - onDisable() { + updateHudElements() { + if (!this.FeatureManager.features["dataLoader"]) return + + let insb = this.FeatureManager.features["dataLoader"].class.isInSkyblock + + this.hudStat.forEach(stat => { + if (stat.enabled.getValue()) { + if (!insb && stat.onlySb.getValue()) { + stat.textElement.setText("") + return + } + + let type = stat.type.getValue() + + stat.textElement.setText(`&6${this.bestiaryData[type]?.guiName}&7> &f${numberWithCommas(this.getBestiaryCount(type))}`) + } + }) + } + + apiLoad(data, dataType, isSoopyServer, isLatest) { + if (isSoopyServer || !isLatest) return; + if (dataType !== "skyblock") return; + + let currentProfile = {} + let currentProfileTime = 0 + + data.profiles.forEach(p => { + if (p.members[Player.getUUID().toString().replace(/-/g, "")].last_save > currentProfileTime) { + currentProfileTime = p.members[Player.getUUID().toString().replace(/-/g, "")].last_save + currentProfile = p.members[Player.getUUID().toString().replace(/-/g, "")] + } + }) + + Object.keys(currentProfile.stats).forEach(key => { + if (key.startsWith("kills_")) { + this.bestiaryApiTracking[key.replace("kills_", "")] = currentProfile.stats[key] + } + }) + } + + scanInv() { + if (!Player.getContainer()) return + if (!Player.getContainer().getName().startsWith("Bestiary ➜ ")) return + let tempChanged = false + let seen = new Set() + + for (let item of Player.getContainer().getItems()) { + if (!item) continue + let name = ChatLib.removeFormatting(item.getName()).split(" ") + name.pop() + let apiName = name.join("_").toLowerCase() + if (seen.has(apiName)) continue + seen.add(apiName) + + if (apiName === "skeletor_prime") continue + + if (this.bestiaryApiTracking[apiName] || dontUseApi.has(apiName)) { + + let count = 0 + + for (let l of item.getLore()) { + l = ChatLib.removeFormatting(l) + + if (l.startsWith("Kills: ")) { + count = parseInt(l.split("Kills: ")[1].replace(/,/g, "")) + break; + } + } + + let needsChange = !this.bestiaryData[apiName] || this.bestiaryData[apiName].guiName !== name.join(" ") || this.bestiaryData[apiName].count !== count || this.bestiaryData[apiName].apiCount !== (this.bestiaryApiTracking[apiName] || 0) || this.bestiaryData[apiName].guessCount !== 0 + if (needsChange) { + this.bestiaryData[apiName] = { + guiName: name.join(" "), + count, + apiCount: this.bestiaryApiTracking[apiName] || 0, + guessCount: 0 + } + this.bestiaryChanged = true + + tempChanged = true + + } + } + } + + if (tempChanged) { + this.bestiaryStatTypes = {} + Object.keys(this.bestiaryData).forEach(k => { + if (this.bestiaryData[k]?.guiName) this.bestiaryStatTypes[k] = this.bestiaryData[k].guiName + }) + + this.hudStat.forEach(s => { + s.type.dropdownObject.setOptions(this.bestiaryStatTypes) + }) + + this.updateHudElements() + } + start = Date.now() + } + + saveData() { if (this.bestiaryChanged) { FileLib.write("soopyAddonsData", "bestiaryData.json", JSON.stringify(this.bestiaryData)) } + } - this.initVariables() + onDisable() { + this.saveData() } -} +} module.exports = { - class: new Waypoints() + class: new Bestiary() } diff --git a/features/betterGuis/index.js b/features/betterGuis/index.js index cb0b5a0..2d188bf 100644 --- a/features/betterGuis/index.js +++ b/features/betterGuis/index.js @@ -24,7 +24,7 @@ class BetterGuis extends Feature { this.reliableSbMenuClicks = { getValue: () => false }//removed because hypixel fixed, code kept incase hypixel adds back bug later //new ToggleSetting("Make SBMENU clicks reliable", "This will delay clicks on sbmenu to time them so they dont get canceled", true, "sbmenu_time", this) this.museumGuiEnabled = new ToggleSetting("Custom Museum GUI", "Custom gui for the Museum", true, "custom_museum_enabled", this) - this.dungeonReadyGuiEnabled = new ToggleSetting("Custom Dungeon Ready GUI (UNFINISHED)", "Custom gui for the dungeon ready up menu", false, "custom_dungeon_ready_enabled", this) + this.dungeonReadyGuiEnabled = new ToggleSetting("Custom Dungeon Ready GUI", "Custom gui for the dungeon ready up menu", false, "custom_dungeon_ready_enabled", this) this.chestSearchBar = new ToggleSetting("Inventory Search Bar", "u can use '&' to make it filter buy stuff that contains multiple things", false, "inv_search", this) diff --git a/features/cosmetics/cosmetic/dragon/dragonWings.js b/features/cosmetics/cosmetic/dragon/dragonWings.js index 0d7341f..f050141 100644 --- a/features/cosmetics/cosmetic/dragon/dragonWings.js +++ b/features/cosmetics/cosmetic/dragon/dragonWings.js @@ -1,10 +1,11 @@ +import renderLibs from "../../../../../guimanager/renderLibs.js"; import { f, m, m } from "../../../../../mappings/mappings.js"; import ToggleSetting from "../../../settings/settingThings/toggle.js"; import Cosmetic from "../../cosmetic.js"; const ModelDragon = Java.type("net.minecraft.client.model.ModelDragon") -if(!GlStateManager){ +if (!GlStateManager) { // var GL11 = Java.type("org.lwjgl.opengl.GL11"); //using var so it goes to global scope var GlStateManager = Java.type("net.minecraft.client.renderer.GlStateManager"); } @@ -13,10 +14,15 @@ const EssentialCosmeticSlot = Java.type("gg.essential.cosmetics.CosmeticSlot") const FACING = Java.type("net.minecraft.block.BlockDirectional").field_176387_N let dragon = new ModelDragon(0) //too lazy to make my own model so i just yoink it from modelDragon lmfao -let textures = {//TODO: dynamicly load textures from server - classic: new Image(javax.imageio.ImageIO.read(new java.io.File("./config/ChatTriggers/modules/SoopyV2/features/cosmetics/textures/dragon/classic.png"))), - purple: new Image(javax.imageio.ImageIO.read(new java.io.File("./config/ChatTriggers/modules/SoopyV2/features/cosmetics/textures/dragon/purple.png"))) +let textures = new Map() +let loadingTextures = new Set() +function loadTexture(id) { + new Thread(() => { + loadingTextures.add(id) + textures.set(id, renderLibs.getImage("http://soopymc.my.to/api/soopyv2/textures/cosmetic/dragon/" + id + "/img.png", true)) + }).start() } +loadTexture("classic") let wing = getField(dragon, f.wing) let wingTip = getField(dragon, f.wingTip) @@ -24,132 +30,136 @@ class DragonWings extends Cosmetic { constructor(player, parent) { super(player, parent, "dragon_wings"); - this.animOffset = Math.random()*20*Math.PI + this.animOffset = Math.random() * 20 * Math.PI this.lastRender = Date.now() this.lastFlapSound = this.animOffset this.i = 0 this.flying = false + + if (!textures.has(this.settings.texture) && !loadingTextures.has(this.settings.texture)) { + loadTexture(this.settings.texture) + } } - onRenderEntity(ticks, isInGui){ - - if(this.player.getPlayer()[m.isInvisibleToPlayer](Player.getPlayer()) || this.player.getPlayer()[m.isInvisible]()){ + onRenderEntity(ticks, isInGui) { + + if (this.player.getPlayer()[m.isInvisibleToPlayer](Player.getPlayer()) || this.player.getPlayer()[m.isInvisible]()) { return } - + if (!textures.has("classic")) return let isSelfPlayer = this.player.getUUID().toString() === Player.getUUID().toString() let isInInv = isSelfPlayer && ticks === 1 let thirdPersonView = Client.getMinecraft()[f.gameSettings.Minecraft][f.thirdPersonView] - if(!this.parent.firstPersonVisable.getValue() && thirdPersonView === 0 && isSelfPlayer && !isInInv) return + if (!this.parent.firstPersonVisable.getValue() && thirdPersonView === 0 && isSelfPlayer && !isInInv) return // return; // wing.func_78785_a(1) - let timeSince = (Date.now()-this.lastRender)/1000 + let timeSince = (Date.now() - this.lastRender) / 1000 this.lastRender = Date.now() - let rotation = isInInv?0:this.player.getPlayer()[f.prevRenderYawOffset]+(this.player.getPlayer()[f.renderYawOffset]-this.player.getPlayer()[f.prevRenderYawOffset])*ticks + let rotation = isInInv ? 0 : this.player.getPlayer()[f.prevRenderYawOffset] + (this.player.getPlayer()[f.renderYawOffset] - this.player.getPlayer()[f.prevRenderYawOffset]) * ticks // rotation += entity.field_70761_aq+(entity.field_70761_aq-entity.field_70760_ar)*ticks // console.log(rotation, entity.getEntity().field_70761_aq+(entity.getEntity().field_70761_aq-entity.getEntity().field_70760_ar)*ticks) - let horisontalSpeed = Math.hypot((this.player.getPlayer()[f.posX.Entity]-this.player.getPlayer()[f.lastTickPosX]),(this.player.getPlayer()[f.posZ.Entity]-this.player.getPlayer()[f.lastTickPosZ])) + let horisontalSpeed = Math.hypot((this.player.getPlayer()[f.posX.Entity] - this.player.getPlayer()[f.lastTickPosX]), (this.player.getPlayer()[f.posZ.Entity] - this.player.getPlayer()[f.lastTickPosZ])) + + let verticleSpeed = this.player.getPlayer()[f.posY.Entity] - this.player.getPlayer()[f.lastTickPosY] - let verticleSpeed = this.player.getPlayer()[f.posY.Entity]-this.player.getPlayer()[f.lastTickPosY] - - this.animOffset += Math.min(1, horisontalSpeed)*10*timeSince+1*timeSince + this.animOffset += Math.min(1, horisontalSpeed) * 10 * timeSince + 1 * timeSince let flapAmountMultiplyerNoEnd = 1 let flapAmountMultiplyer = 1 let wingEndOffsetThing = 0 - - flapAmountMultiplyerNoEnd += Math.min(5, (horisontalSpeed*5)) + + flapAmountMultiplyerNoEnd += Math.min(5, (horisontalSpeed * 5)) let flapMainOffsetThing = 0 let wingBackAmount = 0 let shouldStandStillWingCurve = true - if(this.player.getPlayer()[f.hurtResistantTime] > 17){ //damage tick - this.animOffset += 25*timeSince + if (this.player.getPlayer()[f.hurtResistantTime] > 17) { //damage tick + this.animOffset += 25 * timeSince } // if((this.player === Player &&this.player.getPlayer().field_71075_bZ.field_75100_b) || (this.player !== Player && Math.abs(verticleSpeed)<0.2 && !this.player.getPlayer().field_70122_E)){//playerCapabilities.isFlying - if(this.flying){ //flying + if (this.flying) { //flying shouldStandStillWingCurve = false - this.animOffset += 5*timeSince //flap in mid air + this.animOffset += 5 * timeSince //flap in mid air flapAmountMultiplyer *= 1.75 //flap harder - if(isSelfPlayer && thirdPersonView === 0){ - if(!this.parent.lessFirstPersonVisable.getValue()){ + if (isSelfPlayer && thirdPersonView === 0) { + if (!this.parent.lessFirstPersonVisable.getValue()) { flapAmountMultiplyerNoEnd += 0.4 flapMainOffsetThing = 0.3 } - }else{ + } else { flapAmountMultiplyer *= 1.25 flapAmountMultiplyer *= 0.9 flapMainOffsetThing = 0.1 - wingEndOffsetThing+= -0.1 + wingEndOffsetThing += -0.1 } wingEndOffsetThing += -0.75 - if(verticleSpeed > 0){ - this.animOffset += verticleSpeed*25*timeSince //flap when flying upwards + if (verticleSpeed > 0) { + this.animOffset += verticleSpeed * 25 * timeSince //flap when flying upwards } - }else{ - if(this.lastFlapSound < this.animOffset-this.animOffset%(Math.PI*2)){ - this.lastFlapSound = this.animOffset-this.animOffset%(Math.PI*2) + } else { + if (this.lastFlapSound < this.animOffset - this.animOffset % (Math.PI * 2)) { + this.lastFlapSound = this.animOffset - this.animOffset % (Math.PI * 2) } } - if(verticleSpeed < -0.5){ - wingBackAmount = Math.min(1, (verticleSpeed+0.5)*-1.5) //lift wings back further ur falling + if (verticleSpeed < -0.5) { + wingBackAmount = Math.min(1, (verticleSpeed + 0.5) * -1.5) //lift wings back further ur falling - this.animOffset += (verticleSpeed+0.5)*-3*timeSince + this.animOffset += (verticleSpeed + 0.5) * -3 * timeSince } GlStateManager[m.pushMatrix](); // pushMatrix Tessellator.colorize(this.settings.color.r, this.settings.color.g, this.settings.color.b); - if(!isSelfPlayer){ + if (!isSelfPlayer) { Tessellator.translate( - (this.player.getPlayer()[f.lastTickPosX] + (this.player.getPlayer()[f.posX.Entity]-this.player.getPlayer()[f.lastTickPosX]) * ticks) - (Player.getPlayer()[f.lastTickPosX] + (Player.getPlayer()[f.posX.Entity]-Player.getPlayer()[f.lastTickPosX]) * ticks), - (this.player.getPlayer()[f.lastTickPosY] + (this.player.getPlayer()[f.posY.Entity]-this.player.getPlayer()[f.lastTickPosY]) * ticks) - (Player.getPlayer()[f.lastTickPosY] + (Player.getPlayer()[f.posY.Entity]-Player.getPlayer()[f.lastTickPosY]) * ticks), - (this.player.getPlayer()[f.lastTickPosZ] + (this.player.getPlayer()[f.posZ.Entity]-this.player.getPlayer()[f.lastTickPosZ]) * ticks) - (Player.getPlayer()[f.lastTickPosZ] + (Player.getPlayer()[f.posZ.Entity]-Player.getPlayer()[f.lastTickPosZ]) * ticks)) + (this.player.getPlayer()[f.lastTickPosX] + (this.player.getPlayer()[f.posX.Entity] - this.player.getPlayer()[f.lastTickPosX]) * ticks) - (Player.getPlayer()[f.lastTickPosX] + (Player.getPlayer()[f.posX.Entity] - Player.getPlayer()[f.lastTickPosX]) * ticks), + (this.player.getPlayer()[f.lastTickPosY] + (this.player.getPlayer()[f.posY.Entity] - this.player.getPlayer()[f.lastTickPosY]) * ticks) - (Player.getPlayer()[f.lastTickPosY] + (Player.getPlayer()[f.posY.Entity] - Player.getPlayer()[f.lastTickPosY]) * ticks), + (this.player.getPlayer()[f.lastTickPosZ] + (this.player.getPlayer()[f.posZ.Entity] - this.player.getPlayer()[f.lastTickPosZ]) * ticks) - (Player.getPlayer()[f.lastTickPosZ] + (Player.getPlayer()[f.posZ.Entity] - Player.getPlayer()[f.lastTickPosZ]) * ticks)) } - if(textures[this.settings.texture || "classic"]){ - Tessellator.bindTexture(textures[this.settings.texture || "classic"]) //bind texture - }else{ - Tessellator.bindTexture(textures.classic) //bind default texture (classic) + if (textures.get(this.settings.texture || "classic")) { + Tessellator.bindTexture(textures.get(this.settings.texture || "classic")) //bind texture + } else { + Tessellator.bindTexture(textures.get("classic")) //bind default texture (classic) } - if(this.player.getPlayer()[f.ridingEntity.Entity]){ - rotation = this.player.getPlayer()[f.rotationYawHead]+(this.player.getPlayer()[f.rotationYawHead]-this.player.getPlayer()[f.prevRotationYawHead])*ticks + if (this.player.getPlayer()[f.ridingEntity.Entity]) { + rotation = this.player.getPlayer()[f.rotationYawHead] + (this.player.getPlayer()[f.rotationYawHead] - this.player.getPlayer()[f.prevRotationYawHead]) * ticks } - if(!this.player.getPlayer()[m.isPlayerSleeping]()){ //dont rotate when in bed - Tessellator.rotate((180-rotation),0,1,0) - - Tessellator.translate(0,1.2,0.1) - - if(this.player.getPlayer()[m.isSneaking.Entity]()){ //isSneaking - Tessellator.translate(0, -0.125,0) - Tessellator.rotate(-20, 1,0,0) - - Tessellator.translate(0, 0,0.1) - if(isSelfPlayer && thirdPersonView === 0){}else{ - Tessellator.translate(0, -0.125,0) + if (!this.player.getPlayer()[m.isPlayerSleeping]()) { //dont rotate when in bed + Tessellator.rotate((180 - rotation), 0, 1, 0) + + Tessellator.translate(0, 1.2, 0.1) + + if (this.player.getPlayer()[m.isSneaking.Entity]()) { //isSneaking + Tessellator.translate(0, -0.125, 0) + Tessellator.rotate(-20, 1, 0, 0) + + Tessellator.translate(0, 0, 0.1) + if (isSelfPlayer && thirdPersonView === 0) { } else { + Tessellator.translate(0, -0.125, 0) } } - - if(isSelfPlayer && !isInInv && thirdPersonView === 0){ + + if (isSelfPlayer && !isInInv && thirdPersonView === 0) { //Make wings less scuffed when in first person looking down/up - Tessellator.translate(0, 0.25, 0.003*(this.player.getPitch())) |
