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.LongSetprivate final it.unimi.dsi.fastutil.longs.Long2ObjectMap<Visibility> private final LevelEntityGetter<T> private final Queue<ChunkEntities<T>> (package private) static final org.slf4j.Loggerprivate 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 booleanprivate booleanaddEntityUuid(T entity) private booleanaddEntityWithoutEvent(T p_157539_, boolean p_157540_) voidaddLegacyChunkEntities(Stream<T> entities) booleanaddNewEntity(T entity) booleanaddNewEntityWithoutEvent(T entity) voidaddWorldGenChunkEntities(Stream<T> entities) booleanareEntitiesLoaded(long chunkPos) voidautoSave()booleancanPositionTick(BlockPos pos) booleancanPositionTick(ChunkPos chunkPos) voidclose()intcount()voiddumpSections(Writer writer) private voidensureChunkQueuedForLoad(long chunkPosValue) private it.unimi.dsi.fastutil.longs.LongSet(package private) static <T extends EntityAccess>
VisibilitygetEffectiveStatus(T entity, Visibility visibility) booleanprivate booleanprocessChunkUnload(long chunkPosValue) private voidprivate void(package private) voidremoveSectionIfEmpty(long sectionKey, EntitySection<T> section) private voidrequestChunkLoad(long chunkPosValue) voidsaveAll()(package private) voidstartTicking(T entity) (package private) voidstartTracking(T entity) (package private) voidstopTicking(T entity) (package private) voidstopTracking(T entity) private booleanstoreChunkSections(long chunkPosValue, Consumer<T> entityAction) voidtick()private voidunloadEntity(EntityAccess entity) voidupdateChunkStatus(ChunkPos chunkPos, FullChunkStatus fullChunkStatus) voidupdateChunkStatus(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:
closein interfaceAutoCloseable- Throws:
IOException
-
isLoaded
-
getEntityGetter
-
canPositionTick
-
canPositionTick
-
areEntitiesLoaded
public boolean areEntitiesLoaded(long chunkPos) -
dumpSections
- Throws:
IOException
-
gatherStats
-
count
public int count()
-