First Commit
[esp.git] / src / net / encode / wurmesp / feature / FeatureTilesHighlight.java
1 /*
2 * Decompiled with CFR 0.151.
3 *
4 * Could not load the following classes:
5 * com.wurmonline.client.game.PlayerPosition
6 * com.wurmonline.client.game.World
7 */
8 package net.encode.wurmesp.feature;
9
10 import com.wurmonline.client.game.PlayerPosition;
11 import com.wurmonline.client.game.World;
12 import net.encode.wurmesp.WurmEspMod;
13 import net.encode.wurmesp.util.RenderUtils;
14
15 public class FeatureTilesHighlight
16 extends Feature {
17 @Override
18 public void refresh() {
19 WurmEspMod._tilesHighlightTerrain.clear();
20 WurmEspMod._terrainBuffer = this.world.getNearTerrainBuffer();
21 float ox = this.world.getRenderOriginX();
22 float oy = this.world.getRenderOriginY();
23 WurmEspMod._tilesHighlightBase.forEach(base -> {
24 float curX = (float)(base[0] * 4) - ox;
25 float curY = (float)(base[1] * 4) - oy;
26 float nextX = (float)((base[0] + 1) * 4) - ox;
27 float nextY = (float)((base[1] + 1) * 4) - oy;
28 float x0 = curX + 0.1f;
29 float y0 = curY + 0.1f;
30 float x1 = nextX - 0.1f;
31 float y1 = nextY - 0.1f;
32 float z0 = WurmEspMod._terrainBuffer.getHeight(base[0], base[1]);
33 float z1 = WurmEspMod._terrainBuffer.getHeight(base[0] + 1, base[1]);
34 float z2 = WurmEspMod._terrainBuffer.getHeight(base[0], base[1] + 1);
35 float z3 = WurmEspMod._terrainBuffer.getHeight(base[0] + 1, base[1] + 1);
36 WurmEspMod._tilesHighlightTerrain.add(new float[]{x0, z0, y0, x1, z1, y0, x0, z2, y1, x1, z3, y1, x0, 0.0f, y0, x1, 0.0f, y0, x0, 0.0f, y1, x1, 0.0f, y1});
37 });
38 }
39
40 @Override
41 public void queue() {
42 if (WurmEspMod._tilesHighlightTerrain == null) {
43 return;
44 }
45 WurmEspMod._tilesHighlightTerrain.forEach(t -> {
46 float[] color = new float[]{1.0f, 0.0f, 0.0f, 1.0f};
47 int[] indexdata = new int[]{1, 0, 0, 2, 2, 3, 3, 1, 1, 2, 0, 3, 5, 4, 4, 6, 6, 7, 7, 5, 0, 4, 1, 5, 2, 6, 3, 7};
48 RenderUtils.renderPrimitiveLines(8, t, indexdata, this.queuePick, color);
49 });
50 }
51
52 public void setWorld(World world) {
53 this.world = world;
54 }
55
56 public void addData(String direction, int tiles, int times, int space) {
57 PlayerPosition pos = this.world.getPlayer().getPos();
58 int baseTileX = pos.getTileX();
59 int baseTileY = pos.getTileY();
60 WurmEspMod._tilesHighlightBase.add(new int[]{baseTileX, baseTileY});
61 block12: for (int i = 0; i < times; ++i) {
62 switch (direction) {
63 case "n": {
64 int s;
65 baseTileY -= tiles;
66 for (s = 1; s < space + 1; ++s) {
67 WurmEspMod._tilesHighlightBase.add(new int[]{baseTileX, --baseTileY});
68 }
69 continue block12;
70 }
71 case "s": {
72 int s;
73 baseTileY += tiles;
74 for (s = 1; s < space + 1; ++s) {
75 WurmEspMod._tilesHighlightBase.add(new int[]{baseTileX, ++baseTileY});
76 }
77 continue block12;
78 }
79 case "e": {
80 int s;
81 baseTileX += tiles;
82 for (s = 1; s < space + 1; ++s) {
83 WurmEspMod._tilesHighlightBase.add(new int[]{++baseTileX, baseTileY});
84 }
85 continue block12;
86 }
87 case "w": {
88 int s;
89 baseTileX -= tiles;
90 for (s = 1; s < space + 1; ++s) {
91 WurmEspMod._tilesHighlightBase.add(new int[]{--baseTileX, baseTileY});
92 }
93 continue block12;
94 }
95 }
96 }
97 }
98
99 public void addData(int x, int y) {
100 WurmEspMod._tilesHighlightBase.add(new int[]{x, y});
101 }
102
103 public void addData(int radius) {
104 int tileX = this.world.getPlayer().getPos().getTileX();
105 int tileY = this.world.getPlayer().getPos().getTileY();
106 int startX = tileX - radius;
107 int startY = tileY - radius;
108 int endX = tileX + radius;
109 int endY = tileY + radius;
110 this.addData(startX, startY, endX, endY);
111 }
112
113 public void addData(int startX, int startY, int endX, int endY) {
114 WurmEspMod._tilesHighlightBase.add(new int[]{startX, startY});
115 WurmEspMod._tilesHighlightBase.add(new int[]{startX, endY});
116 WurmEspMod._tilesHighlightBase.add(new int[]{endX, startY});
117 WurmEspMod._tilesHighlightBase.add(new int[]{endX, endY});
118 }
119 }
120