asset downloader & warn when have no psarcs
This commit is contained in:
parent
d850400f00
commit
4d093e7ce8
131
firestar/src/main/java/Bert.form
Normal file
131
firestar/src/main/java/Bert.form
Normal file
|
@ -0,0 +1,131 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="Bert">
|
||||||
|
<grid id="27dc6" binding="frameContainer" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||||
|
<margin top="10" left="25" bottom="0" right="25"/>
|
||||||
|
<constraints>
|
||||||
|
<xy x="20" y="20" width="1156" height="400"/>
|
||||||
|
</constraints>
|
||||||
|
<properties/>
|
||||||
|
<border type="none"/>
|
||||||
|
<children>
|
||||||
|
<grid id="59440" layout-manager="GridLayoutManager" row-count="3" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||||
|
<margin top="0" left="0" bottom="0" right="0"/>
|
||||||
|
<constraints>
|
||||||
|
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties/>
|
||||||
|
<border type="none"/>
|
||||||
|
<children>
|
||||||
|
<grid id="1a1a9" layout-manager="GridLayoutManager" row-count="3" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||||
|
<margin top="0" left="0" bottom="0" right="0"/>
|
||||||
|
<constraints>
|
||||||
|
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties/>
|
||||||
|
<border type="none"/>
|
||||||
|
<children>
|
||||||
|
<component id="783ac" class="javax.swing.JLabel">
|
||||||
|
<constraints>
|
||||||
|
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties>
|
||||||
|
<text value="Select your game version below."/>
|
||||||
|
</properties>
|
||||||
|
</component>
|
||||||
|
<component id="e27cc" class="javax.swing.JLabel">
|
||||||
|
<constraints>
|
||||||
|
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties>
|
||||||
|
<text value="This will determine what file your mods are deployed to."/>
|
||||||
|
</properties>
|
||||||
|
</component>
|
||||||
|
<component id="319fa" class="javax.swing.JLabel">
|
||||||
|
<constraints>
|
||||||
|
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties>
|
||||||
|
<text value=" If you add/remove DLC in the future, you will need to change this setting again."/>
|
||||||
|
</properties>
|
||||||
|
</component>
|
||||||
|
</children>
|
||||||
|
</grid>
|
||||||
|
<grid id="23bd7" layout-manager="GridLayoutManager" row-count="1" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||||
|
<margin top="0" left="0" bottom="0" right="0"/>
|
||||||
|
<constraints>
|
||||||
|
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties/>
|
||||||
|
<border type="none"/>
|
||||||
|
<children>
|
||||||
|
<component id="a94bd" class="javax.swing.JButton" binding="cancelbtn">
|
||||||
|
<constraints>
|
||||||
|
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="2" fill="1" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties>
|
||||||
|
<text value="Cancel"/>
|
||||||
|
</properties>
|
||||||
|
</component>
|
||||||
|
<component id="9f9b3" class="javax.swing.JButton" binding="downloadbtn">
|
||||||
|
<constraints>
|
||||||
|
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="2" fill="1" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties>
|
||||||
|
<text value="Download"/>
|
||||||
|
</properties>
|
||||||
|
</component>
|
||||||
|
</children>
|
||||||
|
</grid>
|
||||||
|
<grid id="c82fd" layout-manager="GridLayoutManager" row-count="2" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||||
|
<margin top="0" left="0" bottom="0" right="0"/>
|
||||||
|
<constraints>
|
||||||
|
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="7" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties/>
|
||||||
|
<border type="none"/>
|
||||||
|
<children>
|
||||||
|
<component id="11210" class="javax.swing.JRadioButton" binding="baseRad">
|
||||||
|
<constraints>
|
||||||
|
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="6" fill="0" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties>
|
||||||
|
<horizontalTextPosition value="10"/>
|
||||||
|
<text value="Base game only, no updates"/>
|
||||||
|
</properties>
|
||||||
|
</component>
|
||||||
|
<component id="94d8" class="javax.swing.JRadioButton" binding="hdRad">
|
||||||
|
<constraints>
|
||||||
|
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="5" fill="0" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties>
|
||||||
|
<horizontalTextPosition value="10"/>
|
||||||
|
<text value="HD DLC, without Fury"/>
|
||||||
|
</properties>
|
||||||
|
</component>
|
||||||
|
<component id="69445" class="javax.swing.JRadioButton" binding="patchRad">
|
||||||
|
<constraints>
|
||||||
|
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="10" fill="0" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties>
|
||||||
|
<text value="Base game only, 1.04"/>
|
||||||
|
</properties>
|
||||||
|
</component>
|
||||||
|
<component id="35def" class="javax.swing.JRadioButton" binding="furyRad">
|
||||||
|
<constraints>
|
||||||
|
<grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="9" fill="0" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties>
|
||||||
|
<horizontalAlignment value="10"/>
|
||||||
|
<horizontalTextPosition value="11"/>
|
||||||
|
<selected value="true"/>
|
||||||
|
<text value="HD Fury DLC"/>
|
||||||
|
<verticalTextPosition value="0"/>
|
||||||
|
</properties>
|
||||||
|
</component>
|
||||||
|
</children>
|
||||||
|
</grid>
|
||||||
|
</children>
|
||||||
|
</grid>
|
||||||
|
</children>
|
||||||
|
</grid>
|
||||||
|
</form>
|
243
firestar/src/main/java/Bert.java
Normal file
243
firestar/src/main/java/Bert.java
Normal file
|
@ -0,0 +1,243 @@
|
||||||
|
/*
|
||||||
|
* 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/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import javax.imageio.ImageIO;
|
||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.awt.event.WindowAdapter;
|
||||||
|
import java.awt.event.WindowEvent;
|
||||||
|
import java.awt.image.BufferedImage;
|
||||||
|
import java.io.*;
|
||||||
|
|
||||||
|
public class Bert implements ActionListener {
|
||||||
|
BufferedImage windowIcon;
|
||||||
|
public JFrame frame = new JFrame();
|
||||||
|
private JPanel frameContainer;
|
||||||
|
private JButton cancelbtn;
|
||||||
|
private JButton downloadbtn;
|
||||||
|
private JRadioButton baseRad;
|
||||||
|
private JRadioButton patchRad;
|
||||||
|
private JRadioButton hdRad;
|
||||||
|
private JRadioButton furyRad;
|
||||||
|
private ButtonGroup radios = new ButtonGroup();
|
||||||
|
|
||||||
|
private JFrame invoker;
|
||||||
|
|
||||||
|
public Bert(JFrame parent) {
|
||||||
|
parent.setEnabled(false);
|
||||||
|
this.invoker = parent;
|
||||||
|
|
||||||
|
frame.add(frameContainer); // initialize window contents -- will be handled by IntelliJ IDEA
|
||||||
|
|
||||||
|
frame.setSize(600, 300); // 1280 800
|
||||||
|
frame.setTitle("Download Assets");
|
||||||
|
frame.setResizable(false);
|
||||||
|
frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
|
||||||
|
frame.setLayout(new GridLayout());
|
||||||
|
frame.setLocationRelativeTo(null);
|
||||||
|
frame.setAlwaysOnTop(true);
|
||||||
|
|
||||||
|
radios.add(baseRad);
|
||||||
|
radios.add(patchRad);
|
||||||
|
radios.add(hdRad);
|
||||||
|
radios.add(furyRad);
|
||||||
|
|
||||||
|
cancelbtn.addActionListener(this);
|
||||||
|
downloadbtn.addActionListener(this);
|
||||||
|
|
||||||
|
try {
|
||||||
|
windowIcon = ImageIO.read(Main.class.getResourceAsStream("/titleIcon.png"));
|
||||||
|
frame.setIconImage(windowIcon);
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.out.println("ERROR: Failed to find /resources/titleIcon.png. Window will not have an icon.");
|
||||||
|
}
|
||||||
|
|
||||||
|
frame.setVisible(true);
|
||||||
|
frame.addWindowListener(new WindowAdapter() {
|
||||||
|
@Override
|
||||||
|
public void windowClosing(WindowEvent e)
|
||||||
|
{
|
||||||
|
parent.setEnabled(true);
|
||||||
|
e.getWindow().dispose();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!new File(Main.inpath + "pkg2zip.exe").exists() || !new File(Main.inpath + "psvpfsparser.exe").exists()) {
|
||||||
|
JOptionPane.showMessageDialog(frame, "The decryption tool is missing.\nPlease select \"Get Dependencies\" in the Options menu.", "Error", JOptionPane.ERROR_MESSAGE);
|
||||||
|
invoker.setEnabled(true);
|
||||||
|
frame.dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent actionEvent) {
|
||||||
|
if (actionEvent.getSource() == cancelbtn) {
|
||||||
|
invoker.setEnabled(true);
|
||||||
|
frame.dispose();
|
||||||
|
} else if (actionEvent.getSource() == downloadbtn) {
|
||||||
|
int result = JOptionPane.showConfirmDialog(frame, "All existing PSARC dumps will be deleted and replaced by the new ones.\nThis download could take several minutes. Do you want to continue?", "Download Game Assets", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
|
||||||
|
if (result == JOptionPane.NO_OPTION) {return;}
|
||||||
|
System.out.println("User requested download of assets. Deleting existing PSARCs");
|
||||||
|
new File(Main.inpath + "data.psarc").delete();
|
||||||
|
new File(Main.inpath + "data01.psarc").delete();
|
||||||
|
new File(Main.inpath + "data02.psarc").delete();
|
||||||
|
new File(Main.inpath + "dlc1.psarc").delete();
|
||||||
|
new File(Main.inpath + "dlc2.psarc").delete();
|
||||||
|
|
||||||
|
Main.ArcTarget type;
|
||||||
|
Main.ArcKey key;
|
||||||
|
if (baseRad.isSelected()) {
|
||||||
|
type = Main.ArcTarget.BASE;
|
||||||
|
key = Main.ArcKey.BASE;
|
||||||
|
System.out.println("Begin download of data (Game version 1.0)");
|
||||||
|
} else
|
||||||
|
if (patchRad.isSelected()) {
|
||||||
|
type = Main.ArcTarget.LATEST;
|
||||||
|
key = Main.ArcKey.LATEST;
|
||||||
|
System.out.println("Begin download of data02 (Game version 1.04)");
|
||||||
|
} else
|
||||||
|
if (hdRad.isSelected()) {
|
||||||
|
type = Main.ArcTarget.ADDON_HD;
|
||||||
|
key = Main.ArcKey.ADDON_HD;
|
||||||
|
System.out.println("Begin download of dlc1 (HD DLC)");
|
||||||
|
} else
|
||||||
|
if (furyRad.isSelected()) {
|
||||||
|
type = Main.ArcTarget.ADDON_HD_FURY;
|
||||||
|
key = Main.ArcKey.ADDON_HD_FURY;
|
||||||
|
System.out.println("Begin download of dlc2 (Fury DLC)");
|
||||||
|
} else {
|
||||||
|
return; // fire hydrant
|
||||||
|
}
|
||||||
|
|
||||||
|
frame.dispose();
|
||||||
|
invoker.setVisible(false);
|
||||||
|
|
||||||
|
Thread downloaderPopupThread = new Thread(new Runnable() { // run on separate thread to prevent GUI freezing
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
// download file
|
||||||
|
boolean downloader = new Fozzie().DownloadFile(type.toString(), Main.inpath, "asset.pkg");
|
||||||
|
if (!downloader) {
|
||||||
|
// cleanup
|
||||||
|
new File(Main.inpath + "asset.pkg").delete();
|
||||||
|
|
||||||
|
// restore controls
|
||||||
|
invoker.setEnabled(true);
|
||||||
|
invoker.setVisible(true);
|
||||||
|
invoker.toFront();
|
||||||
|
invoker.repaint();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// dump contents
|
||||||
|
System.out.println("Extracting asset.pkg");
|
||||||
|
Process p;
|
||||||
|
try {
|
||||||
|
if (!Main.windows) {p = Runtime.getRuntime().exec(new String[]{"bash","-c","cd " + Main.inpath + ";wine pkg2zip.exe -x asset.pkg " + key.toString()});}
|
||||||
|
else {p = Runtime.getRuntime().exec(new String[]{Main.inpath + "pkg2zip.exe", "-x", "asset.pkg", key.toString()}, null, new File(Main.inpath));
|
||||||
|
InputStream debugin = new BufferedInputStream(p.getInputStream());
|
||||||
|
FileOutputStream debugout = new FileOutputStream(Main.inpath + "log1.txt");
|
||||||
|
int c;
|
||||||
|
while ((c = debugin.read()) != -1) {
|
||||||
|
debugout.write(c);
|
||||||
|
}
|
||||||
|
debugin.close();
|
||||||
|
debugout.close();
|
||||||
|
} //inpath cannot change here
|
||||||
|
p.waitFor();
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println(e.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(invoker, "CRITICAL FAILURE: " + e.getMessage(), "Fatal Error", JOptionPane.ERROR_MESSAGE);
|
||||||
|
new File(Main.inpath + "asset.pkg").delete();
|
||||||
|
invoker.setEnabled(true);
|
||||||
|
invoker.setVisible(true);
|
||||||
|
invoker.toFront();
|
||||||
|
invoker.repaint();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// decrypt
|
||||||
|
System.out.println("Decrypting asset.pkg");
|
||||||
|
String extracted;
|
||||||
|
String name;
|
||||||
|
if (type == Main.ArcTarget.BASE) {
|
||||||
|
extracted = "app/PCSA00015";
|
||||||
|
name = "data.psarc";
|
||||||
|
} else if (type == Main.ArcTarget.LATEST) {
|
||||||
|
extracted = "patch/PCSA00015";
|
||||||
|
name = "data02.psarc";
|
||||||
|
} else if (type == Main.ArcTarget.ADDON_HD) {
|
||||||
|
extracted = "addcont/PCSA00015/DLC1W2048PACKAGE";
|
||||||
|
name = "dlc1.psarc";
|
||||||
|
} else if (type == Main.ArcTarget.ADDON_HD_FURY) {
|
||||||
|
extracted = "addcont/PCSA00015/DLC2W2048PACKAGE";
|
||||||
|
name = "dlc2.psarc";
|
||||||
|
} else {
|
||||||
|
System.out.println("Internal Error: Bert got dementia. Get a programmer!");
|
||||||
|
JOptionPane.showMessageDialog(invoker, "Internal Error: Bert got dementia. Get a programmer!", "Fatal Error", JOptionPane.ERROR_MESSAGE);
|
||||||
|
new File(Main.inpath + "asset.pkg").delete();
|
||||||
|
new File(Main.inpath + "app/").delete();
|
||||||
|
new File(Main.inpath + "patch/").delete();
|
||||||
|
new File(Main.inpath + "addcont/").delete();
|
||||||
|
invoker.setEnabled(true);
|
||||||
|
invoker.setVisible(true);
|
||||||
|
invoker.toFront();
|
||||||
|
invoker.repaint();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
if (!Main.windows) {p = Runtime.getRuntime().exec(new String[]{"bash","-c","cd " + Main.inpath + ";wine psvpfsparser.exe -i " + extracted + " -o ./temp/ -z " + key.toString() + " -f cma.henkaku.xyz"});}
|
||||||
|
else {p = Runtime.getRuntime().exec(new String[]{Main.inpath + "psvpfsparser.exe", "-i", extracted, "-o", "./temp/", "-z", key.toString(), "-f", "cma.henkaku.xyz"}, null, new File(Main.inpath));}
|
||||||
|
p.waitFor();
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println(e.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(invoker, "CRITICAL FAILURE: " + e.getMessage(), "Fatal Error", JOptionPane.ERROR_MESSAGE);
|
||||||
|
new File(Main.inpath + "asset.pkg").delete();
|
||||||
|
new File(Main.inpath + "app/").delete();
|
||||||
|
new File(Main.inpath + "patch/").delete();
|
||||||
|
new File(Main.inpath + "addcont/").delete();
|
||||||
|
invoker.setEnabled(true);
|
||||||
|
invoker.setVisible(true);
|
||||||
|
invoker.toFront();
|
||||||
|
invoker.repaint();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// stage & cleanup
|
||||||
|
System.out.println("Cleaning up");
|
||||||
|
new File(Main.inpath + "asset.pkg").delete();
|
||||||
|
new File(Main.inpath + "temp/PSP2/" + name).renameTo(new File(Main.inpath + name));
|
||||||
|
Main.deleteDir(new File(Main.inpath + "addcont/"));
|
||||||
|
Main.deleteDir(new File(Main.inpath + "patch/"));
|
||||||
|
Main.deleteDir(new File(Main.inpath + "app/"));
|
||||||
|
Main.deleteDir(new File(Main.inpath + "temp/"));
|
||||||
|
|
||||||
|
// restore controls
|
||||||
|
JOptionPane.showMessageDialog(frame, "Assets downloaded successfully.", "Download Complete", JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
invoker.setEnabled(true);
|
||||||
|
invoker.setVisible(true);
|
||||||
|
invoker.toFront();
|
||||||
|
invoker.repaint();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
downloaderPopupThread.start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -16,8 +16,10 @@
|
||||||
* along with this program. If not, see https://www.gnu.org/licenses/.
|
* along with this program. If not, see https://www.gnu.org/licenses/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import javax.imageio.ImageIO;
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
import java.awt.image.BufferedImage;
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
@ -27,6 +29,7 @@ import java.nio.file.Paths;
|
||||||
import java.nio.file.StandardCopyOption;
|
import java.nio.file.StandardCopyOption;
|
||||||
|
|
||||||
public class Fozzie {
|
public class Fozzie {
|
||||||
|
BufferedImage windowIcon;
|
||||||
private JFrame frame = new JFrame();
|
private JFrame frame = new JFrame();
|
||||||
public JProgressBar progressBar;
|
public JProgressBar progressBar;
|
||||||
private JPanel frameContainer;
|
private JPanel frameContainer;
|
||||||
|
@ -36,21 +39,23 @@ public class Fozzie {
|
||||||
private int contentLength;
|
private int contentLength;
|
||||||
private InputStream inputStream;
|
private InputStream inputStream;
|
||||||
|
|
||||||
//public File output;
|
|
||||||
|
|
||||||
public boolean backgroundDone = false;
|
public boolean backgroundDone = false;
|
||||||
|
|
||||||
boolean DownloadFile(String url, String odir, String oname) {
|
boolean DownloadFile(String url, String odir, String oname) {
|
||||||
//output = o;
|
|
||||||
|
|
||||||
frame.add(frameContainer);
|
frame.add(frameContainer);
|
||||||
frame.setSize(300, 100);
|
frame.setSize(300, 100);
|
||||||
frame.setTitle("Firestar Mod Manager");
|
frame.setTitle("Download in Progress");
|
||||||
frame.setResizable(false);
|
frame.setResizable(false);
|
||||||
frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
|
frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
|
||||||
frame.setLayout(new GridLayout());
|
frame.setLayout(new GridLayout());
|
||||||
frame.setLocationRelativeTo(null);
|
frame.setLocationRelativeTo(null);
|
||||||
frame.setAlwaysOnTop(true);
|
frame.setAlwaysOnTop(true);
|
||||||
|
try {
|
||||||
|
windowIcon = ImageIO.read(Main.class.getResourceAsStream("/titleIcon.png"));
|
||||||
|
frame.setIconImage(windowIcon);
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.out.println("ERROR: Failed to find /resources/titleIcon.png. Window will not have an icon.");
|
||||||
|
}
|
||||||
frame.setVisible(true);
|
frame.setVisible(true);
|
||||||
|
|
||||||
label.setText("Downloading \"" + oname + "\"");
|
label.setText("Downloading \"" + oname + "\"");
|
||||||
|
|
|
@ -31,17 +31,48 @@ public class Main {
|
||||||
// Build Information
|
// Build Information
|
||||||
public static final String vstr = "Release 1.3";
|
public static final String vstr = "Release 1.3";
|
||||||
public static final String vcode = "Tetsuo";
|
public static final String vcode = "Tetsuo";
|
||||||
public static final int vint = 0;
|
public static final int vint = 1;
|
||||||
|
|
||||||
// User Settings
|
// User Settings
|
||||||
// TODO: replace with user preference when config i/o is done
|
// TODO: replace with user preference when config i/o is done
|
||||||
// also please double check that outpath is actually valid
|
// also please double check that outpath is actually valid
|
||||||
public static String outpath = System.getProperty("user.home") + "/.firestar/out/"; //game assets location
|
public static String outpath = System.getProperty("user.home") + "/.firestar/out/"; //game assets location
|
||||||
public static String inpath = System.getProperty("user.home") + "/.firestar/"; //game assets location
|
public final static String inpath = System.getProperty("user.home") + "/.firestar/"; //firestar folder -- do not change this
|
||||||
public static boolean repatch; //are we in compat mode?
|
public static boolean repatch; //are we in compat mode?
|
||||||
public static boolean windows; //True = windows
|
public static boolean windows; //True = windows
|
||||||
|
public static int confvint = vint;
|
||||||
//public static String psarc; //sdk location
|
//public static String psarc; //sdk location
|
||||||
|
|
||||||
|
public enum ArcTarget { // install target for 2048, type used by downloader
|
||||||
|
BASE("http://zeus.dl.playstation.net/cdn/UP9000/PCSA00015_00/NYEoaBGfiWymSEVZKxoyrKyBFsZNoFqxdyAIpZayZYuLLbCAArYrYXjPNhKCfXcONmhIZzZEeArycSrjiJOuNMWuWsDONUxMIQtMk.pkg"),
|
||||||
|
LATEST("http://gs.ww.np.dl.playstation.net/ppkg/np/PCSA00015/PCSA00015_T5/a4b7d9e35ed56e86/UP9000-PCSA00015_00-WIPEOUT2048BASE0-A0104-V0100-059564fcab8ce66d19b5a563e92677e581313205-PE.pkg"),
|
||||||
|
ADDON_HD("http://zeus.dl.playstation.net/cdn/UP9000/PCSA00015_00/JYMqGNXUKqHEyNLjbOgrWcJdnQJUMzgadRFWekbWFBXAwMeGikOyiHkXKogKIfqGhtNwKgmNWwwcrJORmRUTDzylBPwjGVnVjyDfh.pkg"),
|
||||||
|
ADDON_HD_FURY("http://zeus.dl.playstation.net/cdn/UP9000/PCSA00015_00/IAoJQaDpySenBmQCKiqecEPMzSdPfPcdXupxZXLTYYTuRgtsdTaHxbeejwGKRQpjJOKBdMMFzSoeEhsHYxNUasQrEzkZPeBxUEqnp.pkg");
|
||||||
|
|
||||||
|
private final String value;
|
||||||
|
ArcTarget(final String value) {this.value = value;};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum ArcKey { // install target for 2048, type used by downloader
|
||||||
|
BASE("KO5ifR1dQ+eHBlgi6TI0Bdkf7hng6h8aYmRgYuHkCLQNn/9ufV+01fmzjNSmwuVHnO4dEBuN8cENACqVFcgA"),
|
||||||
|
LATEST("KO5ifR1dQ+eHBlgi6TI0Bdkf7hng6h8aYmRgYuHkCLQNn/9ufV+01fmzjNSmwuVHnO4dEBuN8cENACqVFcgA"),
|
||||||
|
ADDON_HD("KO5ifR1dQ+eHBlgi6TI0Bdnv4uNsGG5kYGIR4Ojs7ejuis9/anXfuudVNvzgdu+9z1z+asJojA9uAACgRhTl"),
|
||||||
|
ADDON_HD_FURY("KO5ifR1dQ+eHBlgi6TI0Bdnv4uNsFG5kYGIR4Ojs7ejuis9/3fydBRm3eCJX7biz/vVTm/2jMT64AQCCYhVy");
|
||||||
|
|
||||||
|
private final String value;
|
||||||
|
ArcKey(final String value) {this.value = value;};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class Mod {
|
public class Mod {
|
||||||
public String path; // file name
|
public String path; // file name
|
||||||
public int version = 1;
|
public int version = 1;
|
||||||
|
@ -88,15 +119,6 @@ public class Main {
|
||||||
fExo2 = new Font("Arial", Font.PLAIN, 12);
|
fExo2 = new Font("Arial", Font.PLAIN, 12);
|
||||||
}
|
}
|
||||||
|
|
||||||
// download dependencies if we know we haven't been here before
|
|
||||||
// will also need to call this if a needed file is missing before use
|
|
||||||
//
|
|
||||||
// mostly for testing. will move to onboarding screen later
|
|
||||||
if (!new File(System.getProperty("user.home") + "/.firestar/").isDirectory()) {
|
|
||||||
new File(System.getProperty("user.home") + "/.firestar/").mkdirs();
|
|
||||||
downloadDependencies();
|
|
||||||
}
|
|
||||||
|
|
||||||
// check and load configs
|
// check and load configs
|
||||||
File fConf = new File(System.getProperty("user.home") + "/.firestar/firestar.conf");
|
File fConf = new File(System.getProperty("user.home") + "/.firestar/firestar.conf");
|
||||||
if (!fConf.isFile()) {
|
if (!fConf.isFile()) {
|
||||||
|
@ -127,7 +149,7 @@ public class Main {
|
||||||
try {
|
try {
|
||||||
JSONObject container = new JSONObject(new String(Files.readAllBytes(Paths.get(System.getProperty("user.home") + "/.firestar/firestar.conf"))));
|
JSONObject container = new JSONObject(new String(Files.readAllBytes(Paths.get(System.getProperty("user.home") + "/.firestar/firestar.conf"))));
|
||||||
System.out.println(container.toString()); // debug
|
System.out.println(container.toString()); // debug
|
||||||
int confvint = (int) container.get("version"); // used for converting configs between program versions later down the line
|
confvint = (int) container.get("version"); // used for converting configs between program versions later down the line
|
||||||
outpath = container.get("2048path").toString();
|
outpath = container.get("2048path").toString();
|
||||||
repatch = (boolean) container.get("safemode");
|
repatch = (boolean) container.get("safemode");
|
||||||
windows = (boolean) container.get("isWin32");
|
windows = (boolean) container.get("isWin32");
|
||||||
|
@ -142,7 +164,7 @@ public class Main {
|
||||||
try {
|
try {
|
||||||
JSONObject container = new JSONObject(new String(Files.readAllBytes(Paths.get(System.getProperty("user.home") + "/.firestar/firestar.conf"))));
|
JSONObject container = new JSONObject(new String(Files.readAllBytes(Paths.get(System.getProperty("user.home") + "/.firestar/firestar.conf"))));
|
||||||
System.out.println(container.toString()); // debug
|
System.out.println(container.toString()); // debug
|
||||||
int confvint = (int) container.get("version"); // used for converting configs between program versions later down the line
|
confvint = (int) container.get("version"); // used for converting configs between program versions later down the line
|
||||||
outpath = container.get("2048path").toString();
|
outpath = container.get("2048path").toString();
|
||||||
repatch = (boolean) container.get("safemode");
|
repatch = (boolean) container.get("safemode");
|
||||||
windows = (boolean) container.get("isWin32");
|
windows = (boolean) container.get("isWin32");
|
||||||
|
@ -165,7 +187,15 @@ public class Main {
|
||||||
file.delete();
|
file.delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean downloadDependencies () {
|
public static void downloadDependenciesBeforeSetVisible(JFrame invoker) {
|
||||||
|
invoker.setVisible(false);
|
||||||
|
Main.downloadDependencies();
|
||||||
|
invoker.setVisible(true);
|
||||||
|
confvint = vint;
|
||||||
|
Main.writeConf();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean downloadDependencies () { // todo: CHECKSUM!!!! THESE ARE EXECUTABLES!!!!!!!!!!! DON'T ALLOW MALWARE!!!!
|
||||||
boolean downloader = new Fozzie().DownloadFile("https://bonkmaykr.worlio.com/http/firestar/firesdk.zip", System.getProperty("user.home") + "/.firestar/", "firesdk.zip");
|
boolean downloader = new Fozzie().DownloadFile("https://bonkmaykr.worlio.com/http/firestar/firesdk.zip", System.getProperty("user.home") + "/.firestar/", "firesdk.zip");
|
||||||
if (!downloader) {return false;}
|
if (!downloader) {return false;}
|
||||||
|
|
||||||
|
@ -181,4 +211,8 @@ public class Main {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean callDownloaderStatically (String url, String folder, String name) {
|
||||||
|
return new Fozzie().DownloadFile(url, folder, name);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -176,7 +176,24 @@ public class MissPiggy implements ActionListener {
|
||||||
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
|
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
|
||||||
frame.setLayout(new GridLayout());
|
frame.setLayout(new GridLayout());
|
||||||
frame.setLocationRelativeTo(null);
|
frame.setLocationRelativeTo(null);
|
||||||
frame.setVisible(true);
|
|
||||||
|
if (Main.confvint == 0){ // nag
|
||||||
|
int result = JOptionPane.showConfirmDialog(frame, "Firestar needs to download additional software to function. Setup is automatic and will only take a few minutes.\nIf you select NO, you will have to download additional dependencies later on.\n\nContinue?", "Firestar Setup", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
|
||||||
|
if (result == JOptionPane.YES_OPTION) {
|
||||||
|
Thread downloaderPopupThread = new Thread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
Main.downloadDependenciesBeforeSetVisible(frame);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
downloaderPopupThread.start();
|
||||||
|
} else {
|
||||||
|
Main.writeConf(); // don't warn again
|
||||||
|
frame.setVisible(true); // no fuck off
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
frame.setVisible(true); // don't nag
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InitializeModListStructure() {
|
public void InitializeModListStructure() {
|
||||||
|
@ -369,6 +386,22 @@ public class MissPiggy implements ActionListener {
|
||||||
frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
|
frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
|
||||||
frame.setEnabled(false);
|
frame.setEnabled(false);
|
||||||
|
|
||||||
|
if (!new File(Main.inpath + "psp2psarc.exe").exists()) {
|
||||||
|
JOptionPane.showMessageDialog(frame, "psp2psarc is missing.\nPlease select \"Get Dependencies\" in the Options menu.", "Error", JOptionPane.ERROR_MESSAGE);
|
||||||
|
wrapUpDeployment();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!new File(Main.inpath + "data.psarc").exists() &&
|
||||||
|
!new File(Main.inpath + "data01.psarc").exists() &&
|
||||||
|
!new File(Main.inpath + "data02.psarc").exists() &&
|
||||||
|
!new File(Main.inpath + "dlc1.psarc").exists() &&
|
||||||
|
!new File(Main.inpath + "dlc2.psarc").exists()) {
|
||||||
|
JOptionPane.showMessageDialog(frame, "You have no PSARCs.\nPlease dump your copy of WipEout 2048 or download a PSARC from the Options menu.", "Error", JOptionPane.ERROR_MESSAGE);
|
||||||
|
wrapUpDeployment();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// start
|
// start
|
||||||
new Gonzo().DeployMods(this);
|
new Gonzo().DeployMods(this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,7 +52,7 @@ public class Rowlf {
|
||||||
"\n" +
|
"\n" +
|
||||||
"Special thanks to:\n" +
|
"Special thanks to:\n" +
|
||||||
"ThatOneBonk, for Thallium and for modding help\n" +
|
"ThatOneBonk, for Thallium and for modding help\n" +
|
||||||
"Wirlaburla, for web hosting and being awesome\n" +
|
"Wirlaburla, for web hosting and code assistance\n" +
|
||||||
"Psygnosis, for making our favorite game ever\n" +
|
"Psygnosis, for making our favorite game ever\n" +
|
||||||
"and to all the PSVita hackers who made this possible");
|
"and to all the PSVita hackers who made this possible");
|
||||||
informationText.setHighlighter(null);
|
informationText.setHighlighter(null);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="Waldorf">
|
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="Waldorf">
|
||||||
<grid id="27dc6" binding="frameContainer" layout-manager="GridLayoutManager" row-count="5" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
<grid id="27dc6" binding="frameContainer" layout-manager="GridLayoutManager" row-count="6" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||||
<margin top="0" left="0" bottom="0" right="0"/>
|
<margin top="10" left="25" bottom="10" right="25"/>
|
||||||
<constraints>
|
<constraints>
|
||||||
<xy x="20" y="20" width="500" height="400"/>
|
<xy x="20" y="20" width="500" height="400"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
<children>
|
<children>
|
||||||
<component id="3d88f" class="javax.swing.JButton" binding="okbtn">
|
<component id="3d88f" class="javax.swing.JButton" binding="okbtn">
|
||||||
<constraints>
|
<constraints>
|
||||||
<grid row="4" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
|
<grid row="5" column="2" row-span="1" col-span="1" vsize-policy="6" hsize-policy="6" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<properties>
|
<properties>
|
||||||
<text value="Save"/>
|
<text value="Save"/>
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
</component>
|
</component>
|
||||||
<component id="86775" class="javax.swing.JTextField" binding="fOutpath">
|
<component id="86775" class="javax.swing.JTextField" binding="fOutpath">
|
||||||
<constraints>
|
<constraints>
|
||||||
<grid row="3" column="1" row-span="1" col-span="2" vsize-policy="0" hsize-policy="7" anchor="0" fill="1" indent="0" use-parent-layout="false">
|
<grid row="4" column="1" row-span="1" col-span="2" vsize-policy="0" hsize-policy="7" anchor="0" fill="1" indent="0" use-parent-layout="false">
|
||||||
<preferred-size width="150" height="-1"/>
|
<preferred-size width="150" height="-1"/>
|
||||||
</grid>
|
</grid>
|
||||||
</constraints>
|
</constraints>
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
</component>
|
</component>
|
||||||
<component id="db731" class="javax.swing.JLabel">
|
<component id="db731" class="javax.swing.JLabel">
|
||||||
<constraints>
|
<constraints>
|
||||||
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="4" fill="0" indent="0" use-parent-layout="false"/>
|
<grid row="4" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="4" fill="0" indent="0" use-parent-layout="false"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<properties>
|
<properties>
|
||||||
<text value="Mod Export Path"/>
|
<text value="Mod Export Path"/>
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
</component>
|
</component>
|
||||||
<component id="50d13" class="javax.swing.JButton" binding="cancelbtn">
|
<component id="50d13" class="javax.swing.JButton" binding="cancelbtn">
|
||||||
<constraints>
|
<constraints>
|
||||||
<grid row="4" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
|
<grid row="5" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="6" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<properties>
|
<properties>
|
||||||
<text value="Cancel"/>
|
<text value="Cancel"/>
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
</component>
|
</component>
|
||||||
<component id="252b3" class="javax.swing.JButton" binding="resetbtn">
|
<component id="252b3" class="javax.swing.JButton" binding="resetbtn">
|
||||||
<constraints>
|
<constraints>
|
||||||
<grid row="4" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
|
<grid row="5" column="1" row-span="1" col-span="1" vsize-policy="6" hsize-policy="6" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<properties>
|
<properties>
|
||||||
<text value="Restore Defaults"/>
|
<text value="Restore Defaults"/>
|
||||||
|
@ -54,7 +54,7 @@
|
||||||
</component>
|
</component>
|
||||||
<component id="e2cd7" class="javax.swing.JLabel">
|
<component id="e2cd7" class="javax.swing.JLabel">
|
||||||
<constraints>
|
<constraints>
|
||||||
<grid row="0" column="0" row-span="3" col-span="1" vsize-policy="0" hsize-policy="0" anchor="4" fill="0" indent="0" use-parent-layout="false"/>
|
<grid row="1" column="0" row-span="3" col-span="1" vsize-policy="0" hsize-policy="0" anchor="4" fill="0" indent="0" use-parent-layout="false"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<properties>
|
<properties>
|
||||||
<text value=".firestar Folder"/>
|
<text value=".firestar Folder"/>
|
||||||
|
@ -62,13 +62,49 @@
|
||||||
</component>
|
</component>
|
||||||
<component id="c68f2" class="javax.swing.JButton" binding="bOpenFolder">
|
<component id="c68f2" class="javax.swing.JButton" binding="bOpenFolder">
|
||||||
<constraints>
|
<constraints>
|
||||||
<grid row="0" column="1" row-span="3" col-span="2" vsize-policy="0" hsize-policy="7" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
<grid row="1" column="1" row-span="3" col-span="2" vsize-policy="0" hsize-policy="7" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<properties>
|
<properties>
|
||||||
<label value="Browse"/>
|
<label value="Browse"/>
|
||||||
<text value="Browse"/>
|
<text value="Browse"/>
|
||||||
</properties>
|
</properties>
|
||||||
</component>
|
</component>
|
||||||
|
<component id="63b35" class="javax.swing.JLabel">
|
||||||
|
<constraints>
|
||||||
|
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="4" fill="0" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties>
|
||||||
|
<text value="Downloads"/>
|
||||||
|
</properties>
|
||||||
|
</component>
|
||||||
|
<grid id="1206c" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||||
|
<margin top="0" left="0" bottom="0" right="0"/>
|
||||||
|
<constraints>
|
||||||
|
<grid row="0" column="1" row-span="1" col-span="2" vsize-policy="7" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties/>
|
||||||
|
<border type="none">
|
||||||
|
<color color="-16777216"/>
|
||||||
|
</border>
|
||||||
|
<children>
|
||||||
|
<component id="92a60" class="javax.swing.JButton" binding="dwnSDKbtn">
|
||||||
|
<constraints>
|
||||||
|
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="7" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties>
|
||||||
|
<text value="Get Dependencies"/>
|
||||||
|
</properties>
|
||||||
|
</component>
|
||||||
|
<component id="87ead" class="javax.swing.JButton" binding="dwnARCbtn">
|
||||||
|
<constraints>
|
||||||
|
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="7" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||||
|
</constraints>
|
||||||
|
<properties>
|
||||||
|
<text value="Auto-Download PSARCs"/>
|
||||||
|
</properties>
|
||||||
|
</component>
|
||||||
|
</children>
|
||||||
|
</grid>
|
||||||
</children>
|
</children>
|
||||||
</grid>
|
</grid>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -16,8 +16,6 @@
|
||||||
* along with this program. If not, see https://www.gnu.org/licenses/.
|
* along with this program. If not, see https://www.gnu.org/licenses/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import org.json.JSONObject;
|
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
@ -39,6 +37,8 @@ public class Waldorf implements ActionListener {
|
||||||
private JTextField fOutpath;
|
private JTextField fOutpath;
|
||||||
private JButton resetbtn;
|
private JButton resetbtn;
|
||||||
private JButton bOpenFolder;
|
private JButton bOpenFolder;
|
||||||
|
private JButton dwnSDKbtn;
|
||||||
|
private JButton dwnARCbtn;
|
||||||
MissPiggy invoker;
|
MissPiggy invoker;
|
||||||
|
|
||||||
public void Action(MissPiggy inv) {
|
public void Action(MissPiggy inv) {
|
||||||
|
@ -65,6 +65,9 @@ public class Waldorf implements ActionListener {
|
||||||
resetbtn.addActionListener(this);
|
resetbtn.addActionListener(this);
|
||||||
bOpenFolder.addActionListener(this);
|
bOpenFolder.addActionListener(this);
|
||||||
|
|
||||||
|
dwnARCbtn.addActionListener(this);
|
||||||
|
dwnSDKbtn.addActionListener(this);
|
||||||
|
|
||||||
fOutpath.setText(Main.outpath);
|
fOutpath.setText(Main.outpath);
|
||||||
|
|
||||||
frame.setVisible(true);
|
frame.setVisible(true);
|
||||||
|
@ -91,7 +94,7 @@ public class Waldorf implements ActionListener {
|
||||||
invoker.frame.setEnabled(true);
|
invoker.frame.setEnabled(true);
|
||||||
frame.dispose();
|
frame.dispose();
|
||||||
} else
|
} else
|
||||||
if (actionEvent.getSource() == resetbtn) {
|
if (actionEvent.getSource() == resetbtn) { // todo: delete firesdk
|
||||||
int result = JOptionPane.showConfirmDialog(frame,"Are you sure you want to redo the initial setup?", "Restore Default Settings", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
|
int result = JOptionPane.showConfirmDialog(frame,"Are you sure you want to redo the initial setup?", "Restore Default Settings", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
|
||||||
if (result == JOptionPane.YES_OPTION) {
|
if (result == JOptionPane.YES_OPTION) {
|
||||||
new File(System.getProperty("user.home") + "/.firestar/firestar.conf").delete();
|
new File(System.getProperty("user.home") + "/.firestar/firestar.conf").delete();
|
||||||
|
@ -107,6 +110,21 @@ public class Waldorf implements ActionListener {
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
} else
|
||||||
|
if (actionEvent.getSource() == dwnARCbtn) {
|
||||||
|
new Bert(invoker.frame);
|
||||||
|
frame.dispose();
|
||||||
|
} else
|
||||||
|
if (actionEvent.getSource() == dwnSDKbtn) {
|
||||||
|
Thread downloaderPopupThread = new Thread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
Main.downloadDependenciesBeforeSetVisible(invoker.frame);
|
||||||
|
invoker.frame.setEnabled(true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
downloaderPopupThread.start();
|
||||||
|
frame.dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user