Package net.minecraft.world.level.entity
Class PersistentEntitySectionManager<T extends EntityAccess>
java.lang.Object
net.minecraft.world.level.entity.PersistentEntitySectionManager<T>
- All Implemented Interfaces:
AutoCloseable
public class PersistentEntitySectionManager<T extends EntityAccess>
extends Object
implements AutoCloseable
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) class
(package private) static enum
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) final LevelCallback
<T> private final it.unimi.dsi.fastutil.longs.Long2ObjectMap
<PersistentEntitySectionManager.ChunkLoadStatus> private final it.unimi.dsi.fastutil.longs.LongSet
private final it.unimi.dsi.fastutil.longs.Long2ObjectMap
<Visibility> private final LevelEntityGetter
<T> private final Queue
<ChunkEntities<T>> (package private) static final org.slf4j.Logger
private final EntityPersistentStorage
<T> (package private) final EntitySectionStorage
<T> private final EntityLookup
<T> -
Constructor Summary
ConstructorsConstructorDescriptionPersistentEntitySectionManager
(Class<T> pEntityClass, LevelCallback<T> pCallbacks, EntityPersistentStorage<T> pPermanentStorage) -
Method Summary
Modifier and TypeMethodDescriptionprivate boolean
private boolean
addEntityUuid
(T pEntity) private boolean
addEntityWithoutEvent
(T p_157539_, boolean p_157540_) void
addLegacyChunkEntities
(Stream<T> pEntities) boolean
addNewEntity
(T pEntity) boolean
addNewEntityWithoutEvent
(T entity) void
addWorldGenChunkEntities
(Stream<T> pEntities) boolean
areEntitiesLoaded
(long pChunkPos) void
autoSave()
boolean
canPositionTick
(BlockPos pPos) boolean
canPositionTick
(ChunkPos pChunkPos) void
close()
int
count()
void
dumpSections
(Writer pWriter) private void
ensureChunkQueuedForLoad
(long pChunkPosValue) private it.unimi.dsi.fastutil.longs.LongSet
(package private) static <T extends EntityAccess>
VisibilitygetEffectiveStatus
(T pEntity, Visibility pVisibility) boolean
private boolean
processChunkUnload
(long pChunkPosValue) private void
private void
(package private) void
removeSectionIfEmpty
(long pSectionKey, EntitySection<T> pSection) private void
requestChunkLoad
(long pChunkPosValue) void
saveAll()
(package private) void
startTicking
(T p_157565_) (package private) void
startTracking
(T p_157576_) (package private) void
stopTicking
(T p_157571_) (package private) void
stopTracking
(T p_157581_) private boolean
storeChunkSections
(long pChunkPosValue, Consumer<T> pEntityAction) void
tick()
private void
unloadEntity
(EntityAccess p_157586_) void
updateChunkStatus
(ChunkPos pChunkPos, FullChunkStatus pFullChunkStatus) void
updateChunkStatus
(ChunkPos pPos, Visibility pVisibility)
-
Field Details
-
LOGGER
static final org.slf4j.Logger LOGGER -
knownUuids
-
callbacks
-
permanentStorage
-
visibleEntityStorage
-
sectionStorage
-
entityGetter
-
chunkVisibility
-
chunkLoadStatuses
private final it.unimi.dsi.fastutil.longs.Long2ObjectMap<PersistentEntitySectionManager.ChunkLoadStatus> chunkLoadStatuses -
chunksToUnload
private final it.unimi.dsi.fastutil.longs.LongSet chunksToUnload -
loadingInbox
-
-
Constructor Details
-
PersistentEntitySectionManager
public PersistentEntitySectionManager(Class<T> pEntityClass, LevelCallback<T> pCallbacks, EntityPersistentStorage<T> pPermanentStorage)
-
-
Method Details
-
removeSectionIfEmpty
-
addEntityUuid
-
addNewEntity
-
addNewEntityWithoutEvent
-
addEntity
-
addEntityWithoutEvent
-
getEffectiveStatus
-
addLegacyChunkEntities
-
addWorldGenChunkEntities
-
startTicking
-
stopTicking
-
startTracking
-
stopTracking
-
updateChunkStatus
-
updateChunkStatus
-
ensureChunkQueuedForLoad
private void ensureChunkQueuedForLoad(long pChunkPosValue) -
storeChunkSections
-
requestChunkLoad
private void requestChunkLoad(long pChunkPosValue) -
processChunkUnload
private boolean processChunkUnload(long pChunkPosValue) -
unloadEntity
-
processUnloads
private void processUnloads() -
processPendingLoads
private void processPendingLoads() -
tick
public void tick() -
getAllChunksToSave
private it.unimi.dsi.fastutil.longs.LongSet getAllChunksToSave() -
autoSave
public void autoSave() -
saveAll
public void saveAll() -
close
- Specified by:
close
in interfaceAutoCloseable
- Throws:
IOException
-
isLoaded
-
getEntityGetter
-
canPositionTick
-
canPositionTick
-
areEntitiesLoaded
public boolean areEntitiesLoaded(long pChunkPos) -
dumpSections
- Throws:
IOException
-
gatherStats
-
count
public int count()
-