SpawnSuppression class

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

Файл: com/hypixel/hytale/server/spawning/assets/spawnsuppression/SpawnSuppression.java

implements: JsonAssetWithMap<String, IndexedAssetMap<String, SpawnSuppression>>

Поля (3)

МодификаторыТипИмя
ASSET_STORE
final AssetBuilderCodec<String, SpawnSuppression> CODEC
IntOpenHashSet var2

Методы (9)

МодификаторыВозвратСигнатура
for for(String var6 : var0.suppressedGroups)
static IndexedAssetMap<String, SpawnSuppression> getAssetMapIndexedAssetMap<String, SpawnSuppression> getAssetMap()
static AssetStore<String, SpawnSuppression, IndexedAssetMap<String, SpawnSuppression>> getAssetStoreAssetStore<String, SpawnSuppression, IndexedAssetMap<String, SpawnSuppression>> getAssetStore()
public String getIdString getId()
public double getRadiusdouble getRadius()
public int[] getSuppressedGroupIdsint[] getSuppressedGroupIds()
if if(var0.suppressedGroups != null && var0.suppressedGroups.length > 0)
if if(ASSET_STORE == null)
public boolean isSuppressSpawnMarkersboolean isSuppressSpawnMarkers()

Исходный код

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

class="kw">import com.hypixel.hytale.assetstore.AssetExtraInfo;
class="kw">import com.hypixel.hytale.assetstore.AssetKeyValidator;
class="kw">import com.hypixel.hytale.assetstore.AssetRegistry;
class="kw">import com.hypixel.hytale.assetstore.AssetStore;
class="kw">import com.hypixel.hytale.assetstore.codec.AssetBuilderCodec;
class="kw">import com.hypixel.hytale.assetstore.map.IndexedAssetMap;
class="kw">import com.hypixel.hytale.assetstore.map.IndexedLookupTableAssetMap;
class="kw">import com.hypixel.hytale.assetstore.map.JsonAssetWithMap;
class="kw">import com.hypixel.hytale.builtin.tagset.config.NPCGroup;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.validation.ValidatorCache;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
class="kw">import java.util.Arrays;
class="kw">import javax.annotation.Nonnull;

class="kw">public class SpawnSuppression class="kw">implements JsonAssetWithMap<String, IndexedAssetMap<String, SpawnSuppression>> {
   class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, SpawnSuppression> CODEC = AssetBuilderCodec.<String, SpawnSuppression>builder(
         SpawnSuppression.class,
         SpawnSuppression::new,
         Codec.STRING,
         (var0, var1) -> var0.id = var1,
         var0 -> var0.id,
         (var0, var1) -> var0.data = var1,
         var0 -> var0.data
      )
      .documentation("A configuration designed to prevent certain NPCs spawns within a given region.")
      .<Double>appendInherited(
         new KeyedCodec<>("SuppressionRadius", Codec.DOUBLE),
         (var0, var1) -> var0.radius = var1,
         var0 -> var0.radius,
         (var0, var1) -> var0.radius = var1.radius
      )
      .documentation(
         "The radius this spawn suppression should cover. Any chunk which falls even partially within this radius will be affected by the suppression on the x and z axes, but will use exact distance for the y axis. This allows NPCs to class="kw">continue to spawn in caves below the position or in the skies above, but is slightly more efficient and provides no noticeable differences in world spawns."
      )
      .addValidator(Validators.greaterThan(0.0))
      .add()
      .<String[]>appendInherited(
         new KeyedCodec<>("SuppressedGroups", Codec.STRING_ARRAY),
         (var0, var1) -> var0.suppressedGroups = var1,
         var0 -> var0.suppressedGroups,
         (var0, var1) -> var0.suppressedGroups = var1.suppressedGroups
      )
      .documentation("An array of NPCGroup ids that will be suppressed.")
      .addValidator(NPCGroup.VALIDATOR_CACHE.getArrayValidator())
      .add()
      .<Boolean>appendInherited(
         new KeyedCodec<>("SuppressSpawnMarkers", Codec.BOOLEAN),
         (var0, var1) -> var0.suppressSpawnMarkers = var1,
         var0 -> var0.suppressSpawnMarkers,
         (var0, var1) -> var0.suppressSpawnMarkers = var1.suppressSpawnMarkers
      )
      .documentation(
         "Whether or not to suppress any spawn markers within the range of this suppression. If set to true, any spawn marker within this range will cease to function while the suppression exists"
      )
      .add()
      .afterDecode(var0 -> {
         if (var0.suppressedGroups != null && var0.suppressedGroups.length > 0) {
            IndexedLookupTableAssetMap var1 = NPCGroup.getAssetMap();
            IntOpenHashSet var2 = new IntOpenHashSet();

            for (String var6 : var0.suppressedGroups) {
               var2.add(var1.getIndex(var6));
            }

            var0.suppressedGroupIds = var2.toIntArray();
         }
      })
      .build();
   class="kw">public class="kw">static class="kw">final ValidatorCache<String> VALIDATOR_CACHE = new ValidatorCache<>(new AssetKeyValidator<>(SpawnSuppression::getAssetStore));
   class="kw">private class="kw">static AssetStore<String, SpawnSuppression, IndexedAssetMap<String, SpawnSuppression>> ASSET_STORE;
   class="kw">private AssetExtraInfo.Data data;
   class="kw">protected String id;
   class="kw">protected double radius = 10.0;
   class="kw">protected String[] suppressedGroups;
   class="kw">protected int[] suppressedGroupIds;
   class="kw">protected boolean suppressSpawnMarkers;

   class="kw">public class="kw">static AssetStore<String, SpawnSuppression, IndexedAssetMap<String, SpawnSuppression>> getAssetStore() {
      if (ASSET_STORE == null) {
         ASSET_STORE = AssetRegistry.getAssetStore(SpawnSuppression.class);
      }

      class="kw">return ASSET_STORE;
   }

   class="kw">public class="kw">static IndexedAssetMap<String, SpawnSuppression> getAssetMap() {
      class="kw">return (IndexedAssetMap<String, SpawnSuppression>)getAssetStore().getAssetMap();
   }

   class="kw">public SpawnSuppression(String var1) {
      this.id = var1;
   }

   class="kw">public SpawnSuppression(String var1, double var2, String[] var4, int[] var5, boolean var6) {
      this.id = var1;
      this.radius = var2;
      this.suppressedGroups = var4;
      this.suppressedGroupIds = var5;
      this.suppressSpawnMarkers = var6;
   }

   class="kw">protected SpawnSuppression() {
   }

   class="kw">public String getId() {
      class="kw">return this.id;
   }

   class="kw">public double getRadius() {
      class="kw">return this.radius;
   }

   class="kw">public int[] getSuppressedGroupIds() {
      class="kw">return this.suppressedGroupIds;
   }

   class="kw">public boolean isSuppressSpawnMarkers() {
      class="kw">return this.suppressSpawnMarkers;
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "SpawnSuppression{radius="
         + this.radius
         + ", suppressedGroups="
         + Arrays.toString(this.suppressedGroups)
         + ", suppressSpawnMarkers="
         + this.suppressSpawnMarkers
         + "}";
   }
}