Compare commits

...

2 Commits

4 changed files with 24 additions and 6 deletions

View File

@ -47,6 +47,7 @@ public class Clifford implements ActionListener {
Main.Mod mod;
int index;
File directory;
boolean isSoundtrack = false;
boolean creating;
@ -195,6 +196,7 @@ public class Clifford implements ActionListener {
fileChooser.setFileFilter(new FileNameExtensionFilter("Firestar Mod Package", "fstar"));
if (fileChooser.showSaveDialog(frame) == JFileChooser.APPROVE_OPTION) {
ZipFile zip = new ZipFile(fileChooser.getSelectedFile());
boolean hasScript = false;
try {
zip.addFolder(new File(directory.getAbsolutePath() + "/data"));
if (new File(directory.getAbsolutePath() + "/delete.txt").exists()) {
@ -203,8 +205,9 @@ public class Clifford implements ActionListener {
if (new File(directory.getAbsolutePath() + "/pack.png").exists()) {
zip.addFile(new File(directory.getAbsolutePath() + "/pack.png"));
}
if (new File(directory.getAbsolutePath() + "/fscript").exists()) {
if (new File(directory.getAbsolutePath() + "/fscript").exists()) {
zip.addFile(new File(directory.getAbsolutePath() + "/fscript"));
hasScript = true;
}
JSONObject container = new JSONObject();
@ -212,7 +215,16 @@ public class Clifford implements ActionListener {
container.put("friendlyName", fName.getText());
container.put("author", fAuthor.getText());
container.put("description", fDescription.getText());
container.put("loaderversion", 0); // TODO for later versions: Change depending on features inside of mod folder
// todo later versions: handle logic for setting this depending on the fscript version too.
// firestar 1.3 can't generate any version other than v1 so this is not necessary right now, but will become necessary when fscript features are added.
if (hasScript) {
container.put("loaderversion", 1);
if (isSoundtrack) {
container.put("requires", new boolean[]{false, true, false, false}); // Pull localization files for patching.
}
} else {
container.put("loaderversion", 0);
}
container.put("game", "2048");
zip.setComment(container.toString());

View File

@ -52,6 +52,10 @@ public class Gonzo {
private MissPiggy invoker;
public String oArcTarget = "dlc2.psarc"; // which psarc to rebuild the assets in
// TODO 1.3: Implement requires boolean[] from Main.Mod
// Rework system to choose the last PSARC and then add more before it when called by requires[]
// Instead of the current system where it simply grabs them all and bloats the file.
public void DeployMods(MissPiggy inv) {
invoker = inv;
System.out.println("\n\nStarting mod deployment\n\n");

View File

@ -60,7 +60,7 @@ public class Main {
}
}
public enum ArcKey { // install target for 2048, type used by downloader
public enum ArcKey { // decryption keys for 2048, type used by downloader
BASE("KO5ifR1dQ+eHBlgi6TI0Bdkf7hng6h8aYmRgYuHkCLQNn/9ufV+01fmzjNSmwuVHnO4dEBuN8cENACqVFcgA"),
LATEST("KO5ifR1dQ+eHBlgi6TI0Bdkf7hng6h8aYmRgYuHkCLQNn/9ufV+01fmzjNSmwuVHnO4dEBuN8cENACqVFcgA"),
ADDON_HD("KO5ifR1dQ+eHBlgi6TI0Bdnv4uNsGG5kYGIR4Ojs7ejuis9/anXfuudVNvzgdu+9z1z+asJojA9uAACgRhTl"),
@ -86,7 +86,7 @@ public class Main {
public String author; // if null, "Author is unknown."
public boolean enabled = true;
public boolean[] requires = new boolean[]{false, false, false, false}; // TODO: load optional "requires" array from mod meta if it exists. it will be base, patches, hd dlc, and fury dlc in that order.
// TODO: save 'true true false false' in ost gen if neccessary (patches change localization)
// TODO: save 'false true false false' in ost gen if necessary (patches change localization)
}
// Mods

View File

@ -302,7 +302,7 @@ public class Suggs implements ActionListener, ListSelectionListener {
try {
// Assume whoever made the AT9s knows what they're doing
System.out.println("Copying track #" + (i+1) + " \"" + at.artist + " - " + at.title + "\"...");
Files.copy(at.path.toPath(), Paths.get(Main.inpath + "tmp/data/audio/music/" + trackno + "/music_stereo.at9"), StandardCopyOption.REPLACE_EXISTING);
Files.copy(at.path.toPath(), Paths.get(Main.inpath + "temp/data/audio/music/" + trackno + "/music_stereo.at9"), StandardCopyOption.REPLACE_EXISTING);
} catch (IOException ex) {
Logger.getLogger(Suggs.class.getName()).log(Level.SEVERE, null, ex);
}
@ -414,7 +414,9 @@ public class Suggs implements ActionListener, ListSelectionListener {
progressDialog.destroyDialog();
frame.dispose();
new Clifford().Action(frame, new File(Main.inpath + "temp/"));
Clifford saveDialog = new Clifford();
saveDialog.isSoundtrack = true;
saveDialog.Action(frame, new File(Main.inpath + "temp/"));
parent.setEnabled(true);
}).start();
}