Fix incorrect entity positions after jumping
This commit is contained in:
@@ -13,6 +13,7 @@ import eu.crushedpixel.replaymod.registry.ReplayGuiRegistry;
|
|||||||
import eu.crushedpixel.replaymod.replay.ReplayHandler;
|
import eu.crushedpixel.replaymod.replay.ReplayHandler;
|
||||||
import eu.crushedpixel.replaymod.utils.MouseUtils;
|
import eu.crushedpixel.replaymod.utils.MouseUtils;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.entity.EntityOtherPlayerMP;
|
||||||
import net.minecraft.client.gui.Gui;
|
import net.minecraft.client.gui.Gui;
|
||||||
import net.minecraft.client.gui.GuiChat;
|
import net.minecraft.client.gui.GuiChat;
|
||||||
import net.minecraft.client.gui.GuiScreen;
|
import net.minecraft.client.gui.GuiScreen;
|
||||||
@@ -30,6 +31,7 @@ import org.lwjgl.opengl.Display;
|
|||||||
import org.lwjgl.util.Point;
|
import org.lwjgl.util.Point;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import static net.minecraft.client.renderer.GlStateManager.*;
|
import static net.minecraft.client.renderer.GlStateManager.*;
|
||||||
import static org.lwjgl.opengl.GL11.GL_COLOR_BUFFER_BIT;
|
import static org.lwjgl.opengl.GL11.GL_COLOR_BUFFER_BIT;
|
||||||
@@ -352,10 +354,24 @@ public class GuiReplayOverlay extends Gui {
|
|||||||
ReplayMod.replaySender.setAsyncMode(true);
|
ReplayMod.replaySender.setAsyncMode(true);
|
||||||
ReplayMod.replaySender.setReplaySpeed(0);
|
ReplayMod.replaySender.setReplaySpeed(0);
|
||||||
|
|
||||||
// Tick twice to process all packets and position interpolation
|
mc.getNetHandler().getNetworkManager().processReceivedPackets();
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
List<Entity> entities = (List<Entity>) mc.theWorld.loadedEntityList;
|
||||||
|
for (Entity entity : entities) {
|
||||||
|
if (entity instanceof EntityOtherPlayerMP) {
|
||||||
|
EntityOtherPlayerMP e = (EntityOtherPlayerMP) entity;
|
||||||
|
e.setPosition(e.otherPlayerMPX, e.otherPlayerMPY, e.otherPlayerMPZ);
|
||||||
|
e.rotationYaw = (float) e.otherPlayerMPYaw;
|
||||||
|
e.rotationPitch = (float) e.otherPlayerMPPitch;
|
||||||
|
}
|
||||||
|
entity.lastTickPosX = entity.prevPosX = entity.posX;
|
||||||
|
entity.lastTickPosY = entity.prevPosY = entity.posY;
|
||||||
|
entity.lastTickPosZ = entity.prevPosZ = entity.posZ;
|
||||||
|
entity.prevRotationYaw = entity.rotationYaw;
|
||||||
|
entity.prevRotationPitch = entity.rotationPitch;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
mc.runTick();
|
mc.runTick();
|
||||||
mc.runTick();
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace(); // This should never be thrown but whatever
|
e.printStackTrace(); // This should never be thrown but whatever
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,5 +84,8 @@ public net.minecraft.client.renderer.entity.RenderManager field_178636_l # skinM
|
|||||||
public net.minecraft.client.renderer.ItemRenderer *
|
public net.minecraft.client.renderer.ItemRenderer *
|
||||||
public net.minecraft.client.renderer.ItemRenderer *()
|
public net.minecraft.client.renderer.ItemRenderer *()
|
||||||
|
|
||||||
|
# EntityOtherPlayerMP
|
||||||
|
public net.minecraft.client.entity.EntityOtherPlayerMP *
|
||||||
|
|
||||||
# Example
|
# Example
|
||||||
# public net.minecraft.package.ClassName func_some_id(Ljava/lang/Class;IZS)V # methodName
|
# public net.minecraft.package.ClassName func_some_id(Ljava/lang/Class;IZS)V # methodName
|
||||||
|
|||||||
Reference in New Issue
Block a user