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;
}
}