HitboxCollisionConfig class

Пакет: com.hypixel.hytale.server.core.modules.entity.hitboxcollision

Файл: com/hypixel/hytale/server/core/modules/entity/hitboxcollision/HitboxCollisionConfig.java

implements: JsonAssetWithMap<String, IndexedLookupTableAssetMap<String, HitboxCollisionConfig>>, NetworkSerializable<com.hypixel.hytale.protocol.HitboxCollisionConfig>

Поля (3)

МодификаторыТипИмя
ASSET_STORE
final AssetBuilderCodec<String, HitboxCollisionConfig> CODEC
com.hypixel.hytale.protocol.HitboxCollisionConfig var1

Методы (8)

МодификаторыВозвратСигнатура
public boolean getAllowEntityAnchoringboolean getAllowEntityAnchoring()
static IndexedLookupTableAssetMap<String, HitboxCollisionConfig> getAssetMapIndexedLookupTableAssetMap<String, HitboxCollisionConfig> getAssetMap()
static AssetStore<String, HitboxCollisionConfig, IndexedLookupTableAssetMap<String, HitboxCollisionConfig>> getAssetStoreAssetStore<String, HitboxCollisionConfig, IndexedLookupTableAssetMap<String, HitboxCollisionConfig>> getAssetStore()
public CollisionType getCollisionTypeCollisionType getCollisionType()
public String getIdString getId()
public boolean getRotateHitboxboolean getRotateHitbox()
public float getSoftOffsetRatiofloat getSoftOffsetRatio()
if if(ASSET_STORE == null)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.entity.hitboxcollision;

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.IndexedLookupTableAssetMap;
class="kw">import com.hypixel.hytale.assetstore.map.JsonAssetWithMap;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.codecs.EnumCodec;
class="kw">import com.hypixel.hytale.codec.validation.ValidatorCache;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.protocol.CollisionType;
class="kw">import com.hypixel.hytale.server.core.io.NetworkSerializable;
class="kw">import javax.annotation.Nonnull;

class="kw">public class HitboxCollisionConfig
   class="kw">implements JsonAssetWithMap<String, IndexedLookupTableAssetMap<String, HitboxCollisionConfig>>,
   NetworkSerializable<com.hypixel.hytale.protocol.HitboxCollisionConfig> {
   class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, HitboxCollisionConfig> CODEC = AssetBuilderCodec.builder(
         HitboxCollisionConfig.class,
         HitboxCollisionConfig::new,
         Codec.STRING,
         (var0, var1) -> var0.id = var1,
         var0 -> var0.id,
         (var0, var1) -> var0.data = var1,
         var0 -> var0.data
      )
      .appendInherited(
         new KeyedCodec<>("CollisionType", new EnumCodec<>(CollisionType.class)),
         (var0, var1) -> var0.collisionType = var1,
         var0 -> var0.collisionType,
         (var0, var1) -> var0.collisionType = var1.collisionType
      )
      .addValidator(Validators.nonNull())
      .documentation("The type of collision, possible values are: Hard, Soft")
      .add()
      .<Float>appendInherited(
         new KeyedCodec<>("SoftCollisionOffsetRatio", Codec.FLOAT),
         (var0, var1) -> var0.softOffsetRatio = var1,
         var0 -> var0.softOffsetRatio,
         (var0, var1) -> var0.softOffsetRatio = var1.softOffsetRatio
      )
      .documentation("The ratio for how much of the client move offset should be applied when going through a Soft HitboxCollision")
      .add()
      .<Boolean>appendInherited(
         new KeyedCodec<>("RotateHitbox", Codec.BOOLEAN),
         (var0, var1) -> var0.rotateHitbox = var1,
         var0 -> var0.rotateHitbox,
         (var0, var1) -> var0.rotateHitbox = var1.rotateHitbox
      )
      .documentation("If the hitbox of the entity should be rotated by the body orientation around the entity position for Hard collision.")
      .add()
      .<Boolean>appendInherited(
         new KeyedCodec<>("AllowEntityAnchoring", Codec.BOOLEAN),
         (var0, var1) -> var0.allowEntityAnchoring = var1,
         var0 -> var0.allowEntityAnchoring,
         (var0, var1) -> var0.allowEntityAnchoring = var1.allowEntityAnchoring
      )
      .documentation("If other entities should be allowed to anchor themselves to the entity when standing on it with Hard collision.")
      .add()
      .<Boolean>appendInherited(
         new KeyedCodec<>("RotateAnchoredEntities", Codec.BOOLEAN),
         (var0, var1) -> var0.rotateAnchoredEntities = var1,
         var0 -> var0.rotateAnchoredEntities,
         (var0, var1) -> var0.rotateAnchoredEntities = var1.rotateAnchoredEntities
      )
      .documentation("If anchored entities should have their yaw track with the entity.")
      .add()
      .build();
   class="kw">public class="kw">static class="kw">final ValidatorCache<String> VALIDATOR_CACHE = new ValidatorCache<>(new AssetKeyValidator<>(HitboxCollisionConfig::getAssetStore));
   class="kw">private class="kw">static AssetStore<String, HitboxCollisionConfig, IndexedLookupTableAssetMap<String, HitboxCollisionConfig>> ASSET_STORE;
   class="kw">public class="kw">static class="kw">final int NO_HITBOX = -1;
   class="kw">protected AssetExtraInfo.Data data;
   class="kw">protected String id;
   class="kw">protected CollisionType collisionType;
   class="kw">protected float softOffsetRatio = 1.0F;
   class="kw">protected boolean rotateHitbox;
   class="kw">private boolean allowEntityAnchoring = true;
   class="kw">private boolean rotateAnchoredEntities;

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

      class="kw">return ASSET_STORE;
   }

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

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

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

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

   class="kw">public CollisionType getCollisionType() {
      class="kw">return this.collisionType;
   }

   class="kw">public float getSoftOffsetRatio() {
      class="kw">return this.softOffsetRatio;
   }

   class="kw">public boolean getRotateHitbox() {
      class="kw">return this.rotateHitbox;
   }

   class="kw">public boolean getAllowEntityAnchoring() {
      class="kw">return this.allowEntityAnchoring;
   }

   @Nonnull
   class="kw">public com.hypixel.hytale.protocol.HitboxCollisionConfig toPacket() {
      com.hypixel.hytale.protocol.HitboxCollisionConfig var1 = new com.hypixel.hytale.protocol.HitboxCollisionConfig();
      var1.collisionType = this.collisionType;
      var1.softCollisionOffsetRatio = this.softOffsetRatio;
      var1.rotateHitbox = this.rotateHitbox;
      var1.allowEntityAnchoring = this.allowEntityAnchoring;
      var1.rotateAnchoredEntities = this.rotateAnchoredEntities;
      class="kw">return var1;
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "HitboxCollisionConfig{data="
         + this.data
         + ", id='"
         + this.id
         + "', collisionType="
         + this.collisionType
         + ", softOffsetRatio="
         + this.softOffsetRatio
         + "}";
   }
}