java.lang.Object
com.hypixel.hytale.server.spawning.world.component.WorldSpawnData
All Implemented Interfaces:
Resource<EntityStore>, Cloneable

public class WorldSpawnData extends Object implements Resource<EntityStore>
  • Field Details

    • LOGGER

      private static final com.hypixel.hytale.logger.HytaleLogger LOGGER
    • worldEnvironmentSpawnData

      private final it.unimi.dsi.fastutil.ints.Int2ObjectMap<WorldEnvironmentSpawnData> worldEnvironmentSpawnData
    • unspawnableProcessingQueue

      private final ArrayDeque<WorldSpawnData.UnspawnableEntry> unspawnableProcessingQueue
    • actualNPCs

      private int actualNPCs
    • expectedNPCs

      private double expectedNPCs
    • expectedNPCsInEmptyEnvironments

      private double expectedNPCsInEmptyEnvironments
    • unspawnable

      private boolean unspawnable
    • chunkCount

      private int chunkCount
    • segmentCount

      private int segmentCount
    • activeSpawnJobs

      private int activeSpawnJobs
    • trackedCountFromJobs

      private int trackedCountFromJobs
    • totalSpawnJobBudgetUsed

      private int totalSpawnJobBudgetUsed
    • totalSpawnJobsCompleted

      private int totalSpawnJobsCompleted
    • spiralIterator

      private final SpiralIterator spiralIterator
  • Constructor Details

    • WorldSpawnData

      public WorldSpawnData()
  • Method Details

    • getResourceType

      public static ResourceType<EntityStore,WorldSpawnData> getResourceType()
    • getActualNPCs

      public int getActualNPCs()
    • getExpectedNPCs

      public double getExpectedNPCs()
    • getExpectedNPCsInEmptyEnvironments

      public double getExpectedNPCsInEmptyEnvironments()
    • isUnspawnable

      public boolean isUnspawnable()
    • setUnspawnable

      public void setUnspawnable(boolean unspawnable)
    • getChunkCount

      public int getChunkCount()
    • adjustChunkCount

      public void adjustChunkCount(int amount)
    • adjustSegmentCount

      public void adjustSegmentCount(int amount)
    • getSpiralIterator

      @Nonnull public SpiralIterator getSpiralIterator()
    • averageSegmentCount

      public double averageSegmentCount()
    • getActiveSpawnJobs

      public int getActiveSpawnJobs()
    • adjustActiveSpawnJobs

      public void adjustActiveSpawnJobs(int amount, int trackedCount)
    • getTrackedCountFromJobs

      public int getTrackedCountFromJobs()
    • getTotalSpawnJobBudgetUsed

      public int getTotalSpawnJobBudgetUsed()
    • getTotalSpawnJobsCompleted

      public int getTotalSpawnJobsCompleted()
    • addCompletedSpawnJob

      public void addCompletedSpawnJob(int budgetUsed)
    • getWorldEnvironmentSpawnData

      public WorldEnvironmentSpawnData getWorldEnvironmentSpawnData(int environmentIndex)
    • getOrCreateWorldEnvironmentSpawnData

      @Nonnull public WorldEnvironmentSpawnData getOrCreateWorldEnvironmentSpawnData(int environmentIndex, @Nonnull World world, @Nonnull ComponentAccessor<EntityStore> componentAccessor)
    • getWorldEnvironmentSpawnDataIndexes

      public int[] getWorldEnvironmentSpawnDataIndexes()
    • updateSpawnability

      public void updateSpawnability()
    • forEachEnvironmentSpawnData

      public void forEachEnvironmentSpawnData(Consumer<WorldEnvironmentSpawnData> consumer)
    • trackNPC

      public boolean trackNPC(int environmentIndex, int roleIndex, int npcCount, @Nonnull World world, @Nonnull ComponentAccessor<EntityStore> componentAccessor)
    • untrackNPC

      public boolean untrackNPC(int environmentIndex, int roleIndex, int npcCount)
    • recalculateWorldCount

      public void recalculateWorldCount()
    • queueUnspawnableChunk

      public void queueUnspawnableChunk(int environmentIndex, long chunkIndex)
    • hasUnprocessedUnspawnableChunks

      public boolean hasUnprocessedUnspawnableChunks()
    • nextUnspawnableChunk

      @Nullable public WorldSpawnData.UnspawnableEntry nextUnspawnableChunk()
    • clone

      public Resource<EntityStore> clone()
      Specified by:
      clone in interface Resource<EntityStore>
      Overrides:
      clone in class Object