FatBoy-DOTC
4 months ago
5 changed files with 175 additions and 1 deletions
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
package engine.ConfigParsing.EffectsData; |
||||
|
||||
public class Condition { |
||||
public String type; |
||||
public String value; |
||||
} |
@ -0,0 +1,12 @@
@@ -0,0 +1,12 @@
|
||||
package engine.ConfigParsing.EffectsData; |
||||
|
||||
import java.util.ArrayList; |
||||
|
||||
public class EffectData { |
||||
public String id; |
||||
public String name; |
||||
public int icon; |
||||
public ArrayList<String> sources; |
||||
public ArrayList<Mod> mods; |
||||
public ArrayList<String> conditions; |
||||
} |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
package engine.ConfigParsing.EffectsData; |
||||
|
||||
import java.util.ArrayList; |
||||
|
||||
public class Mod { |
||||
public String type; |
||||
public ArrayList<String> values; |
||||
} |
@ -0,0 +1,145 @@
@@ -0,0 +1,145 @@
|
||||
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
|
||||
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
|
||||
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
|
||||
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
|
||||
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
|
||||
// Magicbane Emulator Project © 2013 - 2024
|
||||
// www.magicbane.com
|
||||
|
||||
|
||||
package engine.ConfigParsing; |
||||
import engine.ConfigParsing.EffectsData.Condition; |
||||
import engine.ConfigParsing.EffectsData.EffectData; |
||||
import engine.ConfigParsing.EffectsData.Mod; |
||||
import engine.gameManager.ConfigManager; |
||||
import java.io.BufferedReader; |
||||
import java.io.FileReader; |
||||
import java.io.IOException; |
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
public class EffectsParser { |
||||
public static String EffectsPath = ConfigManager.DEFAULT_DATA_DIR + "/Effects.cfg"; |
||||
public static void init() throws IOException { |
||||
ArrayList<ArrayList<String>> compiledData = new ArrayList<>(); |
||||
String[] lines = readLines(EffectsPath); |
||||
ArrayList<String> data = new ArrayList<>(); |
||||
for(String line : lines) |
||||
{ |
||||
if (line.contains("EFFECTBEGIN")) |
||||
{ |
||||
data = new ArrayList<>(); |
||||
} else if(!line.contains("EFFECTEND")) |
||||
{ |
||||
data.add(line); |
||||
} |
||||
else if (line.contains("EFFECTEND")) |
||||
{ |
||||
compiledData.add(data); |
||||
} |
||||
} |
||||
CreateBlocks(compiledData); |
||||
} |
||||
public static String[] readLines(String filename) throws IOException { |
||||
FileReader fileReader = new FileReader(filename); |
||||
BufferedReader bufferedReader = new BufferedReader(fileReader); |
||||
List<String> lines = new ArrayList<>(); |
||||
String line; |
||||
while ((line = bufferedReader.readLine()) != null) { |
||||
lines.add(line); |
||||
} |
||||
bufferedReader.close(); |
||||
return lines.toArray(new String[0]); |
||||
} |
||||
public static void CreateBlocks(ArrayList<ArrayList<String>> compiledData) |
||||
{ |
||||
for (ArrayList<String> lines : compiledData) |
||||
{ |
||||
EffectData data = new EffectData(); |
||||
data.id = lines.get(1).replace(" ", "").split(" ")[0]; |
||||
try |
||||
{ |
||||
data.name = lines.get(1).replace(" ", "").split(" ")[1]; |
||||
} |
||||
catch(Exception e) |
||||
{ |
||||
|
||||
} |
||||
try |
||||
{ |
||||
data.icon = Integer.parseInt(lines.get(1).replace(" ", "").split(" ")[2]); |
||||
} |
||||
catch(Exception e) |
||||
{ |
||||
|
||||
} |
||||
//log all sources
|
||||
data.sources = new ArrayList<>(); |
||||
int index = 0; |
||||
for(String line : lines) { |
||||
if (line.contains("SOURCEBEGIN")) |
||||
{ |
||||
data.sources.add(lines.get(index).replace(" ", "")); |
||||
} |
||||
index++; |
||||
} |
||||
|
||||
//log all mods
|
||||
data.mods = new ArrayList<>(); |
||||
index = 0; |
||||
|
||||
|
||||
for (String line : lines) |
||||
{ |
||||
if (line.contains("MODSBEGIN")) |
||||
{ |
||||
int extra = 1; |
||||
Mod mod = new Mod(); |
||||
while(!lines.get(index + extra).contains("MODSEND")) |
||||
{ |
||||
//data.mods.add(lines[index + extra].Replace(" ", ""));
|
||||
mod.type = lines.get(index + extra).replace(" ", "").split(" ")[0]; |
||||
GenerateModValues(mod, lines.get(index + extra).replace(" ", "").replace(" ", "").split(" ")); |
||||
extra++; |
||||
} |
||||
data.mods.add(mod); |
||||
} |
||||
index++; |
||||
} |
||||
|
||||
//log all conditions
|
||||
data.conditions = new ArrayList<>(); |
||||
index = 0; |
||||
for (String line : lines) |
||||
{ |
||||
if (line.contains("CONDITIONBEGIN")) |
||||
{ |
||||
int extra = 1; |
||||
while (!lines.get(index + extra).contains("CONDITIONEND")) |
||||
{ |
||||
if (!lines.get(index + extra).contains("#")) |
||||
{ |
||||
//data.conditions.add(lines[index + extra].Replace(" ", ""));
|
||||
Condition condition = new Condition(); |
||||
condition.type = lines.get(index + extra).replace(" ", "").split(" ")[0]; |
||||
condition.value = lines.get(index + extra).replace(" ", "").split(" ")[1]; |
||||
} |
||||
extra++; |
||||
} |
||||
} |
||||
index++; |
||||
} |
||||
} |
||||
} |
||||
public static void GenerateModValues(Mod inMod, String[] data) |
||||
{ |
||||
inMod.values = new ArrayList<>(); |
||||
for(int i = 1; i < data.length; i++) |
||||
{ |
||||
if(data[i].length() != 0) |
||||
{ |
||||
inMod.values.add(data[i]); |
||||
} |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue