1 package net
.encode
.wurmesp
;
3 import java
.util
.ArrayList
;
5 import java
.util
.Properties
;
6 import java
.util
.concurrent
.CopyOnWriteArrayList
;
7 import java
.util
.logging
.Level
;
8 import java
.util
.logging
.Logger
;
10 import org
.gotti
.wurmunlimited
.modloader
.interfaces
.Configurable
;
11 import org
.gotti
.wurmunlimited
.modloader
.interfaces
.Initable
;
12 import org
.gotti
.wurmunlimited
.modloader
.interfaces
.WurmClientMod
;
14 import com
.wurmonline
.client
.game
.CaveDataBuffer
;
15 import com
.wurmonline
.client
.game
.NearTerrainDataBuffer
;
16 import com
.wurmonline
.client
.renderer
.PickRenderer
;
17 import com
.wurmonline
.client
.renderer
.gui
.HeadsUpDisplay
;
19 import net
.encode
.wurmesp
.feature
.FeatureFlowerTiles
;
20 import net
.encode
.wurmesp
.feature
.FeatureTilesCloseBy
;
21 import net
.encode
.wurmesp
.feature
.FeatureTilesHighlight
;
22 import net
.encode
.wurmesp
.feature
.FeatureTilesWalkable
;
23 import net
.encode
.wurmesp
.feature
.FeatureXRay
;
24 import net
.encode
.wurmesp
.feature
.hook
.CmdShowDeedPlan
;
25 import net
.encode
.wurmesp
.feature
.hook
.GroundItemCellRenderableInit
;
26 import net
.encode
.wurmesp
.feature
.hook
.GroundItemCellRenderableRemove
;
27 import net
.encode
.wurmesp
.feature
.hook
.HandleDevInput
;
28 import net
.encode
.wurmesp
.feature
.hook
.HeadsUpDisplayInit
;
29 import net
.encode
.wurmesp
.feature
.hook
.MobileModelRenderableInit
;
30 import net
.encode
.wurmesp
.feature
.hook
.MobileModelRenderableRemove
;
31 import net
.encode
.wurmesp
.feature
.hook
.ProjectileCellRenderable
;
32 import net
.encode
.wurmesp
.feature
.hook
.RenderPickedItem
;
33 import net
.encode
.wurmesp
.util
.ConfigUtils
;
34 import net
.encode
.wurmesp
.util
.CronoManager
;
36 public class WurmEspMod
37 implements WurmClientMod
,
40 public static HeadsUpDisplay hud
;
41 public static Logger logger
;
42 public static Properties modProperties
;
43 public static List
<Unit
> pickableUnits
;
44 public static List
<Unit
> toRemove
;
45 public static CronoManager xrayCronoManager
;
46 public static CronoManager tilesFlowerCronoManager
;
47 public static CronoManager tilesCloseByCronoManager
;
48 public static CronoManager tilesHighlightCronoManager
;
49 public static CronoManager tilesCloseByWalkableCronoManager
;
50 public static FeatureXRay xrayManager
;
51 public static FeatureFlowerTiles tilesFlowerManager
;
52 public static FeatureTilesCloseBy tilesCloseByManager
;
53 public static FeatureTilesHighlight tilesHighlightManager
;
54 public static FeatureTilesWalkable tilesCloseByWalkableManager
;
55 public static CaveDataBuffer _caveBuffer
;
56 public static NearTerrainDataBuffer _terrainBuffer
;
57 public static NearTerrainDataBuffer _terrainBuffer2
;
58 public static CopyOnWriteArrayList
<float[]> _terrain
;
59 public static CopyOnWriteArrayList
<float[]> _flowerTerrain
;
60 public static CopyOnWriteArrayList
<float[]> _closeByTerrain
;
61 public static CopyOnWriteArrayList
<float[]> _closeByWalkableTerrain
;
62 public static CopyOnWriteArrayList
<int[]> _tilesHighlightBase
;
63 public static CopyOnWriteArrayList
<float[]> _tilesHighlightTerrain
;
64 public static String search
;
65 public static SEARCHTYPE searchType
;
66 public static boolean players
;
67 public static boolean mobs
;
68 public static boolean animals
;
69 public static boolean specials
;
70 public static boolean items
;
71 public static boolean tilesFlower
;
72 public static boolean uniques
;
73 public static boolean conditioned
;
74 public static boolean tilescloseby
;
75 public static boolean deedsize
;
76 public static boolean tileshighlight
;
77 public static boolean tilesclosebynotrideable
;
78 public static boolean xray
;
79 public static boolean xraythread
;
80 public static boolean xrayrefreshthread
;
81 public static int xraydiameter
;
82 public static int xrayrefreshrate
;
83 public static int tilenotrideable
;
84 public static int flowerdiameter
;
85 public static boolean playsoundspecial
;
86 public static boolean playsounditem
;
87 public static boolean playsoundunique
;
88 public static String soundspecial
;
89 public static String sounditem
;
90 public static String soundunique
;
91 public static boolean conditionedcolorsallways
;
92 public static boolean championmcoloralways
;
93 public static String
[] tilesFlowerSearch
;
94 public static PickRenderer _pickRenderer
;
97 logger
.log(Level
.INFO
, "[WurmEspMod] Initializing");
98 xrayManager
= new FeatureXRay();
99 tilesFlowerManager
= new FeatureFlowerTiles();
100 tilesCloseByManager
= new FeatureTilesCloseBy();
101 tilesHighlightManager
= new FeatureTilesHighlight();
102 tilesCloseByWalkableManager
= new FeatureTilesWalkable();
103 xrayCronoManager
= new CronoManager(xrayrefreshrate
* 1000);
104 tilesFlowerCronoManager
= new CronoManager(1000L);
105 tilesCloseByCronoManager
= new CronoManager(1000L);
106 tilesHighlightCronoManager
= new CronoManager(1000L);
107 tilesCloseByWalkableCronoManager
= new CronoManager(1000L);
108 new HandleDevInput();
109 new ProjectileCellRenderable();
110 new HeadsUpDisplayInit();
111 new RenderPickedItem();
112 new MobileModelRenderableInit();
113 new MobileModelRenderableRemove();
114 new GroundItemCellRenderableInit();
115 new GroundItemCellRenderableRemove();
116 new CmdShowDeedPlan();
119 public void configure(Properties properties
) {
120 ConfigUtils
.DoConfig(properties
);
121 logger
.log(Level
.INFO
, "[WurmEspMod] Config loaded");
125 logger
= Logger
.getLogger("WurmEspMod");
126 modProperties
= new Properties();
127 pickableUnits
= new ArrayList
<Unit
>();
128 toRemove
= new ArrayList
<Unit
>();
130 _terrainBuffer
= null;
131 _terrainBuffer2
= null;
132 _terrain
= new CopyOnWriteArrayList
<float[]>();
133 _flowerTerrain
= new CopyOnWriteArrayList
<float[]>();
134 _closeByTerrain
= new CopyOnWriteArrayList
<float[]>();
135 _closeByWalkableTerrain
= new CopyOnWriteArrayList
<float[]>();
136 _tilesHighlightBase
= new CopyOnWriteArrayList
<int[]>();
137 _tilesHighlightTerrain
= new CopyOnWriteArrayList
<float[]>();
138 search
= "defaultnosearch";
139 searchType
= SEARCHTYPE
.NONE
;
148 tilescloseby
= false;
150 tileshighlight
= false;
151 tilesclosebynotrideable
= false;
154 xrayrefreshthread
= true;
157 tilenotrideable
= 40;
159 playsoundspecial
= true;
160 playsounditem
= true;
161 playsoundunique
= true;
162 soundspecial
= "sound.fx.conch";
163 sounditem
= "sound.fx.conch";
164 soundunique
= "sound.fx.conch";
165 conditionedcolorsallways
= false;
166 championmcoloralways
= false;
169 public static enum SEARCHTYPE
{