82327c1d |
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 | |