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> entityClass, LevelCallback<T> callbacks, EntityPersistentStorage<T> permanentStorage) -
Method Summary
Modifier and TypeMethodDescriptionprivate boolean
private boolean
addEntityUuid
(T entity) private boolean
addEntityWithoutEvent
(T p_157539_, boolean p_157540_) void
addLegacyChunkEntities
(Stream<T> entities) boolean
addNewEntity
(T entity) boolean
addNewEntityWithoutEvent
(T entity) void
addWorldGenChunkEntities
(Stream<T> entities) boolean
areEntitiesLoaded
(long chunkPos) void
autoSave()
boolean
canPositionTick
(BlockPos pos) boolean
canPositionTick
(ChunkPos chunkPos) void
close()
int
count()
void
dumpSections
(Writer writer) private void
ensureChunkQueuedForLoad
(long chunkPosValue) private it.unimi.dsi.fastutil.longs.LongSet
(package private) static <T extends EntityAccess>
VisibilitygetEffectiveStatus
(T entity, Visibility visibility) boolean
private boolean
processChunkUnload
(long chunkPosValue) private void
private void
(package private) void
removeSectionIfEmpty
(long sectionKey, EntitySection<T> section) private void
requestChunkLoad
(long chunkPosValue) void
saveAll()
(package private) void
startTicking
(T entity) (package private) void
startTracking
(T entity) (package private) void
stopTicking
(T entity) (package private) void
stopTracking
(T entity) private boolean
storeChunkSections
(long chunkPosValue, Consumer<T> entityAction) void
tick()
private void
unloadEntity
(EntityAccess entity) void
updateChunkStatus
(ChunkPos chunkPos, FullChunkStatus fullChunkStatus) void
updateChunkStatus
(ChunkPos pos, Visibility p_visibility)
-
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> entityClass, LevelCallback<T> callbacks, EntityPersistentStorage<T> permanentStorage)
-
-
Method Details
-
removeSectionIfEmpty
-
addEntityUuid
-
addNewEntity
-
addNewEntityWithoutEvent
-
addEntity
-
addEntityWithoutEvent
-
getEffectiveStatus
-
addLegacyChunkEntities
-
addWorldGenChunkEntities
-
startTicking
-
stopTicking
-
startTracking
-
stopTracking
-
updateChunkStatus
-
updateChunkStatus
-
ensureChunkQueuedForLoad
private void ensureChunkQueuedForLoad(long chunkPosValue) -
storeChunkSections
-
requestChunkLoad
private void requestChunkLoad(long chunkPosValue) -
processChunkUnload
private boolean processChunkUnload(long chunkPosValue) -
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 chunkPos) -
dumpSections
- Throws:
IOException
-
gatherStats
-
count
public int count()
-