Class TicketStorage

java.lang.Object
net.minecraft.world.level.saveddata.SavedData
net.minecraft.world.level.TicketStorage

public class TicketStorage extends SavedData
  • Field Details

    • INITIAL_TICKET_LIST_CAPACITY

      private static final int INITIAL_TICKET_LIST_CAPACITY
      See Also:
    • LOGGER

      private static final org.slf4j.Logger LOGGER
    • TICKET_ENTRY

      private static final com.mojang.serialization.Codec<com.mojang.datafixers.util.Pair<ChunkPos,Ticket>> TICKET_ENTRY
    • CODEC

      public static final com.mojang.serialization.Codec<TicketStorage> CODEC
    • TYPE

      public static final SavedDataType<TicketStorage> TYPE
    • tickets

      private final it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<List<Ticket>> tickets
    • deactivatedTickets

      private final it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<List<Ticket>> deactivatedTickets
    • chunksWithForcedTickets

      private it.unimi.dsi.fastutil.longs.LongSet chunksWithForcedTickets
    • loadingChunkUpdatedListener

      private @Nullable TicketStorage.ChunkUpdated loadingChunkUpdatedListener
    • simulationChunkUpdatedListener

      private @Nullable TicketStorage.ChunkUpdated simulationChunkUpdatedListener
    • blockForcedChunks

      private final ForcedChunkManager.TicketTracker<BlockPos> blockForcedChunks
    • entityForcedChunks

      private final ForcedChunkManager.TicketTracker<UUID> entityForcedChunks
    • chunksWithForceNaturalSpawning

      private it.unimi.dsi.fastutil.longs.LongSet chunksWithForceNaturalSpawning
  • Constructor Details

    • TicketStorage

      private TicketStorage(it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<List<Ticket>> tickets, it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<List<Ticket>> deactivatedTickets)
    • TicketStorage

      public TicketStorage()
  • Method Details

    • fromPacked

      private static TicketStorage fromPacked(List<com.mojang.datafixers.util.Pair<ChunkPos,Ticket>> tickets)
    • packTickets

      private List<com.mojang.datafixers.util.Pair<ChunkPos,Ticket>> packTickets()
    • forEachTicket

      private void forEachTicket(BiConsumer<ChunkPos,Ticket> output)
    • forEachTicket

      private static void forEachTicket(BiConsumer<ChunkPos,Ticket> output, it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<List<Ticket>> tickets)
    • activateAllDeactivatedTickets

      public void activateAllDeactivatedTickets()
    • setLoadingChunkUpdatedListener

      public void setLoadingChunkUpdatedListener(@Nullable TicketStorage.ChunkUpdated loadingChunkUpdatedListener)
    • setSimulationChunkUpdatedListener

      public void setSimulationChunkUpdatedListener(@Nullable TicketStorage.ChunkUpdated simulationChunkUpdatedListener)
    • hasTickets

      public boolean hasTickets()
    • shouldKeepDimensionActive

      public boolean shouldKeepDimensionActive()
    • getTickets

      public List<Ticket> getTickets(long key)
    • getOrCreateTickets

      private List<Ticket> getOrCreateTickets(long key)
    • addTicketWithRadius

      public void addTicketWithRadius(TicketType type, ChunkPos chunkPos, int radius)
    • addTicket

      public void addTicket(Ticket ticket, ChunkPos chunkPos)
    • addTicket

      public boolean addTicket(long key, Ticket ticket)
    • isTicketSameTypeAndLevel

      private static boolean isTicketSameTypeAndLevel(Ticket ticket, Ticket t)
    • getTicketLevelAt

      public int getTicketLevelAt(long key, boolean simulation)
    • getTicketLevelAt

      private static int getTicketLevelAt(List<Ticket> tickets, boolean simulation)
    • getLowestTicket

      private static @Nullable Ticket getLowestTicket(@Nullable List<Ticket> tickets, boolean simulation)
    • removeTicketWithRadius

      public void removeTicketWithRadius(TicketType type, ChunkPos chunkPos, int radius)
    • removeTicket

      public void removeTicket(Ticket ticket, ChunkPos chunkPos)
    • removeTicket

      public boolean removeTicket(long key, Ticket ticket)
    • updateForcedChunks

      private void updateForcedChunks()
    • getTicketDebugString

      public String getTicketDebugString(long key, boolean simulation)
    • purgeStaleTickets

      public void purgeStaleTickets(ChunkMap chunkMap)
    • canTicketExpire

      private boolean canTicketExpire(ChunkMap chunkMap, Ticket ticket, long chunkPos)
    • deactivateTicketsOnClosing

      public void deactivateTicketsOnClosing()
    • removeTicketIf

      public void removeTicketIf(TicketStorage.TicketPredicate predicate, @Nullable it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<List<Ticket>> removedTickets)
    • replaceTicketLevelOfType

      public void replaceTicketLevelOfType(int newLevel, TicketType ticketType)
    • updateChunkForced

      public boolean updateChunkForced(ChunkPos chunkPos, boolean forced)
    • getForceLoadedChunks

      public it.unimi.dsi.fastutil.longs.LongSet getForceLoadedChunks()
    • getAllChunksWithTicketThat

      private it.unimi.dsi.fastutil.longs.LongSet getAllChunksWithTicketThat(Predicate<Ticket> ticketCheck)
    • getBlockForcedChunks

      public ForcedChunkManager.TicketTracker<BlockPos> getBlockForcedChunks()
    • getEntityForcedChunks

      public ForcedChunkManager.TicketTracker<UUID> getEntityForcedChunks()
    • updateForcedNaturalSpawning

      private void updateForcedNaturalSpawning()
    • shouldForceNaturalSpawning

      public boolean shouldForceNaturalSpawning(ChunkPos chunkPos)