45 using GetSpawningAreasCallback =
46 ::std::function<::gsl::span<::LevelChunk::SpawningArea const>(
::LevelChunk const&)>;
48 using MobSpawnedCallback = ::std::function<void(
::Mob&)>;
52 using SpawnStructureMobCallback =
64 virtual ::SpawnSettings
const& getSpawnSettings()
const = 0;
68 virtual ::ActorSpawnRuleGroup
const* getSpawnRules()
const = 0;
70 virtual ::ActorSpawnRuleGroup* getSpawnRulesMutable()
const = 0;
72 virtual ::SpawnGroupRegistry
const* getSpawnGroupRegistry()
const = 0;
74 virtual ::br::spawn::EntityTypeCache* getEntityTypeCache()
const = 0;
76 virtual ::Mob* spawnMob(
89 virtual ::Actor* spawnProjectile(
101 virtual void tickMobCount() = 0;
103 virtual void incrementSpawnableTickedMob() = 0;
105 virtual uint getSpawnableTickedMobCountPrevious()
const = 0;
107 virtual ::std::unordered_set<::ActorUniqueID>
108 spawnMobGroup(
::BlockSource&, ::std::string
const&,
::Vec3 const&,
bool,
bool, ::std::function<
void(
::Mob&)>&&) = 0;
110 virtual ::br::spawn::SpawnPlacements& getSpawnPlacements() = 0;
112 virtual ::std::tuple<::std::array<::SpawnCategory::Type, 8>, uint64>
115 virtual void spawnForChunk(
119 ::gsl::span<::SpawnCategory::Type>,
129 MCAPI
static bool findNextSpawnBlockUnder(
132 ::std::optional<::MaterialType> materialToSpawnIn,
133 ::SpawnBlockRequirements spawnBlockRequirements
136 MCAPI
static bool isSpawnPositionOk(
140 bool validateDistToPlayer
153 MCAPI ::Mob* $spawnMob(
166 MCAPI ::Actor* $spawnProjectile(
174 MCAPI ::std::tuple<::std::array<::SpawnCategory::Type, 8>, uint64>
177 MCFOLD
void $spawnForChunk(
181 ::gsl::span<::SpawnCategory::Type>,