NPCMountSystems class

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

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

Поля (27)

МодификаторыТипИмя
private final ComponentType<EntityStore, NPCMountComponent> mountComponentType
private final ComponentType<EntityStore, NetworkId> networkIdComponentType
private final ComponentType<EntityStore, NPCEntity> npcEntityComponentType
private final ComponentType<EntityStore, NPCMountComponent> npcMountComponentType
private final ComponentType<EntityStore, Player> playerComponentType
private final ComponentType<EntityStore, Player> playerComponentType
private final ComponentType<EntityStore, Player> playerComponentType
private final Query<EntityStore> query
MountNPC var10
Player var11
NPCMountComponent var5
Player var5
Player var5
NPCMountComponent var5
NPCEntity var5
NPCEntity var5
Player var5
PlayerRef var6
GameModeType var6
PlayerRef var6
NPCMountComponent var6
Ref var7
NPCEntity var7
PlayerRef var7
NetworkId var8
Ref var8
int var9

Методы (26)

МодификаторыВозвратСигнатура
public DismountOnMountDeathpublic DismountOnMountDeath(@Nonnull ComponentType<EntityStore, NPCMountComponent> var1)
public DismountOnPlayerDeathpublic DismountOnPlayerDeath(@Nonnull ComponentType<EntityStore, Player> var1)
public DismountOnPlayerSpectatingpublic DismountOnPlayerSpectating(@Nonnull ComponentType<EntityStore, Player> var1)
public OnAddpublic OnAdd(@Nonnull ComponentType<EntityStore, NPCMountComponent> var1, @Nonnull ComponentType<EntityStore, NPCEntity> var2, @Nonnull ComponentType<EntityStore, NetworkId> var3)
public OnPlayerRemovepublic OnPlayerRemove(@Nonnull ComponentType<EntityStore, Player> var1)
public ComponentType<EntityStore, Spectating> componentTypepublic ComponentType<EntityStore, Spectating> componentType()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
if if(var6 != null)
if if(var6 != null)
if if(var6 == null)
if if(var11 != null)
if if(var7 != null)
public void onComponentAddedpublic void onComponentAdded(@Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentAddedpublic void onComponentAdded(@Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
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)
public void onEntityAddedpublic void onEntityAdded(@Nonnull Ref<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
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 onEntityRemovepublic void onEntityRemove(@Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
private void resetOriginalRoleMountprivate void resetOriginalRoleMount(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull CommandBuffer<EntityStore> var3, @Nonnull NPCMountComponent var4)

Исходный код

Показать/скрыть
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;
      }
   }
}