minecraft-src/net/minecraft/world/level/levelgen/feature/configurations/EndGatewayConfiguration.java
2025-07-04 01:41:11 +03:00

39 lines
1.2 KiB
Java

package net.minecraft.world.level.levelgen.feature.configurations;
import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import java.util.Optional;
import net.minecraft.core.BlockPos;
public class EndGatewayConfiguration implements FeatureConfiguration {
public static final Codec<EndGatewayConfiguration> CODEC = RecordCodecBuilder.create(
instance -> instance.group(
BlockPos.CODEC.optionalFieldOf("exit").forGetter(endGatewayConfiguration -> endGatewayConfiguration.exit),
Codec.BOOL.fieldOf("exact").forGetter(endGatewayConfiguration -> endGatewayConfiguration.exact)
)
.apply(instance, EndGatewayConfiguration::new)
);
private final Optional<BlockPos> exit;
private final boolean exact;
private EndGatewayConfiguration(Optional<BlockPos> exit, boolean exact) {
this.exit = exit;
this.exact = exact;
}
public static EndGatewayConfiguration knownExit(BlockPos exit, boolean exact) {
return new EndGatewayConfiguration(Optional.of(exit), exact);
}
public static EndGatewayConfiguration delayedExitSearch() {
return new EndGatewayConfiguration(Optional.empty(), false);
}
public Optional<BlockPos> getExit() {
return this.exit;
}
public boolean isExitExact() {
return this.exact;
}
}