From 44dd0a35485321117a923ca4774bd5ed451d6ca4 Mon Sep 17 00:00:00 2001 From: AERO <90007044+AEROassault@users.noreply.github.com> Date: Wed, 24 May 2023 14:43:15 -0400 Subject: [PATCH] Dev to Master v.1.5.4 (#9) * Change ModPlugin name, change LunaSettings path usage to address possible crashes * Fix crash when lunasettings is not enabled * Fixed behavior for gate scan revealing gates in marketless systems and ability states * Refactor method to gateIntelDoesNotExist * Fix method (for real this time) * Update changelog.txt --- ...nThoseGates.xml => ScanThoseGates_jar.xml} | 2 +- ScanThoseGates.version | 4 +-- changelog.txt | 5 +++ jars/ScanThoseGates.jar | Bin 31664 -> 31870 bytes jars/source.url | 5 --- mod_info.json | 6 ++-- .../LunaSettingsChangedListener.java | 13 ++++++-- .../{ModPlugin.java => ScannerModPlugin.java} | 29 ++++++++++-------- .../campaign/econ/abilities/GateScanner.java | 14 ++++----- .../intel/CoronalHypershuntIntel.java | 4 +-- .../campaign/intel/CryosleeperIntel.java | 4 +-- 11 files changed, 50 insertions(+), 36 deletions(-) rename .idea/artifacts/{ScanThoseGates.xml => ScanThoseGates_jar.xml} (93%) delete mode 100644 jars/source.url rename src/scanthosegates/{ModPlugin.java => ScannerModPlugin.java} (80%) diff --git a/.idea/artifacts/ScanThoseGates.xml b/.idea/artifacts/ScanThoseGates_jar.xml similarity index 93% rename from .idea/artifacts/ScanThoseGates.xml rename to .idea/artifacts/ScanThoseGates_jar.xml index a8ccd5e..38b56e2 100644 --- a/.idea/artifacts/ScanThoseGates.xml +++ b/.idea/artifacts/ScanThoseGates_jar.xml @@ -1,5 +1,5 @@ - + $PROJECT_DIR$/jars diff --git a/ScanThoseGates.version b/ScanThoseGates.version index a415e6a..53c9a6e 100644 --- a/ScanThoseGates.version +++ b/ScanThoseGates.version @@ -6,8 +6,8 @@ { "major":1, "minor":5, - "patch":3, + "patch":4, }, - "starsectorVersion":"0.96a-RC9", + "starsectorVersion":"0.96a-RC10", "directDownloadURL":"https://github.com/AEROassault/ScanThoseGates/releases/latest/download/ScanThoseGates.zip", } \ No newline at end of file diff --git a/changelog.txt b/changelog.txt index 78f5787..2f66070 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,8 @@ +Version 1.5.4 +- Fixed mod crash due to lack of LunaLib soft dependency in some situations +- Renamed method for checking gate intel and inverted behavior +- Added gate intel check to make sure scan ability cannot be reactivated if no new gates can be activated or have intel to be added. + Version 1.5.3 - LunaSettings integration - Allow gate scan to add inactive gates to intel without activating them diff --git a/jars/ScanThoseGates.jar b/jars/ScanThoseGates.jar index 89e69037fb35ef153e4798f8d7d79604f6c54269..17e658ee86f9cea6694541aeb45e1727b7aea8d7 100644 GIT binary patch delta 8472 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 delta 8202 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 diff --git a/jars/source.url b/jars/source.url deleted file mode 100644 index 8737751..0000000 --- a/jars/source.url +++ /dev/null @@ -1,5 +0,0 @@ -[{000214A0-0000-0000-C000-000000000046}] -Prop3=19,11 -[InternetShortcut] -IDList= -URL=https://github.com/AEROassault/ScanThoseGates diff --git a/mod_info.json b/mod_info.json index c9e263a..1b63474 100644 --- a/mod_info.json +++ b/mod_info.json @@ -2,9 +2,9 @@ "id":"scan_those_gates", "name":"Scan Those Gates", "author":"AERO", - "version":"1.5.3", + "version":"1.5.4", "description":"Adds abilities to scan gates and reveal megastructure locations.", - "gameVersion":"0.96a-RC9", + "gameVersion":"0.96a-RC10", "jars":["jars/ScanThoseGates.jar"], - "modPlugin":"scanthosegates.ModPlugin" + "modPlugin":"scanthosegates.ScannerModPlugin" } \ No newline at end of file diff --git a/src/scanthosegates/LunaSettingsChangedListener.java b/src/scanthosegates/LunaSettingsChangedListener.java index 2c18238..ea372e9 100644 --- a/src/scanthosegates/LunaSettingsChangedListener.java +++ b/src/scanthosegates/LunaSettingsChangedListener.java @@ -1,12 +1,21 @@ package scanthosegates; +import lunalib.lunaSettings.LunaSettings; import lunalib.lunaSettings.LunaSettingsListener; +import static scanthosegates.ScannerModPlugin.lunaLibEnabled; + public class LunaSettingsChangedListener implements LunaSettingsListener { @Override public void settingsChanged(String idOfModWithChangedSettings) { - if (idOfModWithChangedSettings.equals(ModPlugin.ID)) { - ModPlugin.readSettings(); + if (idOfModWithChangedSettings.equals(ScannerModPlugin.ID)) { + ScannerModPlugin.readSettings(); + } + } + + public static void addToManagerIfNeeded() { + if(lunaLibEnabled && !LunaSettings.hasSettingsListenerOfClass(LunaSettingsChangedListener.class)) { + LunaSettings.addSettingsListener(new LunaSettingsChangedListener()); } } } \ No newline at end of file diff --git a/src/scanthosegates/ModPlugin.java b/src/scanthosegates/ScannerModPlugin.java similarity index 80% rename from src/scanthosegates/ModPlugin.java rename to src/scanthosegates/ScannerModPlugin.java index 2b7dfe4..64be7b6 100644 --- a/src/scanthosegates/ModPlugin.java +++ b/src/scanthosegates/ScannerModPlugin.java @@ -15,16 +15,19 @@ import java.util.MissingResourceException; -public class ModPlugin extends BaseModPlugin { - private static final Logger log = Global.getLogger(ModPlugin.class); +import static scanthosegates.LunaSettingsChangedListener.addToManagerIfNeeded; + +public class ScannerModPlugin extends BaseModPlugin { + private static final Logger log = Global.getLogger(ScannerModPlugin.class); static {log.setLevel(Level.ALL);} public static final String ID = "scan_those_gates"; - public static final String PREFIX = "stg_"; - static final String LUNALIB_ID = "lunalib"; + public static final String MOD_PREFIX = "stg_"; public static final String INTEL_MEGASTRUCTURES = "Megastructures"; + public static boolean lunaLibEnabled = Global.getSettings().getModManager().isModEnabled("lunalib"); + static T get(String id, Class type) throws Exception { - if (Global.getSettings().getModManager().isModEnabled(LUNALIB_ID)) { - if (type == Boolean.class) return type.cast(LunaSettings.getBoolean(ModPlugin.ID, PREFIX + id)); + if (lunaLibEnabled) { + if (type == Boolean.class) return type.cast(LunaSettings.getBoolean(ScannerModPlugin.ID, MOD_PREFIX + id)); } else { if (type == Boolean.class) return type.cast(Global.getSettings().getBoolean(id)); } @@ -39,9 +42,9 @@ static void readSettings() { log.debug("Failed to read lunaSettings. Exception: " + e); } } - public static boolean - RevealAllGates = false, - ActivateAllGates = false; + + public static boolean RevealAllGates = false; + public static boolean ActivateAllGates = false; @Override public void onGameLoad(boolean newGame){ @@ -70,12 +73,14 @@ public void onGameLoad(boolean newGame){ Global.getSector().getListenerManager().addListener(new RelocationListener(), true); Global.getSector().getListenerManager().addListener(new SalvagingListener(), true); + + readSettings(); } @Override - public void onApplicationLoad() { - if (Global.getSettings().getModManager().isModEnabled(LUNALIB_ID)) { - LunaSettings.addSettingsListener(new LunaSettingsChangedListener()); + public void onApplicationLoad() throws Exception { + if (lunaLibEnabled){ + addToManagerIfNeeded(); } } } diff --git a/src/scanthosegates/campaign/econ/abilities/GateScanner.java b/src/scanthosegates/campaign/econ/abilities/GateScanner.java index ed250f4..33d4962 100644 --- a/src/scanthosegates/campaign/econ/abilities/GateScanner.java +++ b/src/scanthosegates/campaign/econ/abilities/GateScanner.java @@ -19,8 +19,8 @@ import java.util.HashSet; import static java.lang.Math.pow; -import static scanthosegates.ModPlugin.ActivateAllGates; -import static scanthosegates.ModPlugin.RevealAllGates; +import static scanthosegates.ScannerModPlugin.ActivateAllGates; +import static scanthosegates.ScannerModPlugin.RevealAllGates; public class GateScanner extends BaseDurationAbility { public static String UNSCANNED_GATES = "$UnscannedGatesFound"; @@ -62,7 +62,7 @@ protected void applyEffect(float amount, float level) { revealThatGate = true; } finally { try { - if (!doesGateIntelExist(gate)) { + if (gateIntelDoesNotExist(gate)) { if (RevealAllGates) { Global.getSector().getIntelManager().addIntel(new GateIntel(gate)); } else if (revealThatGate) { @@ -153,14 +153,14 @@ else if (!Global.getSector().getMemoryWithoutUpdate().getBoolean(UNSCANNED_GATES addIncompatibleToTooltip(tooltip, expanded); } - public boolean doesGateIntelExist(SectorEntityToken gate) { + public boolean gateIntelDoesNotExist(SectorEntityToken gate) { for (IntelInfoPlugin intel : Global.getSector().getIntelManager().getIntel(GateIntel.class)){ GateIntel gi = (GateIntel) intel; if (gi.getGate() == gate) { - return true; + return false; } } - return false; + return true; } public HashSet generateMarketSystemsHashset() { @@ -184,7 +184,7 @@ public void checkForGates() { if (ActivateAllGates) { Global.getSector().getMemoryWithoutUpdate().set(UNSCANNED_GATES, true); return; - } else if (RevealAllGates) { + } else if (RevealAllGates && gateIntelDoesNotExist(gate)) { Global.getSector().getMemoryWithoutUpdate().set(UNSCANNED_GATES, true); return; } else if (systemsWithMarkets.contains(gate.getContainingLocation())) { diff --git a/src/scanthosegates/campaign/intel/CoronalHypershuntIntel.java b/src/scanthosegates/campaign/intel/CoronalHypershuntIntel.java index b4cb5f6..69da55a 100644 --- a/src/scanthosegates/campaign/intel/CoronalHypershuntIntel.java +++ b/src/scanthosegates/campaign/intel/CoronalHypershuntIntel.java @@ -7,14 +7,14 @@ import com.fs.starfarer.api.ui.SectorMapAPI; import com.fs.starfarer.api.ui.TooltipMakerAPI; import com.fs.starfarer.api.util.Misc; -import scanthosegates.ModPlugin; +import scanthosegates.ScannerModPlugin; import scanthosegates.campaign.intel.button.LayInCourse; import java.awt.*; import java.util.Set; public class CoronalHypershuntIntel extends BaseIntel { - public static final String INTEL_HYPERSHUNT = ModPlugin.INTEL_MEGASTRUCTURES; + public static final String INTEL_HYPERSHUNT = ScannerModPlugin.INTEL_MEGASTRUCTURES; private final SectorEntityToken hypershunt; public CoronalHypershuntIntel(SectorEntityToken hypershunt) { diff --git a/src/scanthosegates/campaign/intel/CryosleeperIntel.java b/src/scanthosegates/campaign/intel/CryosleeperIntel.java index bccad46..398245a 100644 --- a/src/scanthosegates/campaign/intel/CryosleeperIntel.java +++ b/src/scanthosegates/campaign/intel/CryosleeperIntel.java @@ -7,14 +7,14 @@ import com.fs.starfarer.api.ui.SectorMapAPI; import com.fs.starfarer.api.ui.TooltipMakerAPI; import com.fs.starfarer.api.util.Misc; -import scanthosegates.ModPlugin; +import scanthosegates.ScannerModPlugin; import scanthosegates.campaign.intel.button.LayInCourse; import java.awt.*; import java.util.Set; public class CryosleeperIntel extends BaseIntel { - public static final String INTEL_CRYOSLEEPER = ModPlugin.INTEL_MEGASTRUCTURES; + public static final String INTEL_CRYOSLEEPER = ScannerModPlugin.INTEL_MEGASTRUCTURES; private final SectorEntityToken cryosleeper; public CryosleeperIntel(SectorEntityToken cryosleeper) {