HitboxCollision class

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

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

implements: Component<EntityStore>

Поля (7)

МодификаторыТипИмя
final int VERSION
yield null
boolean var1
HitboxCollision var1
String var2
int var2
int var3

Методы (10)

МодификаторыВозвратСигнатура
public boolean consumeNetworkOutdatedboolean consumeNetworkOutdated()
static ComponentType<EntityStore, HitboxCollision> getComponentTypeComponentType<EntityStore, HitboxCollision> getComponentType()
public int getHitboxCollisionConfigIndexint getHitboxCollisionConfigIndex()
if if(var2 == null)
if if(var3 == -1)
if if(this.hitboxCollisionConfigIndex != -1)
if if(var2 != this.hitboxCollisionConfigIndex)
public boolean isMigratedboolean isMigrated()
public void setHitboxCollisionConfigvoid setHitboxCollisionConfig(@Nonnull HitboxCollisionConfig var1)
return switchreturn switch(var0)

Исходный код

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

class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.component.Component;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.server.core.modules.entity.EntityModule;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class HitboxCollision class="kw">implements Component<EntityStore> {
   class="kw">public class="kw">static class="kw">final int VERSION = 1;
   @Nonnull
   class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
   class="kw">public class="kw">static class="kw">final BuilderCodec<HitboxCollision> CODEC = BuilderCodec.<HitboxCollision>builder(HitboxCollision.class, HitboxCollision::new)
      .codecVersion(1)
      .versioned()
      .<Integer>append(new KeyedCodec<>("HitboxCollisionConfigIndex", Codec.INTEGER), (var0, var1) -> var0.indexToMigrate = var1, var0 -> var0.indexToMigrate)
      .setVersionRange(0, 0)
      .add()
      .<String>append(
         new KeyedCodec<>("HitboxCollisionConfigId", Codec.STRING), (var0, var1) -> var0.hitboxCollisionConfigId = var1, var0 -> var0.hitboxCollisionConfigId
      )
      .setVersionRange(1, 1)
      .add()
      .afterDecode((var0, var1) -> {
         if (var1.getVersion() == 0) {
            var0.hitboxCollisionConfigId = legacyIndexToId(var0.indexToMigrate);
            var0.migrated = true;
            var0.indexToMigrate = -1;
         }

         String var2 = var0.hitboxCollisionConfigId;
         if (var2 == null) {
            var0.hitboxCollisionConfigIndex = -1;
         } else {
            int var3 = HitboxCollisionConfig.getAssetMap().getIndexOrDefault(var2, -1);
            if (var3 == -1) {
               LOGGER.at(Level.WARNING).log("HitboxCollisionConfig '%s' does not exist; clearing the reference", var2);
               var0.hitboxCollisionConfigId = null;
            }

            var0.hitboxCollisionConfigIndex = var3;
         }
      })
      .build();
   class="kw">private int indexToMigrate = -1;
   @Nullable
   class="kw">private String hitboxCollisionConfigId;
   class="kw">private int hitboxCollisionConfigIndex = -1;
   class="kw">private boolean migrated;
   class="kw">private boolean isNetworkOutdated = true;

   class="kw">public class="kw">static ComponentType<EntityStore, HitboxCollision> getComponentType() {
      class="kw">return EntityModule.get().getHitboxCollisionComponentType();
   }

   @Nullable
   class="kw">private class="kw">static String legacyIndexToId(int var0) {
      class="kw">return class="kw">switch (var0) {
         case -1 -> null;
         case 0 -> "HardCollision";
         case 1 -> "SoftCollision";
         class="kw">default -> {
            LOGGER.at(Level.WARNING).log("Unknown legacy HitboxCollisionConfigIndex %d; dropping the reference", var0);
            yield null;
         }
      };
   }

   class="kw">public HitboxCollision(@Nonnull HitboxCollisionConfig var1) {
      this.hitboxCollisionConfigIndex = HitboxCollisionConfig.getAssetMap().getIndexOrDefault(var1.getId(), -1);
      if (this.hitboxCollisionConfigIndex != -1) {
         this.hitboxCollisionConfigId = var1.getId();
      }
   }

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

   class="kw">public int getHitboxCollisionConfigIndex() {
      class="kw">return this.hitboxCollisionConfigIndex;
   }

   @Nullable
   class="kw">public String getHitboxCollisionConfigId() {
      class="kw">return this.hitboxCollisionConfigId;
   }

   class="kw">public boolean isMigrated() {
      class="kw">return this.migrated;
   }

   class="kw">public void setHitboxCollisionConfig(@Nonnull HitboxCollisionConfig var1) {
      int var2 = HitboxCollisionConfig.getAssetMap().getIndexOrDefault(var1.getId(), -1);
      if (var2 != this.hitboxCollisionConfigIndex) {
         this.hitboxCollisionConfigIndex = var2;
         this.hitboxCollisionConfigId = var2 != -1 ? var1.getId() : null;
         this.isNetworkOutdated = true;
      }
   }

   class="kw">public boolean consumeNetworkOutdated() {
      boolean var1 = this.isNetworkOutdated;
      this.isNetworkOutdated = false;
      class="kw">return var1;
   }

   @Nonnull
   @Override
   class="kw">public Component<EntityStore> clone() {
      HitboxCollision var1 = new HitboxCollision();
      var1.hitboxCollisionConfigId = this.hitboxCollisionConfigId;
      var1.hitboxCollisionConfigIndex = this.hitboxCollisionConfigIndex;
      var1.migrated = this.migrated;
      class="kw">return var1;
   }
}