From 3909ddb3ba1fdc8718cef39cd35770243576a681 Mon Sep 17 00:00:00 2001 From: MagicBot Date: Mon, 19 Aug 2024 20:49:43 -0400 Subject: [PATCH] PowerActionEntry parsing work. --- src/engine/wpak/PowerActionParser.java | 39 ++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/engine/wpak/PowerActionParser.java b/src/engine/wpak/PowerActionParser.java index fa5110fd..36dd4571 100644 --- a/src/engine/wpak/PowerActionParser.java +++ b/src/engine/wpak/PowerActionParser.java @@ -9,11 +9,50 @@ package engine.wpak; import engine.gameManager.ConfigManager; +import engine.wpak.data.PowerActionEntry; +import engine.wpak.data.PowerEntry; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.regex.Matcher; import java.util.regex.Pattern; public class PowerActionParser { private static final Pattern STRSPLIT_REGEX = Pattern.compile("([^\"]\\S*|\"[^\"]*\")\\s*"); private static final Pattern POWER_ACTION_REGEX = Pattern.compile("(?<=POWERACTIONBEGIN)(.+?)(?=POWERACTIONEND)", Pattern.DOTALL); private static final String powerActionPath = ConfigManager.DEFAULT_DATA_DIR + "wpak/PowerActions.cfg"; + + public static void parseWpakFile() { + + // Read .wpak file from disk + + byte[] fileData; + + try { + fileData = Files.readAllBytes(Paths.get(powerActionPath)); + } catch ( + IOException e) { + throw new RuntimeException(e); + } + + String fileContents = new String(fileData); + + // Iterate over power entries from .wpak data + + Matcher matcher = POWER_ACTION_REGEX.matcher(fileContents); + + while (matcher.find()) { + + PowerEntry powerEntry = parsePowerActionEntry(matcher.group().trim()); + + } + } + + private static PowerActionEntry parsePowerEntry(String powerData) { + + PowerActionEntry powerActionEntry = new PowerActionEntry(); + + return powerActionEntry; + } }