82327c1d |
1 | package net.encode.wurmesp; |
2 | |
3 | import java.util.ArrayList; |
4 | import java.util.List; |
5 | import java.util.Properties; |
6 | import java.util.concurrent.CopyOnWriteArrayList; |
7 | import java.util.logging.Level; |
8 | import java.util.logging.Logger; |
9 | |
10 | import org.gotti.wurmunlimited.modloader.interfaces.Configurable; |
11 | import org.gotti.wurmunlimited.modloader.interfaces.Initable; |
12 | import org.gotti.wurmunlimited.modloader.interfaces.WurmClientMod; |
13 | |
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; |
18 | |
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; |
35 | |
36 | public class WurmEspMod |
37 | implements WurmClientMod, |
38 | Initable, |
39 | Configurable { |
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; |
95 | |
96 | public void init() { |
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(); |
117 | } |
118 | |
119 | public void configure(Properties properties) { |
120 | ConfigUtils.DoConfig(properties); |
121 | logger.log(Level.INFO, "[WurmEspMod] Config loaded"); |
122 | } |
123 | |
124 | static { |
125 | logger = Logger.getLogger("WurmEspMod"); |
126 | modProperties = new Properties(); |
127 | pickableUnits = new ArrayList<Unit>(); |
128 | toRemove = new ArrayList<Unit>(); |
129 | _caveBuffer = null; |
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; |
140 | players = true; |
141 | mobs = false; |
142 | animals = false; |
143 | specials = true; |
144 | items = true; |
145 | tilesFlower = false; |
146 | uniques = true; |
147 | conditioned = true; |
148 | tilescloseby = false; |
149 | deedsize = false; |
150 | tileshighlight = false; |
151 | tilesclosebynotrideable = false; |
152 | xray = false; |
153 | xraythread = true; |
154 | xrayrefreshthread = true; |
155 | xraydiameter = 32; |
156 | xrayrefreshrate = 5; |
157 | tilenotrideable = 40; |
158 | flowerdiameter = 64; |
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; |
167 | } |
168 | |
169 | public static enum SEARCHTYPE { |
170 | NONE, |
171 | HOVER, |
172 | MODEL, |
173 | BOTH; |
174 | |
175 | } |
176 | } |
177 | |