CarriedBlockSystems class

Пакет: com.hypixel.hytale.server.core.modules.interaction.components

Файл: com/hypixel/hytale/server/core/modules/interaction/components/CarriedBlockSystems.java

Поля (25)

МодификаторыТипИмя
static final String DROPPED_BLOCK_ENTITY_EFFECT_ID
private final ComponentType<EntityStore, CarriedBlock> carriedBlockComponentType
private final ComponentType<EntityStore, CarriedBlock> carriedBlockComponentType
private final ComponentType<EntityStore, EntityTrackerSystems.Visible> componentType
private final Query<EntityStore> query
private final Query<EntityStore> query
private final Query<EntityStore> query
private final Query<EntityStore> query
private final Set<Ref<EntityStore>> queue
Ref var1
World var2
CarriedBlockUpdate var3
String var3
String var3
EntityEffect var4
int var4
EntityEffect var5
EntityTrackerSystems.Visible var5
EffectControllerComponent var5
EffectControllerComponent var5
EffectControllerComponent var6
EntityTrackerSystems.Visible var6
CarriedBlock var7
Ref var8
private final ComponentType<EntityStore, EntityTrackerSystems.Visible> visibleComponentType

Методы (45)

МодификаторыВозвратСигнатура
public ApplyDroppedBlockEntityEffectpublic ApplyDroppedBlockEntityEffect()
public DropOnDeathpublic DropOnDeath()
public EntityTrackerAddAndRemovepublic EntityTrackerAddAndRemove(ComponentType<EntityStore, EntityTrackerSystems.Visible> var1)
public EntityTrackerUpdatepublic EntityTrackerUpdate(ComponentType<EntityStore, EntityTrackerSystems.Visible> var1)
public OnPlayerCarryBlockComponentChangepublic OnPlayerCarryBlockComponentChange()
public QueueResourcepublic QueueResource()
private static void applyEntityEffectFromCarriedBlockprivate static void applyEntityEffectFromCarriedBlock(@Nonnull Ref<EntityStore> var0, @Nonnull CarriedBlock var1, @Nonnull CommandBuffer<EntityStore> var2)
abstract applyEntityEffectFromCarriedBlock applyEntityEffectFromCarriedBlock(var1, var2, var4)
public Resource<EntityStore> clonepublic Resource<EntityStore> clone()
public ComponentType<EntityStore, CarriedBlock> componentTypepublic ComponentType<EntityStore, CarriedBlock> componentType()
public ComponentType<EntityStore, CarriedBlock> componentTypepublic ComponentType<EntityStore, CarriedBlock> componentType()
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()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public static ResourceType<EntityStore, CarriedBlockSystems.QueueResource> getResourceTypepublic static ResourceType<EntityStore, CarriedBlockSystems.QueueResource> getResourceType()
if if(var5 != null)
if if(var6 != null)
if if(var5 != null)
if if(var3 != null)
if if(var4 != null)
if if(var5 != null)
if if(var3 != null)
if if(var4 != Integer.MIN_VALUE)
if if(var5 != null)
public boolean isParallelpublic boolean isParallel(int var1, int var2)
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 CarriedBlock var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentAddedpublic void onComponentAdded(@Nonnull Ref<EntityStore> var1, @Nonnull CarriedBlock var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentRemovedpublic void onComponentRemoved(@Nonnull Ref<EntityStore> var1, @Nonnull CarriedBlock var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentRemovedpublic void onComponentRemoved(@Nonnull Ref<EntityStore> var1, @Nonnull CarriedBlock var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentSetpublic void onComponentSet(@Nonnull Ref<EntityStore> var1, CarriedBlock var2, @Nonnull CarriedBlock var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5)
public void onComponentSetpublic void onComponentSet(@Nonnull Ref<EntityStore> var1, @Nullable CarriedBlock var2, @Nonnull CarriedBlock 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 onEntityRemovepublic void onEntityRemove(@Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
static void onPlayerDisconnectvoid onPlayerDisconnect(@Nonnull PlayerDisconnectEvent var0)
private static void queueUpdatesForprivate static void queueUpdatesFor(Ref<EntityStore> var0, @Nonnull CarriedBlock var1, @Nonnull Map<Ref<EntityStore>, EntityTrackerSystems.EntityViewer> var2)
abstract queueUpdatesFor queueUpdatesFor(var8, var7, var6.visibleTo)
abstract queueUpdatesFor queueUpdatesFor(var8, var7, var6.newlyVisibleTo)
private static void removeEntityEffectOfCarriedBlockprivate static void removeEntityEffectOfCarriedBlock(@Nonnull Ref<EntityStore> var0, @Nonnull CarriedBlock var1, @Nonnull CommandBuffer<EntityStore> var2)
abstract removeEntityEffectOfCarriedBlock removeEntityEffectOfCarriedBlock(var1, var2, var4)
public void tickpublic void tick(float var1, int var2, @Nonnull Store<EntityStore> var3)
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.modules.interaction.components;

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.Ref;
class="kw">import com.hypixel.hytale.component.RemoveReason;
class="kw">import com.hypixel.hytale.component.Resource;
class="kw">import com.hypixel.hytale.component.ResourceType;
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.RefChangeSystem;
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.CarriedBlockUpdate;
class="kw">import com.hypixel.hytale.protocol.ComponentUpdateType;
class="kw">import com.hypixel.hytale.server.core.asset.type.entityeffect.config.EntityEffect;
class="kw">import com.hypixel.hytale.server.core.entity.effect.EffectControllerComponent;
class="kw">import com.hypixel.hytale.server.core.entity.entities.BlockEntity;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.event.events.player.PlayerDisconnectEvent;
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.tracker.EntityTrackerSystems;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.InteractionModule;
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.Set;
class="kw">import java.util.concurrent.ConcurrentHashMap;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class="kw">final class CarriedBlockSystems {
   class="kw">private CarriedBlockSystems() {
   }

   class="kw">public class="kw">static void onPlayerDisconnect(@Nonnull PlayerDisconnectEvent var0) {
      Ref var1 = var0.getPlayerRef().getReference();
      if (var1 != null && var1.isValid()) {
         World var2 = var1.getStore().getExternalData().getWorld();
         if (var2.isInThread()) {
            CarriedBlock.dropAndClear(var1, var1.getStore());
         } else {
            var2.execute(() -> {
               if (var1.isValid()) {
                  CarriedBlock.dropAndClear(var1, var1.getStore());
               }
            });
         }
      }
   }

   class="kw">public class="kw">static class ApplyDroppedBlockEntityEffect class="kw">extends RefSystem<EntityStore> {
      class="kw">static class="kw">final String DROPPED_BLOCK_ENTITY_EFFECT_ID = "Carry_Dropped_Block";
      @Nonnull
      class="kw">private class="kw">final Query<EntityStore> query = Query.and(CarriedBlock.getComponentType(), BlockEntity.getComponentType());

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

      @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
      ) {
         EntityEffect var5 = EntityEffect.getAssetMap().getAsset("Carry_Dropped_Block");
         if (var5 != null) {
            EffectControllerComponent var6 = var3.getComponent(var1, EffectControllerComponent.getComponentType());
            if (var6 != null) {
               var6.addEffect(var1, var5, var4);
            }
         }
      }

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

   class="kw">public class="kw">static class DropOnDeath class="kw">extends DeathSystems.OnDeathSystem {
      class="kw">public DropOnDeath() {
      }

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

      class="kw">public void onComponentAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         CarriedBlock.dropAndClear(var1, var4);
      }
   }

   class="kw">public class="kw">static class EntityTrackerAddAndRemove class="kw">extends RefChangeSystem<EntityStore, CarriedBlock> {
      class="kw">private class="kw">final ComponentType<EntityStore, CarriedBlock> carriedBlockComponentType = CarriedBlock.getComponentType();
      class="kw">private class="kw">final ComponentType<EntityStore, EntityTrackerSystems.Visible> visibleComponentType;
      @Nonnull
      class="kw">private class="kw">final Query<EntityStore> query;

      class="kw">public EntityTrackerAddAndRemove(ComponentType<EntityStore, EntityTrackerSystems.Visible> var1) {
         this.visibleComponentType = var1;
         this.query = Query.and(var1, this.carriedBlockComponentType, Player.getComponentType());
      }

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

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

      class="kw">public void onComponentAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull CarriedBlock var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         var4.getResource(CarriedBlockSystems.QueueResource.getResourceType()).queue.add(var1);
      }

      class="kw">public void onComponentSet(
         @Nonnull Ref<EntityStore> var1,
         CarriedBlock var2,
         @Nonnull CarriedBlock var3,
         @Nonnull Store<EntityStore> var4,
         @Nonnull CommandBuffer<EntityStore> var5
      ) {
         var5.getResource(CarriedBlockSystems.QueueResource.getResourceType()).queue.add(var1);
      }

      class="kw">public void onComponentRemoved(
         @Nonnull Ref<EntityStore> var1, @Nonnull CarriedBlock var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         EntityTrackerSystems.Visible var5 = var3.getComponent(var1, this.visibleComponentType);
         if (var5 != null) {
            for (EntityTrackerSystems.EntityViewer var7 : var5.visibleTo.values()) {
               var7.queueRemove(var1, ComponentUpdateType.CarriedBlock);
            }
         }
      }
   }

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

      class="kw">public EntityTrackerUpdate(ComponentType<EntityStore, EntityTrackerSystems.Visible> var1) {
         this.componentType = var1;
         this.query = Query.and(var1, CarriedBlock.getComponentType(), Player.getComponentType());
      }

      @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 Store<EntityStore> var3) {
         super.tick(var1, var2, var3);
         var3.getResource(CarriedBlockSystems.QueueResource.getResourceType()).queue.clear();
      }

      @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.componentType);
         CarriedBlock var7 = var3.getComponent(var2, CarriedBlock.getComponentType());
         Ref var8 = var3.getReferenceTo(var2);
         if (var5.getResource(CarriedBlockSystems.QueueResource.getResourceType()).queue.remove(var8)) {
            queueUpdatesFor(var8, var7, var6.visibleTo);
         } else if (!var6.newlyVisibleTo.isEmpty()) {
            queueUpdatesFor(var8, var7, var6.newlyVisibleTo);
         }
      }

      class="kw">private class="kw">static void queueUpdatesFor(
         Ref<EntityStore> var0, @Nonnull CarriedBlock var1, @Nonnull Map<Ref<EntityStore>, EntityTrackerSystems.EntityViewer> var2
      ) {
         CarriedBlockUpdate var3 = new CarriedBlockUpdate();
         var3.itemId = var1.getCarriedItemId();

         for (EntityTrackerSystems.EntityViewer var5 : var2.values()) {
            var5.queueUpdate(var0, var3);
         }
      }
   }

   class="kw">public class="kw">static class OnPlayerCarryBlockComponentChange class="kw">extends RefChangeSystem<EntityStore, CarriedBlock> {
      class="kw">private class="kw">final ComponentType<EntityStore, CarriedBlock> carriedBlockComponentType = CarriedBlock.getComponentType();
      @Nonnull
      class="kw">private class="kw">final Query<EntityStore> query = Query.and(this.carriedBlockComponentType, Player.getComponentType());

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

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

      class="kw">public void onComponentAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull CarriedBlock var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         applyEntityEffectFromCarriedBlock(var1, var2, var4);
      }

      class="kw">private class="kw">static void applyEntityEffectFromCarriedBlock(
         @Nonnull Ref<EntityStore> var0, @Nonnull CarriedBlock var1, @Nonnull CommandBuffer<EntityStore> var2
      ) {
         String var3 = var1.getEntityEffectId();
         if (var3 != null) {
            EntityEffect var4 = EntityEffect.getAssetMap().getAsset(var3);
            if (var4 != null) {
               EffectControllerComponent var5 = var2.getComponent(var0, EffectControllerComponent.getComponentType());
               if (var5 != null) {
                  var5.addEffect(var0, var4, var2);
               }
            }
         }
      }

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

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

      class="kw">private class="kw">static void removeEntityEffectOfCarriedBlock(@Nonnull Ref<EntityStore> var0, @Nonnull CarriedBlock var1, @Nonnull CommandBuffer<EntityStore> var2) {
         String var3 = var1.getEntityEffectId();
         if (var3 != null) {
            int var4 = EntityEffect.getAssetMap().getIndex(var3);
            if (var4 != Integer.MIN_VALUE) {
               EffectControllerComponent var5 = var2.getComponent(var0, EffectControllerComponent.getComponentType());
               if (var5 != null) {
                  var5.removeEffect(var0, var4, var2);
               }
            }
         }
      }

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

   class="kw">public class="kw">static class QueueResource class="kw">implements Resource<EntityStore> {
      class="kw">private class="kw">final Set<Ref<EntityStore>> queue = ConcurrentHashMap.newKeySet();

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

      class="kw">public class="kw">static ResourceType<EntityStore, CarriedBlockSystems.QueueResource> getResourceType() {
         class="kw">return InteractionModule.get().getCarriedBlockQueueResourceType();
      }

      @Nonnull
      @Override
      class="kw">public Resource<EntityStore> clone() {
         class="kw">return new CarriedBlockSystems.QueueResource();
      }
   }
}