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:
Marius Metzger
2015-03-10 00:34:26 +01:00
parent b4ce266375
commit 9b69681ef0
21 changed files with 383 additions and 128 deletions

View File

@@ -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();
}
}

View File

@@ -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();
}
}

View File

@@ -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;
}
}
}