TeleporterSettingsPageSupplier class
Пакет: com.hypixel.hytale.builtin.adventure.teleporter.page
Файл: com/hypixel/hytale/builtin/adventure/teleporter/page/TeleporterSettingsPageSupplier.java
implements: OpenCustomUIInteraction.CustomPageSupplier
Поля (11)
| Модификаторы | Тип | Имя |
|---|---|---|
|
Ref |
var10 |
|
BlockComponentSection |
var11 |
|
int |
var12 |
|
Ref |
var13 |
|
|
var13 |
|
Holder |
var14 |
|
BlockPosition |
var5 |
|
Store |
var6 |
|
World |
var7 |
|
ChunkStore |
var8 |
|
Store |
var9 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
if if(var5 == null) |
|
|
if if(var11 == null) |
|
|
if if(!this.create) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.teleporter.page;
class="kw">import com.hypixel.hytale.builtin.adventure.teleporter.component.Teleporter;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.protocol.BlockPosition;
class="kw">import com.hypixel.hytale.server.core.entity.InteractionContext;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.pages.CustomUIPage;
class="kw">import com.hypixel.hytale.server.core.modules.block.BlockModule;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.server.OpenCustomUIInteraction;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.BlockComponentSection;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class TeleporterSettingsPageSupplier class="kw">implements OpenCustomUIInteraction.CustomPageSupplier {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<TeleporterSettingsPageSupplier> CODEC = BuilderCodec.builder(
TeleporterSettingsPageSupplier.class, TeleporterSettingsPageSupplier::new
)
.appendInherited(
new KeyedCodec<>("Create", Codec.BOOLEAN), (var0, var1) -> var0.create = var1, var0 -> var0.create, (var0, var1) -> var0.create = var1.create
)
.add()
.appendInherited(
new KeyedCodec<>("Mode", TeleporterSettingsPage.Mode.CODEC),
(var0, var1) -> var0.mode = var1,
var0 -> var0.mode,
(var0, var1) -> var0.mode = var1.mode
)
.add()
.build();
class="kw">private boolean create = true;
class="kw">private TeleporterSettingsPage.Mode mode = TeleporterSettingsPage.Mode.FULL;
class="kw">public TeleporterSettingsPageSupplier() {
}
@Nullable
@Override
class="kw">public CustomUIPage tryCreate(
@Nonnull Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2, @Nonnull PlayerRef var3, @Nonnull InteractionContext var4
) {
BlockPosition var5 = var4.getTargetBlock();
if (var5 == null) {
class="kw">return null;
}
Store var6 = var1.getStore();
World var7 = var6.getExternalData().getWorld();
ChunkStore var8 = var7.getChunkStore();
Store var9 = var8.getStore();
Ref var10 = var8.getChunkSectionReferenceAtBlock(var5.x, var5.y, var5.z);
BlockComponentSection var11 = var10 != null && var10.isValid() ? var9.getComponent(var10, BlockComponentSection.getComponentType()) : null;
if (var11 == null) {
class="kw">return null;
}
int var12 = ChunkUtil.indexBlock(var5.x, var5.y, var5.z);
Ref var13 = var11.getBlockReference(var12);
if (var13 == null || !var13.isValid()) {
if (!this.create) {
class="kw">return null;
}
Holder var14 = ChunkStore.REGISTRY.newHolder();
var14.putComponent(BlockModule.BlockStateInfo.getComponentType(), new BlockModule.BlockStateInfo(var12, var10));
var14.ensureComponent(Teleporter.getComponentType());
var13 = var9.addEntity(var14, AddReason.SPAWN);
}
class="kw">return var13 != null && var13.isValid() ? new TeleporterSettingsPage(var3, var13, this.mode) : null;
}
}