Yatopia/patches/server/0063-lithium-entity.patch
Simon Gardling 13f96b5086 Updated Upstream and Sidestream(s) (Paper/Tuinity/Airplane/Empirecraft/Origami)
Upstream/An Sidestream has released updates that appears to apply and compile correctly
This update has NOT been tested by YatopiaMC and as with ANY update, please do your own testing.

Paper Changes:
0daded2f2 Add more line of sight methods (#5749)
8fd4e70db Improve seed based feature search to not load chunk (#5760)
7ad8498c3 Make item validations configurable (#5775)
3673d6758 Fix Cannot be adventure component serialized when the legacy component is null (#5754)
afb0748a2 [Auto] Updated Upstream (Bukkit)
7d751ad8d Fix dangerous end portal logic (#5776)
12716324d Do not tick Chunk TickS for every chunk

Tuinity Changes:
2683c77 Use area map for nearby players in mob spawning (#283)

Airplane Changes:
2be99de Toggle for DEAR
3485304 Updated Upstream (Tuinity)

Empirecraft Changes:
33438474 Refine FurnaceExtractEvent patch

Origami Changes:
35c6a27 Re-add removed patch for MC-2025
a19a185 Fix missing particles
2021-06-08 14:22:10 -04:00

59 lines
2.2 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: JellySquid <jellysquid+atwork@protonmail.com>
Date: Sun, 24 Jan 2021 22:55:55 +0100
Subject: [PATCH] lithium entity
Co-authored-by: Hugo Planque <hookwood01@gmail.com>
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
index 4de845117c06915943d517bdab7fcc3651589dcf..a0d1d98135cfea5b2afa2b68a1ab95aa46b8f485 100644
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
@@ -276,6 +276,9 @@ public abstract class EntityLiving extends Entity {
this.bg = this.a(new Dynamic(dynamicopsnbt, dynamicopsnbt.createMap((Map) ImmutableMap.of(dynamicopsnbt.createString("memories"), dynamicopsnbt.emptyMap()))));
}
+ private IBlockData lastStateAtFeet = null;
+
+ private long lastPos = Long.MIN_VALUE;
public BehaviorController<?> getBehaviorController() {
return this.bg;
}
@@ -350,6 +353,10 @@ public abstract class EntityLiving extends Entity {
@Override
public void entityBaseTick() {
+ // Yatopia start - port lithium
+ this.lastStateAtFeet = null;
+ this.lastPos = Long.MIN_VALUE;
+ // Yatopia end
this.ar = this.as;
if (this.justCreated) {
this.getBedPosition().ifPresent(this::a);
@@ -1767,7 +1774,24 @@ public abstract class EntityLiving extends Entity {
// Airplane end
public IBlockData ds() {
- return this.world.getBlockStateIfLoaded(this.getChunkCoordinates()); // Yatopia
+ // Yatopia start - port lithium
+ int x = MathHelper.floor(this.locX());
+ int y = MathHelper.floor(this.locY());
+ int z = MathHelper.floor(this.locZ());
+
+ long pos = getChunkCoordinates().asLong();
+
+ if (this.lastPos == pos) {
+ return this.lastStateAtFeet;
+ }
+
+ IBlockData state = this.world.getBlockStateIfLoaded(this.getChunkCoordinates());
+
+ this.lastPos = pos;
+ this.lastStateAtFeet = state;
+
+ return state;
+ // Yatopia end
}
private boolean c(BlockPosition blockposition, IBlockData iblockdata) {