Code/net/minecraft/world/level/levelgen/structure/pools/DimensionPadding.java

32 lines
1.4 KiB
Java
Raw Normal View History

2025-07-01 06:20:03 +00:00
package net.minecraft.world.level.levelgen.structure.pools;
import com.mojang.datafixers.util.Either;
import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import com.mojang.serialization.codecs.RecordCodecBuilder.Instance;
import java.util.function.Function;
import net.minecraft.util.ExtraCodecs;
public record DimensionPadding(int bottom, int top) {
private static final Codec<DimensionPadding> RECORD_CODEC = RecordCodecBuilder.create(
p_344055_ -> p_344055_.group(
ExtraCodecs.NON_NEGATIVE_INT.lenientOptionalFieldOf("bottom", 0).forGetter(p_344937_ -> p_344937_.bottom),
ExtraCodecs.NON_NEGATIVE_INT.lenientOptionalFieldOf("top", 0).forGetter(p_343653_ -> p_343653_.top)
)
.apply(p_344055_, DimensionPadding::new)
);
public static final Codec<DimensionPadding> CODEC = Codec.either(ExtraCodecs.NON_NEGATIVE_INT, RECORD_CODEC)
.xmap(
p_342286_ -> p_342286_.map(DimensionPadding::new, Function.identity()),
p_342199_ -> p_342199_.hasEqualTopAndBottom() ? Either.left(p_342199_.bottom) : Either.right(p_342199_)
);
public static final DimensionPadding ZERO = new DimensionPadding(0);
public DimensionPadding(int p_345079_) {
this(p_345079_, p_345079_);
}
public boolean hasEqualTopAndBottom() {
return this.top == this.bottom;
}
}