ActionSetAlarm class

Пакет: com.hypixel.hytale.server.npc.corecomponents.timer

Файл: com/hypixel/hytale/server/npc/corecomponents/timer/ActionSetAlarm.java

extends: ActionBase

Поля (4)

МодификаторыТипИмя
final Alarm alarm
TemporalAmount[] var3
Instant var4
WorldTimeResource var7

Методы (2)

МодификаторыВозвратСигнатура
if if(this.cancel)
abstract super super(var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.corecomponents.timer;

class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.random.RandomExtra;
class="kw">import com.hypixel.hytale.server.core.modules.time.WorldTimeResource;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderSupport;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.ActionBase;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.timer.builders.BuilderActionSetAlarm;
class="kw">import com.hypixel.hytale.server.npc.instructions.ExecutionSupport;
class="kw">import com.hypixel.hytale.server.npc.sensorinfo.InfoProvider;
class="kw">import com.hypixel.hytale.server.npc.util.Alarm;
class="kw">import java.time.Instant;
class="kw">import java.time.temporal.ChronoUnit;
class="kw">import java.time.temporal.TemporalAmount;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class ActionSetAlarm class="kw">extends ActionBase {
   class="kw">protected class="kw">final Alarm alarm;
   class="kw">protected class="kw">final TemporalAmount minDuration;
   class="kw">protected class="kw">final long randomVariation;
   class="kw">protected class="kw">final boolean cancel;

   class="kw">public ActionSetAlarm(@Nonnull BuilderActionSetAlarm var1, @Nonnull BuilderSupport var2) {
      super(var1);
      this.alarm = var1.getAlarm(var2);
      TemporalAmount[] var3 = var1.getDurationRange(var2);
      this.minDuration = var3[0];
      Instant var4 = Instant.EPOCH.plus(var3[1]);
      this.randomVariation = var4.minus(this.minDuration).getEpochSecond();
      this.cancel = var4.getEpochSecond() == 0L;
   }

   @Override
   class="kw">public boolean execute(
      @Nonnull Ref<EntityStore> var1, @Nonnull ExecutionSupport var2, @Nullable InfoProvider var3, double var4, @Nonnull Store<EntityStore> var6
   ) {
      super.execute(var1, var2, var3, var4, var6);
      if (this.cancel) {
         this.alarm.set(var1, null, var6);
      } else {
         WorldTimeResource var7 = var6.getResource(WorldTimeResource.getResourceType());
         this.alarm.set(var1, var7.getGameTime().plus(this.minDuration).plus(RandomExtra.randomRange(0L, this.randomVariation), ChronoUnit.SECONDS), var6);
      }

      class="kw">return true;
   }
}