ItemContainerBlockSpatialSystem class

Пакет: com.hypixel.hytale.server.core.modules.block.system

Файл: com/hypixel/hytale/server/core/modules/block/system/ItemContainerBlockSpatialSystem.java

extends: SpatialSystem<ChunkStore>

Поля (6)

МодификаторыТипИмя
BlockModule.BlockStateInfo var3
Ref var4
ChunkSection var5
int var6
int var7
int var8

Методы (3)

МодификаторыВозвратСигнатура
abstract return new Vector3dreturn new Vector3d(var6, var7, var8)
if if(var3 == null)
abstract super super(var1)

Исходный код

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

class="kw">import com.hypixel.hytale.component.ArchetypeChunk;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.ResourceType;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.query.Query;
class="kw">import com.hypixel.hytale.component.spatial.SpatialResource;
class="kw">import com.hypixel.hytale.component.spatial.SpatialSystem;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.server.core.modules.block.BlockModule;
class="kw">import com.hypixel.hytale.server.core.modules.block.components.ItemContainerBlock;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.ChunkSection;
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">import org.joml.Vector3d;

class="kw">public class ItemContainerBlockSpatialSystem class="kw">extends SpatialSystem<ChunkStore> {
   @Nonnull
   class="kw">public class="kw">static class="kw">final Query<ChunkStore> QUERY = ItemContainerBlock.getComponentType();

   class="kw">public ItemContainerBlockSpatialSystem(ResourceType<ChunkStore, SpatialResource<Ref<ChunkStore>, ChunkStore>> var1) {
      super(var1);
   }

   @Override
   class="kw">public void tick(float var1, int var2, @Nonnull Store<ChunkStore> var3) {
      if (var3.getResource(BlockModule.BlockStateInfoNeedRebuild.getResourceType()).invalidateAndReturnIfNeedRebuild()) {
         super.tick(var1, var2, var3);
      }
   }

   @Override
   class="kw">public Vector3d getPosition(@Nonnull ArchetypeChunk<ChunkStore> var1, int var2) {
      BlockModule.BlockStateInfo var3 = var1.getComponent(var2, BlockModule.BlockStateInfo.getComponentType());
      if (var3 == null) {
         class="kw">return null;
      }

      Ref var4 = var3.getSectionRef();
      if (!var4.isValid()) {
         class="kw">return null;
      }

      ChunkSection var5 = var4.getStore().getComponent(var4, ChunkSection.getComponentType());
      int var6 = var5.getX() << 5 | ChunkUtil.xFromIndex(var3.getIndex());
      int var7 = var5.getY() << 5 | ChunkUtil.yFromIndex(var3.getIndex());
      int var8 = var5.getZ() << 5 | ChunkUtil.zFromIndex(var3.getIndex());
      class="kw">return new Vector3d(var6, var7, var8);
   }

   @Nullable
   @Override
   class="kw">public Query<ChunkStore> getQuery() {
      class="kw">return QUERY;
   }
}