Compare commits
8 Commits
tetsuo-1.3
...
tetsuo-1.3
| Author | SHA1 | Date | |
|---|---|---|---|
| 9155493c0e | |||
| c32d45c63f | |||
| e53933200e | |||
|
|
8840a193a3 | ||
| c9a968d173 | |||
| b1f38400c3 | |||
| 889e99f301 | |||
| 9585f16f11 |
10
.idea/artifacts/firestar_jar.xml
generated
@@ -6,10 +6,14 @@
|
|||||||
<element id="file-copy" path="$PROJECT_DIR$/META-INF/MANIFEST.MF" />
|
<element id="file-copy" path="$PROJECT_DIR$/META-INF/MANIFEST.MF" />
|
||||||
</element>
|
</element>
|
||||||
<element id="module-output" name="firestar.firestar.main" />
|
<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="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>
|
</root>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
10
.idea/uiDesigner.xml
generated
@@ -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">
|
<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" />
|
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
|
||||||
</item>
|
</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">
|
<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" />
|
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
|
||||||
<initial-values>
|
<initial-values>
|
||||||
<property name="text" value="Label" />
|
<property name="text" value="Label" />
|
||||||
</initial-values>
|
</initial-values>
|
||||||
</item>
|
</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">
|
<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">
|
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||||
<preferred-size width="150" height="-1" />
|
<preferred-size width="150" height="-1" />
|
||||||
|
|||||||
@@ -9,12 +9,12 @@
|
|||||||
# Installation
|
# Installation
|
||||||
The latest version of Firestar will always be available from [Releases](https://git.worlio.com/bonkmaykr/firestar/releases).
|
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:
|
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:
|
- **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`
|
- 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`
|
- 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`
|
- 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
|
# System Requirements
|
||||||
- Windows 8 or newer, Mac OS X 10.14 or older, any modern version of Linux/BSD
|
- Windows 8 or newer, Mac OS X 10.14 or older, any modern version of Linux/BSD
|
||||||
|
|||||||
110
firestar/src/main/java/Beaker.form
Normal 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>
|
||||||
59
firestar/src/main/java/Beaker.java
Normal 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -63,7 +63,7 @@
|
|||||||
<properties>
|
<properties>
|
||||||
<font name="Exo 2"/>
|
<font name="Exo 2"/>
|
||||||
<foreground color="-1"/>
|
<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>
|
</properties>
|
||||||
</component>
|
</component>
|
||||||
</children>
|
</children>
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
</component>
|
</component>
|
||||||
</children>
|
</children>
|
||||||
</grid>
|
</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"/>
|
<margin top="0" left="0" bottom="0" right="0"/>
|
||||||
<constraints>
|
<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"/>
|
<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>
|
<children>
|
||||||
<component id="f3723" class="javax.swing.JCheckBox" binding="hdCheck">
|
<component id="f3723" class="javax.swing.JCheckBox" binding="hdCheck">
|
||||||
<constraints>
|
<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>
|
</constraints>
|
||||||
<properties>
|
<properties>
|
||||||
<background color="-15128227"/>
|
<background color="-15128227"/>
|
||||||
@@ -137,7 +137,7 @@
|
|||||||
</component>
|
</component>
|
||||||
<component id="5ed0c" class="javax.swing.JCheckBox" binding="furyCheck">
|
<component id="5ed0c" class="javax.swing.JCheckBox" binding="furyCheck">
|
||||||
<constraints>
|
<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>
|
</constraints>
|
||||||
<properties>
|
<properties>
|
||||||
<background color="-15128227"/>
|
<background color="-15128227"/>
|
||||||
@@ -151,10 +151,10 @@
|
|||||||
<verticalTextPosition value="0"/>
|
<verticalTextPosition value="0"/>
|
||||||
</properties>
|
</properties>
|
||||||
</component>
|
</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"/>
|
<margin top="0" left="0" bottom="0" right="0"/>
|
||||||
<constraints>
|
<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>
|
</constraints>
|
||||||
<properties>
|
<properties>
|
||||||
<background color="-15128227"/>
|
<background color="-15128227"/>
|
||||||
@@ -217,11 +217,25 @@
|
|||||||
<text value="Select Game Version:"/>
|
<text value="Select Game Version:"/>
|
||||||
</properties>
|
</properties>
|
||||||
</component>
|
</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>
|
</children>
|
||||||
</grid>
|
</grid>
|
||||||
<component id="45b94" class="javax.swing.JLabel">
|
<component id="45b94" class="javax.swing.JLabel">
|
||||||
<constraints>
|
<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>
|
</constraints>
|
||||||
<properties>
|
<properties>
|
||||||
<background color="-15128227"/>
|
<background color="-15128227"/>
|
||||||
@@ -231,6 +245,101 @@
|
|||||||
<text value="Select DLC Packs:"/>
|
<text value="Select DLC Packs:"/>
|
||||||
</properties>
|
</properties>
|
||||||
</component>
|
</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>
|
</children>
|
||||||
</grid>
|
</grid>
|
||||||
</children>
|
</children>
|
||||||
|
|||||||
@@ -35,6 +35,14 @@ public class Bert implements ActionListener {
|
|||||||
private JRadioButton patchCheck2;
|
private JRadioButton patchCheck2;
|
||||||
private JCheckBox hdCheck;
|
private JCheckBox hdCheck;
|
||||||
private JCheckBox furyCheck;
|
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 ButtonGroup radios = new ButtonGroup();
|
||||||
|
|
||||||
private JFrame invoker;
|
private JFrame invoker;
|
||||||
@@ -61,6 +69,11 @@ public class Bert implements ActionListener {
|
|||||||
|
|
||||||
cancelbtn.addActionListener(this);
|
cancelbtn.addActionListener(this);
|
||||||
downloadbtn.addActionListener(this);
|
downloadbtn.addActionListener(this);
|
||||||
|
baseCheck.addActionListener(this);
|
||||||
|
patchCheck1.addActionListener(this);
|
||||||
|
patchCheck2.addActionListener(this);
|
||||||
|
|
||||||
|
refreshChecklist();
|
||||||
|
|
||||||
frame.setIconImage(Main.windowIcon);
|
frame.setIconImage(Main.windowIcon);
|
||||||
|
|
||||||
@@ -79,6 +92,9 @@ public class Bert implements ActionListener {
|
|||||||
invoker.setEnabled(true);
|
invoker.setEnabled(true);
|
||||||
frame.dispose();
|
frame.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (new File(Main.inpath + "data2.psarc").exists())
|
||||||
|
skipBaseCheck.setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean reportWhenDownloaded(WilkinsCoffee setup) {
|
public boolean reportWhenDownloaded(WilkinsCoffee setup) {
|
||||||
@@ -92,6 +108,12 @@ public class Bert implements ActionListener {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent actionEvent) {
|
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) {
|
if (actionEvent.getSource() == cancelbtn) {
|
||||||
invoker.setEnabled(true);
|
invoker.setEnabled(true);
|
||||||
frame.dispose();
|
frame.dispose();
|
||||||
@@ -108,34 +130,40 @@ public class Bert implements ActionListener {
|
|||||||
// selected (the exact radio button). The user can redownload one at a time
|
// selected (the exact radio button). The user can redownload one at a time
|
||||||
// but Firestar will not overwrite existing PSARCs otherwise.
|
// but Firestar will not overwrite existing PSARCs otherwise.
|
||||||
if (baseCheck.isSelected()) { // I have the base game
|
if (baseCheck.isSelected()) { // I have the base game
|
||||||
arcs.add(Main.ArcTarget.BASE);
|
if (!skipBaseCheck.isSelected() || !new File(Main.inpath + "data.psarc").exists()) {
|
||||||
keys.add(Main.ArcKey.BASE);
|
arcs.add(Main.ArcTarget.BASE);
|
||||||
System.out.println("Begin download of data (Game version 1.0)");
|
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 (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()) {
|
if (!new File(Main.inpath + "data.psarc").exists()) {
|
||||||
arcs.add(Main.ArcTarget.BASE);
|
arcs.add(Main.ArcTarget.BASE);
|
||||||
keys.add(Main.ArcKey.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 (patchCheck2.isSelected()) { // I'm a normal fucking person
|
||||||
if (!new File(Main.inpath + "data.psarc").exists()) {
|
if (!new File(Main.inpath + "data.psarc").exists()) {
|
||||||
arcs.add(Main.ArcTarget.BASE);
|
arcs.add(Main.ArcTarget.BASE);
|
||||||
keys.add(Main.ArcKey.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()) {
|
if (!new File(Main.inpath + "data1.psarc").exists()) {
|
||||||
arcs.add(Main.ArcTarget.FIRST);
|
arcs.add(Main.ArcTarget.FIRST);
|
||||||
keys.add(Main.ArcKey.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.
|
// 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()) {
|
if (hdCheck.isSelected()) {
|
||||||
arcs.add(Main.ArcTarget.ADDON_HD);
|
arcs.add(Main.ArcTarget.ADDON_HD);
|
||||||
keys.add(Main.ArcKey.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()) {
|
if (furyCheck.isSelected()) {
|
||||||
arcs.add(Main.ArcTarget.ADDON_HD_FURY);
|
arcs.add(Main.ArcTarget.ADDON_HD_FURY);
|
||||||
keys.add(Main.ArcKey.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()) {
|
if (arcs.isEmpty()) {
|
||||||
|
frame.setVisible(false);
|
||||||
JOptionPane.showMessageDialog(invoker, "Select one or more asset packs.", "Error", JOptionPane.ERROR_MESSAGE);
|
JOptionPane.showMessageDialog(invoker, "Select one or more asset packs.", "Error", JOptionPane.ERROR_MESSAGE);
|
||||||
|
frame.setVisible(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -320,4 +350,20 @@ public class Bert implements ActionListener {
|
|||||||
downloaderPopupThread.start();
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,14 +36,14 @@ import javax.swing.*;
|
|||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
// Build Information
|
// 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 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;
|
public static final int vint = 1;
|
||||||
|
|
||||||
// Jenkins Build Information
|
// Jenkins Build Information
|
||||||
public static boolean isNightly = false;
|
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;
|
public static String dateOfCompile = null;
|
||||||
|
|
||||||
// User Settings
|
// User Settings
|
||||||
@@ -108,7 +108,7 @@ public class Main {
|
|||||||
public static Font fExo2;
|
public static Font fExo2;
|
||||||
public static BufferedImage windowIcon;
|
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
|
// get Nightly information from Jenkins automatic builds
|
||||||
if (Main.class.getResource("/jenkinsVersionString") != null) {
|
if (Main.class.getResource("/jenkinsVersionString") != null) {
|
||||||
System.out.println("=== This is a NIGHTLY BUILD! ===\n");
|
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" +
|
"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");
|
"along with this program. If not, see https://www.gnu.org/licenses/.\n\n\n\n");
|
||||||
|
|
||||||
|
// display splash screen
|
||||||
|
new Beaker();
|
||||||
|
|
||||||
// load global assets
|
// load global assets
|
||||||
try {
|
try {
|
||||||
fExo2 = Font.createFont(Font.TRUETYPE_FONT, Main.class.getResourceAsStream("/exo2.ttf"));
|
fExo2 = Font.createFont(Font.TRUETYPE_FONT, Main.class.getResourceAsStream("/exo2.ttf"));
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 823 B After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 851 B After Width: | Height: | Size: 5.0 KiB |
BIN
firestar/src/main/resources/splash0.png
Normal file
|
After Width: | Height: | Size: 362 KiB |
BIN
firestar/src/main/resources/splash1.png
Normal file
|
After Width: | Height: | Size: 326 KiB |
BIN
firestar/src/main/resources/splash10.png
Normal file
|
After Width: | Height: | Size: 319 KiB |
BIN
firestar/src/main/resources/splash2.png
Normal file
|
After Width: | Height: | Size: 362 KiB |
BIN
firestar/src/main/resources/splash3.png
Normal file
|
After Width: | Height: | Size: 299 KiB |
BIN
firestar/src/main/resources/splash4.png
Normal file
|
After Width: | Height: | Size: 374 KiB |
BIN
firestar/src/main/resources/splash5.png
Normal file
|
After Width: | Height: | Size: 294 KiB |
BIN
firestar/src/main/resources/splash6.png
Normal file
|
After Width: | Height: | Size: 293 KiB |
BIN
firestar/src/main/resources/splash7.png
Normal file
|
After Width: | Height: | Size: 238 KiB |
BIN
firestar/src/main/resources/splash8.png
Normal file
|
After Width: | Height: | Size: 429 KiB |
BIN
firestar/src/main/resources/splash9.png
Normal file
|
After Width: | Height: | Size: 318 KiB |