Fix camera event handler staying registered leading to lack of HUD
When unloading the camera without killing it first (e.g. jumping back in time), the event handler wouldn't ever get unregistered.
This commit is contained in:
@@ -116,7 +116,7 @@ public class CameraEntity
|
|||||||
* Therefore we cannot register any event handlers directly in the CameraEntity class and
|
* Therefore we cannot register any event handlers directly in the CameraEntity class and
|
||||||
* instead have this inner class.
|
* instead have this inner class.
|
||||||
*/
|
*/
|
||||||
private final EventHandler eventHandler = new EventHandler();
|
private EventHandler eventHandler = new EventHandler();
|
||||||
|
|
||||||
public CameraEntity(
|
public CameraEntity(
|
||||||
MinecraftClient mcIn,
|
MinecraftClient mcIn,
|
||||||
@@ -525,10 +525,22 @@ public class CameraEntity
|
|||||||
@Override
|
@Override
|
||||||
public void remove() {
|
public void remove() {
|
||||||
super.remove();
|
super.remove();
|
||||||
eventHandler.unregister();
|
if (eventHandler != null) {
|
||||||
|
eventHandler.unregister();
|
||||||
|
eventHandler = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void update() {
|
private void update() {
|
||||||
|
MinecraftClient mc = MinecraftClient.getInstance();
|
||||||
|
if (mc.world != this.world) {
|
||||||
|
if (eventHandler != null) {
|
||||||
|
eventHandler.unregister();
|
||||||
|
eventHandler = null;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
long now = System.currentTimeMillis();
|
long now = System.currentTimeMillis();
|
||||||
long timePassed = now - lastControllerUpdate;
|
long timePassed = now - lastControllerUpdate;
|
||||||
cameraController.update(timePassed / 50f);
|
cameraController.update(timePassed / 50f);
|
||||||
|
|||||||
Reference in New Issue
Block a user