TriggerVolumePlayerStateSystem class

Пакет: com.hypixel.hytale.builtin.triggervolumes.system

Файл: com/hypixel/hytale/builtin/triggervolumes/system/TriggerVolumePlayerStateSystem.java

extends: EntityTickingSystem<EntityStore>

Поля (18)

МодификаторыТипИмя
TriggerVolumeManager var10
boolean var11
var11
MovementManager var12
PlayerRef var2
MovementSettings var3
MovementManager var3
MovementSettings var4
MovementSettings var4
FlyMode var5
var5
var5
var5
MovementSettings var5
PlayerRef var6
TransformComponent var7
UUID var8
boolean var9

Методы (13)

МодификаторыВозвратСигнатура
static void applyMovementvoid applyMovement(@Nonnull MovementManager var0, @Nonnull PlayerRef var1, boolean var2)
abstract applyMovement applyMovement(var12, var6, var11)
public void forgetPlayervoid forgetPlayer(@Nonnull UUID var1)
if if(var6 != null && var7 != null)
if if(var11 || var9)
if if(var12 != null)
if if(var11)
if if(var3 != null && var4 != null)
if if(var4.fly == FlyMode.Forced)
if if(var4.fly != var5)
if if(var2 != null)
if if(var4 != null && var5 != null && var5.fly != FlyMode.Forced)
public void revertPlayervoid revertPlayer(@Nonnull Holder<EntityStore> var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.triggervolumes.system;

class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.rules.FlyRule;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.manager.TriggerVolumeManager;
class="kw">import com.hypixel.hytale.component.ArchetypeChunk;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.component.ResourceType;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.query.Query;
class="kw">import com.hypixel.hytale.component.system.tick.EntityTickingSystem;
class="kw">import com.hypixel.hytale.protocol.FlyMode;
class="kw">import com.hypixel.hytale.protocol.MovementSettings;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.movement.MovementManager;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.Set;
class="kw">import java.util.UUID;
class="kw">import java.util.concurrent.ConcurrentHashMap;
class="kw">import javax.annotation.Nonnull;

class="kw">public class TriggerVolumePlayerStateSystem class="kw">extends EntityTickingSystem<EntityStore> {
   @Nonnull
   class="kw">private class="kw">final ResourceType<EntityStore, TriggerVolumeManager> managerResourceType;
   @Nonnull
   class="kw">private class="kw">final Query<EntityStore> query;
   @Nonnull
   class="kw">private class="kw">final Set<UUID> flyOverridden = ConcurrentHashMap.newKeySet();

   class="kw">public TriggerVolumePlayerStateSystem(@Nonnull ResourceType<EntityStore, TriggerVolumeManager> var1) {
      this.managerResourceType = var1;
      this.query = Query.and(PlayerRef.getComponentType(), TransformComponent.getComponentType(), MovementManager.getComponentType());
   }

   @Nonnull
   @Override
   class="kw">public Query<EntityStore> getQuery() {
      class="kw">return this.query;
   }

   @Override
   class="kw">public void tick(float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5) {
      PlayerRef var6 = var3.getComponent(var2, PlayerRef.getComponentType());
      TransformComponent var7 = var3.getComponent(var2, TransformComponent.getComponentType());
      if (var6 != null && var7 != null) {
         UUID var8 = var6.getUuid();
         boolean var9 = this.flyOverridden.contains(var8);
         TriggerVolumeManager var10 = var4.getResource(this.managerResourceType);
         boolean var11 = false;
         if (var10 != null && !var10.getVolumes().isEmpty()) {
            var11 = var10.hasActiveRule(var7.getPosition(), FlyRule.class);
         }

         if (var11 || var9) {
            MovementManager var12 = var3.getComponent(var2, MovementManager.getComponentType());
            if (var12 != null) {
               applyMovement(var12, var6, var11);
            }

            if (var11) {
               this.flyOverridden.add(var8);
            } else {
               this.flyOverridden.remove(var8);
            }
         }
      }
   }

   class="kw">private class="kw">static void applyMovement(@Nonnull MovementManager var0, @Nonnull PlayerRef var1, boolean var2) {
      MovementSettings var3 = var0.getDefaultSettings();
      MovementSettings var4 = var0.getSettings();
      if (var3 != null && var4 != null) {
         FlyMode var5;
         if (var4.fly == FlyMode.Forced) {
            var5 = FlyMode.Forced;
         } else if (var2 && var3.fly == FlyMode.Disabled) {
            var5 = FlyMode.Allowed;
         } else {
            var5 = var3.fly;
         }

         if (var4.fly != var5) {
            var4.fly = var5;
            var0.update(var1.getPacketHandler());
         }
      }
   }

   class="kw">public void revertPlayer(@Nonnull Holder<EntityStore> var1) {
      PlayerRef var2 = var1.getComponent(PlayerRef.getComponentType());
      if (var2 != null) {
         if (this.flyOverridden.remove(var2.getUuid())) {
            MovementManager var3 = var1.getComponent(MovementManager.getComponentType());
            MovementSettings var4 = var3 != null ? var3.getDefaultSettings() : null;
            MovementSettings var5 = var3 != null ? var3.getSettings() : null;
            if (var4 != null && var5 != null && var5.fly != FlyMode.Forced) {
               var5.fly = var4.fly;
               var3.update(var2.getPacketHandler());
            }
         }
      }
   }

   class="kw">public void forgetPlayer(@Nonnull UUID var1) {
      this.flyOverridden.remove(var1);
   }
}