1 package net
.encode
.wurmesp
.feature
;
3 import com
.wurmonline
.client
.game
.PlayerPosition
;
4 import com
.wurmonline
.client
.game
.World
;
5 import net
.encode
.wurmesp
.WurmEspMod
;
6 import net
.encode
.wurmesp
.util
.RenderUtils
;
8 public class FeatureTilesHighlight
11 public void refresh() {
12 WurmEspMod
._tilesHighlightTerrain
.clear();
13 WurmEspMod
._terrainBuffer
= this.world
.getNearTerrainBuffer();
14 float ox
= this.world
.getRenderOriginX();
15 float oy
= this.world
.getRenderOriginY();
16 WurmEspMod
._tilesHighlightBase
.forEach(base
-> {
17 float curX
= (float)(base
[0] * 4) - ox
;
18 float curY
= (float)(base
[1] * 4) - oy
;
19 float nextX
= (float)((base
[0] + 1) * 4) - ox
;
20 float nextY
= (float)((base
[1] + 1) * 4) - oy
;
21 float x0
= curX
+ 0.1f;
22 float y0
= curY
+ 0.1f;
23 float x1
= nextX
- 0.1f;
24 float y1
= nextY
- 0.1f;
25 float z0
= WurmEspMod
._terrainBuffer
.getHeight(base
[0], base
[1]);
26 float z1
= WurmEspMod
._terrainBuffer
.getHeight(base
[0] + 1, base
[1]);
27 float z2
= WurmEspMod
._terrainBuffer
.getHeight(base
[0], base
[1] + 1);
28 float z3
= WurmEspMod
._terrainBuffer
.getHeight(base
[0] + 1, base
[1] + 1);
29 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
});
35 if (WurmEspMod
._tilesHighlightTerrain
== null) {
38 WurmEspMod
._tilesHighlightTerrain
.forEach(t
-> {
39 float[] color
= new float[]{1.0f, 0.0f, 0.0f, 1.0f};
40 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};
41 RenderUtils
.renderPrimitiveLines(8, t
, indexdata
, this.queuePick
, color
);
45 public void setWorld(World world
) {
49 public void addData(String direction
, int tiles
, int times
, int space
) {
50 PlayerPosition pos
= this.world
.getPlayer().getPos();
51 int baseTileX
= pos
.getTileX();
52 int baseTileY
= pos
.getTileY();
53 WurmEspMod
._tilesHighlightBase
.add(new int[]{baseTileX
, baseTileY
});
54 block12
: for (int i
= 0; i
< times
; ++i
) {
59 for (s
= 1; s
< space
+ 1; ++s
) {
60 WurmEspMod
._tilesHighlightBase
.add(new int[]{baseTileX
, --baseTileY
});
67 for (s
= 1; s
< space
+ 1; ++s
) {
68 WurmEspMod
._tilesHighlightBase
.add(new int[]{baseTileX
, ++baseTileY
});
75 for (s
= 1; s
< space
+ 1; ++s
) {
76 WurmEspMod
._tilesHighlightBase
.add(new int[]{++baseTileX
, baseTileY
});
83 for (s
= 1; s
< space
+ 1; ++s
) {
84 WurmEspMod
._tilesHighlightBase
.add(new int[]{--baseTileX
, baseTileY
});
92 public void addData(int x
, int y
) {
93 WurmEspMod
._tilesHighlightBase
.add(new int[]{x
, y
});
96 public void addData(int radius
) {
97 int tileX
= this.world
.getPlayer().getPos().getTileX();
98 int tileY
= this.world
.getPlayer().getPos().getTileY();
99 int startX
= tileX
- radius
;
100 int startY
= tileY
- radius
;
101 int endX
= tileX
+ radius
;
102 int endY
= tileY
+ radius
;
103 this.addData(startX
, startY
, endX
, endY
);
106 public void addData(int startX
, int startY
, int endX
, int endY
) {
107 WurmEspMod
._tilesHighlightBase
.add(new int[]{startX
, startY
});
108 WurmEspMod
._tilesHighlightBase
.add(new int[]{startX
, endY
});
109 WurmEspMod
._tilesHighlightBase
.add(new int[]{endX
, startY
});
110 WurmEspMod
._tilesHighlightBase
.add(new int[]{endX
, endY
});