ComponentAddRemove class
Пакет: com.hypixel.hytale.builtin.adventure.wilderness.system
Файл: com/hypixel/hytale/builtin/adventure/wilderness/system/WildernessTrackerSystems.java
extends: RefChangeSystem<ChunkStore, RespawnBlock>
Поля (22)
| Модификаторы | Тип | Имя |
|---|---|---|
|
ChunkSection |
var10 |
|
int |
var11 |
|
int |
var12 |
|
int |
var13 |
|
WildernessTracker |
var3 |
|
WildernessTracker |
var3 |
|
BlockModule.BlockStateInfo |
var4 |
|
BlockModule.BlockStateInfo |
var4 |
|
ChunkSection |
var5 |
|
ChunkSection |
var5 |
|
WildernessTracker |
var6 |
|
int |
var6 |
|
int |
var6 |
|
boolean |
var7 |
|
int |
var7 |
|
int |
var7 |
|
boolean |
var8 |
|
int |
var8 |
|
int |
var8 |
|
BlockModule.BlockStateInfo |
var9 |
|
boolean |
var9 |
|
boolean |
var9 |
Методы (15)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public ComponentType<ChunkStore, RespawnBlock> |
componentTypepublic ComponentType<ChunkStore, RespawnBlock> componentType() |
|
public Query<ChunkStore> |
getQuerypublic Query<ChunkStore> getQuery() |
|
|
if if(var2 == null) |
|
|
if if(var7 != var8) |
|
|
if if(var10 != null) |
|
|
if if(var5 != null) |
|
|
if if(var5 != null) |
|
protected static void |
onAddprotected static void onAdd(@Nonnull Ref<ChunkStore> var0, @Nonnull RespawnBlock var1, @Nonnull CommandBuffer<ChunkStore> var2) |
abstract |
|
onAdd onAdd(var1, var2, var4) |
abstract |
|
onAdd onAdd(var1, var3, var5) |
|
public void |
onComponentAddedpublic void onComponentAdded(@Nonnull Ref<ChunkStore> var1, @Nonnull RespawnBlock var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4) |
|
public void |
onComponentRemovedpublic void onComponentRemoved(@Nonnull Ref<ChunkStore> var1, @Nonnull RespawnBlock var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4) |
|
public void |
onComponentSetpublic void onComponentSet(@Nonnull Ref<ChunkStore> var1,
@Nullable RespawnBlock var2,
@Nonnull RespawnBlock var3,
@Nonnull Store<ChunkStore> var4,
@Nonnull CommandBuffer<ChunkStore> var5) |
|
protected static void |
onRemoveprotected static void onRemove(@Nonnull Ref<ChunkStore> var0, @Nonnull RespawnBlock var1, @Nonnull CommandBuffer<ChunkStore> var2) |
abstract |
|
onRemove onRemove(var1, var2, 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);
}
}
}