b52166c33e67c50e1de4db7f5f68f42b23c4273f
[esp.git] / src / net / encode / wurmesp / feature / hook / RenderPickedItem.java
1 /*
2 * Decompiled with CFR 0.151.
3 *
4 * Could not load the following classes:
5 * com.wurmonline.client.game.World
6 * com.wurmonline.client.renderer.PickRenderer
7 * com.wurmonline.client.renderer.backend.Queue
8 * org.gotti.wurmunlimited.modloader.ReflectionUtil
9 */
10 package net.encode.wurmesp.feature.hook;
11
12 import java.lang.reflect.Field;
13 import java.util.logging.Level;
14
15 import org.gotti.wurmunlimited.modloader.ReflectionUtil;
16
17 import com.wurmonline.client.game.World;
18 import com.wurmonline.client.renderer.PickRenderer;
19 import com.wurmonline.client.renderer.backend.Queue;
20
21 import net.encode.wurmesp.WurmEspMod;
22
23 public class RenderPickedItem
24 extends Hook {
25
26 public RenderPickedItem() {
27 this.prepareHook("com.wurmonline.client.renderer.WorldRender", "renderPickedItem", "(Lcom/wurmonline/client/renderer/backend/Queue;)V", () -> (proxy, method, args) -> {
28 method.invoke(proxy, args);
29 Class<?> cls = proxy.getClass();
30 World world = (World)ReflectionUtil.getPrivateField((Object)proxy, (Field)ReflectionUtil.getField(cls, (String)"world"));
31 WurmEspMod._pickRenderer = (PickRenderer)ReflectionUtil.getPrivateField((Object)proxy, (Field)ReflectionUtil.getField(cls, (String)"pickRenderer"));
32 Queue queuePick = (Queue)ReflectionUtil.getPrivateField((Object)proxy, (Field)ReflectionUtil.getField(cls, (String)"queuePick"));
33 WurmEspMod.pickableUnits.stream().filter(unit -> WurmEspMod.players && unit.isPlayer() || WurmEspMod.uniques && unit.isUnique() || WurmEspMod.conditioned && unit.isConditioned() || WurmEspMod.animals && (unit.isMob() && !unit.isAggroMob()) || WurmEspMod.mobs && unit.isAggroMob() || WurmEspMod.specials && unit.isSpecial() || WurmEspMod.items && unit.isSpotted()).forEachOrdered(unit -> {
34 if (unit.isConditioned() && WurmEspMod.conditioned || unit.isConditioned() && WurmEspMod.conditionedcolorsallways || unit.isChampion() && WurmEspMod.championmcoloralways) {
35 unit.renderUnit(queuePick, true);
36 } else {
37 unit.renderUnit(queuePick, false);
38 }
39 });
40 if (WurmEspMod.tileshighlight) {
41 WurmEspMod.tilesHighlightManager.setWorldQueue(world, queuePick);
42 if (WurmEspMod.tilesHighlightManager.first) {
43 WurmEspMod.tilesHighlightManager.refresh();
44 WurmEspMod.tilesHighlightManager.first = false;
45 } else if (WurmEspMod.tilesHighlightCronoManager.hasEnded()) {
46 WurmEspMod.tilesHighlightManager.refresh();
47 WurmEspMod.tilesHighlightCronoManager.restart(5000L);
48 }
49 Thread tilesHighlightThread = new Thread(() -> WurmEspMod.tilesHighlightManager.queue());
50 tilesHighlightThread.setPriority(10);
51 tilesHighlightThread.start();
52 } else {
53 WurmEspMod.tilesHighlightManager.setWorld(world);
54 }
55 if (WurmEspMod.tilescloseby && world.getPlayer().getPos().getLayer() >= 0) {
56 WurmEspMod.tilesCloseByManager.setWorldQueue(world, queuePick);
57 if (WurmEspMod.tilesCloseByManager.first) {
58 WurmEspMod.tilesCloseByManager.refresh();
59 WurmEspMod.tilesCloseByManager.first = false;
60 } else if (WurmEspMod.tilesCloseByCronoManager.hasEnded()) {
61 WurmEspMod.tilesCloseByManager.refresh();
62 WurmEspMod.tilesCloseByCronoManager.restart(1000L);
63 }
64 Thread tilesThread = new Thread(() -> WurmEspMod.tilesCloseByManager.queue());
65 tilesThread.setPriority(10);
66 tilesThread.start();
67 }
68 if (WurmEspMod.tilesclosebynotrideable && world.getPlayer().getPos().getLayer() >= 0) {
69 WurmEspMod.tilesCloseByWalkableManager.setWorldQueue(world, queuePick);
70 if (WurmEspMod.tilesCloseByWalkableManager.first) {
71 WurmEspMod.tilesCloseByWalkableManager.refresh();
72 WurmEspMod.tilesCloseByWalkableManager.first = false;
73 } else if (WurmEspMod.tilesCloseByWalkableCronoManager.hasEnded()) {
74 WurmEspMod.tilesCloseByWalkableManager.refresh();
75 WurmEspMod.tilesCloseByWalkableCronoManager.restart(1000L);
76 }
77 Thread tilesWalkableThread = new Thread(() -> WurmEspMod.tilesCloseByWalkableManager.queue());
78 tilesWalkableThread.setPriority(10);
79 tilesWalkableThread.start();
80 }
81 if (WurmEspMod.tilesFlower && world.getPlayer().getPos().getLayer() >= 0) {
82 WurmEspMod.tilesFlowerManager.setWorldQueue(world, queuePick);
83 if (WurmEspMod.tilesFlowerManager.first) {
84 WurmEspMod.tilesFlowerManager.refresh();
85 WurmEspMod.tilesFlowerManager.first = false;
86 } else if (WurmEspMod.tilesFlowerCronoManager.hasEnded()) {
87 WurmEspMod.tilesFlowerManager.refresh();
88 WurmEspMod.tilesFlowerCronoManager.restart(1000L);
89 }
90 Thread tilesFlowerThread = new Thread(() -> WurmEspMod.tilesFlowerManager.queue());
91 tilesFlowerThread.setPriority(10);
92 tilesFlowerThread.start();
93 }
94 if (WurmEspMod.xray && world.getPlayer().getPos().getLayer() < 0) {
95 Thread refreshThread;
96 WurmEspMod.xrayManager.setWorldQueue(world, queuePick);
97 if (WurmEspMod.xrayManager.first) {
98 if (WurmEspMod.xrayrefreshthread) {
99 refreshThread = new Thread(() -> WurmEspMod.xrayManager.refresh());
100 refreshThread.setPriority(10);
101 refreshThread.start();
102 } else {
103 WurmEspMod.xrayManager.refresh();
104 }
105 WurmEspMod.xrayManager.first = false;
106 } else if (WurmEspMod.xrayCronoManager.hasEnded()) {
107 if (WurmEspMod.xrayrefreshthread) {
108 refreshThread = new Thread(() -> WurmEspMod.xrayManager.refresh());
109 refreshThread.setPriority(10);
110 refreshThread.start();
111 } else {
112 WurmEspMod.xrayManager.refresh();
113 }
114 WurmEspMod.xrayCronoManager.restart(WurmEspMod.xrayrefreshrate * 1000);
115 }
116 if (WurmEspMod.xraythread) {
117 Thread xrayThread = new Thread(() -> WurmEspMod.xrayManager.queue());
118 xrayThread.setPriority(10);
119 xrayThread.start();
120 } else {
121 WurmEspMod.xrayManager.queue();
122 }
123 }
124 return null;
125 });
126 WurmEspMod.logger.log(Level.INFO, "[WurmEspMod] WorldRender.renderPickedItem hooked");
127 }
128 }
129