8 Commits

Author SHA1 Message Date
9155493c0e Remove busted splash 2025-03-11 10:29:28 -05:00
c32d45c63f Update version number 2025-03-11 10:25:16 -05:00
e53933200e Update linker settings 2025-03-10 13:01:59 -05:00
Downforce Agent
8840a193a3 These instructions are wrong. 2025-03-05 23:53:22 -05:00
c9a968d173 Display installed PSArcs in options screen 2025-02-25 19:37:37 -06:00
b1f38400c3 splash fixes 2025-02-23 16:32:46 -06:00
889e99f301 Splash screen 2025-02-22 15:45:26 -06:00
9585f16f11 Allow skipping patch download 2025-02-22 11:20:50 -06:00
23 changed files with 1653 additions and 1315 deletions

View File

@@ -6,10 +6,14 @@
<element id="file-copy" path="$PROJECT_DIR$/META-INF/MANIFEST.MF" />
</element>
<element id="module-output" name="firestar.firestar.main" />
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.json/json/20240303/ebb88e8fb5122b7506d5cf1d69f1ccdb790d22a/json-20240303.jar" path-in-jar="/" />
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.lingala.zip4j/zip4j/2.11.5/4214e396e3891cb19eded3ce5e584cba9032fdc3/zip4j-2.11.5.jar" path-in-jar="/" />
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.jetbrains.intellij.java/java-gui-forms-rt/203.7148.30/f0dbca371a2592689e541be912de6005939f9c7c/java-gui-forms-rt-203.7148.30.jar" path-in-jar="/" />
<element id="dir-copy" path="$PROJECT_DIR$/firestar/src/main/resources" />
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.jetbrains.intellij.java/java-gui-forms-rt/203.7148.30/f0dbca371a2592689e541be912de6005939f9c7c/java-gui-forms-rt-203.7148.30.jar" path-in-jar="/" />
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/io.github.java-diff-utils/java-diff-utils/4.12/1a712a91324d566eef39817fc5c9980eb10c21db/java-diff-utils-4.12.jar" path-in-jar="/" />
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.lingala.zip4j/zip4j/2.11.5/4214e396e3891cb19eded3ce5e584cba9032fdc3/zip4j-2.11.5.jar" path-in-jar="/" />
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.14.0/1ed471194b02f2c6cb734a0cd6f6f107c673afae/commons-lang3-3.14.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-text/1.12.0/66aa90dc099701c4d3b14bd256c328f592ccf0d6/commons-text-1.12.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.json/json/20240303/ebb88e8fb5122b7506d5cf1d69f1ccdb790d22a/json-20240303.jar" path-in-jar="/" />
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.netbeans.external/org-apache-commons-io/RELEASE113/815893df5f31da2ece4040fe0a12fd44b577afaf/org-apache-commons-io-RELEASE113.jar" path-in-jar="/" />
</root>
</artifact>
</component>

10
.idea/uiDesigner.xml generated
View File

@@ -32,17 +32,17 @@
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />

View File

@@ -9,12 +9,12 @@
# Installation
The latest version of Firestar will always be available from [Releases](https://git.worlio.com/bonkmaykr/firestar/releases).
If you aren't sure which file to get:
- **Windows:** Download the latest installer [here](https://files.worlio.com/users/bonkmaykr/tools/firestar/latest/firestar_1.2_installer_windows.exe).
- **Windows:** Download the latest installer [here](https://screwgravity.net/firestar/builds/stable/tetsuo/firestar_1.3_installer_winnt_x86-64.exe).
- **Linux:** Install one of the packages from the [Releases](https://git.worlio.com/bonkmaykr/firestar/releases) page:
- Ubuntu, Mint, PopOS: `sudo dpkg -i firestar_ver_arch.deb` or `gdebi firestar_ver_arch.deb`
- Fedora, Mageia, OpenSUSE, AlmaLinux: `sudo rpm -i firestar-ver-arch.rpm`
- Arch, EndeavourOS, CachyOS, Steam Deck: `sudo pacman -U firestar-ver-arch.pkg.tar.zst`
- **All Platforms:** Grab the [Portable ZIP](https://files.worlio.com/users/bonkmaykr/tools/firestar/latest/firestar_dekka-1.2_portable.zip), extract it, and run the JAR file.
- **All Platforms:** Grab the [JAR](https://screwgravity.net/firestar/builds/stable/tetsuo/firestar_1.3_portable.jar) and run it.
# System Requirements
- Windows 8 or newer, Mac OS X 10.14 or older, any modern version of Linux/BSD

View File

@@ -0,0 +1,110 @@
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="Beaker">
<grid id="27dc6" binding="frameContainer" 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>
<xy x="20" y="20" width="772" height="129"/>
</constraints>
<properties>
<background color="-2271221"/>
</properties>
<border type="none"/>
<children>
<grid id="20b72" 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="8" bottom="0" right="8"/>
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false">
<minimum-size width="-1" height="20"/>
<preferred-size width="-1" height="80"/>
<maximum-size width="-1" height="80"/>
</grid>
</constraints>
<properties>
<background color="-15128227"/>
<focusable value="false"/>
<font size="8"/>
<foreground color="-1"/>
</properties>
<border type="none"/>
<children>
<grid id="60002" 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="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>
<opaque value="false"/>
</properties>
<border type="none"/>
<children>
<component id="9c218" class="javax.swing.JLabel">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="10" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<focusable value="false"/>
<font size="10"/>
<foreground color="-1"/>
<text value="© 2025 Canithesis Interactive"/>
</properties>
</component>
<component id="4c79f" class="javax.swing.JLabel">
<constraints>
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="6" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<font size="10"/>
<foreground color="-1"/>
<text value="This program is not endorsed by Sony Computer Entertainment."/>
</properties>
</component>
</children>
</grid>
<grid id="da84a" 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="1" 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>
<opaque value="false"/>
</properties>
<border type="none"/>
<children>
<component id="c04e4" class="javax.swing.JLabel">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="9" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<focusable value="false"/>
<font size="10"/>
<foreground color="-1"/>
<text value="https://screwgravity.net/firestar/"/>
</properties>
</component>
<component id="b7dd0" class="javax.swing.JLabel">
<constraints>
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="5" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<font size="10"/>
<foreground color="-1"/>
<text value="Developed and GNU'd by bonkmaykr. FScript thanx to Wirlaburla"/>
</properties>
</component>
</children>
</grid>
</children>
</grid>
<component id="19b7a" class="javax.swing.JLabel" binding="splashImg">
<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">
<preferred-size width="640" height="400"/>
</grid>
</constraints>
<properties>
<text value=""/>
</properties>
</component>
</children>
</grid>
</form>

View File

@@ -0,0 +1,59 @@
/*
* Firestar Mod Manager
* Copyright (C) 2025 Canithesis Interactive
*
* 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.io.IOException;
import static javax.swing.WindowConstants.DISPOSE_ON_CLOSE;
public class Beaker {
Image logo;
private JLabel splashImg;
JFrame frame = new JFrame();
JPanel frameContainer;
public Beaker() throws InterruptedException {
try {
logo = ImageIO.read(Main.class.getResourceAsStream("/splash"+(int)(Math.random()*10)+".png")).getScaledInstance(640, 400, Image.SCALE_SMOOTH);
} catch (IOException e) {
System.out.println("ERROR: Uhhhhhhhhhhh........... what?");
return;
}
frame.add(frameContainer); // initialize window contents -- will be handled by IntelliJ IDEA
splashImg.setIcon(new ImageIcon(logo));splashImg.setText("");
// display window
frame.setSize(640, 450);
frame.setTitle("Firestar Mod Manager");
frame.setUndecorated(true);
frame.setResizable(false);
frame.setAlwaysOnTop(true);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setLayout(new GridLayout());
frame.setLocationRelativeTo(null);
frame.setVisible(true);
Thread.sleep(3000);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.dispose();
}
}

View File

@@ -63,7 +63,7 @@
<properties>
<font name="Exo 2"/>
<foreground color="-1"/>
<text value=" If you add/remove DLC in the future, you will need to change this setting again."/>
<text value="Downloading a game update will automatically download its previous versions."/>
</properties>
</component>
</children>
@@ -108,7 +108,7 @@
</component>
</children>
</grid>
<grid id="1000f" layout-manager="GridLayoutManager" row-count="3" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<grid id="1000f" layout-manager="GridLayoutManager" row-count="3" column-count="3" 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"/>
@@ -122,7 +122,7 @@
<children>
<component id="f3723" class="javax.swing.JCheckBox" binding="hdCheck">
<constraints>
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="5" fill="0" indent="0" use-parent-layout="false"/>
<grid row="2" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="5" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<background color="-15128227"/>
@@ -137,7 +137,7 @@
</component>
<component id="5ed0c" class="javax.swing.JCheckBox" binding="furyCheck">
<constraints>
<grid row="2" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="9" fill="0" indent="0" use-parent-layout="false"/>
<grid row="2" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="9" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<background color="-15128227"/>
@@ -151,10 +151,10 @@
<verticalTextPosition value="0"/>
</properties>
</component>
<grid id="afeb1" layout-manager="GridLayoutManager" row-count="2" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<grid id="afeb1" layout-manager="GridLayoutManager" row-count="3" column-count="3" 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="2" vsize-policy="0" hsize-policy="1" anchor="2" fill="0" indent="0" use-parent-layout="false"/>
<grid row="0" column="1" row-span="1" col-span="2" vsize-policy="0" hsize-policy="1" anchor="2" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<background color="-15128227"/>
@@ -217,11 +217,25 @@
<text value="Select Game Version:"/>
</properties>
</component>
<component id="26170" class="javax.swing.JCheckBox" binding="skipBaseCheck">
<constraints>
<grid row="2" column="0" row-span="1" col-span="3" vsize-policy="0" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<background color="-15128227"/>
<enabled value="false"/>
<focusPainted value="false"/>
<font name="Exo 2"/>
<foreground color="-1"/>
<label value="Don't redownload existing core game files"/>
<text value="Don't redownload existing core game files"/>
</properties>
</component>
</children>
</grid>
<component id="45b94" class="javax.swing.JLabel">
<constraints>
<grid row="1" column="0" row-span="1" col-span="2" vsize-policy="0" hsize-policy="0" anchor="2" fill="0" indent="0" use-parent-layout="false"/>
<grid row="1" column="1" row-span="1" col-span="2" vsize-policy="0" hsize-policy="0" anchor="2" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<background color="-15128227"/>
@@ -231,6 +245,101 @@
<text value="Select DLC Packs:"/>
</properties>
</component>
<grid id="d53a4" binding="installedList" layout-manager="GridLayoutManager" row-count="1" 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="3" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<focusable value="false"/>
<opaque value="false"/>
</properties>
<border type="line" title="Installed Packs" title-justification="2" title-position="1">
<font name="Exo 2"/>
<title-color color="-1"/>
<color color="-1"/>
</border>
<children>
<grid id="e1f58" binding="installedListMargin" layout-manager="GridLayoutManager" row-count="5" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="4" left="16" bottom="4" right="16"/>
<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>
<focusable value="false"/>
<opaque value="false"/>
</properties>
<border type="none"/>
<children>
<component id="74ba9" class="javax.swing.JLabel" binding="ipcBase">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<font name="Exo 2"/>
<foreground color="-1"/>
<horizontalAlignment value="2"/>
<horizontalTextPosition value="11"/>
<icon value="lightNegative.png"/>
<text value="Base Game"/>
</properties>
</component>
<component id="afce0" class="javax.swing.JLabel" binding="ipcPatch1">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<font name="Exo 2"/>
<foreground color="-1"/>
<horizontalAlignment value="2"/>
<horizontalTextPosition value="11"/>
<icon value="lightNegative.png"/>
<text value="Update v1.01"/>
</properties>
</component>
<component id="209d6" class="javax.swing.JLabel" binding="ipcPatch2">
<constraints>
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<font name="Exo 2"/>
<foreground color="-1"/>
<horizontalAlignment value="2"/>
<horizontalTextPosition value="11"/>
<icon value="lightNegative.png"/>
<text value="Update v1.04"/>
</properties>
</component>
<component id="dbb59" class="javax.swing.JLabel" binding="ipcDlcHD">
<constraints>
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<font name="Exo 2"/>
<foreground color="-1"/>
<horizontalAlignment value="2"/>
<horizontalTextPosition value="11"/>
<icon value="lightNegative.png"/>
<text value="HD Add-On Pack"/>
</properties>
</component>
<component id="c1b3f" class="javax.swing.JLabel" binding="ipcDlcFury">
<constraints>
<grid row="4" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<font name="Exo 2"/>
<foreground color="-1"/>
<horizontalAlignment value="2"/>
<horizontalTextPosition value="11"/>
<icon value="lightNegative.png"/>
<text value="Fury Add-On Pack"/>
</properties>
</component>
</children>
</grid>
</children>
</grid>
</children>
</grid>
</children>

View File

@@ -35,6 +35,14 @@ public class Bert implements ActionListener {
private JRadioButton patchCheck2;
private JCheckBox hdCheck;
private JCheckBox furyCheck;
private JCheckBox skipBaseCheck;
private JPanel installedList;
private JLabel ipcBase;
private JLabel ipcPatch1;
private JLabel ipcPatch2;
private JLabel ipcDlcHD;
private JLabel ipcDlcFury;
private JPanel installedListMargin;
private ButtonGroup radios = new ButtonGroup();
private JFrame invoker;
@@ -61,6 +69,11 @@ public class Bert implements ActionListener {
cancelbtn.addActionListener(this);
downloadbtn.addActionListener(this);
baseCheck.addActionListener(this);
patchCheck1.addActionListener(this);
patchCheck2.addActionListener(this);
refreshChecklist();
frame.setIconImage(Main.windowIcon);
@@ -79,6 +92,9 @@ public class Bert implements ActionListener {
invoker.setEnabled(true);
frame.dispose();
}
if (new File(Main.inpath + "data2.psarc").exists())
skipBaseCheck.setEnabled(true);
}
public boolean reportWhenDownloaded(WilkinsCoffee setup) {
@@ -92,6 +108,12 @@ public class Bert implements ActionListener {
@Override
public void actionPerformed(ActionEvent actionEvent) {
if (actionEvent.getSource() == baseCheck)
skipBaseCheck.setEnabled(new File(Main.inpath + "data.psarc").exists()); else
if (actionEvent.getSource() == patchCheck1)
skipBaseCheck.setEnabled(new File(Main.inpath + "data1.psarc").exists()); else
if (actionEvent.getSource() == patchCheck2)
skipBaseCheck.setEnabled(new File(Main.inpath + "data2.psarc").exists()); else
if (actionEvent.getSource() == cancelbtn) {
invoker.setEnabled(true);
frame.dispose();
@@ -108,34 +130,40 @@ public class Bert implements ActionListener {
// selected (the exact radio button). The user can redownload one at a time
// but Firestar will not overwrite existing PSARCs otherwise.
if (baseCheck.isSelected()) { // I have the base game
arcs.add(Main.ArcTarget.BASE);
keys.add(Main.ArcKey.BASE);
System.out.println("Begin download of data (Game version 1.0)");
if (!skipBaseCheck.isSelected() || !new File(Main.inpath + "data.psarc").exists()) {
arcs.add(Main.ArcTarget.BASE);
keys.add(Main.ArcKey.BASE);
System.out.println("Queued download of data (Game version 1.0)");
}
}
if (patchCheck1.isSelected()) { // I updated it once after it came out and then didn't turn my vita on for thousands of years
if (!new File(Main.inpath + "data.psarc").exists()) {
arcs.add(Main.ArcTarget.BASE);
keys.add(Main.ArcKey.BASE);
System.out.println("Begin download of data (Game version 1.0)");
System.out.println("Queued download of data (Game version 1.0)");
}
if (!skipBaseCheck.isSelected() || !new File(Main.inpath + "data1.psarc").exists()) {
arcs.add(Main.ArcTarget.FIRST);
keys.add(Main.ArcKey.FIRST);
System.out.println("Queued download of data1 (Game version 1.01)");
}
arcs.add(Main.ArcTarget.FIRST);
keys.add(Main.ArcKey.FIRST);
System.out.println("Begin download of data1 (Game version 1.01)");
}
if (patchCheck2.isSelected()) { // I'm a normal fucking person
if (!new File(Main.inpath + "data.psarc").exists()) {
arcs.add(Main.ArcTarget.BASE);
keys.add(Main.ArcKey.BASE);
System.out.println("Begin download of data (Game version 1.0)");
System.out.println("Queued download of data (Game version 1.0)");
}
if (!new File(Main.inpath + "data1.psarc").exists()) {
arcs.add(Main.ArcTarget.FIRST);
keys.add(Main.ArcKey.FIRST);
System.out.println("Begin download of data1 (Game version 1.01)");
System.out.println("Queued download of data1 (Game version 1.01)");
}
if (!skipBaseCheck.isSelected() || !new File(Main.inpath + "data2.psarc").exists()) {
arcs.add(Main.ArcTarget.LATEST);
keys.add(Main.ArcKey.LATEST);
System.out.println("Queued download of data2 (Game version 1.04)");
}
arcs.add(Main.ArcTarget.LATEST);
keys.add(Main.ArcKey.LATEST);
System.out.println("Begin download of data2 (Game version 1.04)");
}
// DLC are installed arbitrarily, separate of the game, and can remain as checkboxes with the old logic.
@@ -143,15 +171,17 @@ public class Bert implements ActionListener {
if (hdCheck.isSelected()) {
arcs.add(Main.ArcTarget.ADDON_HD);
keys.add(Main.ArcKey.ADDON_HD);
System.out.println("Begin download of dlc1 (HD DLC)");
System.out.println("Queued download of dlc1 (HD DLC)");
}
if (furyCheck.isSelected()) {
arcs.add(Main.ArcTarget.ADDON_HD_FURY);
keys.add(Main.ArcKey.ADDON_HD_FURY);
System.out.println("Begin download of dlc2 (Fury DLC)");
System.out.println("Queued download of dlc2 (Fury DLC)");
}
if (arcs.isEmpty()) {
frame.setVisible(false);
JOptionPane.showMessageDialog(invoker, "Select one or more asset packs.", "Error", JOptionPane.ERROR_MESSAGE);
frame.setVisible(true);
return;
}
@@ -320,4 +350,20 @@ public class Bert implements ActionListener {
downloaderPopupThread.start();
}
}
private void refreshChecklist() {
ImageIcon positive = new ImageIcon(Main.class.getResource("/lightPositive.png"));
ImageIcon negative = new ImageIcon(Main.class.getResource("/lightNegative.png"));
if(new File(Main.inpath + "data.psarc").exists())
ipcBase.setIcon(positive); else ipcBase.setIcon(negative);
if(new File(Main.inpath + "data1.psarc").exists())
ipcPatch1.setIcon(positive); else ipcPatch1.setIcon(negative);
if(new File(Main.inpath + "data2.psarc").exists())
ipcPatch2.setIcon(positive); else ipcPatch2.setIcon(negative);
if(new File(Main.inpath + "dlc1.psarc").exists())
ipcDlcHD.setIcon(positive); else ipcDlcHD.setIcon(negative);
if(new File(Main.inpath + "dlc2.psarc").exists())
ipcDlcFury.setIcon(positive); else ipcDlcFury.setIcon(negative);
}
}

View File

@@ -36,14 +36,14 @@ import javax.swing.*;
public class Main {
// Build Information
public static String vstr = "Release 1.3";
public static String vstr = "Release 1.3.1";
public static final String vcode = "Tetsuo";
public static final String vtag = "tetsuo-1.3"; // set to dekka-1.1 for testing
public static final String vtag = "tetsuo-1.3.1"; // set to dekka-1.1 for testing
public static final int vint = 1;
// Jenkins Build Information
public static boolean isNightly = false;
public static final String vtagPrevious = "tetsuo-1.3";
public static final String vtagPrevious = "tetsuo-1.3.1";
public static String dateOfCompile = null;
// User Settings
@@ -108,7 +108,7 @@ public class Main {
public static Font fExo2;
public static BufferedImage windowIcon;
public static void main(String[] args) {
public static void main(String[] args) throws InterruptedException {
// get Nightly information from Jenkins automatic builds
if (Main.class.getResource("/jenkinsVersionString") != null) {
System.out.println("=== This is a NIGHTLY BUILD! ===\n");
@@ -140,6 +140,9 @@ public class Main {
"You should have received a copy of the GNU General Public License\n" +
"along with this program. If not, see https://www.gnu.org/licenses/.\n\n\n\n");
// display splash screen
new Beaker();
// load global assets
try {
fExo2 = Font.createFont(Font.TRUETYPE_FONT, Main.class.getResourceAsStream("/exo2.ttf"));

Binary file not shown.

Before

Width:  |  Height:  |  Size: 823 B

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 851 B

After

Width:  |  Height:  |  Size: 5.0 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 429 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 KiB

File diff suppressed because it is too large Load Diff