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