mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-24 01:19:25 +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.
42 lines
2.5 KiB
Diff
42 lines
2.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com>
|
|
Date: Wed, 26 Mar 2025 15:47:14 -0400
|
|
Subject: [PATCH] Prevent double chunk retrieving in entity fluid pushing check
|
|
and fluid height updating
|
|
|
|
This patch is based on the following patch:
|
|
"Reduce entity fluid lookups if no fluids"
|
|
By: Paul Sauve <paul@technove.co>
|
|
As part of: Airplane (https://github.com/TECHNOVE/Airplane)
|
|
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
|
|
|
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
|
index 8e4b092fb5f93cee60fc08ba08db143f2e5ab383..9a13cf8460472b8d3968cd8269a2b63d0b49f1a9 100644
|
|
--- a/net/minecraft/world/entity/Entity.java
|
|
+++ b/net/minecraft/world/entity/Entity.java
|
|
@@ -4813,10 +4813,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
|
|
|
// Paper start - optimise collisions
|
|
public boolean updateFluidHeightAndDoFluidPushing(final TagKey<Fluid> fluid, final double flowScale) {
|
|
- if (this.touchingUnloadedChunk()) {
|
|
- return false;
|
|
- }
|
|
-
|
|
+ // Leaf - Prevent double chunk retrieving in entity fluid pushing check and fluid height updating
|
|
final AABB boundingBox = this.getBoundingBox().deflate(1.0E-3);
|
|
|
|
final Level world = this.level;
|
|
@@ -4852,7 +4849,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
|
|
|
for (int currChunkZ = minChunkZ; currChunkZ <= maxChunkZ; ++currChunkZ) {
|
|
for (int currChunkX = minChunkX; currChunkX <= maxChunkX; ++currChunkX) {
|
|
- final net.minecraft.world.level.chunk.LevelChunkSection[] sections = chunkSource.getChunk(currChunkX, currChunkZ, net.minecraft.world.level.chunk.status.ChunkStatus.FULL, false).getSections();
|
|
+ // Leaf start - Prevent double chunk retrieving in entity fluid pushing check and fluid height updating
|
|
+ final net.minecraft.world.level.chunk.ChunkAccess chunk = chunkSource.getChunk(currChunkX, currChunkZ, net.minecraft.world.level.chunk.status.ChunkStatus.FULL, false);
|
|
+ if (chunk == null) continue;
|
|
+ final net.minecraft.world.level.chunk.LevelChunkSection[] sections = chunk.getSections();
|
|
+ // Leaf end - Prevent double chunk retrieving in entity fluid pushing check and fluid height updating
|
|
|
|
// bound y
|
|
for (int currChunkY = minChunkY; currChunkY <= maxChunkY; ++currChunkY) {
|