71 lines
2.7 KiB
Java
71 lines
2.7 KiB
Java
package net.minecraft.world.level.levelgen.carver;
|
|
|
|
import com.mojang.serialization.Codec;
|
|
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
|
import net.minecraft.world.level.block.Blocks;
|
|
import net.minecraft.world.level.block.state.BlockState;
|
|
|
|
public class CarverDebugSettings {
|
|
public static final CarverDebugSettings DEFAULT = new CarverDebugSettings(
|
|
false,
|
|
Blocks.ACACIA_BUTTON.defaultBlockState(),
|
|
Blocks.CANDLE.defaultBlockState(),
|
|
Blocks.ORANGE_STAINED_GLASS.defaultBlockState(),
|
|
Blocks.GLASS.defaultBlockState()
|
|
);
|
|
public static final Codec<CarverDebugSettings> CODEC = RecordCodecBuilder.create(
|
|
instance -> instance.group(
|
|
Codec.BOOL.optionalFieldOf("debug_mode", false).forGetter(CarverDebugSettings::isDebugMode),
|
|
BlockState.CODEC.optionalFieldOf("air_state", DEFAULT.getAirState()).forGetter(CarverDebugSettings::getAirState),
|
|
BlockState.CODEC.optionalFieldOf("water_state", DEFAULT.getAirState()).forGetter(CarverDebugSettings::getWaterState),
|
|
BlockState.CODEC.optionalFieldOf("lava_state", DEFAULT.getAirState()).forGetter(CarverDebugSettings::getLavaState),
|
|
BlockState.CODEC.optionalFieldOf("barrier_state", DEFAULT.getAirState()).forGetter(CarverDebugSettings::getBarrierState)
|
|
)
|
|
.apply(instance, CarverDebugSettings::new)
|
|
);
|
|
private final boolean debugMode;
|
|
private final BlockState airState;
|
|
private final BlockState waterState;
|
|
private final BlockState lavaState;
|
|
private final BlockState barrierState;
|
|
|
|
public static CarverDebugSettings of(boolean debugMode, BlockState airState, BlockState waterState, BlockState lavaState, BlockState barrierState) {
|
|
return new CarverDebugSettings(debugMode, airState, waterState, lavaState, barrierState);
|
|
}
|
|
|
|
public static CarverDebugSettings of(BlockState airState, BlockState waterState, BlockState lavaState, BlockState barrierState) {
|
|
return new CarverDebugSettings(false, airState, waterState, lavaState, barrierState);
|
|
}
|
|
|
|
public static CarverDebugSettings of(boolean debugMode, BlockState airState) {
|
|
return new CarverDebugSettings(debugMode, airState, DEFAULT.getWaterState(), DEFAULT.getLavaState(), DEFAULT.getBarrierState());
|
|
}
|
|
|
|
private CarverDebugSettings(boolean debugMode, BlockState airState, BlockState waterState, BlockState lavaState, BlockState barrierState) {
|
|
this.debugMode = debugMode;
|
|
this.airState = airState;
|
|
this.waterState = waterState;
|
|
this.lavaState = lavaState;
|
|
this.barrierState = barrierState;
|
|
}
|
|
|
|
public boolean isDebugMode() {
|
|
return this.debugMode;
|
|
}
|
|
|
|
public BlockState getAirState() {
|
|
return this.airState;
|
|
}
|
|
|
|
public BlockState getWaterState() {
|
|
return this.waterState;
|
|
}
|
|
|
|
public BlockState getLavaState() {
|
|
return this.lavaState;
|
|
}
|
|
|
|
public BlockState getBarrierState() {
|
|
return this.barrierState;
|
|
}
|
|
}
|