SleepConfig class

Пакет: com.hypixel.hytale.server.core.asset.type.gameplay.sleep

Файл: com/hypixel/hytale/server/core/asset/type/gameplay/sleep/SleepConfig.java

Поля (11)

МодификаторыТипИмя
final BuilderCodec<SleepConfig> CODEC
double var1
float var2
float var2
int var3
double var3
double var3
int var4
double var5
double var5
long var7

Методы (8)

МодификаторыВозвратСигнатура
public Duration computeDurationUntilSleepDuration computeDurationUntilSleep(LocalDateTime var1)
static float getFractionalHourOfDayfloat getFractionalHourOfDay(LocalDateTime var0)
public SleepSoundsConfig getSoundsSleepSoundsConfig getSounds()
public float getWakeUpHourfloat getWakeUpHour()
if if(this.allowedSleepHoursRange == null)
if if(this.allowedSleepHoursRange == null)
if if(this.allowedSleepHoursRange == null)
public boolean isWithinSleepHoursRangeboolean isWithinSleepHoursRange(LocalDateTime var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.asset.type.gameplay.sleep;

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.codec.validation.Validators;
class="kw">import java.time.Duration;
class="kw">import java.time.LocalDateTime;
class="kw">import java.time.LocalTime;
class="kw">import javax.annotation.Nullable;

class="kw">public class SleepConfig {
   class="kw">public class="kw">static class="kw">final BuilderCodec<SleepConfig> CODEC = BuilderCodec.builder(SleepConfig.class, SleepConfig::new)
      .append(new KeyedCodec<>("WakeUpHour", Codec.FLOAT), (var0, var1) -> var0.wakeUpHour = var1, var0 -> var0.wakeUpHour)
      .documentation("The in-game hour at which players naturally wake up from sleep.")
      .add()
      .<double[]>append(
         new KeyedCodec<>("AllowedSleepHoursRange", Codec.DOUBLE_ARRAY),
         (var0, var1) -> var0.allowedSleepHoursRange = var1,
         var0 -> var0.allowedSleepHoursRange
      )
      .addValidator(Validators.doubleArraySize(2))
      .documentation("The in-game hours during which players can sleep to skip to the WakeUpHour. If missing, there is no restriction.")
      .add()
      .append(new KeyedCodec<>("Sounds", SleepSoundsConfig.CODEC), (var0, var1) -> var0.sounds = var1, var0 -> var0.sounds)
      .add()
      .build();
   class="kw">public class="kw">static class="kw">final SleepConfig DEFAULT = new SleepConfig();
   class="kw">private float wakeUpHour = 5.5F;
   class="kw">private double[] allowedSleepHoursRange;
   class="kw">private SleepSoundsConfig sounds = new SleepSoundsConfig();

   class="kw">public SleepConfig() {
   }

   class="kw">public float getWakeUpHour() {
      class="kw">return this.wakeUpHour;
   }

   @Nullable
   class="kw">public double[] getAllowedSleepHoursRange() {
      class="kw">return this.allowedSleepHoursRange;
   }

   class="kw">public SleepSoundsConfig getSounds() {
      class="kw">return this.sounds;
   }

   @Nullable
   class="kw">public LocalTime getSleepStartTime() {
      if (this.allowedSleepHoursRange == null) {
         class="kw">return null;
      }

      double var1 = this.allowedSleepHoursRange[0];
      int var3 = (int)var1;
      int var4 = (int)((var1 - var3) * 60.0);
      class="kw">return LocalTime.of(var3, var4);
   }

   class="kw">public boolean isWithinSleepHoursRange(LocalDateTime var1) {
      if (this.allowedSleepHoursRange == null) {
         class="kw">return true;
      }

      float var2 = getFractionalHourOfDay(var1);
      double var3 = this.allowedSleepHoursRange[0];
      double var5 = this.allowedSleepHoursRange[1];
      class="kw">return (var2 - var3 + 24.0) % 24.0 <= (var5 - var3 + 24.0) % 24.0;
   }

   class="kw">public Duration computeDurationUntilSleep(LocalDateTime var1) {
      if (this.allowedSleepHoursRange == null) {
         class="kw">return Duration.ZERO;
      }

      float var2 = getFractionalHourOfDay(var1);
      double var3 = this.allowedSleepHoursRange[0];
      double var5 = (var3 - var2 + 24.0) % 24.0;
      long var7 = (long)(var5 * 3600.0);
      class="kw">return Duration.ofSeconds(var7);
   }

   class="kw">private class="kw">static float getFractionalHourOfDay(LocalDateTime var0) {
      class="kw">return var0.getHour() + var0.getMinute() / 60.0F + var0.getSecond() / 3600.0F;
   }
}