Package net.minecraft.world.level
Class NaturalSpawner
java.lang.Object
net.minecraft.world.level.NaturalSpawner
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfacestatic interfacestatic interfacestatic class -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intprivate static final org.slf4j.Logger(package private) static final intprivate static final intstatic final intstatic final intprivate static final MobCategory[] -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static booleancanSpawnMobAt(ServerLevel pLevel, StructureManager pStructureManager, ChunkGenerator pGenerator, MobCategory pCategory, MobSpawnSettings.SpawnerData pData, BlockPos pPos) static NaturalSpawner.SpawnStatecreateState(int pSpawnableChunkCount, Iterable<Entity> pEntities, NaturalSpawner.ChunkGetter pChunkGetter, LocalMobCapCalculator pCalculator) static List<MobCategory> getFilteredSpawningCategories(NaturalSpawner.SpawnState pSpawnState, boolean pSpawnFriendlies, boolean pSpawnEnemies, boolean pSpawnPassives) private static MobgetMobForSpawn(ServerLevel pLevel, EntityType<?> pEntityType) private static BlockPosgetRandomPosWithin(Level pLevel, LevelChunk pChunk) private static Optional<MobSpawnSettings.SpawnerData> getRandomSpawnMobAt(ServerLevel pLevel, StructureManager pStructureManager, ChunkGenerator pGenerator, MobCategory pCategory, RandomSource pRandom, BlockPos pPos) (package private) static BiomegetRoughBiome(BlockPos pPos, ChunkAccess pChunk) private static BlockPosgetTopNonCollidingPos(LevelReader pLevel, EntityType<?> pEntityType, int pX, int pZ) static booleanisInNetherFortressBounds(BlockPos pPos, ServerLevel pLevel, MobCategory pCategory, StructureManager pStructureManager) private static booleanisRightDistanceToPlayerAndSpawnPoint(ServerLevel pLevel, ChunkAccess pChunk, BlockPos.MutableBlockPos pPos, double pDistance) static booleanisValidEmptySpawnBlock(BlockGetter pBlock, BlockPos pPos, BlockState pBlockState, FluidState pFluidState, EntityType<?> pEntityType) private static booleanisValidPositionForMob(ServerLevel pLevel, Mob pMob, double pDistance) private static booleanisValidSpawnPostitionForType(ServerLevel pLevel, MobCategory pCategory, StructureManager pStructureManager, ChunkGenerator pGenerator, MobSpawnSettings.SpawnerData pData, BlockPos.MutableBlockPos pPos, double pDistance) private static WeightedList<MobSpawnSettings.SpawnerData> mobsAt(ServerLevel pLevel, StructureManager pStructureManager, ChunkGenerator pGenerator, MobCategory pCategory, BlockPos pPos, Holder<Biome> pBiome) static voidspawnCategoryForChunk(MobCategory pCategory, ServerLevel pLevel, LevelChunk pChunk, NaturalSpawner.SpawnPredicate pFilter, NaturalSpawner.AfterSpawnCallback pCallback) static voidspawnCategoryForPosition(MobCategory pCategory, ServerLevel pLevel, BlockPos pPos) static voidspawnCategoryForPosition(MobCategory pCategory, ServerLevel pLevel, ChunkAccess pChunk, BlockPos pPos, NaturalSpawner.SpawnPredicate pFilter, NaturalSpawner.AfterSpawnCallback pCallback) static voidspawnForChunk(ServerLevel pLevel, LevelChunk pChunk, NaturalSpawner.SpawnState pSpawnState, List<MobCategory> pCategories) static voidspawnMobsForChunkGeneration(ServerLevelAccessor pLevelAccessor, Holder<Biome> pBiome, ChunkPos pChunkPos, RandomSource pRandom)
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
MIN_SPAWN_DISTANCE
private static final int MIN_SPAWN_DISTANCE- See Also:
-
SPAWN_DISTANCE_CHUNK
public static final int SPAWN_DISTANCE_CHUNK- See Also:
-
SPAWN_DISTANCE_BLOCK
public static final int SPAWN_DISTANCE_BLOCK- See Also:
-
INSCRIBED_SQUARE_SPAWN_DISTANCE_CHUNK
public static final int INSCRIBED_SQUARE_SPAWN_DISTANCE_CHUNK -
MAGIC_NUMBER
static final int MAGIC_NUMBER -
SPAWNING_CATEGORIES
-
-
Constructor Details
-
NaturalSpawner
private NaturalSpawner()
-
-
Method Details
-
createState
public static NaturalSpawner.SpawnState createState(int pSpawnableChunkCount, Iterable<Entity> pEntities, NaturalSpawner.ChunkGetter pChunkGetter, LocalMobCapCalculator pCalculator) -
getRoughBiome
-
getFilteredSpawningCategories
public static List<MobCategory> getFilteredSpawningCategories(NaturalSpawner.SpawnState pSpawnState, boolean pSpawnFriendlies, boolean pSpawnEnemies, boolean pSpawnPassives) -
spawnForChunk
public static void spawnForChunk(ServerLevel pLevel, LevelChunk pChunk, NaturalSpawner.SpawnState pSpawnState, List<MobCategory> pCategories) -
spawnCategoryForChunk
public static void spawnCategoryForChunk(MobCategory pCategory, ServerLevel pLevel, LevelChunk pChunk, NaturalSpawner.SpawnPredicate pFilter, NaturalSpawner.AfterSpawnCallback pCallback) -
spawnCategoryForPosition
public static void spawnCategoryForPosition(MobCategory pCategory, ServerLevel pLevel, BlockPos pPos) -
spawnCategoryForPosition
public static void spawnCategoryForPosition(MobCategory pCategory, ServerLevel pLevel, ChunkAccess pChunk, BlockPos pPos, NaturalSpawner.SpawnPredicate pFilter, NaturalSpawner.AfterSpawnCallback pCallback) -
isRightDistanceToPlayerAndSpawnPoint
private static boolean isRightDistanceToPlayerAndSpawnPoint(ServerLevel pLevel, ChunkAccess pChunk, BlockPos.MutableBlockPos pPos, double pDistance) -
isValidSpawnPostitionForType
private static boolean isValidSpawnPostitionForType(ServerLevel pLevel, MobCategory pCategory, StructureManager pStructureManager, ChunkGenerator pGenerator, MobSpawnSettings.SpawnerData pData, BlockPos.MutableBlockPos pPos, double pDistance) -
getMobForSpawn
-
isValidPositionForMob
-
getRandomSpawnMobAt
private static Optional<MobSpawnSettings.SpawnerData> getRandomSpawnMobAt(ServerLevel pLevel, StructureManager pStructureManager, ChunkGenerator pGenerator, MobCategory pCategory, RandomSource pRandom, BlockPos pPos) -
canSpawnMobAt
private static boolean canSpawnMobAt(ServerLevel pLevel, StructureManager pStructureManager, ChunkGenerator pGenerator, MobCategory pCategory, MobSpawnSettings.SpawnerData pData, BlockPos pPos) -
mobsAt
private static WeightedList<MobSpawnSettings.SpawnerData> mobsAt(ServerLevel pLevel, StructureManager pStructureManager, ChunkGenerator pGenerator, MobCategory pCategory, BlockPos pPos, @Nullable Holder<Biome> pBiome) -
isInNetherFortressBounds
public static boolean isInNetherFortressBounds(BlockPos pPos, ServerLevel pLevel, MobCategory pCategory, StructureManager pStructureManager) -
getRandomPosWithin
-
isValidEmptySpawnBlock
public static boolean isValidEmptySpawnBlock(BlockGetter pBlock, BlockPos pPos, BlockState pBlockState, FluidState pFluidState, EntityType<?> pEntityType) -
spawnMobsForChunkGeneration
public static void spawnMobsForChunkGeneration(ServerLevelAccessor pLevelAccessor, Holder<Biome> pBiome, ChunkPos pChunkPos, RandomSource pRandom) -
getTopNonCollidingPos
private static BlockPos getTopNonCollidingPos(LevelReader pLevel, EntityType<?> pEntityType, int pX, int pZ)
-