Package net.minecraft.world.level
Class NaturalSpawner
java.lang.Object
net.minecraft.world.level.NaturalSpawner
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
static interface
static interface
static class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final org.slf4j.Logger
(package private) static final int
private static final int
static final int
static final int
private static final MobCategory[]
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static boolean
canSpawnMobAt
(ServerLevel pLevel, StructureManager pStructureManager, ChunkGenerator pGenerator, MobCategory pCategory, MobSpawnSettings.SpawnerData pData, BlockPos pPos) static NaturalSpawner.SpawnState
createState
(int pSpawnableChunkCount, Iterable<Entity> pEntities, NaturalSpawner.ChunkGetter pChunkGetter, LocalMobCapCalculator pCalculator) private static Mob
getMobForSpawn
(ServerLevel pLevel, EntityType<?> pEntityType) private static BlockPos
getRandomPosWithin
(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 Biome
getRoughBiome
(BlockPos pPos, ChunkAccess pChunk) private static BlockPos
getTopNonCollidingPos
(LevelReader pLevel, EntityType<?> pEntityType, int pX, int pZ) static boolean
isInNetherFortressBounds
(BlockPos pPos, ServerLevel pLevel, MobCategory pCategory, StructureManager pStructureManager) private static boolean
isRightDistanceToPlayerAndSpawnPoint
(ServerLevel pLevel, ChunkAccess pChunk, BlockPos.MutableBlockPos pPos, double pDistance) static boolean
isValidEmptySpawnBlock
(BlockGetter pBlock, BlockPos pPos, BlockState pBlockState, FluidState pFluidState, EntityType<?> pEntityType) private static boolean
isValidPositionForMob
(ServerLevel pLevel, Mob pMob, double pDistance) private static boolean
isValidSpawnPostitionForType
(ServerLevel pLevel, MobCategory pCategory, StructureManager pStructureManager, ChunkGenerator pGenerator, MobSpawnSettings.SpawnerData pData, BlockPos.MutableBlockPos pPos, double pDistance) private static WeightedRandomList
<MobSpawnSettings.SpawnerData> mobsAt
(ServerLevel pLevel, StructureManager pStructureManager, ChunkGenerator pGenerator, MobCategory pCategory, BlockPos pPos, Holder<Biome> pBiome) static void
spawnCategoryForChunk
(MobCategory pCategory, ServerLevel pLevel, LevelChunk pChunk, NaturalSpawner.SpawnPredicate pFilter, NaturalSpawner.AfterSpawnCallback pCallback) static void
spawnCategoryForPosition
(MobCategory pCategory, ServerLevel pLevel, BlockPos pPos) static void
spawnCategoryForPosition
(MobCategory pCategory, ServerLevel pLevel, ChunkAccess pChunk, BlockPos pPos, NaturalSpawner.SpawnPredicate pFilter, NaturalSpawner.AfterSpawnCallback pCallback) static void
spawnForChunk
(ServerLevel pLevel, LevelChunk pChunk, NaturalSpawner.SpawnState pSpawnState, boolean pSpawnFriendlies, boolean pSpawnMonsters, boolean pForcedDespawn) static void
spawnMobsForChunkGeneration
(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:
-
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
-
spawnForChunk
public static void spawnForChunk(ServerLevel pLevel, LevelChunk pChunk, NaturalSpawner.SpawnState pSpawnState, boolean pSpawnFriendlies, boolean pSpawnMonsters, boolean pForcedDespawn) -
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 WeightedRandomList<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)
-