Created ReplayAsset interface and AssetRepository class which can contain such ReplayAssets. ReplayAssets allow users to add custom Files (so far only images, might be extended by .obj files) to the Replay which will later be used for CustomImageObjects.

Created GuiReplayManager to allow users to manage their assets.
Created BoundingUtils class to provide a simple method to fit an image into given bounds. This implementation fixes https://trello.com/c/WTnicWkJ/
This commit is contained in:
CrushedPixel
2015-07-07 18:45:48 +02:00
parent 0b1d3d9001
commit e22b37babe
14 changed files with 468 additions and 62 deletions

View File

@@ -2,7 +2,7 @@ package eu.crushedpixel.replaymod.gui.elements;
import eu.crushedpixel.replaymod.gui.elements.listeners.FileChooseListener;
import lombok.Getter;
import net.minecraft.client.Minecraft;
import lombok.Setter;
import java.awt.*;
import java.io.File;
@@ -20,8 +20,9 @@ public class GuiFileChooser extends GuiAdvancedButton {
updateDisplayString();
}
private String baseString;
protected String baseString;
@Setter
private String[] allowedExtensions = null;
private List<FileChooseListener> listeners = new ArrayList<FileChooseListener>();
@@ -45,49 +46,44 @@ public class GuiFileChooser extends GuiAdvancedButton {
}
@Override
public boolean mousePressed(Minecraft mc, int mouseX, int mouseY) {
boolean success = super.mousePressed(mc, mouseX, mouseY);
if (success) {
new Thread(new Runnable() {
@Override
public void run() {
Frame frame = new Frame();
FileDialog fileDialog = new FileDialog(frame);
public void performAction() {
new Thread(new Runnable() {
@Override
public void run() {
Frame frame = new Frame();
FileDialog fileDialog = new FileDialog(frame);
fileDialog.setFilenameFilter(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if(allowedExtensions == null) return true;
for(String extension : allowedExtensions) {
String[] split = name.split("\\.");
String ext = split[split.length-1];
if(extension.equalsIgnoreCase(ext)) return true;
}
return false;
fileDialog.setFilenameFilter(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if(allowedExtensions == null) return true;
for(String extension : allowedExtensions) {
String[] split = name.split("\\.");
String ext = split[split.length-1];
if(extension.equalsIgnoreCase(ext)) return true;
}
});
//frame.setVisible(true);
fileDialog.setVisible(true);
String filename = fileDialog.getFile();
String directory = fileDialog.getDirectory();
if(filename != null) {
selectedFile = new File(directory, filename);
updateDisplayString();
for(FileChooseListener listener : listeners) {
listener.onFileChosen(selectedFile);
}
return false;
}
});
frame.dispose();
//frame.setVisible(true);
fileDialog.setVisible(true);
String filename = fileDialog.getFile();
String directory = fileDialog.getDirectory();
if(filename != null) {
selectedFile = new File(directory, filename);
updateDisplayString();
for(FileChooseListener listener : listeners) {
listener.onFileChosen(selectedFile);
}
}
}, "replaymod-file-chooser").start();
}
return success;
}
frame.dispose();
}
}, "replaymod-file-chooser").start();
}
}