ChunkEnvironmentSpawnData class

Пакет: com.hypixel.hytale.server.spawning.world

Файл: com/hypixel/hytale/server/spawning/world/ChunkEnvironmentSpawnData.java

Поля (2)

МодификаторыТипИмя
private IntSet possibleRoleTypes
double var3

Методы (13)

МодификаторыВозвратСигнатура
public boolean allRolesUnspawnableboolean allRolesUnspawnable()
public double getExpectedNPCsdouble getExpectedNPCs()
public RandomChunkColumnIterator getRandomChunkColumnIteratorRandomChunkColumnIterator getRandomChunkColumnIterator()
public int getSegmentCountint getSegmentCount()
public double getWeightdouble getWeight(double var1)
public void initvoid init(int var1, @Nonnull WorldChunk var2)
public boolean isFullyPopulatedboolean isFullyPopulated(double var1)
public boolean isRoleSpawnableboolean isRoleSpawnable(int var1)
public void markProcessedAsUnspawnablevoid markProcessedAsUnspawnable()
public void markRoleAsUnspawnablevoid markRoleAsUnspawnable(int var1)
public void registerSegmentvoid registerSegment(int var1, int var2)
public void updateDensityvoid updateDensity(double var1)
public boolean wasProcessedAsUnspawnableboolean wasProcessedAsUnspawnable()

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.spawning.world;

class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.WorldChunk;
class="kw">import com.hypixel.hytale.server.spawning.SpawningPlugin;
class="kw">import com.hypixel.hytale.server.spawning.util.ChunkColumnMask;
class="kw">import com.hypixel.hytale.server.spawning.util.RandomChunkColumnIterator;
class="kw">import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
class="kw">import it.unimi.dsi.fastutil.ints.IntSet;
class="kw">import javax.annotation.Nonnull;

class="kw">public class ChunkEnvironmentSpawnData {
   class="kw">private IntSet possibleRoleTypes;
   class="kw">private class="kw">final IntSet unspawnableRoles = new IntOpenHashSet();
   class="kw">private boolean processedAsUnspawnable;
   class="kw">private RandomChunkColumnIterator randomChunkColumnIterator;
   class="kw">private int segmentCount;
   class="kw">private double expectedNPCs;

   class="kw">public ChunkEnvironmentSpawnData() {
   }

   class="kw">public double getExpectedNPCs() {
      class="kw">return this.expectedNPCs;
   }

   class="kw">public RandomChunkColumnIterator getRandomChunkColumnIterator() {
      class="kw">return this.randomChunkColumnIterator;
   }

   class="kw">public void init(int var1, @Nonnull WorldChunk var2) {
      this.randomChunkColumnIterator = new RandomChunkColumnIterator(new ChunkColumnMask(), var2);
      this.possibleRoleTypes = SpawningPlugin.get().getRolesForEnvironment(var1);
      this.processedAsUnspawnable = false;
   }

   class="kw">public void registerSegment(int var1, int var2) {
      this.randomChunkColumnIterator.getInitialPositions().set(var1, var2);
      this.segmentCount++;
   }

   class="kw">public int getSegmentCount() {
      class="kw">return this.segmentCount;
   }

   class="kw">public void updateDensity(double var1) {
      this.expectedNPCs = var1 * this.segmentCount / 1024.0;
   }

   class="kw">public double getWeight(double var1) {
      double var3 = this.expectedNPCs - var1;
      class="kw">return MathUtil.maxValue(0.0, var3);
   }

   class="kw">public boolean isFullyPopulated(double var1) {
      class="kw">return this.expectedNPCs <= var1;
   }

   class="kw">public void markRoleAsUnspawnable(int var1) {
      this.unspawnableRoles.add(var1);
   }

   class="kw">public boolean isRoleSpawnable(int var1) {
      class="kw">return !this.unspawnableRoles.contains(var1);
   }

   class="kw">public boolean allRolesUnspawnable() {
      class="kw">return this.unspawnableRoles.size() >= this.possibleRoleTypes.size();
   }

   class="kw">public boolean wasProcessedAsUnspawnable() {
      class="kw">return this.processedAsUnspawnable;
   }

   class="kw">public void markProcessedAsUnspawnable() {
      this.processedAsUnspawnable = true;
   }
}