// This Header is auto generated by BDSLiteLoader Toolchain
#pragma once
#define AUTO_GENERATED
#include "../Global.h"

#define BEFORE_EXTRA

#undef BEFORE_EXTRA

using EntityId = unsigned int;

template <typename T>
struct EnableGetWeakRef {
};

struct EntityRefTraits {
};

struct  __declspec(align(8)) EntityRegistryBase {
    struct ICanModifyComponentPoolDuringView {
    };

public:
    entt::basic_registry<EntityId>* mRegistry;
    EntityId mViewedEntity;
    std::unique_ptr<EntityRegistryBase::ICanModifyComponentPoolDuringView> mCanModifyDuringView;
    bool mViewUsesViewedContext;

};


struct __declspec(align(8)) EntityContextBase {
    EntityRegistryBase* mRegistry;
    const EntityId mEntity;
};

struct EntityContext : EntityContextBase, EnableGetWeakRef<EntityRefTraits> {

};

class OwnerStorageEntity {

#define AFTER_EXTRA
    struct EntityContextOwned : EntityContext {

    };

private:
    std::optional<OwnerStorageEntity::EntityContextOwned> mContext;
#undef AFTER_EXTRA
#ifndef DISABLE_CONSTRUCTOR_PREVENTION_OWNERSTORAGEENTITY
public:
    class OwnerStorageEntity& operator=(class OwnerStorageEntity const &) = delete;
    OwnerStorageEntity(class OwnerStorageEntity const &) = delete;
    OwnerStorageEntity() = delete;
#endif

public:
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_OWNERSTORAGEENTITY
#endif

//protected:
    MCAPI void _reset();

protected:

};