mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-26 18:39:23 +00:00
ClassInstanceMultiMap belongs to Minecraft vanilla entity storage. And is unused, since replaced by spottedleaf's entity storage (rewrite chunk system). However these patches might be useful for vanilla entity storage if is used.
60 lines
2.5 KiB
Diff
60 lines
2.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com>
|
|
Date: Fri, 25 Oct 2024 22:27:07 -0400
|
|
Subject: [PATCH] Cache tile entity position
|
|
|
|
Dreeam TODO: Check if there is a way to cache isRemoved without problem
|
|
|
|
diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java
|
|
index 27aa58ab47e7a7b0edddd1c483dc9165696ebf11..65442f9ab1528fd1b736963bc51f21fd6a0781a0 100644
|
|
--- a/net/minecraft/world/level/chunk/LevelChunk.java
|
|
+++ b/net/minecraft/world/level/chunk/LevelChunk.java
|
|
@@ -947,10 +947,12 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
|
|
private final T blockEntity;
|
|
private final BlockEntityTicker<T> ticker;
|
|
private boolean loggedInvalidBlockState;
|
|
+ private final BlockPos cachedPos; // Leaf - Cache tile entity position
|
|
|
|
BoundTickingBlockEntity(final T blockEntity, final BlockEntityTicker<T> ticker) {
|
|
this.blockEntity = blockEntity;
|
|
this.ticker = ticker;
|
|
+ this.cachedPos = this.blockEntity.getBlockPos(); // Leaf - Cache tile entity position
|
|
}
|
|
|
|
@Override
|
|
@@ -991,7 +993,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
|
|
|
|
@Override
|
|
public BlockPos getPos() {
|
|
- return this.blockEntity.getBlockPos();
|
|
+ return this.cachedPos; // Leaf - Cache tile entity position
|
|
}
|
|
|
|
@Override
|
|
@@ -1018,13 +1020,16 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
|
|
|
|
static class RebindableTickingBlockEntityWrapper implements TickingBlockEntity {
|
|
private TickingBlockEntity ticker;
|
|
+ private BlockPos cachedPos; // Leaf - Cache tile entity position
|
|
|
|
RebindableTickingBlockEntityWrapper(TickingBlockEntity ticker) {
|
|
this.ticker = ticker;
|
|
+ this.cachedPos = this.ticker.getPos(); // Leaf - Cache tile entity position
|
|
}
|
|
|
|
void rebind(TickingBlockEntity ticker) {
|
|
this.ticker = ticker;
|
|
+ this.cachedPos = this.ticker.getPos(); // Leaf - Cache tile entity position
|
|
}
|
|
|
|
@Override
|
|
@@ -1039,7 +1044,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
|
|
|
|
@Override
|
|
public BlockPos getPos() {
|
|
- return this.ticker.getPos();
|
|
+ return this.cachedPos; // Leaf - Cache tile entity position
|
|
}
|
|
|
|
@Override
|