From c195baf2ea0cd3b084cf383914cdd429da199c2e Mon Sep 17 00:00:00 2001 From: Meduris Date: Mon, 4 Aug 2025 22:48:56 +0200 Subject: [PATCH 1/5] add intellij files to gitignore --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 737b5c9..e8c5d69 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,6 @@ build /data /backup /output -*.zip \ No newline at end of file +*.zip + +.idea From 78eebbd5072a2a89a59056fff90c29b4d0862029 Mon Sep 17 00:00:00 2001 From: Meduris Date: Mon, 4 Aug 2025 22:50:28 +0200 Subject: [PATCH 2/5] only save once when checking/unchecking all visible markers --- src/main/java/speiger/src/data/Registry.java | 13 +++++++++++-- src/main/java/speiger/src/ui/MapPanel.java | 2 ++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/speiger/src/data/Registry.java b/src/main/java/speiger/src/data/Registry.java index a81fa11..3021e6d 100644 --- a/src/main/java/speiger/src/data/Registry.java +++ b/src/main/java/speiger/src/data/Registry.java @@ -52,6 +52,7 @@ public class Registry { Map collectables = new LinkedHashMap<>(); Set completed = new HashSet<>(); Object syncObj = new Object(); + boolean bulkOperationActive = false; public void load() { parseRegistry("/assets/data/medals.json", CollectableType.MEDAL); @@ -202,14 +203,22 @@ public class Registry { public void markComplete(UUID id) { completed.add(id); - save(); + if (bulkOperationActive) save(); } public void unmarkComplete(UUID id) { completed.remove(id); - save(); + if (bulkOperationActive) save(); } + public void setBulkOperation(boolean bulk) { + bulkOperationActive = bulk; + + if (!bulk) { + save(); + } + } + public boolean isCompleted(UUID id) { return completed.contains(id); } diff --git a/src/main/java/speiger/src/ui/MapPanel.java b/src/main/java/speiger/src/ui/MapPanel.java index 5d2042e..a6b534c 100644 --- a/src/main/java/speiger/src/ui/MapPanel.java +++ b/src/main/java/speiger/src/ui/MapPanel.java @@ -345,7 +345,9 @@ public class MapPanel extends JPanel { } public void setCompletionState(boolean value) { + Registry.INSTANCE.setBulkOperation(true); visibleMarkers.forEach(T -> T.setCompletion(value)); + Registry.INSTANCE.setBulkOperation(false); } @Override From d4ec114ebf2c9b1ab3b33355cc7c14d2d35e68f5 Mon Sep 17 00:00:00 2001 From: Meduris Date: Mon, 4 Aug 2025 22:51:13 +0200 Subject: [PATCH 3/5] force redraw and progress panel update after bulk operation --- src/main/java/speiger/src/ui/MapPanel.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/speiger/src/ui/MapPanel.java b/src/main/java/speiger/src/ui/MapPanel.java index a6b534c..069ebfc 100644 --- a/src/main/java/speiger/src/ui/MapPanel.java +++ b/src/main/java/speiger/src/ui/MapPanel.java @@ -157,7 +157,7 @@ public class MapPanel extends JPanel { panel.setCompletionState(true); }, null)); bulk.add(item("Uncomplete Visible", T -> { - panel.setCompletionState(false); + panel.setCompletionState(false); }, null)); bar.add(bulk); JMenu fuckups = new JMenu("I Fucked up"); @@ -348,6 +348,8 @@ public class MapPanel extends JPanel { Registry.INSTANCE.setBulkOperation(true); visibleMarkers.forEach(T -> T.setCompletion(value)); Registry.INSTANCE.setBulkOperation(false); + EventQueue.invokeLater(this::repaint); + if(progressUpdate != null) progressUpdate.run(); } @Override From 530f3d3a6cc685b85287fdfbc24d8e1f05689544 Mon Sep 17 00:00:00 2001 From: Meduris Date: Mon, 4 Aug 2025 23:22:57 +0200 Subject: [PATCH 4/5] add gradle variable for main class name --- build.gradle | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index bdff74b..0372296 100644 --- a/build.gradle +++ b/build.gradle @@ -4,6 +4,8 @@ plugins { archivesBaseName = "Mario Kart World Tracker" version = '1.0.1' +var mainClassName = 'speiger.src.ui.MapPanel' + repositories { mavenCentral() } @@ -13,7 +15,7 @@ sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = co jar { manifest { - attributes "Main-Class": 'speiger.src.ui.MapPanel' + attributes "Main-Class": mainClassName } from { duplicatesStrategy = DuplicatesStrategy.EXCLUDE @@ -27,7 +29,7 @@ task baseJar(type: Jar) { exclude('assets/images/images.zip') duplicatesStrategy = DuplicatesStrategy.EXCLUDE manifest { - attributes "Main-Class": 'speiger.src.ui.MapPanel' + attributes "Main-Class": mainClassName } from { duplicatesStrategy = DuplicatesStrategy.EXCLUDE From e90de6dc6590f676a4453f56b65d952a5ac58586 Mon Sep 17 00:00:00 2001 From: Meduris Date: Mon, 4 Aug 2025 23:23:13 +0200 Subject: [PATCH 5/5] add gradle run task for easier execution in intellij --- build.gradle | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build.gradle b/build.gradle index 0372296..69db43f 100644 --- a/build.gradle +++ b/build.gradle @@ -37,6 +37,11 @@ task baseJar(type: Jar) { } } +task run(type: JavaExec) { + classpath = sourceSets.main.runtimeClasspath + mainClass.set(mainClassName) +} + dependencies { implementation 'com.google.code.gson:gson:2.8.6'