DismountOnPlayerSpectating class

Пакет: com.hypixel.hytale.builtin.mounts

Файл: com/hypixel/hytale/builtin/mounts/NPCMountSystems.java

extends: RefChangeSystem<EntityStore, Spectating>

Поля (3)

МодификаторыТипИмя
private final ComponentType<EntityStore, Player> playerComponentType
Player var5
GameModeType var6

Методы (6)

МодификаторыВозвратСигнатура
public ComponentType<EntityStore, Spectating> componentTypepublic ComponentType<EntityStore, Spectating> componentType()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
if if(var6 != null)
public void onComponentAddedpublic void onComponentAdded(@Nonnull Ref<EntityStore> var1, @Nonnull Spectating var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentRemovedpublic void onComponentRemoved(@Nonnull Ref<EntityStore> var1, @Nonnull Spectating var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentSetpublic void onComponentSet(@Nonnull Ref<EntityStore> var1, @Nullable Spectating var2, @Nonnull Spectating var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5)

Исходный код

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

class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.ComponentType;
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.query.Query;
class="kw">import com.hypixel.hytale.component.system.RefChangeSystem;
class="kw">import com.hypixel.hytale.component.system.RefSystem;
class="kw">import com.hypixel.hytale.protocol.packets.interaction.MountNPC;
class="kw">import com.hypixel.hytale.server.core.asset.type.gamemode.GameModeType;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.Interactable;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.Spectating;
class="kw">import com.hypixel.hytale.server.core.modules.entity.damage.DeathComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.damage.DeathSystems;
class="kw">import com.hypixel.hytale.server.core.modules.entity.gamemode.GameModeTypeState;
class="kw">import com.hypixel.hytale.server.core.modules.entity.gamemode.GameModeTypes;
class="kw">import com.hypixel.hytale.server.core.modules.entity.tracker.NetworkId;
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 com.hypixel.hytale.server.npc.entities.NPCEntity;
class="kw">import com.hypixel.hytale.server.npc.systems.RoleChangeSystem;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

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

   class="kw">public class="kw">static class DismountOnMountDeath class="kw">extends DeathSystems.OnDeathSystem {
      @Nonnull
      class="kw">private class="kw">final ComponentType<EntityStore, NPCMountComponent> npcMountComponentType;

      class="kw">public DismountOnMountDeath(@Nonnull ComponentType<EntityStore, NPCMountComponent> var1) {
         this.npcMountComponentType = var1;
      }

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

      class="kw">public void onComponentAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         NPCMountComponent var5 = var3.getComponent(var1, this.npcMountComponentType);
         assert var5 != null;
         PlayerRef var6 = var5.getOwnerPlayerRef();
         if (var6 != null) {
            Ref var7 = var6.getReference();
            if (var7 != null && var7.isValid()) {
               MountPlugin.resetOriginalPlayerMovementSettings(var7, var3);
            }
         }
      }
   }

   class="kw">public class="kw">static class DismountOnPlayerDeath class="kw">extends DeathSystems.OnDeathSystem {
      @Nonnull
      class="kw">private class="kw">final ComponentType<EntityStore, Player> playerComponentType;

      class="kw">public DismountOnPlayerDeath(@Nonnull ComponentType<EntityStore, Player> var1) {
         this.playerComponentType = var1;
      }

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

      class="kw">public void onComponentAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         Player var5 = var3.getComponent(var1, this.playerComponentType);
         assert var5 != null;
         MountPlugin.checkDismountNpc(var4, var1, var5);
      }
   }

   class="kw">public class="kw">static class DismountOnPlayerSpectating class="kw">extends RefChangeSystem<EntityStore, Spectating> {
      @Nonnull
      class="kw">private class="kw">final ComponentType<EntityStore, Player> playerComponentType;

      class="kw">public DismountOnPlayerSpectating(@Nonnull ComponentType<EntityStore, Player> var1) {
         this.playerComponentType = var1;
      }

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

      @Nonnull
      @Override
      class="kw">public ComponentType<EntityStore, Spectating> componentType() {
         class="kw">return Spectating.getComponentType();
      }

      class="kw">public void onComponentAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull Spectating var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         Player var5 = var3.getComponent(var1, this.playerComponentType);
         assert var5 != null;
         if (var5.getMountEntityId() != 0) {
            MountPlugin.checkDismountNpc(var4, var1, var5);
            GameModeType var6 = GameModeTypes.getCurrentType(var1, var4);
            if (var6 != null) {
               GameModeTypeState.applyMovement(var1, var6, var5, var4);
            }
         }
      }

      class="kw">public void onComponentSet(
         @Nonnull Ref<EntityStore> var1,
         @Nullable Spectating var2,
         @Nonnull Spectating var3,
         @Nonnull Store<EntityStore> var4,
         @Nonnull CommandBuffer<EntityStore> var5
      ) {
      }

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

   class="kw">public class="kw">static class OnAdd class="kw">extends RefSystem<EntityStore> {
      @Nonnull
      class="kw">private class="kw">final ComponentType<EntityStore, NPCMountComponent> mountComponentType;
      @Nonnull
      class="kw">private class="kw">final ComponentType<EntityStore, NPCEntity> npcEntityComponentType;
      @Nonnull
      class="kw">private class="kw">final ComponentType<EntityStore, NetworkId> networkIdComponentType;
      @Nonnull
      class="kw">private class="kw">final Query<EntityStore> query;

      class="kw">public OnAdd(
         @Nonnull ComponentType<EntityStore, NPCMountComponent> var1,
         @Nonnull ComponentType<EntityStore, NPCEntity> var2,
         @Nonnull ComponentType<EntityStore, NetworkId> var3
      ) {
         this.mountComponentType = var1;
         this.npcEntityComponentType = var2;
         this.networkIdComponentType = var3;
         this.query = Query.and(var1, var2, var3);
      }

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

      @Override
      class="kw">public void onEntityAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         NPCMountComponent var5 = var3.getComponent(var1, this.mountComponentType);
         assert var5 != null;
         PlayerRef var6 = var5.getOwnerPlayerRef();
         if (var6 == null) {
            this.resetOriginalRoleMount(var1, var3, var4, var5);
         } else {
            NPCEntity var7 = var3.getComponent(var1, this.npcEntityComponentType);
            assert var7 != null;
            NetworkId var8 = var3.getComponent(var1, this.networkIdComponentType);
            assert var8 != null;
            int var9 = var8.getId();
            MountNPC var10 = new MountNPC(var5.getAnchorX(), var5.getAnchorY(), var5.getAnchorZ(), var9);
            Player var11 = var6.getComponent(Player.getComponentType());
            if (var11 != null) {
               var11.setMountEntityId(var9);
               var6.getPacketHandler().write(var10);
               var4.removeComponent(var1, Interactable.getComponentType());
            }
         }
      }

      class="kw">private void resetOriginalRoleMount(
         @Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull CommandBuffer<EntityStore> var3, @Nonnull NPCMountComponent var4
      ) {
         NPCEntity var5 = var2.getComponent(var1, this.npcEntityComponentType);
         assert var5 != null;
         RoleChangeSystem.requestRoleChange(var1, var5.getRole(), var4.getOriginalRoleIndex(), false, "Idle", null, var2);
         var3.removeComponent(var1, this.mountComponentType);
         var3.ensureComponent(var1, Interactable.getComponentType());
      }

      @Override
      class="kw">public void onEntityRemove(
         @Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         NPCEntity var5 = var3.getComponent(var1, this.npcEntityComponentType);
         assert var5 != null;
         if (!var5.getRole().isRoleChangeRequested()) {
            NPCMountComponent var6 = var3.getComponent(var1, this.mountComponentType);
            assert var6 != null;
            PlayerRef var7 = var6.getOwnerPlayerRef();
            if (var7 != null) {
               Ref var8 = var7.getReference();
               if (var8 != null && var8.isValid()) {
                  MountPlugin.resetOriginalPlayerMovementSettings(var8, var3);
               }
            }
         }
      }
   }

   class="kw">public class="kw">static class OnPlayerRemove class="kw">extends RefSystem<EntityStore> {
      @Nonnull
      class="kw">private class="kw">final ComponentType<EntityStore, Player> playerComponentType;

      class="kw">public OnPlayerRemove(@Nonnull ComponentType<EntityStore, Player> var1) {
         this.playerComponentType = var1;
      }

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

      @Override
      class="kw">public void onEntityRemove(
         @Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         Player var5 = var4.getComponent(var1, this.playerComponentType);
         assert var5 != null;
         MountPlugin.checkDismountNpc(var4, var1, var5);
      }

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