minecraft-src/net/minecraft/world/level/storage/LevelData.java
2025-07-04 02:00:41 +03:00

52 lines
1.3 KiB
Java

package net.minecraft.world.level.storage;
import java.util.Locale;
import net.minecraft.CrashReportCategory;
import net.minecraft.CrashReportDetail;
import net.minecraft.core.BlockPos;
import net.minecraft.world.Difficulty;
import net.minecraft.world.level.LevelHeightAccessor;
public interface LevelData {
BlockPos getSpawnPos();
float getSpawnAngle();
long getGameTime();
/**
* Get current world time
*/
long getDayTime();
/**
* Returns {@code true} if it is thundering, {@code false} otherwise.
*/
boolean isThundering();
/**
* Returns {@code true} if it is raining, {@code false} otherwise.
*/
boolean isRaining();
/**
* Sets whether it is raining or not.
*/
void setRaining(boolean raining);
/**
* Returns {@code true} if hardcore mode is enabled, otherwise {@code false}.
*/
boolean isHardcore();
Difficulty getDifficulty();
boolean isDifficultyLocked();
default void fillCrashReportCategory(CrashReportCategory crashReportCategory, LevelHeightAccessor level) {
crashReportCategory.setDetail("Level spawn location", (CrashReportDetail<String>)(() -> CrashReportCategory.formatLocation(level, this.getSpawnPos())));
crashReportCategory.setDetail(
"Level time", (CrashReportDetail<String>)(() -> String.format(Locale.ROOT, "%d game time, %d day time", this.getGameTime(), this.getDayTime()))
);
}
}