OnRemove class
Пакет: com.hypixel.hytale.builtin.instances.blocks
Файл: com/hypixel/hytale/builtin/instances/blocks/ConfigurableInstanceBlock.java
extends: RefSystem<ChunkStore>
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
|
ConfigurableInstanceBlock |
var5 |
Методы (5)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public Query<ChunkStore> |
getQuerypublic Query<ChunkStore> getQuery() |
|
|
if if(var5.closeOnRemove) |
|
|
if if(var5.worldUUID != null) |
|
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.instances.blocks;
class="kw">import com.hypixel.hytale.builtin.instances.InstancesPlugin;
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.CommandBuffer;
class="kw">import com.hypixel.hytale.component.Component;
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.RefSystem;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.math.vector.Vector3dUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import java.util.UUID;
class="kw">import java.util.concurrent.CompletableFuture;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;
class="kw">public class ConfigurableInstanceBlock class="kw">implements Component<ChunkStore> {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<ConfigurableInstanceBlock> CODEC = BuilderCodec.builder(ConfigurableInstanceBlock.class, ConfigurableInstanceBlock::new)
.appendInherited(
new KeyedCodec<>("WorldName", Codec.UUID_BINARY),
(var0, var1) -> var0.worldUUID = var1,
var0 -> var0.worldUUID,
(var0, var1) -> var0.worldUUID = var1.worldUUID
)
.add()
.appendInherited(
new KeyedCodec<>("CloseOnBlockRemove", Codec.BOOLEAN),
(var0, var1) -> var0.closeOnRemove = var1,
var0 -> var0.closeOnRemove,
(var0, var1) -> var0.closeOnRemove = var1.closeOnRemove
)
.add()
.appendInherited(
new KeyedCodec<>("InstanceName", Codec.STRING),
(var0, var1) -> var0.instanceName = var1,
var0 -> var0.instanceName,
(var0, var1) -> var0.instanceName = var1.instanceName
)
.add()
.appendInherited(
new KeyedCodec<>("InstanceKey", Codec.STRING),
(var0, var1) -> var0.instanceKey = var1,
var0 -> var0.instanceKey,
(var0, var1) -> var0.instanceKey = var1.instanceKey
)
.add()
.appendInherited(
new KeyedCodec<>("PositionOffset", Vector3dUtil.CODEC),
(var0, var1) -> var0.positionOffset = var1,
var0 -> var0.positionOffset,
(var0, var1) -> var0.positionOffset = var1.positionOffset
)
.add()
.appendInherited(
new KeyedCodec<>("Rotation", Rotation3f.PARTIAL_TELEPORT_CODEC),
(var0, var1) -> var0.rotation = var1,
var0 -> var0.rotation,
(var0, var1) -> var0.rotation = var1.rotation
)
.add()
.appendInherited(
new KeyedCodec<>("PersonalReturnPoint", Codec.BOOLEAN),
(var0, var1) -> var0.personalReturnPoint = var1,
var0 -> var0.personalReturnPoint,
(var0, var1) -> var0.personalReturnPoint = var1.personalReturnPoint
)
.add()
.appendInherited(
new KeyedCodec<>("RemoveBlockAfter", Codec.DOUBLE),
(var0, var1) -> var0.removeBlockAfter = var1,
var0 -> var0.removeBlockAfter,
(var0, var1) -> var0.removeBlockAfter = var1.removeBlockAfter
)
.add()
.build();
class="kw">protected UUID worldUUID;
class="kw">protected CompletableFuture<World> worldFuture;
class="kw">protected boolean closeOnRemove = true;
class="kw">private String instanceName;
class="kw">private String instanceKey;
@Nullable
class="kw">private Vector3d positionOffset;
@Nullable
class="kw">private Rotation3f rotation;
class="kw">private boolean personalReturnPoint = false;
class="kw">private double removeBlockAfter = -1.0;
@Nonnull
class="kw">public class="kw">static ComponentType<ChunkStore, ConfigurableInstanceBlock> getComponentType() {
class="kw">return InstancesPlugin.get().getConfigurableInstanceBlockComponentType();
}
class="kw">public ConfigurableInstanceBlock() {
}
class="kw">public ConfigurableInstanceBlock(
UUID var1, boolean var2, String var3, String var4, @Nullable Vector3d var5, @Nullable Rotation3f var6, boolean var7, double var8
) {
this.worldUUID = var1;
this.closeOnRemove = var2;
this.instanceName = var3;
this.instanceKey = var4;
this.positionOffset = var5;
this.rotation = var6;
this.personalReturnPoint = var7;
this.removeBlockAfter = var8;
}
class="kw">public UUID getWorldUUID() {
class="kw">return this.worldUUID;
}
class="kw">public void setWorldUUID(UUID var1) {
this.worldUUID = var1;
}
class="kw">public CompletableFuture<World> getWorldFuture() {
class="kw">return this.worldFuture;
}
class="kw">public void setWorldFuture(CompletableFuture<World> var1) {
this.worldFuture = var1;
}
class="kw">public boolean isCloseOnRemove() {
class="kw">return this.closeOnRemove;
}
class="kw">public void setCloseOnRemove(boolean var1) {
this.closeOnRemove = var1;
}
class="kw">public String getInstanceName() {
class="kw">return this.instanceName;
}
class="kw">public void setInstanceName(@Nonnull String var1) {
this.instanceName = var1;
}
class="kw">public String getInstanceKey() {
class="kw">return this.instanceKey;
}
class="kw">public void setInstanceKey(@Nonnull String var1) {
this.instanceKey = var1;
}
@Nullable
class="kw">public Vector3d getPositionOffset() {
class="kw">return this.positionOffset;
}
class="kw">public void setPositionOffset(@Nullable Vector3d var1) {
this.positionOffset = var1;
}
@Nullable
class="kw">public Rotation3f getRotation() {
class="kw">return this.rotation;
}
class="kw">public void setRotation(@Nullable Rotation3f var1) {
this.rotation = var1;
}
class="kw">public boolean isPersonalReturnPoint() {
class="kw">return this.personalReturnPoint;
}
class="kw">public void setPersonalReturnPoint(boolean var1) {
this.personalReturnPoint = var1;
}
class="kw">public double getRemoveBlockAfter() {
class="kw">return this.removeBlockAfter;
}
class="kw">public void setRemoveBlockAfter(double var1) {
this.removeBlockAfter = var1;
}
@Nullable
@Override
class="kw">public Component<ChunkStore> clone() {
class="kw">return new ConfigurableInstanceBlock(
this.worldUUID,
this.closeOnRemove,
this.instanceName,
this.instanceKey,
this.positionOffset,
this.rotation,
this.personalReturnPoint,
this.removeBlockAfter
);
}
class="kw">public class="kw">static class OnRemove class="kw">extends RefSystem<ChunkStore> {
class="kw">public OnRemove() {
}
@Override
class="kw">public void onEntityAdded(
@Nonnull Ref<ChunkStore> var1, @Nonnull AddReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
) {
}
@Override
class="kw">public void onEntityRemove(
@Nonnull Ref<ChunkStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
) {
ConfigurableInstanceBlock var5 = var4.getComponent(var1, ConfigurableInstanceBlock.getComponentType());
assert var5 != null;
if (var5.closeOnRemove) {
if (var5.worldUUID != null) {
InstancesPlugin.safeRemoveInstance(var5.worldUUID);
} else if (var5.worldFuture != null) {
var5.worldFuture.thenAccept(var0 -> InstancesPlugin.safeRemoveInstance(var0.getName()));
}
}
}
@Nullable
@Override
class="kw">public Query<ChunkStore> getQuery() {
class="kw">return ConfigurableInstanceBlock.getComponentType();
}
}
}