EntityAddRemove class

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

Файл: com/hypixel/hytale/builtin/adventure/wilderness/system/WildernessTrackerSystems.java

extends: RefSystem<ChunkStore>

Поля (2)

МодификаторыТипИмя
RespawnBlock var5
RespawnBlock var5

Методы (3)

МодификаторыВозвратСигнатура
public Query<ChunkStore> getQuerypublic Query<ChunkStore> getQuery()
public void onEntityAddedpublic void onEntityAdded(@Nonnull Ref<ChunkStore> var1, @Nonnull AddReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4)
public void onEntityRemovepublic void onEntityRemove(@Nonnull Ref<ChunkStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.adventure.wilderness.WildernessConfig;
class="kw">import com.hypixel.hytale.builtin.adventure.wilderness.resource.WildernessTracker;
class="kw">import com.hypixel.hytale.builtin.adventure.wilderness.resource.WildernessVisitor;
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.server.core.modules.block.BlockModule;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.ChunkSection;
class="kw">import com.hypixel.hytale.server.core.universe.world.meta.state.RespawnBlock;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class WildernessTrackerSystems {
   class="kw">protected class="kw">static class="kw">final ComponentType<ChunkStore, ChunkSection> CHUNK_SECTION_COMPONENT_TYPE = ChunkSection.getComponentType();
   class="kw">protected class="kw">static class="kw">final ComponentType<ChunkStore, RespawnBlock> SPAWN_BLOCK_COMPONENT_TYPE = RespawnBlock.getComponentType();
   class="kw">protected class="kw">static class="kw">final ComponentType<ChunkStore, BlockModule.BlockStateInfo> BLOCK_STATE_COMPONENT_TYPE = BlockModule.BlockStateInfo.getComponentType();
   class="kw">protected class="kw">static class="kw">final Query<ChunkStore> SPAWN_BLOCKSTATE_QUERY = Query.and(BLOCK_STATE_COMPONENT_TYPE, SPAWN_BLOCK_COMPONENT_TYPE);

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

   class="kw">public class="kw">static WildernessTracker reload(@Nonnull World var0) {
      Store var1 = var0.getChunkStore().getStore();
      var1.assertThread();
      WildernessConfig var2 = WildernessConfig.getOrDefault(var0);
      WildernessTracker var3 = new WildernessTracker(var2);
      if (var3.isEnabled()) {
         try (WildernessVisitor.ChunkVisitor var4 = var1.getResource(WildernessVisitor.getChunkResourceType())) {
            var1.forEachEntityParallel(SPAWN_BLOCKSTATE_QUERY, var4.setup(var3, (var0x, var1x, var2x, var3x) -> {
               BlockModule.BlockStateInfo var4 = var1x.getComponent(var0x, BLOCK_STATE_COMPONENT_TYPE);
               assert var4 != null;
               RespawnBlock var5 = var1x.getComponent(var0x, SPAWN_BLOCK_COMPONENT_TYPE);
               assert var5 != null;
               ChunkSection var6 = var2x.getComponent(var4.getSectionRef(), CHUNK_SECTION_COMPONENT_TYPE);
               assert var6 != null;
               int var7 = var6.getX();
               int var8 = var6.getZ();
               int var9 = var6.getY();
               boolean var10 = var5.getOwnerUUID() != null;
               var3x.addHomeChunk(var7, var9, var8, var10);
            }));
         }
      }

      var1.replaceResource(WildernessTracker.getResourceType(), var3);
      class="kw">return var3;
   }

   class="kw">public class="kw">static class ComponentAddRemove class="kw">extends RefChangeSystem<ChunkStore, RespawnBlock> {
      class="kw">public ComponentAddRemove() {
      }

      @Nonnull
      @Override
      class="kw">public Query<ChunkStore> getQuery() {
         class="kw">return WildernessTrackerSystems.SPAWN_BLOCKSTATE_QUERY;
      }

      @Nonnull
      @Override
      class="kw">public ComponentType<ChunkStore, RespawnBlock> componentType() {
         class="kw">return WildernessTrackerSystems.SPAWN_BLOCK_COMPONENT_TYPE;
      }

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

      class="kw">public void onComponentRemoved(
         @Nonnull Ref<ChunkStore> var1, @Nonnull RespawnBlock var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
      ) {
         onRemove(var1, var2, var4);
      }

      class="kw">public void onComponentSet(
         @Nonnull Ref<ChunkStore> var1,
         @Nullable RespawnBlock var2,
         @Nonnull RespawnBlock var3,
         @Nonnull Store<ChunkStore> var4,
         @Nonnull CommandBuffer<ChunkStore> var5
      ) {
         WildernessTracker var6 = var5.getResource(WildernessTracker.getResourceType());
         if (!var6.isDisabled()) {
            if (var2 == null) {
               onAdd(var1, var3, var5);
            } else {
               boolean var7 = var3.getOwnerUUID() != null;
               boolean var8 = var2.getOwnerUUID() != null;
               if (var7 != var8) {
                  BlockModule.BlockStateInfo var9 = var5.getComponent(var1, WildernessTrackerSystems.BLOCK_STATE_COMPONENT_TYPE);
                  assert var9 != null : "System query matched an entity that does not have component: BlockModule.BlockStateInfo";
                  ChunkSection var10 = var5.getComponent(var9.getSectionRef(), WildernessTrackerSystems.CHUNK_SECTION_COMPONENT_TYPE);
                  if (var10 != null) {
                     int var11 = var10.getX();
                     int var12 = var10.getZ();
                     int var13 = var10.getY();
                     var6.removeHomeChunk(var11, var13, var12, var8);
                     var6.addHomeChunk(var11, var13, var12, var7);
                  }
               }
            }
         }
      }

      class="kw">protected class="kw">static void onAdd(@Nonnull Ref<ChunkStore> var0, @Nonnull RespawnBlock var1, @Nonnull CommandBuffer<ChunkStore> var2) {
         WildernessTracker var3 = var2.getResource(WildernessTracker.getResourceType());
         if (!var3.isDisabled()) {
            BlockModule.BlockStateInfo var4 = var2.getComponent(var0, WildernessTrackerSystems.BLOCK_STATE_COMPONENT_TYPE);
            assert var4 != null : "System query matched an entity that does not have component: BlockModule.BlockStateInfo";
            ChunkSection var5 = var2.getComponent(var4.getSectionRef(), WildernessTrackerSystems.CHUNK_SECTION_COMPONENT_TYPE);
            if (var5 != null) {
               int var6 = var5.getX();
               int var7 = var5.getZ();
               int var8 = var5.getY();
               boolean var9 = var1.getOwnerUUID() != null;
               var3.addHomeChunk(var6, var8, var7, var9);
            }
         }
      }

      class="kw">protected class="kw">static void onRemove(@Nonnull Ref<ChunkStore> var0, @Nonnull RespawnBlock var1, @Nonnull CommandBuffer<ChunkStore> var2) {
         WildernessTracker var3 = var2.getResource(WildernessTracker.getResourceType());
         if (!var3.isDisabled()) {
            BlockModule.BlockStateInfo var4 = var2.getComponent(var0, WildernessTrackerSystems.BLOCK_STATE_COMPONENT_TYPE);
            assert var4 != null : "System query matched an entity that does not have component: BlockModule.BlockStateInfo";
            ChunkSection var5 = var2.getComponent(var4.getSectionRef(), WildernessTrackerSystems.CHUNK_SECTION_COMPONENT_TYPE);
            if (var5 != null) {
               int var6 = var5.getX();
               int var7 = var5.getZ();
               int var8 = var5.getY();
               boolean var9 = var1.getOwnerUUID() != null;
               var3.removeHomeChunk(var6, var8, var7, var9);
            }
         }
      }
   }

   class="kw">public class="kw">static class EntityAddRemove class="kw">extends RefSystem<ChunkStore> {
      class="kw">public EntityAddRemove() {
      }

      @Nonnull
      @Override
      class="kw">public Query<ChunkStore> getQuery() {
         class="kw">return WildernessTrackerSystems.SPAWN_BLOCKSTATE_QUERY;
      }

      @Override
      class="kw">public void onEntityAdded(
         @Nonnull Ref<ChunkStore> var1, @Nonnull AddReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
      ) {
         RespawnBlock var5 = var4.getComponent(var1, WildernessTrackerSystems.SPAWN_BLOCK_COMPONENT_TYPE);
         assert var5 != null : "System query matched an entity that does not have component: RespawnBlock";
         WildernessTrackerSystems.ComponentAddRemove.onAdd(var1, var5, var4);
      }

      @Override
      class="kw">public void onEntityRemove(
         @Nonnull Ref<ChunkStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
      ) {
         RespawnBlock var5 = var4.getComponent(var1, WildernessTrackerSystems.SPAWN_BLOCK_COMPONENT_TYPE);
         assert var5 != null : "System query matched an entity that does not have component: RespawnBlock";
         WildernessTrackerSystems.ComponentAddRemove.onRemove(var1, var5, var4);
      }
   }
}