1 package net
.encode
.wurmesp
.util
;
3 import com
.wurmonline
.mesh
.Tiles
;
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
;
15 public class ConfigUtils
{
17 * WARNING - Removed try catching itself - possible behaviour change.
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");
25 inputStream
= Files
.newInputStream(path
, new OpenOption
[0]);
26 WurmEspMod
.modProperties
.load(inputStream
);
28 catch (IOException e
) {
32 if (inputStream
!= null) {
36 catch (IOException e
) {
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
));
91 XrayColors
.addMapping(Tiles
.Tile
.TILE_CAVE_WALL_ORE_IRON
, Color
.RED
.darker());
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
));
97 XrayColors
.addMapping(Tiles
.Tile
.TILE_CAVE_WALL_ORE_COPPER
, Color
.GREEN
);
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
));
103 XrayColors
.addMapping(Tiles
.Tile
.TILE_CAVE_WALL_ORE_TIN
, Color
.GRAY
);
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
));
109 XrayColors
.addMapping(Tiles
.Tile
.TILE_CAVE_WALL_ORE_GOLD
, Color
.YELLOW
.darker());
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
));
115 XrayColors
.addMapping(Tiles
.Tile
.TILE_CAVE_WALL_ORE_ADAMANTINE
, Color
.CYAN
);
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
));
121 XrayColors
.addMapping(Tiles
.Tile
.TILE_CAVE_WALL_ORE_GLIMMERSTEEL
, Color
.YELLOW
.brighter());
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
));
127 XrayColors
.addMapping(Tiles
.Tile
.TILE_CAVE_WALL_ORE_SILVER
, Color
.LIGHT_GRAY
);
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
));
133 XrayColors
.addMapping(Tiles
.Tile
.TILE_CAVE_WALL_ORE_LEAD
, Color
.PINK
.darker().darker());
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
));
139 XrayColors
.addMapping(Tiles
.Tile
.TILE_CAVE_WALL_ORE_ZINC
, new Color(235, 235, 235));
141 String oreColorSlate
= properties
.getProperty("oreColorSlate", "default");
142 if (!oreColorSlate
.equals("default")) {
143 XrayColors
.addMapping(Tiles
.Tile
.TILE_CAVE_WALL_SLATE
, ConfigUtils
.colorStringToFloatA(oreColorSlate
));
145 XrayColors
.addMapping(Tiles
.Tile
.TILE_CAVE_WALL_SLATE
, Color
.BLACK
);
147 String oreColorMarble
= properties
.getProperty("oreColorMarble", "default");
148 if (!oreColorMarble
.equals("default")) {
149 XrayColors
.addMapping(Tiles
.Tile
.TILE_CAVE_WALL_MARBLE
, ConfigUtils
.colorStringToFloatA(oreColorMarble
));
151 XrayColors
.addMapping(Tiles
.Tile
.TILE_CAVE_WALL_MARBLE
, Color
.WHITE
);
153 String oreColorSandstone
= properties
.getProperty("oreColorSandstone", "default");
154 if (!oreColorSandstone
.equals("default")) {
155 XrayColors
.addMapping(Tiles
.Tile
.TILE_CAVE_WALL_SANDSTONE
, ConfigUtils
.colorStringToFloatA(oreColorSandstone
));
157 XrayColors
.addMapping(Tiles
.Tile
.TILE_CAVE_WALL_SANDSTONE
, Color
.YELLOW
.darker().darker());
159 String oreColorRocksalt
= properties
.getProperty("oreColorRocksalt", "default");
160 if (!oreColorRocksalt
.equals("default")) {
161 XrayColors
.addMapping(Tiles
.Tile
.TILE_CAVE_WALL_ROCKSALT
, ConfigUtils
.colorStringToFloatA(oreColorRocksalt
));
163 XrayColors
.addMapping(Tiles
.Tile
.TILE_CAVE_WALL_ROCKSALT
, Color
.WHITE
.darker());
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(";");
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};
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);