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;
}
}