Get replay module compiling on 1.13

This commit is contained in:
Jonas Herzig
2018-12-19 10:11:08 +01:00
parent 9655677972
commit 1470123ec9
29 changed files with 476 additions and 206 deletions

View File

@@ -3,6 +3,7 @@ package com.replaymod.replay.camera;
import com.replaymod.core.ReplayMod;
import com.replaymod.core.events.SettingsChangedEvent;
import com.replaymod.core.utils.Utils;
import com.replaymod.core.versions.MCVer;
import com.replaymod.replay.ReplayModReplay;
import com.replaymod.replay.Setting;
import com.replaymod.replay.events.ReplayChatMessageEvent;
@@ -26,10 +27,18 @@ import net.minecraftforge.client.event.RenderGameOverlayEvent;
import net.minecraftforge.client.event.RenderHandEvent;
import net.minecraftforge.common.MinecraftForge;
//#if MC>=11300
import net.minecraft.util.math.RayTraceFluidMode;
//#endif
//#if MC>=10904
import net.minecraft.inventory.EntityEquipmentSlot;
//#if MC>=11200
import net.minecraft.stats.RecipeBook;
//#if MC>=11300
import net.minecraft.client.util.RecipeBookClient;
//#else
//$$ import net.minecraft.stats.RecipeBook;
//#endif
//#endif
import net.minecraft.stats.StatisticsManager;
import net.minecraft.util.EnumHand;
@@ -45,9 +54,14 @@ import net.minecraft.util.text.ITextComponent;
//#if MC>=10800
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraftforge.fml.common.eventhandler.EventPriority;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;
//#if MC>=11300
import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.eventbus.api.SubscribeEvent;
//#else
//$$ import net.minecraftforge.fml.common.eventhandler.EventPriority;
//$$ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
//#endif
//#else
//$$ import cpw.mods.fml.common.eventhandler.EventPriority;
//$$ import cpw.mods.fml.common.eventhandler.SubscribeEvent;
@@ -97,9 +111,13 @@ public class CameraEntity
*/
private final EventHandler eventHandler = new EventHandler();
//#if MC>=11300
public CameraEntity(Minecraft mcIn, World worldIn, NetHandlerPlayClient netHandlerPlayClient, StatisticsManager statisticsManager, RecipeBookClient recipeBookClient) {
super(mcIn, worldIn, netHandlerPlayClient, statisticsManager, recipeBookClient);
//#else
//#if MC>=11200
public CameraEntity(Minecraft mcIn, World worldIn, NetHandlerPlayClient netHandlerPlayClient, StatisticsManager statisticsManager, RecipeBook recipeBook) {
super(mcIn, worldIn, netHandlerPlayClient, statisticsManager, recipeBook);
//$$ public CameraEntity(Minecraft mcIn, World worldIn, NetHandlerPlayClient netHandlerPlayClient, StatisticsManager statisticsManager, RecipeBook recipeBook) {
//$$ super(mcIn, worldIn, netHandlerPlayClient, statisticsManager, recipeBook);
//#else
//#if MC>=10904
//$$ public CameraEntity(Minecraft mcIn, World worldIn, NetHandlerPlayClient netHandlerPlayClient, StatisticsManager statisticsManager) {
@@ -113,6 +131,7 @@ public class CameraEntity
//$$ super(mcIn, worldIn, session, netHandlerPlayClient, statFileWriter);
//#endif
//#endif
//#endif
//#endif
FORGE_BUS.register(eventHandler);
FML_BUS.register(eventHandler);
@@ -196,7 +215,11 @@ public class CameraEntity
private void updateBoundingBox() {
//#if MC>=10800
setEntityBoundingBox(new AxisAlignedBB(
//#if MC>=11300
setBoundingBox(new AxisAlignedBB(
//#else
//$$ setEntityBoundingBox(new AxisAlignedBB(
//#endif
//#else
//$$ this.boundingBox.setBB(AxisAlignedBB.getBoundingBox(
//#endif
@@ -205,7 +228,11 @@ public class CameraEntity
}
@Override
public void onUpdate() {
//#if MC>=11300
public void tick() {
//#else
//$$ public void onUpdate() {
//#endif
//#if MC>=10800
Entity view = getRenderViewEntity(mc);
//#else
@@ -262,10 +289,12 @@ public class CameraEntity
return falseUnlessSpectating(Entity::isEntityInsideOpaqueBlock); // Make sure no suffocation overlay is rendered
}
/* FIXME
@Override
public boolean isInsideOfMaterial(Material materialIn) {
return falseUnlessSpectating(e -> e.isInsideOfMaterial(materialIn)); // Make sure no overlays are rendered
}
*/
//#if MC>=10800
@Override
@@ -405,19 +434,33 @@ public class CameraEntity
return super.isHandActive();
}
//#if MC>=11300
@Override
public RayTraceResult rayTrace(double p_174822_1_, float p_174822_3_) {
RayTraceResult pos = super.rayTrace(p_174822_1_, 1f);
public RayTraceResult rayTrace(double blockReachDistance, float partialTicks, RayTraceFluidMode p_174822_4_) {
RayTraceResult pos = super.rayTrace(blockReachDistance, partialTicks, p_174822_4_);
// Make sure we can never look at blocks (-> no outline)
if(pos != null && pos.typeOfHit == RayTraceResult.Type.BLOCK) {
pos.typeOfHit = RayTraceResult.Type.MISS;
if(pos != null && pos.type == RayTraceResult.Type.BLOCK) {
pos.type = RayTraceResult.Type.MISS;
}
return pos;
}
//#else
//$$ @Override
//$$ public RayTraceResult rayTrace(double p_174822_1_, float p_174822_3_) {
//$$ RayTraceResult pos = super.rayTrace(p_174822_1_, 1f);
//$$
//$$ // Make sure we can never look at blocks (-> no outline)
//$$ if(pos != null && pos.typeOfHit == RayTraceResult.Type.BLOCK) {
//$$ pos.typeOfHit = RayTraceResult.Type.MISS;
//$$ }
//$$
//$$ return pos;
//$$ }
//#endif
//#else
//$$ @Override
//$$ public MovingObjectPosition rayTrace(double p_174822_1_, float p_174822_3_) {
//$$ MovingObjectPosition pos = super.rayTrace(p_174822_1_, 1f);
//$$
@@ -430,15 +473,22 @@ public class CameraEntity
//$$ }
//#endif
/* FIXME
@Override
public void openGui(Object mod, int modGuiId, World world, int x, int y, int z) {
// Do not open any block GUIs for the camera entities
// Note: Vanilla GUIs are filtered out on a packet level, this only applies to mod GUIs
}
*/
@Override
public void setDead() {
super.setDead();
//#if MC>=11300
public void remove() {
super.remove();
//#else
//$$ public void setDead() {
//$$ super.setDead();
//#endif
FORGE_BUS.unregister(eventHandler);
FML_BUS.unregister(eventHandler);
}
@@ -530,11 +580,11 @@ public class CameraEntity
@SubscribeEvent
public void preCrosshairRender(RenderGameOverlayEvent.Pre event) {
// The crosshair should only render if targeted entity can actually be spectated
if (getType(event) == RenderGameOverlayEvent.ElementType.CROSSHAIRS) {
if (MCVer.getType(event) == RenderGameOverlayEvent.ElementType.CROSSHAIRS) {
event.setCanceled(!canSpectate(mc.pointedEntity));
}
// Hotbar should never be rendered
if (getType(event) == RenderGameOverlayEvent.ElementType.HOTBAR) {
if (MCVer.getType(event) == RenderGameOverlayEvent.ElementType.HOTBAR) {
event.setCanceled(true);
}
}
@@ -568,12 +618,14 @@ public class CameraEntity
lastHandRendered = player;
//#if MC>=10904
/* FIXME needs AT
mc.entityRenderer.itemRenderer.prevEquippedProgressMainHand = 1;
mc.entityRenderer.itemRenderer.prevEquippedProgressOffHand = 1;
mc.entityRenderer.itemRenderer.equippedProgressMainHand = 1;
mc.entityRenderer.itemRenderer.equippedProgressOffHand = 1;
mc.entityRenderer.itemRenderer.itemStackMainHand = player.getItemStackFromSlot(EntityEquipmentSlot.MAINHAND);
mc.entityRenderer.itemRenderer.itemStackOffHand = player.getItemStackFromSlot(EntityEquipmentSlot.OFFHAND);
*/
//#else
//$$ mc.entityRenderer.itemRenderer.prevEquippedProgress = 1;
//$$ mc.entityRenderer.itemRenderer.equippedProgress = 1;
@@ -605,7 +657,7 @@ public class CameraEntity
@SubscribeEvent
public void preRenderGameOverlay(RenderGameOverlayEvent.Pre event) {
switch (getType(event)) {
switch (MCVer.getType(event)) {
case ALL:
heldItemTooltipsWasTrue = mc.gameSettings.heldItemTooltips;
mc.gameSettings.heldItemTooltips = false;
@@ -641,7 +693,7 @@ public class CameraEntity
@SubscribeEvent
public void postRenderGameOverlay(RenderGameOverlayEvent.Post event) {
if (getType(event) != RenderGameOverlayEvent.ElementType.ALL) return;
if (MCVer.getType(event) != RenderGameOverlayEvent.ElementType.ALL) return;
mc.gameSettings.heldItemTooltips = heldItemTooltipsWasTrue;
}
}

View File

@@ -1,9 +1,8 @@
package com.replaymod.replay.camera;
import net.minecraft.client.Minecraft;
import net.minecraft.client.settings.KeyBinding;
import org.lwjgl.Sys;
import org.lwjgl.util.vector.Vector3f;
import javax.vecmath.Vector3f;
import static com.replaymod.core.versions.MCVer.*;
@@ -22,7 +21,7 @@ public class ClassicCameraController implements CameraController {
private Vector3f direction;
private Vector3f dirBefore;
private double motion;
private long lastCall = Sys.getTime();
private long lastCall = System.currentTimeMillis();
private boolean speedup = false;
@@ -34,7 +33,7 @@ public class ClassicCameraController implements CameraController {
public void update(float partialTicksPassed) {
boolean forward = false, backward = false, left = false, right = false, up = false, down = false;
speedup = false;
for(KeyBinding kb : Minecraft.getMinecraft().gameSettings.keyBindings) {
for(KeyBinding kb : getMinecraft().gameSettings.keyBindings) {
if(!isKeyDown(kb)) continue;
if(kb.getKeyDescription().equals("key.forward")) {
forward = true;
@@ -109,7 +108,7 @@ public class ClassicCameraController implements CameraController {
}
private void updateMovement() {
long frac = Sys.getTime() - lastCall;
long frac = System.currentTimeMillis() - lastCall;
if(frac == 0) return;
@@ -124,13 +123,14 @@ public class ClassicCameraController implements CameraController {
motion = Math.min(motion, MAX_SPEED);
lastCall = Sys.getTime();
lastCall = System.currentTimeMillis();
if(direction == null || direction.lengthSquared() == 0 || motion < THRESHOLD) {
return;
}
Vector3f movement = direction.normalise(null);
Vector3f movement = new Vector3f(direction);
movement.normalize();
double factor = motion * (frac / 1000D);
camera.moveCamera(movement.x * factor, movement.y * factor, movement.z * factor);
@@ -162,7 +162,9 @@ public class ClassicCameraController implements CameraController {
Vector3f dbf = direction;
if(dirBefore != null) {
direction = Vector3f.add(direction, dirBefore.normalise(null), null);
dirBefore.normalize();
dirBefore.add(direction);
direction = dirBefore;
}
dirBefore = dbf;

View File

@@ -6,7 +6,12 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.settings.KeyBinding;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import org.lwjgl.input.Mouse;
//#if MC>=11300
// FIXME
//#else
//$$ import org.lwjgl.input.Mouse;
//#endif
import java.util.Arrays;
@@ -18,7 +23,7 @@ public class SpectatorCameraController implements CameraController {
@Override
public void update(float partialTicksPassed) {
Minecraft mc = Minecraft.getMinecraft();
Minecraft mc = getMinecraft();
if (mc.gameSettings.keyBindSneak.isPressed()) {
ReplayModReplay.instance.getReplayHandler().spectateCamera();
}
@@ -31,7 +36,11 @@ public class SpectatorCameraController implements CameraController {
}
// Prevent mouse movement
Mouse.updateCursor();
//#if MC>=11300
// FIXME
//#else
//$$ Mouse.updateCursor();
//#endif
// Always make sure the camera is in the exact same spot as the spectated entity
// This is necessary as some rendering code for the hand doesn't respect the view entity

View File

@@ -1,9 +1,15 @@
package com.replaymod.replay.camera;
import net.minecraft.client.Minecraft;
import net.minecraft.client.settings.GameSettings;
import net.minecraft.client.settings.KeyBinding;
import org.lwjgl.util.vector.Vector3f;
//#if MC>=11300
import net.minecraft.client.GameSettings;
//#else
//$$ import net.minecraft.client.settings.GameSettings;
//#endif
import javax.vecmath.Vector3f;
import static com.replaymod.core.versions.MCVer.*;
@@ -42,11 +48,11 @@ public class VanillaCameraController implements CameraController {
Vector3f direction = new Vector3f(0, 0, 0);
for (int i = 0; i < 6; i++) { // First, get movement direction depending on keys pressed
if (isKeyDown(bindings[i])) {
Vector3f.add(direction, DIRECTIONS[i], direction);
direction.add(DIRECTIONS[i]);
}
}
if (direction.length() == 0) return;
direction.normalise(direction); // Normalize, so we don't move quicker if we hold down multiple keys
direction.normalize(); // Normalize, so we don't move quicker if we hold down multiple keys
double yawRadians = Math.toRadians(camera.rotationYaw);
float yawSin = (float) Math.sin(yawRadians), yawCos = (float) Math.cos(yawRadians);
// Rotate by yaw