CompanionBlockSpawnerBlock class
Пакет: com.hypixel.hytale.builtin.companionblockspawner
Файл: com/hypixel/hytale/builtin/companionblockspawner/CompanionBlockSpawnerBlock.java
implements: Component<ChunkStore>
Поля (2)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
float |
RECONCILE_INTERVAL_S |
|
float |
var1 |
Методы (6)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
static |
ComponentType<ChunkStore, CompanionBlockSpawnerBlock> |
getComponentTypeComponentType<ChunkStore, CompanionBlockSpawnerBlock> getComponentType() |
public |
boolean |
hasMarkerboolean hasMarker() |
public |
void |
resetReconcileCountdownvoid resetReconcileCountdown() |
public |
void |
setClaimedByBlockvoid setClaimedByBlock(@Nullable Vector3i var1) |
public |
void |
setMarkerRefvoid setMarkerRef(@Nullable PersistentRef var1) |
public |
boolean |
tickReconcileCountdownboolean tickReconcileCountdown(float var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.companionblockspawner;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.component.Component;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.math.vector.Vector3iUtil;
class="kw">import com.hypixel.hytale.server.core.entity.reference.PersistentRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import java.util.concurrent.ThreadLocalRandom;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3i;
class="kw">public class CompanionBlockSpawnerBlock class="kw">implements Component<ChunkStore> {
class="kw">private class="kw">static class="kw">final float RECONCILE_INTERVAL_S = 30.0F;
class="kw">private class="kw">static class="kw">final float RECONCILE_JITTER_MIN_RATIO = 0.75F;
class="kw">private class="kw">static class="kw">final float RECONCILE_JITTER_MAX_RATIO = 1.25F;
class="kw">public class="kw">static class="kw">final BuilderCodec<CompanionBlockSpawnerBlock> CODEC = BuilderCodec.builder(CompanionBlockSpawnerBlock.class, CompanionBlockSpawnerBlock::new)
.append(new KeyedCodec<>("Marker", PersistentRef.CODEC), (var0, var1) -> var0.markerRef = var1, var0 -> var0.markerRef)
.add()
.append(new KeyedCodec<>("ClaimedByBlock", Vector3iUtil.CODEC), (var0, var1) -> var0.claimedByBlock = var1, var0 -> var0.claimedByBlock)
.add()
.build();
@Nullable
class="kw">private PersistentRef markerRef;
@Nullable
class="kw">private Vector3i claimedByBlock;
class="kw">private class="kw">transient float reconcileCountdown = 30.0F;
class="kw">public class="kw">static ComponentType<ChunkStore, CompanionBlockSpawnerBlock> getComponentType() {
class="kw">return CompanionBlockSpawnerPlugin.get().getSpawnerBlockComponentType();
}
class="kw">public CompanionBlockSpawnerBlock() {
}
class="kw">private CompanionBlockSpawnerBlock(@Nullable PersistentRef var1, @Nullable Vector3i var2) {
this.markerRef = var1;
this.claimedByBlock = var2;
}
@Nullable
class="kw">public PersistentRef getMarkerRef() {
class="kw">return this.markerRef;
}
class="kw">public void setMarkerRef(@Nullable PersistentRef var1) {
this.markerRef = var1;
}
class="kw">public boolean hasMarker() {
class="kw">return this.markerRef != null && this.markerRef.isValid();
}
@Nullable
class="kw">public Vector3i getClaimedByBlock() {
class="kw">return this.claimedByBlock;
}
class="kw">public void setClaimedByBlock(@Nullable Vector3i var1) {
this.claimedByBlock = var1;
}
class="kw">public boolean tickReconcileCountdown(float var1) {
class="kw">return (this.reconcileCountdown -= var1) <= 0.0F;
}
class="kw">public void resetReconcileCountdown() {
float var1 = 0.75F + 0.5F * ThreadLocalRandom.current().nextFloat();
this.reconcileCountdown = 30.0F * var1;
}
@Nullable
@Override
class="kw">public Component<ChunkStore> clone() {
class="kw">return new CompanionBlockSpawnerBlock(
this.markerRef != null ? new PersistentRef(this.markerRef.getUuid()) : null, this.claimedByBlock != null ? new Vector3i(this.claimedByBlock) : null
);
}
}