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