package net.minecraft.world.level.storage;

import net.minecraft.CrashReportCategory;
import java.util.UUID;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.level.timers.TimerQueue;
import net.minecraft.world.Difficulty;
import net.minecraft.world.level.border.WorldBorder;
import net.minecraft.world.level.GameRules;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.GameType;

public class DerivedLevelData implements ServerLevelData {
    private final WorldData worldData;
    private final ServerLevelData wrapped;
    
    public DerivedLevelData(final WorldData dal, final ServerLevelData dak) {
        this.worldData = dal;
        this.wrapped = dak;
    }
    
    @Override
    public int getXSpawn() {
        return this.wrapped.getXSpawn();
    }
    
    @Override
    public int getYSpawn() {
        return this.wrapped.getYSpawn();
    }
    
    @Override
    public int getZSpawn() {
        return this.wrapped.getZSpawn();
    }
    
    @Override
    public long getGameTime() {
        return this.wrapped.getGameTime();
    }
    
    @Override
    public long getDayTime() {
        return this.wrapped.getDayTime();
    }
    
    @Override
    public String getLevelName() {
        return this.worldData.getLevelName();
    }
    
    @Override
    public int getClearWeatherTime() {
        return this.wrapped.getClearWeatherTime();
    }
    
    @Override
    public void setClearWeatherTime(final int integer) {
    }
    
    @Override
    public boolean isThundering() {
        return this.wrapped.isThundering();
    }
    
    @Override
    public int getThunderTime() {
        return this.wrapped.getThunderTime();
    }
    
    @Override
    public boolean isRaining() {
        return this.wrapped.isRaining();
    }
    
    @Override
    public int getRainTime() {
        return this.wrapped.getRainTime();
    }
    
    @Override
    public GameType getGameType() {
        return this.worldData.getGameType();
    }
    
    @Override
    public void setXSpawn(final int integer) {
    }
    
    @Override
    public void setYSpawn(final int integer) {
    }
    
    @Override
    public void setZSpawn(final int integer) {
    }
    
    @Override
    public void setGameTime(final long long1) {
    }
    
    @Override
    public void setDayTime(final long long1) {
    }
    
    @Override
    public void setSpawn(final BlockPos fu) {
    }
    
    @Override
    public void setThundering(final boolean boolean1) {
    }
    
    @Override
    public void setThunderTime(final int integer) {
    }
    
    @Override
    public void setRaining(final boolean boolean1) {
    }
    
    @Override
    public void setRainTime(final int integer) {
    }
    
    @Override
    public void setGameType(final GameType bpy) {
    }
    
    @Override
    public boolean isHardcore() {
        return this.worldData.isHardcore();
    }
    
    @Override
    public boolean getAllowCommands() {
        return this.worldData.getAllowCommands();
    }
    
    @Override
    public boolean isInitialized() {
        return this.wrapped.isInitialized();
    }
    
    @Override
    public void setInitialized(final boolean boolean1) {
    }
    
    @Override
    public GameRules getGameRules() {
        return this.worldData.getGameRules();
    }
    
    @Override
    public WorldBorder.Settings getWorldBorder() {
        return this.wrapped.getWorldBorder();
    }
    
    @Override
    public void setWorldBorder(final WorldBorder.Settings c) {
    }
    
    @Override
    public Difficulty getDifficulty() {
        return this.worldData.getDifficulty();
    }
    
    @Override
    public boolean isDifficultyLocked() {
        return this.worldData.isDifficultyLocked();
    }
    
    @Override
    public TimerQueue<MinecraftServer> getScheduledEvents() {
        return this.wrapped.getScheduledEvents();
    }
    
    @Override
    public int getWanderingTraderSpawnDelay() {
        return 0;
    }
    
    @Override
    public void setWanderingTraderSpawnDelay(final int integer) {
    }
    
    @Override
    public int getWanderingTraderSpawnChance() {
        return 0;
    }
    
    @Override
    public void setWanderingTraderSpawnChance(final int integer) {
    }
    
    @Override
    public void setWanderingTraderId(final UUID uUID) {
    }
    
    @Override
    public void fillCrashReportCategory(final CrashReportCategory k) {
        k.setDetail("Derived", true);
        this.wrapped.fillCrashReportCategory(k);
    }
}
