Updated build.gradle to automatically build fat jars with the dependencies in the /libs folder. This utilizes the shade.sh shell script. Use ./gradlew without explicitely invoking the build task, as this will automatically build a fat jar.

Sorry for this painful commit, but git somehow f'd up and sees changes in files where there aren't any.
This commit is contained in:
Marius Metzger
2015-03-21 17:05:53 +01:00
parent 14f53f7429
commit 11e26e0129
119 changed files with 167 additions and 69 deletions

View File

View File

View File

View File

View File

@@ -48,6 +48,8 @@ public class ReplayProcess {
}
public static void startReplayProcess(boolean record) {
ReplayHandler.selectKeyframe(null);
isVideoRecording = record;
lastPosition = null;
motionSpline = null;
@@ -295,15 +297,13 @@ public class ReplayProcess {
private static void recordingTick() {
if(ReplayHandler.isHurrying()) {
if(!isVideoRecording()) {
lastRealTime = System.currentTimeMillis();
}
return;
}
if(blocked && isVideoRecording()) {
return;
}
deepBlock = true;
blocked = true;
@@ -345,15 +345,8 @@ public class ReplayProcess {
motionSpline.calcSpline();
}
long timeStep;
long curTime = System.currentTimeMillis();
if(isVideoRecording()) {
timeStep = 1000/ReplayMod.replaySettings.getVideoFramerate();
} else {
timeStep = curTime - lastRealTime;
}
long timeStep = 1000/ReplayMod.replaySettings.getVideoFramerate();
int curRealReplayTime = (int)(lastRealReplayTime + timeStep);
@@ -409,14 +402,20 @@ public class ReplayProcess {
}
}
int currentDiff = nextPosStamp - lastPosStamp;
int current = curRealReplayTime - lastPosStamp;
int currentPosDiff = nextPosStamp - lastPosStamp;
int currentPos = curRealReplayTime - lastPosStamp;
float currentStepPerc = (float)current/(float)currentDiff; //The percentage of the travelled path between the current positions
if(Float.isInfinite(currentStepPerc)) currentStepPerc = 0;
float currentPosStepPerc = (float)currentPos/(float)currentPosDiff; //The percentage of the travelled path between the current positions
if(Float.isInfinite(currentPosStepPerc)) currentPosStepPerc = 0;
float splinePos = ((float)ReplayHandler.getKeyframeIndex(lastPos) + currentStepPerc)/(float)(ReplayHandler.getPosKeyframeCount()-1);
float timePos = ((float)ReplayHandler.getKeyframeIndex(lastTime) + currentStepPerc)/(float)(ReplayHandler.getTimeKeyframeCount()-1);
int currentTimeDiff = nextTimeStamp - lastTimeStamp;
int currentTime = curRealReplayTime - lastTimeStamp;
float currentTimeStepPerc = (float)currentTime/(float)currentTimeDiff; //The percentage of the travelled path between the current timestamps
if(Float.isInfinite(currentTimeStepPerc)) currentTimeStepPerc = 0;
float splinePos = ((float)ReplayHandler.getKeyframeIndex(lastPos) + currentPosStepPerc)/(float)(ReplayHandler.getPosKeyframeCount()-1);
float timePos = ((float)ReplayHandler.getKeyframeIndex(lastTime) + currentTimeStepPerc)/(float)(ReplayHandler.getTimeKeyframeCount()-1);
Position pos = null;
if(!linear) {

View File

@@ -13,11 +13,14 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiDownloadTerrain;
import net.minecraft.client.particle.EffectRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.projectile.EntityArrow;
import net.minecraft.network.EnumConnectionState;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet;
@@ -29,6 +32,8 @@ import net.minecraft.network.play.server.S07PacketRespawn;
import net.minecraft.network.play.server.S08PacketPlayerPosLook;
import net.minecraft.network.play.server.S0BPacketAnimation;
import net.minecraft.network.play.server.S0CPacketSpawnPlayer;
import net.minecraft.network.play.server.S0EPacketSpawnObject;
import net.minecraft.network.play.server.S0FPacketSpawnMob;
import net.minecraft.network.play.server.S1CPacketEntityMetadata;
import net.minecraft.network.play.server.S1DPacketEntityEffect;
import net.minecraft.network.play.server.S1FPacketSetExperience;
@@ -56,6 +61,7 @@ import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipFile;
import org.apache.commons.io.FilenameUtils;
import com.google.common.base.Predicate;
import com.google.gson.Gson;
import eu.crushedpixel.replaymod.ReplayMod;
@@ -250,7 +256,7 @@ public class ReplaySender extends ChannelInboundHandlerAdapter {
lastPacketSent = System.currentTimeMillis();
ReplayHandler.restartReplay();
}
while(!terminate && !startFromBeginning && (!paused() || FMLClientHandler.instance().isGUIOpen(GuiDownloadTerrain.class))) {
try {
/*
@@ -355,7 +361,7 @@ public class ReplaySender extends ChannelInboundHandlerAdapter {
private static Field playerUUIDField;
private static Field gameProfileField;
//private static Field dataWatcherField;
static {
@@ -365,7 +371,7 @@ public class ReplaySender extends ChannelInboundHandlerAdapter {
gameProfileField = S38PacketPlayerListItem.AddPlayerData.class.getDeclaredField("field_179964_d");
gameProfileField.setAccessible(true);
//dataWatcherField = S0CPacketSpawnPlayer.class.getDeclaredField(MCPNames.field("field_148960_i"));
//dataWatcherField.setAccessible(true);
} catch(Exception e) {
@@ -398,7 +404,7 @@ public class ReplaySender extends ChannelInboundHandlerAdapter {
if(p instanceof S45PacketTitle ||
p instanceof S2APacketParticles) return;
}
if(p instanceof S29PacketSoundEffect && ReplayHandler.isInPath() && ReplayProcess.isVideoRecording()) {
return;
}
@@ -416,6 +422,22 @@ public class ReplaySender extends ChannelInboundHandlerAdapter {
if(badPackets.contains(p.getClass())) return;
/*
if(p instanceof S0EPacketSpawnObject) {
if(mc.theWorld != null) {
List<EntityArrow> arrows = mc.theWorld.getEntities(EntityArrow.class, new Predicate<EntityArrow>() {
@Override
public boolean apply(EntityArrow input) {
return true;
}
});
if(arrows.size() > 20) {
System.out.println(currentTimeStamp);
}
}
}
*/
try {
if(p instanceof S1CPacketEntityMetadata) {
if((Integer)metadataPacketEntityId.get(p) == actualID) {
@@ -437,11 +459,12 @@ public class ReplaySender extends ChannelInboundHandlerAdapter {
p = new S01PacketJoinGame(entId, GameType.SPECTATOR, false, dimension,
difficulty, maxPlayers, worldType, false);
}
if(p instanceof S07PacketRespawn) {
S07PacketRespawn respawn = (S07PacketRespawn)p;
p = new S07PacketRespawn(respawn.func_149082_c(),
respawn.func_149081_d(), respawn.func_149080_f(), GameType.SPECTATOR);
allowMovement = true;
}
@@ -474,15 +497,15 @@ public class ReplaySender extends ChannelInboundHandlerAdapter {
p = sp;
}
*/
*/
/*
if(p instanceof S0CPacketSpawnPlayer) {
System.out.println(dataWatcherField.get(p));
System.out.println(((S0CPacketSpawnPlayer) p).func_148944_c());
}
*/
*/
if(p instanceof S08PacketPlayerPosLook) {
final S08PacketPlayerPosLook ppl = (S08PacketPlayerPosLook)p;
@@ -510,7 +533,7 @@ public class ReplaySender extends ChannelInboundHandlerAdapter {
}
Entity ent = ReplayHandler.getCameraEntity();
if(ent == null || !(ent instanceof CameraEntity)) ent = new CameraEntity(mc.theWorld);
CameraEntity cent = (CameraEntity)ent;
cent.moveAbsolute(ppl.func_148932_c(), ppl.func_148928_d(), ppl.func_148933_e());
@@ -525,7 +548,7 @@ public class ReplaySender extends ChannelInboundHandlerAdapter {
if(p instanceof S43PacketCamera) {
return;
}
super.channelRead(ctx, p);
} catch(Exception e) {
System.out.println(p.getClass());

View File