From 82fc9773a6b070140b526ba6220c2172b94e190d Mon Sep 17 00:00:00 2001 From: Downforce Agent Date: Fri, 19 Apr 2024 18:06:52 -0500 Subject: [PATCH] next step is to implement our first i/o --- .idea/libraries/org_json_1_6_20240205.xml | 2 +- README.md | 2 +- lib/org.json.jar | Bin 0 -> 64685 bytes src/Main.java | 4 +- src/MasterWindowLayout.form | 17 ++++- src/MissPiggy.java | 83 ++++++++++++++++++---- 6 files changed, 88 insertions(+), 20 deletions(-) create mode 100755 lib/org.json.jar diff --git a/.idea/libraries/org_json_1_6_20240205.xml b/.idea/libraries/org_json_1_6_20240205.xml index a68417e..1a83525 100644 --- a/.idea/libraries/org_json_1_6_20240205.xml +++ b/.idea/libraries/org_json_1_6_20240205.xml @@ -1,7 +1,7 @@ - + diff --git a/README.md b/README.md index ca464d9..03dc814 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ![](https://files.worlio.com/users/bonkmaykr/http/git/embed/firestar.png) -# about 10% complete (basic frontend in progress, nonfunctional) +# about 30% complete (basic frontend in progress, nonfunctional) Firestar is a mod manager for WipEout 2048 which automatically handles sorting mods by priority and repacking game assets based on selected add-on packs. It runs on a desktop/laptop computer and aims to allow easy installation of mods for users who have only a surface level understanding of hacking the PSVita. TODO: modlist window screenshot diff --git a/lib/org.json.jar b/lib/org.json.jar new file mode 100755 index 0000000000000000000000000000000000000000..9074551bcb9f4a78505d19761f956fd657e86ac9 GIT binary patch literal 64685 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 I^{@Z_Kj4Gam;e9( literal 0 HcmV?d00001 diff --git a/src/Main.java b/src/Main.java index e592f9c..2b1de39 100644 --- a/src/Main.java +++ b/src/Main.java @@ -40,10 +40,10 @@ public class Main { //public static String psarc; //sdk location public class Mod { - public String path; + public String path; // file name public int version = 1; //public int gameversion; //TODO detect a game version and compatibility? // no - public int priority = 0; + public int priority = 0; //unused public String friendlyName; public String game; //TODO for multi game support public int loaderversion = 0; //minimum required vint or feature level from Firestar diff --git a/src/MasterWindowLayout.form b/src/MasterWindowLayout.form index 56aebf9..35191b2 100644 --- a/src/MasterWindowLayout.form +++ b/src/MasterWindowLayout.form @@ -9,7 +9,7 @@ - + @@ -19,7 +19,20 @@ - + + + + + + + + + + + + + + diff --git a/src/MissPiggy.java b/src/MissPiggy.java index c007522..ea0102e 100644 --- a/src/MissPiggy.java +++ b/src/MissPiggy.java @@ -17,9 +17,13 @@ */ import javax.swing.*; +import javax.swing.event.ListSelectionListener; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.io.File; +import java.math.RoundingMode; +import java.text.DecimalFormat; import static javax.swing.WindowConstants.EXIT_ON_CLOSE; @@ -37,7 +41,7 @@ public class MissPiggy implements ActionListener { //JMenuItem menuItem; JScrollPane modListScrollContainer; - public JList modList; + public JList modList; private JButton toggleButton; private JButton moveUpButton; private JButton deleteButton1; @@ -45,6 +49,7 @@ public class MissPiggy implements ActionListener { private JButton optionsButton; private JButton importButton; private JButton deployButton; + private JTextPane descriptionField; private int selectedItem; @@ -54,16 +59,29 @@ public class MissPiggy implements ActionListener { // todo display modlist /// DEBUG /// - Main.Mod testModEntry = /*entryPoint*/new Main().new Mod(); //this is retarded? we're making a new object of a certain type, why the fuck do you care where it comes from? static or regardless?? - testModEntry.friendlyName = "Example Mod"; + Main.Mod testModEntry = new Main().new Mod(); //this is retarded? we're making a new object of a certain type, why the fuck do you care where it comes from? static or regardless?? + testModEntry.friendlyName = "Example Mod 1"; testModEntry.game = "2048"; - testModEntry.path = "unused"; + testModEntry.path = "/home/bonkyboo/madarao_sneaky2_square.png"; //used to test file sizes testModEntry.version = 1; - testModEntry.priority = 0; //might discard this in favor of the list index for simplicity - testModEntry.loaderversion = 0; - Main.Mods.add(testModEntry); - Main.Mods.add(testModEntry); + //testModEntry.priority = 0; //will discard this in favor of the list index for simplicity Main.Mods.add(testModEntry); + Main.Mod testModEntry2 = new Main().new Mod(); + testModEntry2.friendlyName = "Example Mod 2"; + testModEntry2.author = "Daniel Chang"; + testModEntry2.game = "2048"; + testModEntry2.path = "/home/bonkyboo/chengou.mp4"; + testModEntry2.version = 1; + testModEntry2.loaderversion = 0; + Main.Mods.add(testModEntry2); + Main.Mod testModEntry3 = new Main().new Mod(); + testModEntry3.friendlyName = "Example Mod 3"; + testModEntry3.author = "John Dekka"; + testModEntry3.game = "2048"; + testModEntry3.path = "/home/bonkyboo/round2.mp4"; + testModEntry3.version = 1; + testModEntry3.loaderversion = 0; + Main.Mods.add(testModEntry3); ///-/////-/// // populate menu bar @@ -103,8 +121,42 @@ public class MissPiggy implements ActionListener { toolsMenu.getItem(1).addActionListener(this); helpMenu.getItem(0).addActionListener(this); + descriptionField.getDocument().putProperty("filterNewlines", Boolean.FALSE); + modList.addListSelectionListener(e -> { + String authorDisplay; + File pathReference = new File(Main.Mods.get(modList.getSelectedIndex()).path); + DecimalFormat df = new DecimalFormat("##.##"); + df.setRoundingMode(RoundingMode.UP); + float modFileSize = pathReference.length(); //precise units + String modFileSizeStr = String.valueOf(modFileSize); + String modFileSizeUnits = "bytes"; + if (pathReference.length() >= 1024) { + modFileSizeStr = String.valueOf(df.format(modFileSize / 1024)); + modFileSizeUnits = "Kilobytes"; + } + if (pathReference.length() >= 1024 * 1024) { + modFileSizeStr = String.valueOf(df.format(modFileSize / (1024 * 1024))); + modFileSizeUnits = "Megabytes"; + } + if (pathReference.length() >= 1024 * 1024 * 1024) { + modFileSizeStr = String.valueOf(df.format(modFileSize / (1024 * 1024 * 1024))); + modFileSizeUnits = "Gigabytes"; + } + if (Main.Mods.get(modList.getSelectedIndex()).author == null) { + authorDisplay = "an Unknown Author"; + } else { + authorDisplay = Main.Mods.get(modList.getSelectedIndex()).author; + } + descriptionField.setText( + "\"" + Main.Mods.get(modList.getSelectedIndex()).friendlyName + "\"\n" + + "by " + authorDisplay + "\n\n" + + "Version " + Main.Mods.get(modList.getSelectedIndex()).version + "\n" + + modFileSizeStr + " " + modFileSizeUnits + " in size" + );}); + // display window frame.setSize(800, 600); // 1280 800 + frame.setMinimumSize(new Dimension(640,480)); frame.setTitle("Firestar Mod Manager"); frame.setResizable(true); frame.setDefaultCloseOperation(EXIT_ON_CLOSE); @@ -115,6 +167,7 @@ public class MissPiggy implements ActionListener { public void InitializeModListInGUI() { // i really wanted this to be "lights, camera, action" but the code organizing kept getting stupider and stupider so i gave up // cleanup + descriptionField.setText("Select a mod from the list on the right to view more details, or to make changes to your installation."); modList.clearSelection(); modList.removeAll(); modList.setVisibleRowCount(Main.Mods.size()); @@ -125,22 +178,24 @@ public class MissPiggy implements ActionListener { // add text entry for each int i = 0; /*JLabel[]*/String[] contents = new String[Main.Mods.size()]; - System.out.println("Initializing modList to GUI with length of" + Main.Mods.size() + "units"); //debug + System.out.println("Initializing modList to GUI with length of " + Main.Mods.size() + "units"); //debug while (i < Main.Mods.size()) { - //JLabel label = new JLabel(Main.Mods.get(i).friendlyName); - //label.setVisible(true); - //contents[i] = label; //modList.add(label); contents[i] = Main.Mods.get(i).friendlyName; //debug - if (Main.Mods.get(i).author == null) {Main.Mods.get(i).author = "Anonymous";} - System.out.println("Added " + Main.Mods.get(i).friendlyName + " by " + Main.Mods.get(i).author); + String authorDisplay; + if (Main.Mods.get(i).author == null) {authorDisplay = "Anonymous";} else {authorDisplay = "\"" + Main.Mods.get(i).author + "\"";} + System.out.println("Added " + Main.Mods.get(i).friendlyName + " by " + authorDisplay); i++; } modList.setListData(contents); } + private ListSelectionListener whenItemSelected() { + return null; + } + @Override public void actionPerformed(ActionEvent actionEvent) { if (actionEvent.getSource() == fileMenu.getItem(5)) {System.exit(0);} else