Height spawn limit

This commit is contained in:
paulevsGitch 2021-11-28 06:02:46 +03:00
parent 6cbd400636
commit 3c5d560981

View file

@ -52,12 +52,30 @@ public class SpawnRuleBulder<M extends Mob> {
return this; return this;
} }
/**
* Restricts entity spawn above world surface (flying mobs).
* @param minHeight minimal spawn height.
* @return same {@link SpawnRuleBulder} instance
*/
public SpawnRuleBulder aboveGround(int minHeight) {
entryInstance = getFromCache("above_ground", () -> {
return new SpawnRuleEntry(0, (type, world, spawnReason, pos, random) -> {
if (pos.getY() < world.getMinBuildHeight() + 2) {
return false;
}
return pos.getY() > world.getHeight(Types.WORLD_SURFACE, pos.getX(), pos.getZ()) + minHeight;
});
});
rules.add(entryInstance);
return this;
}
/** /**
* Restricts entity spawn below world logical height (useful for Nether mobs). * Restricts entity spawn below world logical height (useful for Nether mobs).
* @return same {@link SpawnRuleBulder} instance * @return same {@link SpawnRuleBulder} instance
*/ */
public SpawnRuleBulder belowMaxHeight() { public SpawnRuleBulder belowMaxHeight() {
entryInstance = getFromCache("not_peaceful", () -> { entryInstance = getFromCache("below_max_height", () -> {
return new SpawnRuleEntry(0, (type, world, spawnReason, pos, random) -> pos.getY() < world.dimensionType().logicalHeight()); return new SpawnRuleEntry(0, (type, world, spawnReason, pos, random) -> pos.getY() < world.dimensionType().logicalHeight());
}); });
rules.add(entryInstance); rules.add(entryInstance);