Pushed missing files
Started adding Replay Editor using johni0702's excellent ReplayStudio Library Added fully functional GuiDropdown GUI Element (useable in other projects as well)
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
package eu.crushedpixel.replaymod.studio;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import de.johni0702.replaystudio.studio.ReplayStudio;
|
||||
import eu.crushedpixel.replaymod.gui.GuiConstants;
|
||||
import eu.crushedpixel.replaymod.gui.GuiDropdown;
|
||||
|
||||
public class GuiReplayStudio extends GuiScreen {
|
||||
|
||||
private GuiDropdown replayDropdown;
|
||||
|
||||
private ReplayStudio studio = new ReplayStudio();
|
||||
|
||||
@Override
|
||||
public void initGui() {
|
||||
List<GuiButton> tabButtons = new ArrayList<GuiButton>();
|
||||
|
||||
tabButtons.add(new GuiButton(GuiConstants.REPLAY_EDITOR_TRIM_TAB, 0, 0, "Trim Replay"));
|
||||
tabButtons.add(new GuiButton(GuiConstants.REPLAY_EDITOR_CONNECT_TAB, 0, 0, "Connect Replays"));
|
||||
tabButtons.add(new GuiButton(GuiConstants.REPLAY_EDITOR_MODIFY_TAB, 0, 0, "Modify Replay"));
|
||||
|
||||
int w = this.width - 30;
|
||||
int w2 = w/tabButtons.size();
|
||||
int i = 0;
|
||||
for(GuiButton b : tabButtons) {
|
||||
int x = 15+(w2*i);
|
||||
b.xPosition = x+2;
|
||||
b.yPosition = 30;
|
||||
b.width = w2-4;
|
||||
|
||||
buttonList.add(b);
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
replayDropdown = new GuiDropdown(1, fontRendererObj, 15+2+1, 60, 100);
|
||||
replayDropdown.addElement("test1");
|
||||
replayDropdown.addElement("test2");
|
||||
replayDropdown.addElement("test3");
|
||||
replayDropdown.addElement("test4");
|
||||
replayDropdown.addElement("test5");
|
||||
replayDropdown.addElement("test6");
|
||||
replayDropdown.addElement("test7");
|
||||
replayDropdown.addElement("test8");
|
||||
replayDropdown.addElement("test9");
|
||||
};
|
||||
|
||||
@Override
|
||||
protected void mouseClicked(int mouseX, int mouseY, int mouseButton)
|
||||
throws IOException {
|
||||
replayDropdown.mouseClicked(mouseX, mouseY, mouseButton);
|
||||
super.mouseClicked(mouseX, mouseY, mouseButton);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
|
||||
this.drawDefaultBackground();
|
||||
this.drawCenteredString(this.fontRendererObj, "Replay Studio", this.width / 2, 10, 16777215);
|
||||
super.drawScreen(mouseX, mouseY, partialTicks);
|
||||
replayDropdown.drawTextBox();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package eu.crushedpixel.replaymod.studio;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
import de.johni0702.replaystudio.Studio;
|
||||
import de.johni0702.replaystudio.collection.PacketData;
|
||||
import de.johni0702.replaystudio.filter.RemoveFilter;
|
||||
import de.johni0702.replaystudio.filter.SquashFilter;
|
||||
import de.johni0702.replaystudio.io.ReplayOutputStream;
|
||||
import de.johni0702.replaystudio.stream.PacketStream;
|
||||
import de.johni0702.replaystudio.studio.ReplayStudio;
|
||||
|
||||
public class StudioImplementation {
|
||||
|
||||
public static void trimReplay(InputStream replayFileStream, boolean isTmcpr, int beginning, int ending, File outputFile) throws IOException {
|
||||
ReplayStudio studio = new ReplayStudio();
|
||||
PacketStream stream = studio.createReplayStream(replayFileStream, isTmcpr);
|
||||
stream.addFilter(new SquashFilter(), -1, beginning);
|
||||
stream.addFilter(new RemoveFilter(), ending, -1);
|
||||
|
||||
outputFile.createNewFile();
|
||||
|
||||
FileOutputStream fos = new FileOutputStream(outputFile);
|
||||
ReplayOutputStream out = new ReplayOutputStream(studio, fos);
|
||||
PacketData packetData;
|
||||
|
||||
while((packetData = stream.next()) != null) {
|
||||
out.write(packetData);
|
||||
}
|
||||
for(PacketData data : stream.end()) {
|
||||
out.write(data);
|
||||
}
|
||||
out.close();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package eu.crushedpixel.replaymod.studio;
|
||||
|
||||
public class VersionValidator {
|
||||
|
||||
public static final boolean isValid;
|
||||
|
||||
static {
|
||||
String version = Runtime.class.getPackage().getSpecificationVersion();
|
||||
if(version != null) {
|
||||
String[] split = version.split("\\.");
|
||||
if(split.length > 1) {
|
||||
isValid = Integer.valueOf(split[1]) >= 7;
|
||||
} else {
|
||||
isValid = false;
|
||||
}
|
||||
} else {
|
||||
isValid = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user