3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/ecs/WeakEntityRef.h"
7#include "mc/world/actor/ActorDefinitionIdentifier.h"
8#include "mc/world/item/ItemStack.h"
9#include "mc/world/level/BlockPos.h"
10#include "mc/world/level/block/registry/TrialSpawnerConfig.h"
36 enum class SpawningLogicState :
int {
38 WaitingForPlayers = 1,
40 WaitingForRewardEjection = 3,
50 ::ll::TypedStorage<1, 1, bool> haveTrialOmen;
51 ::ll::TypedStorage<8, 24, ::std::vector<::ActorUniqueID>> foundPlayers;
59 ::ll::TypedStorage<8, 152, ::ItemStack> itemStack;
67 ::ll::TypedStorage<8, 24, ::std::vector<::ActorUniqueID>> mDetectedPlayers;
68 ::ll::TypedStorage<8, 24, ::std::vector<::ActorUniqueID>> mCurrentMobs;
69 ::ll::TypedStorage<8, 8, uint64> mCooldownEndsAt;
70 ::ll::TypedStorage<8, 8, uint64> mNextMobSpawnsAt;
71 ::ll::TypedStorage<4, 4, int> mTotalMobsSpawned;
72 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SpawnData>> mNextSpawnData;
73 ::ll::TypedStorage<8, 32, ::std::string> mSelectedLootTableName;
74 ::ll::TypedStorage<8, 24, ::std::vector<::TrialSpawner::WeightedItemStack>> mDispensing;
75 ::ll::TypedStorage<8, 176, ::ActorDefinitionIdentifier> mActorDefId;
76 ::ll::TypedStorage<8, 24, ::WeakEntityRef> mDisplayEntity;
77 ::ll::TypedStorage<4, 4, float> mCurrentSpinSpeed;
78 ::ll::TypedStorage<4, 4, float> mPreviousSpinSpeed;
79 ::ll::TypedStorage<1, 1, bool> mSkipNextMobCleanup;
98 ::ll::TypedStorage<4, 12, ::BlockPos const> mPosition;
99 ::ll::TypedStorage<4, 4, int> mPlayerSearchRange;
100 ::ll::TypedStorage<8, 352, ::TrialSpawner::Data> mData;
101 ::ll::TypedStorage<8, 144, ::TrialSpawnerConfig> mNormalConfig;
102 ::ll::TypedStorage<8, 144, ::TrialSpawnerConfig> mOminousConfig;
103 ::ll::TypedStorage<1, 1, bool> mIsOminous;
104 ::ll::TypedStorage<1, 1, bool> hasSpawnedItemSpawner;
112 MCNAPI ::std::optional<::Vec3>
149 MCNAPI ::Mob* tryGetOrCreateDisplayEntity(
::BlockSource& region);
160 ::std::string
const& lootTableName
164 MCNAPI
static void addSpawnParticles(
::Level& level,
::Vec3 pos,
bool isOminous);
166 MCNAPI
static void sendEjectItemParticles(
::Level& level,
::BlockPos pos,
bool isOminous);
Definition BlockSource.h:72
Definition CompoundTag.h:18
Definition ItemStack.h:26
Definition SpawnData.h:15
Definition TrialSpawnerConfigRegistry.h:10
Definition TrialSpawner.h:26
MCAPI void applyUpdatePacket(::CompoundTag const &tag, ::BlockSource ®ion)
MCAPI bool _hasLineOfSight(::BlockSource const ®ion, ::Vec3 const from, ::Vec3 const to, float const maxRange) const
MCAPI void save(::CompoundTag &tag)
MCAPI void _setUpdated(::BlockSource ®ion)
MCAPI ::std::optional<::ActorUniqueID > _spawnMob(::BlockSource ®ion, ::BlockPos blockActorPos)
static MCAPI ::std::vector<::ItemStack > _getRandomLootTableItems(::Level &level, ::Random &random, ::DimensionType dimensionType, ::std::string const &lootTableName)
MCAPI::CompoundTag createUpdatePacket()
MCAPI void _spawnItemSpawner(::BlockSource ®ion, ::Vec3 pos, ::ItemStack const &itemToSpawn)
MCAPI::Mob * createAndAddDisplayEntity(::BlockSource ®ion)
MCAPI::SpawnData const * getOrCreateNextSpawnData(::Random &random)
MCAPI ::std::optional<::Vec3 > _getPositionToSpawnItemSpawner(::BlockSource ®ion, ::std::vector<::ActorUniqueID > const &eligibleActorIds) const
MCAPI void load(::CompoundTag const &data, ::TrialSpawnerConfigRegistry const &configRegistry)
MCAPI ::std::vector<::TrialSpawner::WeightedItemStack > & _getDispensingItems(::BlockSource ®ion)
MCAPI void removeDisplayEntity()
MCAPI::TrialSpawner::SpawningLogicState getSpawningLogicState(::BlockSource ®ion) const
MCAPI void _tryRegisterNewPlayers(::BlockSource ®ion, ::TrialSpawner::SpawningLogicState currentState)
MCAPI void tick(::BlockSource ®ion)
MCAPI void setEntityId(::ActorDefinitionIdentifier const &actorDefId, ::BlockSource ®ion)
MCAPI void _sendSmallFlame(::BlockSource ®ion, ::Vec3 const center)
Definition ActorDefinitionIdentifier.h:15
Definition ActorUniqueID.h:5
Definition DimensionType.h:5
Definition TrialSpawner.h:63
Definition TrialSpawner.h:46
Definition TrialSpawner.h:55