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

36 lines
1,000 B
Java

package net.minecraft.world.level.levelgen.placement;
import com.mojang.serialization.MapCodec;
import net.minecraft.core.BlockPos;
import net.minecraft.util.RandomSource;
import net.minecraft.util.valueproviders.ConstantInt;
import net.minecraft.util.valueproviders.IntProvider;
public class CountPlacement extends RepeatingPlacement {
public static final MapCodec<CountPlacement> CODEC = IntProvider.codec(0, 256)
.fieldOf("count")
.xmap(CountPlacement::new, countPlacement -> countPlacement.count);
private final IntProvider count;
private CountPlacement(IntProvider count) {
this.count = count;
}
public static CountPlacement of(IntProvider count) {
return new CountPlacement(count);
}
public static CountPlacement of(int count) {
return of(ConstantInt.of(count));
}
@Override
protected int count(RandomSource random, BlockPos pos) {
return this.count.sample(random);
}
@Override
public PlacementModifierType<?> type() {
return PlacementModifierType.COUNT;
}
}