Clean
[esp.git] / src / net / encode / wurmesp / util / ConfigUtils.java
1 package net.encode.wurmesp.util;
2
3 import com.wurmonline.mesh.Tiles;
4 import java.awt.Color;
5 import java.io.IOException;
6 import java.io.InputStream;
7 import java.nio.file.Files;
8 import java.nio.file.OpenOption;
9 import java.nio.file.Path;
10 import java.nio.file.Paths;
11 import java.util.Properties;
12 import net.encode.wurmesp.Unit;
13 import net.encode.wurmesp.WurmEspMod;
14
15 public class ConfigUtils {
16 /*
17 * WARNING - Removed try catching itself - possible behaviour change.
18 */
19 public static void loadProperties(String name) {
20 WurmEspMod.modProperties.clear();
21 InputStream inputStream = null;
22 Path path = Paths.get("mods", new String[0]);
23 path = path.resolve(name + ".properties");
24 try {
25 inputStream = Files.newInputStream(path, new OpenOption[0]);
26 WurmEspMod.modProperties.load(inputStream);
27 }
28 catch (IOException e) {
29 e.printStackTrace();
30 }
31 finally {
32 if (inputStream != null) {
33 try {
34 inputStream.close();
35 }
36 catch (IOException e) {
37 e.printStackTrace();
38 }
39 }
40 }
41 }
42
43 public static void DoConfig(Properties properties) {
44 WurmEspMod.players = Boolean.valueOf(properties.getProperty("players", Boolean.toString(WurmEspMod.players)));
45 WurmEspMod.mobs = Boolean.valueOf(properties.getProperty("mobs", Boolean.toString(WurmEspMod.mobs)));
46 WurmEspMod.animals = Boolean.valueOf(properties.getProperty("animals", Boolean.toString(WurmEspMod.animals)));
47 WurmEspMod.specials = Boolean.valueOf(properties.getProperty("specials", Boolean.toString(WurmEspMod.specials)));
48 WurmEspMod.items = Boolean.valueOf(properties.getProperty("items", Boolean.toString(WurmEspMod.items)));
49 WurmEspMod.uniques = Boolean.valueOf(properties.getProperty("uniques", Boolean.toString(WurmEspMod.uniques)));
50 WurmEspMod.conditioned = Boolean.valueOf(properties.getProperty("conditioned", Boolean.toString(WurmEspMod.conditioned)));
51 WurmEspMod.tilescloseby = Boolean.valueOf(properties.getProperty("tilescloseby", Boolean.toString(WurmEspMod.tilescloseby)));
52 WurmEspMod.deedsize = Boolean.valueOf(properties.getProperty("deedsize", Boolean.toString(WurmEspMod.deedsize)));
53 WurmEspMod.xray = Boolean.valueOf(properties.getProperty("xray", Boolean.toString(WurmEspMod.xray)));
54 WurmEspMod.xraythread = Boolean.valueOf(properties.getProperty("xraythread", Boolean.toString(WurmEspMod.xraythread)));
55 WurmEspMod.xrayrefreshthread = Boolean.valueOf(properties.getProperty("xrayrefreshthread", Boolean.toString(WurmEspMod.xrayrefreshthread)));
56 WurmEspMod.xraydiameter = Integer.parseInt(properties.getProperty("xraydiameter", Integer.toString(WurmEspMod.xraydiameter)));
57 WurmEspMod.xrayrefreshrate = Integer.parseInt(properties.getProperty("xrayrefreshrate", Integer.toString(WurmEspMod.xrayrefreshrate)));
58 WurmEspMod.tilenotrideable = Integer.parseInt(properties.getProperty("tilenotrideable", Integer.toString(WurmEspMod.tilenotrideable)));
59 WurmEspMod.flowerdiameter = Integer.parseInt(properties.getProperty("flowerdiameter", Integer.toString(WurmEspMod.flowerdiameter)));
60 WurmEspMod.playsoundspecial = Boolean.valueOf(properties.getProperty("playsoundspecial", Boolean.toString(WurmEspMod.playsoundspecial)));
61 WurmEspMod.playsounditem = Boolean.valueOf(properties.getProperty("playsounditem", Boolean.toString(WurmEspMod.playsounditem)));
62 WurmEspMod.playsoundunique = Boolean.valueOf(properties.getProperty("playsoundunique", Boolean.toString(WurmEspMod.playsoundunique)));
63 WurmEspMod.soundspecial = properties.getProperty("soundspecial", WurmEspMod.soundspecial);
64 WurmEspMod.sounditem = properties.getProperty("sounditem", WurmEspMod.sounditem);
65 WurmEspMod.soundunique = properties.getProperty("soundunique", WurmEspMod.soundunique);
66 WurmEspMod.conditionedcolorsallways = Boolean.valueOf(properties.getProperty("conditionedcolorsallways", Boolean.toString(WurmEspMod.conditionedcolorsallways)));
67 WurmEspMod.championmcoloralways = Boolean.valueOf(properties.getProperty("championmcoloralways", Boolean.toString(WurmEspMod.championmcoloralways)));
68 Unit.colorPlayers = ConfigUtils.colorStringToFloatA(properties.getProperty("colorPlayers", ConfigUtils.colorFloatAToString(Unit.colorPlayers)));
69 Unit.colorPlayersEnemy = ConfigUtils.colorStringToFloatA(properties.getProperty("colorPlayersEnemy", ConfigUtils.colorFloatAToString(Unit.colorPlayersEnemy)));
70 Unit.colorMobs = ConfigUtils.colorStringToFloatA(properties.getProperty("colorMobs", ConfigUtils.colorFloatAToString(Unit.colorMobs)));
71 Unit.colorMobsAggro = ConfigUtils.colorStringToFloatA(properties.getProperty("colorMobsAggro", ConfigUtils.colorFloatAToString(Unit.colorMobsAggro)));
72 Unit.colorSpecials = ConfigUtils.colorStringToFloatA(properties.getProperty("colorSpecials", ConfigUtils.colorFloatAToString(Unit.colorSpecials)));
73 Unit.colorSpotted = ConfigUtils.colorStringToFloatA(properties.getProperty("colorSpotted", ConfigUtils.colorFloatAToString(Unit.colorSpotted)));
74 Unit.colorUniques = ConfigUtils.colorStringToFloatA(properties.getProperty("colorUniques", ConfigUtils.colorFloatAToString(Unit.colorUniques)));
75 Unit.colorAlert = ConfigUtils.colorStringToFloatA(properties.getProperty("colorAlert", ConfigUtils.colorFloatAToString(Unit.colorAlert)));
76 Unit.colorAngry = ConfigUtils.colorStringToFloatA(properties.getProperty("colorAngry", ConfigUtils.colorFloatAToString(Unit.colorAngry)));
77 Unit.colorChampion = ConfigUtils.colorStringToFloatA(properties.getProperty("colorChampion", ConfigUtils.colorFloatAToString(Unit.colorChampion)));
78 Unit.colorDiseased = ConfigUtils.colorStringToFloatA(properties.getProperty("colorDiseased", ConfigUtils.colorFloatAToString(Unit.colorDiseased)));
79 Unit.colorFierce = ConfigUtils.colorStringToFloatA(properties.getProperty("colorFierce", ConfigUtils.colorFloatAToString(Unit.colorFierce)));
80 Unit.colorGreenish = ConfigUtils.colorStringToFloatA(properties.getProperty("colorGreenish", ConfigUtils.colorFloatAToString(Unit.colorGreenish)));
81 Unit.colorHardened = ConfigUtils.colorStringToFloatA(properties.getProperty("colorHardened", ConfigUtils.colorFloatAToString(Unit.colorHardened)));
82 Unit.colorLurking = ConfigUtils.colorStringToFloatA(properties.getProperty("colorLurking", ConfigUtils.colorFloatAToString(Unit.colorLurking)));
83 Unit.colorRaging = ConfigUtils.colorStringToFloatA(properties.getProperty("colorRaging", ConfigUtils.colorFloatAToString(Unit.colorRaging)));
84 Unit.colorScared = ConfigUtils.colorStringToFloatA(properties.getProperty("colorScared", ConfigUtils.colorFloatAToString(Unit.colorScared)));
85 Unit.colorSlow = ConfigUtils.colorStringToFloatA(properties.getProperty("colorSlow", ConfigUtils.colorFloatAToString(Unit.colorSlow)));
86 Unit.colorSly = ConfigUtils.colorStringToFloatA(properties.getProperty("colorSly", ConfigUtils.colorFloatAToString(Unit.colorSly)));
87 String oreColorOreIron = properties.getProperty("oreColorOreIron", "default");
88 if (!oreColorOreIron.equals("default")) {
89 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ORE_IRON, ConfigUtils.colorStringToFloatA(oreColorOreIron));
90 } else {
91 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ORE_IRON, Color.RED.darker());
92 }
93 String oreColorOreCopper = properties.getProperty("oreColorOreCopper", "default");
94 if (!oreColorOreCopper.equals("default")) {
95 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ORE_COPPER, ConfigUtils.colorStringToFloatA(oreColorOreCopper));
96 } else {
97 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ORE_COPPER, Color.GREEN);
98 }
99 String oreColorOreTin = properties.getProperty("oreColorOreTin", "default");
100 if (!oreColorOreTin.equals("default")) {
101 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ORE_TIN, ConfigUtils.colorStringToFloatA(oreColorOreTin));
102 } else {
103 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ORE_TIN, Color.GRAY);
104 }
105 String oreColorOreGold = properties.getProperty("oreColorOreGold", "default");
106 if (!oreColorOreGold.equals("default")) {
107 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ORE_GOLD, ConfigUtils.colorStringToFloatA(oreColorOreGold));
108 } else {
109 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ORE_GOLD, Color.YELLOW.darker());
110 }
111 String oreColorOreAdamantine = properties.getProperty("oreColorOreAdamantine", "default");
112 if (!oreColorOreAdamantine.equals("default")) {
113 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ORE_ADAMANTINE, ConfigUtils.colorStringToFloatA(oreColorOreAdamantine));
114 } else {
115 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ORE_ADAMANTINE, Color.CYAN);
116 }
117 String oreColorOreGlimmersteel = properties.getProperty("oreColorOreGlimmersteel", "default");
118 if (!oreColorOreGlimmersteel.equals("default")) {
119 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ORE_GLIMMERSTEEL, ConfigUtils.colorStringToFloatA(oreColorOreGlimmersteel));
120 } else {
121 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ORE_GLIMMERSTEEL, Color.YELLOW.brighter());
122 }
123 String oreColorOreSilver = properties.getProperty("oreColorOreSilver", "default");
124 if (!oreColorOreSilver.equals("default")) {
125 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ORE_SILVER, ConfigUtils.colorStringToFloatA(oreColorOreSilver));
126 } else {
127 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ORE_SILVER, Color.LIGHT_GRAY);
128 }
129 String oreColorOreLead = properties.getProperty("oreColorOreLead", "default");
130 if (!oreColorOreLead.equals("default")) {
131 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ORE_LEAD, ConfigUtils.colorStringToFloatA(oreColorOreLead));
132 } else {
133 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ORE_LEAD, Color.PINK.darker().darker());
134 }
135 String oreColorOreZinc = properties.getProperty("oreColorOreZinc", "default");
136 if (!oreColorOreZinc.equals("default")) {
137 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ORE_ZINC, ConfigUtils.colorStringToFloatA(oreColorOreZinc));
138 } else {
139 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ORE_ZINC, new Color(235, 235, 235));
140 }
141 String oreColorSlate = properties.getProperty("oreColorSlate", "default");
142 if (!oreColorSlate.equals("default")) {
143 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_SLATE, ConfigUtils.colorStringToFloatA(oreColorSlate));
144 } else {
145 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_SLATE, Color.BLACK);
146 }
147 String oreColorMarble = properties.getProperty("oreColorMarble", "default");
148 if (!oreColorMarble.equals("default")) {
149 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_MARBLE, ConfigUtils.colorStringToFloatA(oreColorMarble));
150 } else {
151 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_MARBLE, Color.WHITE);
152 }
153 String oreColorSandstone = properties.getProperty("oreColorSandstone", "default");
154 if (!oreColorSandstone.equals("default")) {
155 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_SANDSTONE, ConfigUtils.colorStringToFloatA(oreColorSandstone));
156 } else {
157 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_SANDSTONE, Color.YELLOW.darker().darker());
158 }
159 String oreColorRocksalt = properties.getProperty("oreColorRocksalt", "default");
160 if (!oreColorRocksalt.equals("default")) {
161 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ROCKSALT, ConfigUtils.colorStringToFloatA(oreColorRocksalt));
162 } else {
163 XrayColors.addMapping(Tiles.Tile.TILE_CAVE_WALL_ROCKSALT, Color.WHITE.darker());
164 }
165 Unit.aggroMOBS = properties.getProperty("aggroMOBS").split(";");
166 Unit.uniqueMOBS = properties.getProperty("uniqueMOBS").split(";");
167 Unit.specialITEMS = properties.getProperty("specialITEMS").split(";");
168 Unit.spottedITEMS = properties.getProperty("spottedITEMS").split(";");
169 Unit.conditionedMOBS = properties.getProperty("conditionedMOBS").split(";");
170 WurmEspMod.tilesFlowerSearch = properties.getProperty("tilesFlowerSearch").split(";");
171 }
172
173 private static float[] colorStringToFloatA(String color) {
174 String[] colors = color.split(",");
175 float[] colorf = new float[]{Float.valueOf(colors[0]).floatValue() / 255.0f, Float.valueOf(colors[1]).floatValue() / 255.0f, Float.valueOf(colors[2]).floatValue() / 255.0f};
176 return colorf;
177 }
178
179 private static String colorFloatAToString(float[] color) {
180 String colors = String.valueOf(color[0] * 255.0f) + "," + String.valueOf(color[1] * 255.0f) + "," + String.valueOf(color[2] * 255.0f);
181 return colors;
182 }
183 }
184