Compare commits
2 Commits
733b9b0ca4
...
0aae30f60e
Author | SHA1 | Date | |
---|---|---|---|
0aae30f60e | |||
184d101a13 |
132
src/Kermit.java
132
src/Kermit.java
|
@ -62,6 +62,8 @@ public class Kermit implements ActionListener {
|
|||
JRadioButton buttonNoWine = new JRadioButton("No, I use Microsoft Windows");
|
||||
JRadioButton buttonHaveWine = new JRadioButton("Yes, I have a POSIX system with WINE.");
|
||||
ButtonGroup radg2 = new ButtonGroup();
|
||||
JTextField pathInput = new JTextField();
|
||||
JButton openconfigfolderbutton = new JButton("Open Firestar Folder");
|
||||
Pages page = Pages.AGREEMENT;
|
||||
javax.swing.text.StyledDocument document = dialogText.getStyledDocument();
|
||||
javax.swing.text.SimpleAttributeSet align= new javax.swing.text.SimpleAttributeSet();
|
||||
|
@ -83,6 +85,7 @@ public class Kermit implements ActionListener {
|
|||
buttonFast.addActionListener(this);
|
||||
buttonNoWine.addActionListener(this);
|
||||
buttonHaveWine.addActionListener(this);
|
||||
openconfigfolderbutton.addActionListener(this);
|
||||
|
||||
changePage(Pages.AGREEMENT);
|
||||
}
|
||||
|
@ -120,13 +123,22 @@ public class Kermit implements ActionListener {
|
|||
dialogText.setVisible(false);frame.remove(dialogText);
|
||||
break;
|
||||
case EXPORT_LOCATION:
|
||||
button.setVisible(false);frame.remove(button);
|
||||
button3.setVisible(false);frame.remove(button3);
|
||||
dialogText.setVisible(false);frame.remove(dialogText);
|
||||
buttonNoWine.setVisible(false);frame.remove(buttonNoWine);
|
||||
buttonHaveWine.setVisible(false);frame.remove(buttonHaveWine);
|
||||
changePage(Pages.IMPORT_LOCATION);
|
||||
break;
|
||||
case IMPORT_LOCATION:
|
||||
Main.outpath = pathInput.getText();
|
||||
pathInput.setText("");
|
||||
dialogText.setVisible(false);frame.remove(dialogText);
|
||||
pathInput.setVisible(false);frame.remove(pathInput);
|
||||
changePage(Pages.DONE);
|
||||
break;
|
||||
case DONE:
|
||||
// todo Enable MissPiggy
|
||||
new MissPiggy();
|
||||
|
||||
page = Pages.AGREEMENT; //set it here since we're disposing of the entire thing
|
||||
frame.dispose();
|
||||
|
@ -171,6 +183,12 @@ public class Kermit implements ActionListener {
|
|||
} else if (actionEvent.getSource() == buttonNoWine) {
|
||||
Main.wine = false;
|
||||
button.setEnabled(true);
|
||||
}else if (actionEvent.getSource() == openconfigfolderbutton) {
|
||||
try {
|
||||
Desktop.getDesktop().open(new File(Main.inpath));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -327,13 +345,14 @@ public class Kermit implements ActionListener {
|
|||
button3.setVisible(false);frame.remove(button3);
|
||||
dialogText.setVisible(false);frame.remove(dialogText);
|
||||
|
||||
//see if we can safely assume the user's choice for them before we bother asking
|
||||
if(System.getProperty("os.name").equals("Linux")) {Main.wine = true;changePage(Pages.EXPORT_LOCATION);} else
|
||||
if(System.getProperty("os.name").contains("Windows")) {Main.wine = false;changePage(Pages.EXPORT_LOCATION);} else {
|
||||
//check if this is windows or not
|
||||
if(System.getProperty("os.name").contains("Windows")) {Main.wine = false;System.out.println("Assuming we should NOT use WINE based on known system variables.");changePage(Pages.EXPORT_LOCATION);}
|
||||
else {Main.wine = true;System.out.println("Assuming we should use WINE based on known system variables.");changePage(Pages.EXPORT_LOCATION);}
|
||||
|
||||
case EXPORT_LOCATION:
|
||||
page = Pages.EXPORT_LOCATION;
|
||||
|
||||
// real stuff now
|
||||
button.setVisible(true);
|
||||
button.setEnabled(false);
|
||||
button.setBounds(292, 343, 300, 30);
|
||||
frame.add(button);
|
||||
|
||||
|
@ -345,20 +364,19 @@ public class Kermit implements ActionListener {
|
|||
dialogText.setHighlighter(null);
|
||||
dialogText.getCaret().setVisible(false);
|
||||
dialogText.setFocusable(false);
|
||||
dialogText.setBounds(0, 40, 592, 150);
|
||||
dialogText.setBounds(30, 40, 542, 150);
|
||||
StyleConstants.setAlignment(align, StyleConstants.ALIGN_CENTER);
|
||||
document.setParagraphAttributes(0, document.getLength(), align, false);
|
||||
dialogText.setText("Firestar was unable to detect your native operating system. Do you use WINE?");
|
||||
dialogText.setText("Now enter the location of your game's asset folder.\n" +
|
||||
"This can be your install directory on your emulator, your repatch folder on your Vita memory card, or a temporary directory you'd like to copy over yourself.\n\n" +
|
||||
"PLEASE DO NOT POINT THIS DIRECTLY TO WHERE THE GAME IS INSTALLED ON A REAL VITA\n" +
|
||||
"(ux0:/app, ux0:/patch or ux0:/addcont)\n" +
|
||||
"AS THIS WILL CORRUPT YOUR GAME AND YOU WILL NEED TO REINSTALL IT.\nDoing this on an emulator is fine.");
|
||||
frame.add(dialogText);
|
||||
|
||||
buttonNoWine.setBounds(40, 200, 300, 25);
|
||||
buttonHaveWine.setBounds(40, 230, 300, 25);
|
||||
buttonNoWine.setBackground(Color.WHITE);
|
||||
buttonHaveWine.setBackground(Color.WHITE);
|
||||
buttonCompat.setVisible(true);
|
||||
buttonHaveWine.setVisible(true);
|
||||
frame.add(buttonNoWine);
|
||||
frame.add(buttonHaveWine);
|
||||
pathInput.setVisible(true);
|
||||
pathInput.setBounds(30,200,542,30);
|
||||
frame.add(pathInput);
|
||||
|
||||
frame.setSize(600, 400);
|
||||
frame.setTitle("Initial Setup");
|
||||
|
@ -367,16 +385,90 @@ public class Kermit implements ActionListener {
|
|||
frame.setResizable(false);
|
||||
frame.setLayout(null);
|
||||
frame.setVisible(true);
|
||||
}
|
||||
break;
|
||||
case EXPORT_LOCATION:
|
||||
page = Pages.EXPORT_LOCATION;
|
||||
break;
|
||||
case IMPORT_LOCATION:
|
||||
// I think for Fast Mode this step may be unnecessary? look into alternatives perhaps
|
||||
|
||||
page = Pages.IMPORT_LOCATION;
|
||||
pathInput.setVisible(false); //GET OUT OF MY HEAD
|
||||
|
||||
button.setVisible(true);
|
||||
button.setBounds(292, 343, 300, 30);
|
||||
frame.add(button);
|
||||
|
||||
button3.setVisible(true);
|
||||
button3.setBounds(0, 343, 292, 30);
|
||||
frame.add(button3);
|
||||
|
||||
dialogText.setVisible(true);
|
||||
dialogText.setHighlighter(null);
|
||||
dialogText.getCaret().setVisible(false);
|
||||
dialogText.setFocusable(false);
|
||||
dialogText.setBounds(30, 40, 542, 200);
|
||||
StyleConstants.setAlignment(align, StyleConstants.ALIGN_CENTER);
|
||||
document.setParagraphAttributes(0, document.getLength(), align, false);
|
||||
dialogText.setText("You're almost done!\n\n" +
|
||||
"Please move all of your original PSARC files for WipEout (base game, patches, and HD Fury DLC) to the config folder and press Next when you are done.\n" +
|
||||
"Firestar will use these to generate new PSARCs in place of the old ones.\n\n" +
|
||||
"If you play on a real console, you will need to use VitaShell (remember to \"Open Decrypted\"). Check /app, /patch, and /addcont. Getting all of them is important since WipEout always loads them in a specific order and which ones you have determines where Firestar can compress the modified files to.");
|
||||
frame.add(dialogText);
|
||||
|
||||
//pathInput.setVisible(true);
|
||||
//pathInput.setBounds(30,200,542,30);
|
||||
//frame.add(pathInput);
|
||||
openconfigfolderbutton.setVisible(true);
|
||||
openconfigfolderbutton.setBounds(30,250,542,30);
|
||||
frame.add(openconfigfolderbutton);
|
||||
|
||||
frame.setSize(600, 400);
|
||||
frame.setTitle("Initial Setup");
|
||||
frame.setAlwaysOnTop(true);
|
||||
frame.setDefaultCloseOperation(0);
|
||||
frame.setResizable(false);
|
||||
frame.setLayout(null);
|
||||
frame.setVisible(true);
|
||||
break;
|
||||
case DONE:
|
||||
page = Pages.DONE;
|
||||
|
||||
Main.writeConf(); // save changes
|
||||
|
||||
//SERIOUS!!!!!!!!!!!!!! cleanup
|
||||
button.setVisible(false);frame.remove(button);
|
||||
button2.setVisible(false);frame.remove(button2);
|
||||
button3.setVisible(false);frame.remove(button3);
|
||||
button4.setVisible(false);frame.remove(button4);
|
||||
openconfigfolderbutton.setVisible(false);frame.remove(openconfigfolderbutton);
|
||||
pathInput.setVisible(false);frame.remove(pathInput);
|
||||
buttonFast.setVisible(false);frame.remove(buttonFast);
|
||||
buttonCompat.setVisible(false);frame.remove(buttonCompat);
|
||||
buttonHaveWine.setVisible(false);frame.remove(buttonHaveWine);
|
||||
buttonNoWine.setVisible(false);frame.remove(buttonNoWine);
|
||||
|
||||
//congrations, your did it (party time)
|
||||
dialogText.setVisible(true);
|
||||
dialogText.setHighlighter(null);
|
||||
dialogText.getCaret().setVisible(false);
|
||||
dialogText.setFocusable(false);
|
||||
dialogText.setBounds(30, 40, 542, 200);
|
||||
StyleConstants.setAlignment(align, StyleConstants.ALIGN_CENTER);
|
||||
document.setParagraphAttributes(0, document.getLength(), align, false);
|
||||
dialogText.setText("Firestar is ready!\n\n" +
|
||||
"For technical support, email\nbonkmaykr@screwgravity.net.");
|
||||
frame.add(dialogText);
|
||||
|
||||
button.setVisible(true);
|
||||
button.setBounds(292, 343, 300, 30);
|
||||
button.setText("OK");
|
||||
frame.add(button);
|
||||
|
||||
frame.setSize(600, 400);
|
||||
frame.setTitle("Initial Setup");
|
||||
frame.setAlwaysOnTop(true);
|
||||
frame.setDefaultCloseOperation(0);
|
||||
frame.setResizable(false);
|
||||
frame.setLayout(null);
|
||||
frame.setVisible(true);
|
||||
break;
|
||||
default:
|
||||
throw new UnsupportedOperationException("ERROR: Undefined behavior in Kermit.changePage(). Get a programmer!");
|
||||
|
|
|
@ -28,7 +28,8 @@ public class Main {
|
|||
public static String vcode = "Natasha";
|
||||
public static int vint = 0;
|
||||
|
||||
public static String path; //game assets location
|
||||
public static String outpath; //game assets location
|
||||
public static String inpath = System.getProperty("user.home") + "/.firestar/"; //game assets location
|
||||
public static boolean repatch; //are we in compat mode?
|
||||
public static boolean wine; //are we on Linux, MINIX, BSD?
|
||||
//public static String psarc; //sdk location
|
||||
|
@ -51,14 +52,21 @@ public class Main {
|
|||
"along with this program. If not, see https://www.gnu.org/licenses/.\n\n\n\n");
|
||||
|
||||
//begin
|
||||
// todo create main window
|
||||
|
||||
// check and load configs
|
||||
File fConf = new File(System.getProperty("user.home") + "/.firestar/firestar.conf");
|
||||
if (!fConf.isFile()) {
|
||||
new Kermit().setup(fConf); // this is a fresh install, run the OOBE.
|
||||
} else {
|
||||
// todo load modlist
|
||||
new MissPiggy();
|
||||
}
|
||||
}
|
||||
|
||||
public static void writeConf(){
|
||||
|
||||
}
|
||||
|
||||
public static void loadConf(){
|
||||
|
||||
// todo load modlist and send to MissPiggy
|
||||
}
|
||||
}
|
24
src/MissPiggy.java
Normal file
24
src/MissPiggy.java
Normal file
|
@ -0,0 +1,24 @@
|
|||
/*
|
||||
* Firestar Mod Manager
|
||||
* Copyright (C) 2024 bonkmaykr
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see https://www.gnu.org/licenses/.
|
||||
*/
|
||||
|
||||
public class MissPiggy {
|
||||
public void MissPiggy() {
|
||||
// todo construct contents
|
||||
// todo display modlist
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user