82327c1d |
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 | |