Clean
[esp.git] / src / net / encode / wurmesp / WurmEspMod.java
CommitLineData
82327c1d 1package net.encode.wurmesp;
2
3import java.util.ArrayList;
4import java.util.List;
5import java.util.Properties;
6import java.util.concurrent.CopyOnWriteArrayList;
7import java.util.logging.Level;
8import java.util.logging.Logger;
9
10import org.gotti.wurmunlimited.modloader.interfaces.Configurable;
11import org.gotti.wurmunlimited.modloader.interfaces.Initable;
12import org.gotti.wurmunlimited.modloader.interfaces.WurmClientMod;
13
14import com.wurmonline.client.game.CaveDataBuffer;
15import com.wurmonline.client.game.NearTerrainDataBuffer;
16import com.wurmonline.client.renderer.PickRenderer;
17import com.wurmonline.client.renderer.gui.HeadsUpDisplay;
18
19import net.encode.wurmesp.feature.FeatureFlowerTiles;
20import net.encode.wurmesp.feature.FeatureTilesCloseBy;
21import net.encode.wurmesp.feature.FeatureTilesHighlight;
22import net.encode.wurmesp.feature.FeatureTilesWalkable;
23import net.encode.wurmesp.feature.FeatureXRay;
24import net.encode.wurmesp.feature.hook.CmdShowDeedPlan;
25import net.encode.wurmesp.feature.hook.GroundItemCellRenderableInit;
26import net.encode.wurmesp.feature.hook.GroundItemCellRenderableRemove;
27import net.encode.wurmesp.feature.hook.HandleDevInput;
28import net.encode.wurmesp.feature.hook.HeadsUpDisplayInit;
29import net.encode.wurmesp.feature.hook.MobileModelRenderableInit;
30import net.encode.wurmesp.feature.hook.MobileModelRenderableRemove;
31import net.encode.wurmesp.feature.hook.ProjectileCellRenderable;
32import net.encode.wurmesp.feature.hook.RenderPickedItem;
33import net.encode.wurmesp.util.ConfigUtils;
34import net.encode.wurmesp.util.CronoManager;
35
36public class WurmEspMod
37implements WurmClientMod,
38Initable,
39Configurable {
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