1 package net
.encode
.wurmesp
.feature
;
3 import com
.wurmonline
.client
.game
.PlayerPosition
;
4 import com
.wurmonline
.mesh
.GrassData
;
5 import com
.wurmonline
.mesh
.Tiles
;
7 import net
.encode
.wurmesp
.WurmEspMod
;
8 import net
.encode
.wurmesp
.util
.RenderUtils
;
10 public class FeatureFlowerTiles
14 public void refresh() {
15 WurmEspMod
._flowerTerrain
.clear();
16 WurmEspMod
._terrainBuffer
= this.world
.getNearTerrainBuffer();
17 PlayerPosition pos
= this.world
.getPlayer().getPos();
18 int px
= pos
.getTileX();
19 int py
= pos
.getTileY();
20 int size
= WurmEspMod
.flowerdiameter
;
21 int sx
= px
- size
/ 2;
22 int sy
= py
- size
/ 2;
23 float ox
= this.world
.getRenderOriginX();
24 float oy
= this.world
.getRenderOriginY();
25 for (int x
= 0; x
< size
+ 1; ++x
) {
26 for (int y
= 0; y
< size
+ 1; ++y
) {
29 byte data
= WurmEspMod
._terrainBuffer
.getData((int)tileX
, (int)tileY
);
30 Tiles
.Tile tileType
= WurmEspMod
._terrainBuffer
.getTileType((int)tileX
, (int)tileY
);
31 if (tileType
.isGrass() && !tileType
.isBush() && !tileType
.isTree()) {
32 for(String name
: WurmEspMod
.tilesFlowerSearch
)
34 if(GrassData
.getFlowerTypeName(data
).contains(name
))
36 float curX
= tileX
* 4.0f - ox
;
37 float curY
= tileY
* 4.0f - oy
;
38 float nextX
= (tileX
+ 1.0f) * 4.0f - ox
;
39 float nextY
= (tileY
+ 1.0f) * 4.0f - oy
;
40 float x0
= curX
+ 0.1f;
41 float y0
= curY
+ 0.1f;
42 float x1
= nextX
- 0.1f;
43 float y1
= nextY
- 0.1f;
44 float z0
= WurmEspMod
._terrainBuffer
.getHeight((int)tileX
, (int)tileY
);
45 float z1
= WurmEspMod
._terrainBuffer
.getHeight((int)tileX
+ 1, (int)tileY
);
46 float z2
= WurmEspMod
._terrainBuffer
.getHeight((int)tileX
, (int)tileY
+ 1);
47 float z3
= WurmEspMod
._terrainBuffer
.getHeight((int)tileX
+ 1, (int)tileY
+ 1);
48 WurmEspMod
._flowerTerrain
.add(new float[]{x0
, z0
, y0
, x1
, z1
, y0
, x0
, z2
, y1
, x1
, z3
, y1
});
58 if (WurmEspMod
._flowerTerrain
== null) {
61 WurmEspMod
._flowerTerrain
.forEach(t
-> {
62 float[] color
= new float[]{0.0f, 1.0f, 0.0f, 0.5f};
63 int[] indexdata
= new int[]{1, 0, 0, 2, 2, 3, 3, 1};
64 RenderUtils
.renderPrimitiveLines(4, t
, indexdata
, this.queuePick
, color
);