MovementStatesSystems class

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

Файл: com/hypixel/hytale/server/core/entity/movement/MovementStatesSystems.java

Поля (21)

МодификаторыТипИмя
private final ComponentType<EntityStore, MovementStatesComponent> movementStatesComponentComponentType
private final ComponentType<EntityStore, MovementStatesComponent> movementStatesComponentComponentType
private final ComponentType<EntityStore, MovementStatesComponent> movementStatesComponentType
private final ComponentType<EntityStore, Player> playerComponentType
private final Query<EntityStore> query
private final Query<EntityStore> query
MovementStatesUpdate var3
ComponentType var4
boolean var5
World var5
MovementStatesComponent var6
Player var6
EntityTrackerSystems.Visible var6
MovementStates var7
MovementStatesComponent var7
MovementStatesComponent var7
PlayerWorldData var8
MovementStates var8
SavedMovementStates var9
MovementStates var9
private final ComponentType<EntityStore, EntityTrackerSystems.Visible> visibleComponentType

Методы (17)

МодификаторыВозвратСигнатура
public AddSystempublic AddSystem(@Nonnull ComponentType<EntityStore, MovementStatesComponent> var1)
public PlayerInitSystempublic PlayerInitSystem(@Nonnull ComponentType<EntityStore, Player> var1, @Nonnull ComponentType<EntityStore, MovementStatesComponent> var2)
public TickingSystempublic TickingSystem(@Nonnull ComponentType<EntityStore, EntityTrackerSystems.Visible> var1, @Nonnull ComponentType<EntityStore, MovementStatesComponent> var2)
public static void copyMovementStatesFrompublic static void copyMovementStatesFrom(@Nonnull MovementStates var0, @Nonnull MovementStates var1)
abstract copyMovementStatesFrom copyMovementStatesFrom(var8, var9)
public SystemGroup<EntityStore> getGrouppublic SystemGroup<EntityStore> getGroup()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
if if(var5 && var6 != null)
public boolean isParallelpublic boolean isParallel(int var1, int var2)
public void onEntityAddpublic void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3)
public void onEntityAddedpublic void onEntityAdded(@Nonnull Ref<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onEntityRemovepublic void onEntityRemove(@Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onEntityRemovedpublic void onEntityRemoved(@Nonnull Holder<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3)
private static void queueUpdatesForprivate static void queueUpdatesFor(@Nonnull Ref<EntityStore> var0, @Nonnull Map<Ref<EntityStore>, EntityTrackerSystems.EntityViewer> var1, @Nonnull MovementStatesComponent var2)
public void tickpublic void tick(float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5)

Исходный код

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

class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.ArchetypeChunk;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.RemoveReason;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.SystemGroup;
class="kw">import com.hypixel.hytale.component.query.Query;
class="kw">import com.hypixel.hytale.component.system.HolderSystem;
class="kw">import com.hypixel.hytale.component.system.RefSystem;
class="kw">import com.hypixel.hytale.component.system.tick.EntityTickingSystem;
class="kw">import com.hypixel.hytale.protocol.MovementStates;
class="kw">import com.hypixel.hytale.protocol.MovementStatesUpdate;
class="kw">import com.hypixel.hytale.protocol.SavedMovementStates;
class="kw">import com.hypixel.hytale.server.core.entity.Frozen;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.data.PlayerWorldData;
class="kw">import com.hypixel.hytale.server.core.modules.entity.AllLegacyLivingEntityTypesQuery;
class="kw">import com.hypixel.hytale.server.core.modules.entity.tracker.EntityTrackerSystems;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.Map;
class="kw">import java.util.Map.Entry;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

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

   class="kw">public class="kw">static class AddSystem class="kw">extends HolderSystem<EntityStore> {
      @Nonnull
      class="kw">private class="kw">final ComponentType<EntityStore, MovementStatesComponent> movementStatesComponentComponentType;

      class="kw">public AddSystem(@Nonnull ComponentType<EntityStore, MovementStatesComponent> var1) {
         this.movementStatesComponentComponentType = var1;
      }

      @Override
      class="kw">public void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) {
         var1.ensureComponent(this.movementStatesComponentComponentType);
         ComponentType var4 = Frozen.getComponentType();
         boolean var5 = var1.getComponent(var4) != null;
         MovementStatesComponent var6 = var1.getComponent(this.movementStatesComponentComponentType);
         if (var5 && var6 != null) {
            MovementStates var7 = var6.getMovementStates();
            var7.idle = true;
            var7.horizontalIdle = true;
         }
      }

      @Override
      class="kw">public void onEntityRemoved(@Nonnull Holder<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3) {
      }

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

   class="kw">public class="kw">static class PlayerInitSystem class="kw">extends RefSystem<EntityStore> {
      @Nonnull
      class="kw">private class="kw">final Query<EntityStore> query;
      @Nonnull
      class="kw">private class="kw">final ComponentType<EntityStore, Player> playerComponentType;
      @Nonnull
      class="kw">private class="kw">final ComponentType<EntityStore, MovementStatesComponent> movementStatesComponentType;

      class="kw">public PlayerInitSystem(@Nonnull ComponentType<EntityStore, Player> var1, @Nonnull ComponentType<EntityStore, MovementStatesComponent> var2) {
         this.playerComponentType = var1;
         this.movementStatesComponentType = var2;
         this.query = Query.and(var1, var2);
      }

      @Override
      class="kw">public void onEntityAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         World var5 = var4.getExternalData().getWorld();
         Player var6 = var3.getComponent(var1, this.playerComponentType);
         assert var6 != null;
         MovementStatesComponent var7 = var3.getComponent(var1, this.movementStatesComponentType);
         assert var7 != null;
         PlayerWorldData var8 = var6.getPlayerConfigData().getPerWorldData(var5.getName());
         SavedMovementStates var9 = var8.getLastMovementStates();
         Player.applyMovementStates(var1, var9 != null ? var9 : new SavedMovementStates(), var7.getMovementStates(), var3);
      }

      @Override
      class="kw">public void onEntityRemove(
         @Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
      }

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

   class="kw">public class="kw">static class TickingSystem class="kw">extends EntityTickingSystem<EntityStore> {
      @Nonnull
      class="kw">private class="kw">final ComponentType<EntityStore, EntityTrackerSystems.Visible> visibleComponentType;
      @Nonnull
      class="kw">private class="kw">final ComponentType<EntityStore, MovementStatesComponent> movementStatesComponentComponentType;
      @Nonnull
      class="kw">private class="kw">final Query<EntityStore> query;

      class="kw">public TickingSystem(
         @Nonnull ComponentType<EntityStore, EntityTrackerSystems.Visible> var1, @Nonnull ComponentType<EntityStore, MovementStatesComponent> var2
      ) {
         this.visibleComponentType = var1;
         this.query = Query.and(var2, var1);
         this.movementStatesComponentComponentType = var2;
      }

      @Nullable
      @Override
      class="kw">public SystemGroup<EntityStore> getGroup() {
         class="kw">return EntityTrackerSystems.QUEUE_UPDATE_GROUP;
      }

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

      @Override
      class="kw">public boolean isParallel(int var1, int var2) {
         class="kw">return EntityTickingSystem.maybeUseParallel(var1, var2);
      }

      @Override
      class="kw">public void tick(
         float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5
      ) {
         EntityTrackerSystems.Visible var6 = var3.getComponent(var2, this.visibleComponentType);
         assert var6 != null;
         MovementStatesComponent var7 = var3.getComponent(var2, this.movementStatesComponentComponentType);
         assert var7 != null;
         MovementStates var8 = var7.getMovementStates();
         MovementStates var9 = var7.getSentMovementStates();
         if (!var8.equals(var9)) {
            copyMovementStatesFrom(var8, var9);
            queueUpdatesFor(var3.getReferenceTo(var2), var6.visibleTo, var7);
         } else if (!var6.newlyVisibleTo.isEmpty()) {
            queueUpdatesFor(var3.getReferenceTo(var2), var6.newlyVisibleTo, var7);
         }
      }

      class="kw">private class="kw">static void queueUpdatesFor(
         @Nonnull Ref<EntityStore> var0, @Nonnull Map<Ref<EntityStore>, EntityTrackerSystems.EntityViewer> var1, @Nonnull MovementStatesComponent var2
      ) {
         MovementStatesUpdate var3 = new MovementStatesUpdate();
         var3.movementStates = var2.getMovementStates();

         for (Entry var5 : var1.entrySet()) {
            if (!var0.equals(var5.getKey())) {
               var5.getValue().queueUpdate(var0, var3);
            }
         }
      }

      class="kw">public class="kw">static void copyMovementStatesFrom(@Nonnull MovementStates var0, @Nonnull MovementStates var1) {
         var1.idle = var0.idle;
         var1.horizontalIdle = var0.horizontalIdle;
         var1.jumping = var0.jumping;
         var1.flying = var0.flying;
         var1.walking = var0.walking;
         var1.running = var0.running;
         var1.sprinting = var0.sprinting;
         var1.crouching = var0.crouching;
         var1.forcedCrouching = var0.forcedCrouching;
         var1.falling = var0.falling;
         var1.fallingFar = var0.fallingFar;
         var1.climbing = var0.climbing;
         var1.inFluid = var0.inFluid;
         var1.swimming = var0.swimming;
         var1.swimJumping = var0.swimJumping;
         var1.onGround = var0.onGround;
         var1.mantling = var0.mantling;
         var1.sliding = var0.sliding;
         var1.mounting = var0.mounting;
         var1.rolling = var0.rolling;
         var1.sitting = var0.sitting;
         var1.gliding = var0.gliding;
         var1.sleeping = var0.sleeping;
         var1.extraJumpsUsed = var0.extraJumpsUsed;
      }
   }
}