docs: add plugin setup guide
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
#pragma once
|
||||
|
||||
#include "RE/E/ENUM_FORM_ID.h"
|
||||
|
||||
namespace RE
|
||||
{
|
||||
enum class OBJECT_CATEGORY_TYPE;
|
||||
enum class OBJECT_TYPE;
|
||||
|
||||
class __declspec(novtable) IFormFactory
|
||||
{
|
||||
public:
|
||||
static constexpr auto RTTI{ RTTI::IFormFactory };
|
||||
static constexpr auto VTABLE{ VTABLE::IFormFactory };
|
||||
|
||||
virtual ~IFormFactory(); // 00
|
||||
|
||||
// add
|
||||
[[nodiscard]] virtual TESForm* DoCreate() = 0; // 01
|
||||
[[nodiscard]] virtual const char* GetFormName() const = 0; // 02
|
||||
[[nodiscard]] virtual ENUM_FORM_ID GetFormID() const = 0; // 03
|
||||
[[nodiscard]] virtual const char* GetObjectName() const { return nullptr; } // 04
|
||||
[[nodiscard]] virtual OBJECT_TYPE GetObjectType() const; // 05
|
||||
[[nodiscard]] virtual OBJECT_CATEGORY_TYPE GetObjectCategory() const; // 06
|
||||
[[nodiscard]] virtual BGSMod::Property::BridgeI* GetPropertyBridge() const { return nullptr; } // 07
|
||||
|
||||
[[nodiscard]] static auto GetFormFactories()
|
||||
-> std::span<IFormFactory*, std::to_underlying(ENUM_FORM_ID::kTotal)>
|
||||
{
|
||||
constexpr auto len = std::to_underlying(ENUM_FORM_ID::kTotal);
|
||||
static REL::Relocation<IFormFactory*(*)[len]> factories{ ID::IFormFactory::Factories };
|
||||
return { *factories };
|
||||
}
|
||||
};
|
||||
static_assert(sizeof(IFormFactory) == 0x8);
|
||||
}
|
||||
Reference in New Issue
Block a user