# D~6

# DefinitionInstance<EntityContext &,DespawnDefinition,DespawnComponent>

struct __cppobj DefinitionInstance<EntityContext &,DespawnDefinition,DespawnComponent> : DefinitionInstanceTyped<DespawnDefinition>
{
};

# DefinitionInstance<EntityContext &,DespawnDefinition,DespawnComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,DespawnDefinition,DespawnComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,DespawnDefinition,DespawnComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,DespawnDefinition,DespawnComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,DespawnDefinition,DespawnComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,DespawnDefinition,DespawnComponent> *this, EntityContext *);
};

# DefinitionSerializer<DespawnDefinition>

struct __cppobj DefinitionSerializer<DespawnDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<DespawnDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,DespawnDefinition> > mSchema;
};

# DefinitionSerializer<DespawnDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<DespawnDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<EntitySensorDefinition>

struct __cppobj DefinitionInstanceTyped<EntitySensorDefinition> : IDefinitionInstance
{
  std::unique_ptr<EntitySensorDefinition> mDefinition;
};

# DefinitionInstanceTyped<EntitySensorDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<EntitySensorDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,EntitySensorDefinition,EntitySensorComponent>

struct __cppobj DefinitionInstance<EntityContext &,EntitySensorDefinition,EntitySensorComponent> : DefinitionInstanceTyped<EntitySensorDefinition>
{
};

# DefinitionInstance<EntityContext &,EntitySensorDefinition,EntitySensorComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,EntitySensorDefinition,EntitySensorComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,EntitySensorDefinition,EntitySensorComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,EntitySensorDefinition,EntitySensorComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,EntitySensorDefinition,EntitySensorComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,EntitySensorDefinition,EntitySensorComponent> *this, EntityContext *);
};

# DefinitionSerializer<EntitySensorDefinition>

struct __cppobj DefinitionSerializer<EntitySensorDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<EntitySensorDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,EntitySensorDefinition> > mSchema;
};

# DefinitionSerializer<EntitySensorDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<EntitySensorDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,EnvironmentSensorDefinition,ActorFlagComponent<EnvironmentSensorFlag> >

struct __cppobj DefinitionInstance<EntityContext &,EnvironmentSensorDefinition,ActorFlagComponent<EnvironmentSensorFlag> > : DefinitionInstanceTyped<EnvironmentSensorDefinition>
{
};

# DefinitionInstance<EntityContext &,EnvironmentSensorDefinition,ActorFlagComponent<EnvironmentSensorFlag> >_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,EnvironmentSensorDefinition,ActorFlagComponent<EnvironmentSensorFlag> >_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,EnvironmentSensorDefinition,ActorFlagComponent<EnvironmentSensorFlag> > *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,EnvironmentSensorDefinition,ActorFlagComponent<EnvironmentSensorFlag> > *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,EnvironmentSensorDefinition,ActorFlagComponent<EnvironmentSensorFlag> > *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,EnvironmentSensorDefinition,ActorFlagComponent<EnvironmentSensorFlag> > *this, EntityContext *);
};

# DefinitionSerializer<EnvironmentSensorDefinition>

struct __cppobj DefinitionSerializer<EnvironmentSensorDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<EnvironmentSensorDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,EnvironmentSensorDefinition> > mSchema;
};

# DefinitionSerializer<EnvironmentSensorDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<EnvironmentSensorDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<EquipItemComponent::Definition>

struct __cppobj DefinitionInstanceTyped<EquipItemComponent::Definition> : IDefinitionInstance
{
  std::unique_ptr<EquipItemComponent::Definition> mDefinition;
};

# DefinitionInstanceTyped<EquipItemComponent::Definition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<EquipItemComponent::Definition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,EquipItemComponent::Definition,EquipItemComponent>

struct __cppobj DefinitionInstance<EntityContext &,EquipItemComponent::Definition,EquipItemComponent> : DefinitionInstanceTyped<EquipItemComponent::Definition>
{
};

# DefinitionInstance<EntityContext &,EquipItemComponent::Definition,EquipItemComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,EquipItemComponent::Definition,EquipItemComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,EquipItemComponent::Definition,EquipItemComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,EquipItemComponent::Definition,EquipItemComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,EquipItemComponent::Definition,EquipItemComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,EquipItemComponent::Definition,EquipItemComponent> *this, EntityContext *);
};

# DefinitionSerializer<EquipItemComponent::Definition>

struct __cppobj DefinitionSerializer<EquipItemComponent::Definition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<EquipItemComponent::Definition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,EquipItemComponent::Definition> > mSchema;
};

# DefinitionSerializer<EquipItemComponent::Definition>_vtbl

struct /*VFT*/ DefinitionSerializer<EquipItemComponent::Definition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,EquippableDefinition,EquippableComponent>

struct __cppobj DefinitionInstance<EntityContext &,EquippableDefinition,EquippableComponent> : DefinitionInstanceTyped<EquippableDefinition>
{
};

# DefinitionInstance<EntityContext &,EquippableDefinition,EquippableComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,EquippableDefinition,EquippableComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,EquippableDefinition,EquippableComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,EquippableDefinition,EquippableComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,EquippableDefinition,EquippableComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,EquippableDefinition,EquippableComponent> *this, EntityContext *);
};

# DefinitionSerializer<EquippableDefinition>

struct __cppobj DefinitionSerializer<EquippableDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<EquippableDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,EquippableDefinition> > mSchema;
};

# DefinitionSerializer<EquippableDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<EquippableDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<ExperienceRewardDefinition>

struct __cppobj DefinitionInstanceTyped<ExperienceRewardDefinition> : IDefinitionInstance
{
  std::unique_ptr<ExperienceRewardDefinition> mDefinition;
};

# DefinitionInstanceTyped<ExperienceRewardDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<ExperienceRewardDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,ExperienceRewardDefinition,ExperienceRewardComponent>

struct __cppobj DefinitionInstance<EntityContext &,ExperienceRewardDefinition,ExperienceRewardComponent> : DefinitionInstanceTyped<ExperienceRewardDefinition>
{
};

# DefinitionInstance<EntityContext &,ExperienceRewardDefinition,ExperienceRewardComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,ExperienceRewardDefinition,ExperienceRewardComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,ExperienceRewardDefinition,ExperienceRewardComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,ExperienceRewardDefinition,ExperienceRewardComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,ExperienceRewardDefinition,ExperienceRewardComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,ExperienceRewardDefinition,ExperienceRewardComponent> *this, EntityContext *);
};

# DefinitionSerializer<ExperienceRewardDefinition>

struct __cppobj DefinitionSerializer<ExperienceRewardDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<ExperienceRewardDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,ExperienceRewardDefinition> > mSchema;
};

# DefinitionSerializer<ExperienceRewardDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<ExperienceRewardDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,ExplodeDefinition,ExplodeComponent>

struct __cppobj DefinitionInstance<EntityContext &,ExplodeDefinition,ExplodeComponent> : DefinitionInstanceTyped<ExplodeDefinition>
{
};

# DefinitionInstance<EntityContext &,ExplodeDefinition,ExplodeComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,ExplodeDefinition,ExplodeComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,ExplodeDefinition,ExplodeComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,ExplodeDefinition,ExplodeComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,ExplodeDefinition,ExplodeComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,ExplodeDefinition,ExplodeComponent> *this, EntityContext *);
};

# DefinitionSerializer<ExplodeDefinition>

struct __cppobj DefinitionSerializer<ExplodeDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<ExplodeDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,ExplodeDefinition> > mSchema;
};

# DefinitionSerializer<ExplodeDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<ExplodeDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<FlockingDefinition>

struct __cppobj DefinitionInstanceTyped<FlockingDefinition> : IDefinitionInstance
{
  std::unique_ptr<FlockingDefinition> mDefinition;
};

# DefinitionInstanceTyped<FlockingDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<FlockingDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,FlockingDefinition,FlockingComponent>

struct __cppobj DefinitionInstance<EntityContext &,FlockingDefinition,FlockingComponent> : DefinitionInstanceTyped<FlockingDefinition>
{
};

# DefinitionInstance<EntityContext &,FlockingDefinition,FlockingComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,FlockingDefinition,FlockingComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,FlockingDefinition,FlockingComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,FlockingDefinition,FlockingComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,FlockingDefinition,FlockingComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,FlockingDefinition,FlockingComponent> *this, EntityContext *);
};

# DefinitionSerializer<FlockingDefinition>

struct __cppobj DefinitionSerializer<FlockingDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<FlockingDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,FlockingDefinition> > mSchema;
};

# DefinitionSerializer<FlockingDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<FlockingDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,GeneticsDefinition,GeneticsComponent>

struct __cppobj DefinitionInstance<EntityContext &,GeneticsDefinition,GeneticsComponent> : DefinitionInstanceTyped<GeneticsDefinition>
{
};

# DefinitionInstance<EntityContext &,GeneticsDefinition,GeneticsComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,GeneticsDefinition,GeneticsComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,GeneticsDefinition,GeneticsComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,GeneticsDefinition,GeneticsComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,GeneticsDefinition,GeneticsComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,GeneticsDefinition,GeneticsComponent> *this, EntityContext *);
};

# DefinitionSerializer<GeneticsDefinition>

struct __cppobj DefinitionSerializer<GeneticsDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<GeneticsDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,GeneticsDefinition> > mSchema;
};

# DefinitionSerializer<GeneticsDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<GeneticsDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,GiveableDefinition,GiveableComponent>

struct __cppobj DefinitionInstance<EntityContext &,GiveableDefinition,GiveableComponent> : DefinitionInstanceTyped<GiveableDefinition>
{
};

# DefinitionInstance<EntityContext &,GiveableDefinition,GiveableComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,GiveableDefinition,GiveableComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,GiveableDefinition,GiveableComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,GiveableDefinition,GiveableComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,GiveableDefinition,GiveableComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,GiveableDefinition,GiveableComponent> *this, EntityContext *);
};

# DefinitionSerializer<GiveableDefinition>

struct __cppobj DefinitionSerializer<GiveableDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<GiveableDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,GiveableDefinition> > mSchema;
};

# DefinitionSerializer<GiveableDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<GiveableDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,GroupSizeDefinition,GroupSizeComponent>

struct __cppobj DefinitionInstance<EntityContext &,GroupSizeDefinition,GroupSizeComponent> : DefinitionInstanceTyped<GroupSizeDefinition>
{
};

# DefinitionInstance<EntityContext &,GroupSizeDefinition,GroupSizeComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,GroupSizeDefinition,GroupSizeComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,GroupSizeDefinition,GroupSizeComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,GroupSizeDefinition,GroupSizeComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,GroupSizeDefinition,GroupSizeComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,GroupSizeDefinition,GroupSizeComponent> *this, EntityContext *);
};

# DefinitionSerializer<GroupSizeDefinition>

struct __cppobj DefinitionSerializer<GroupSizeDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<GroupSizeDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,GroupSizeDefinition> > mSchema;
};

# DefinitionSerializer<GroupSizeDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<GroupSizeDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,GrowsCropDefinition,GrowsCropComponent>

struct __cppobj DefinitionInstance<EntityContext &,GrowsCropDefinition,GrowsCropComponent> : DefinitionInstanceTyped<GrowsCropDefinition>
{
};

# DefinitionInstance<EntityContext &,GrowsCropDefinition,GrowsCropComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,GrowsCropDefinition,GrowsCropComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,GrowsCropDefinition,GrowsCropComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,GrowsCropDefinition,GrowsCropComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,GrowsCropDefinition,GrowsCropComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,GrowsCropDefinition,GrowsCropComponent> *this, EntityContext *);
};

# DefinitionSerializer<GrowsCropDefinition>

struct __cppobj DefinitionSerializer<GrowsCropDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<GrowsCropDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,GrowsCropDefinition> > mSchema;
};

# DefinitionSerializer<GrowsCropDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<GrowsCropDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,HealableDefinition,HealableComponent>

struct __cppobj DefinitionInstance<EntityContext &,HealableDefinition,HealableComponent> : DefinitionInstanceTyped<HealableDefinition>
{
};

# DefinitionInstance<EntityContext &,HealableDefinition,HealableComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,HealableDefinition,HealableComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,HealableDefinition,HealableComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,HealableDefinition,HealableComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,HealableDefinition,HealableComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,HealableDefinition,HealableComponent> *this, EntityContext *);
};

# DefinitionSerializer<HealableDefinition>

struct __cppobj DefinitionSerializer<HealableDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<HealableDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,HealableDefinition> > mSchema;
};

# DefinitionSerializer<HealableDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<HealableDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<HitboxDefinition>

struct __cppobj DefinitionInstanceTyped<HitboxDefinition> : IDefinitionInstance
{
  std::unique_ptr<HitboxDefinition> mDefinition;
};

# DefinitionInstanceTyped<HitboxDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<HitboxDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,HitboxDefinition,HitboxComponent>

struct __cppobj DefinitionInstance<EntityContext &,HitboxDefinition,HitboxComponent> : DefinitionInstanceTyped<HitboxDefinition>
{
};

# DefinitionInstance<EntityContext &,HitboxDefinition,HitboxComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,HitboxDefinition,HitboxComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,HitboxDefinition,HitboxComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,HitboxDefinition,HitboxComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,HitboxDefinition,HitboxComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,HitboxDefinition,HitboxComponent> *this, EntityContext *);
};

# DefinitionSerializer<HitboxDefinition>

struct __cppobj DefinitionSerializer<HitboxDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<HitboxDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,HitboxDefinition> > mSchema;
};

# DefinitionSerializer<HitboxDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<HitboxDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,HomeDefinition,HomeComponent>

struct __cppobj DefinitionInstance<EntityContext &,HomeDefinition,HomeComponent> : DefinitionInstanceTyped<HomeDefinition>
{
};

# DefinitionInstance<EntityContext &,HomeDefinition,HomeComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,HomeDefinition,HomeComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,HomeDefinition,HomeComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,HomeDefinition,HomeComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,HomeDefinition,HomeComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,HomeDefinition,HomeComponent> *this, EntityContext *);
};

# DefinitionSerializer<HomeDefinition>

struct __cppobj DefinitionSerializer<HomeDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<HomeDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,HomeDefinition> > mSchema;
};

# DefinitionSerializer<HomeDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<HomeDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<HopperDefinition>

struct __cppobj DefinitionInstanceTyped<HopperDefinition> : IDefinitionInstance
{
  std::unique_ptr<HopperDefinition> mDefinition;
};

# DefinitionInstanceTyped<HopperDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<HopperDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,HopperDefinition,HopperComponent>

struct __cppobj DefinitionInstance<EntityContext &,HopperDefinition,HopperComponent> : DefinitionInstanceTyped<HopperDefinition>
{
};

# DefinitionInstance<EntityContext &,HopperDefinition,HopperComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,HopperDefinition,HopperComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,HopperDefinition,HopperComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,HopperDefinition,HopperComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,HopperDefinition,HopperComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,HopperDefinition,HopperComponent> *this, EntityContext *);
};

# DefinitionSerializer<HopperDefinition>

struct __cppobj DefinitionSerializer<HopperDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<HopperDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,HopperDefinition> > mSchema;
};

# DefinitionSerializer<HopperDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<HopperDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,HurtOnConditionDefinition,HurtOnConditionComponent>

struct __cppobj DefinitionInstance<EntityContext &,HurtOnConditionDefinition,HurtOnConditionComponent> : DefinitionInstanceTyped<HurtOnConditionDefinition>
{
};

# DefinitionInstance<EntityContext &,HurtOnConditionDefinition,HurtOnConditionComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,HurtOnConditionDefinition,HurtOnConditionComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,HurtOnConditionDefinition,HurtOnConditionComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,HurtOnConditionDefinition,HurtOnConditionComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,HurtOnConditionDefinition,HurtOnConditionComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,HurtOnConditionDefinition,HurtOnConditionComponent> *this, EntityContext *);
};

# DefinitionSerializer<HurtOnConditionDefinition>

struct __cppobj DefinitionSerializer<HurtOnConditionDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<HurtOnConditionDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,HurtOnConditionDefinition> > mSchema;
};

# DefinitionSerializer<HurtOnConditionDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<HurtOnConditionDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<InsideBlockNotifierDefinition>

struct __cppobj DefinitionInstanceTyped<InsideBlockNotifierDefinition> : IDefinitionInstance
{
  std::unique_ptr<InsideBlockNotifierDefinition> mDefinition;
};

# DefinitionInstanceTyped<InsideBlockNotifierDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<InsideBlockNotifierDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,InsideBlockNotifierDefinition,InsideBlockNotifierComponent>

struct __cppobj DefinitionInstance<EntityContext &,InsideBlockNotifierDefinition,InsideBlockNotifierComponent> : DefinitionInstanceTyped<InsideBlockNotifierDefinition>
{
};

# DefinitionInstance<EntityContext &,InsideBlockNotifierDefinition,InsideBlockNotifierComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,InsideBlockNotifierDefinition,InsideBlockNotifierComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,InsideBlockNotifierDefinition,InsideBlockNotifierComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,InsideBlockNotifierDefinition,InsideBlockNotifierComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,InsideBlockNotifierDefinition,InsideBlockNotifierComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,InsideBlockNotifierDefinition,InsideBlockNotifierComponent> *this, EntityContext *);
};

# DefinitionSerializer<InsideBlockNotifierDefinition>

struct __cppobj DefinitionSerializer<InsideBlockNotifierDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<InsideBlockNotifierDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,InsideBlockNotifierDefinition> > mSchema;
};

# DefinitionSerializer<InsideBlockNotifierDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<InsideBlockNotifierDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,InsomniaDefinition,InsomniaComponent>

struct __cppobj DefinitionInstance<EntityContext &,InsomniaDefinition,InsomniaComponent> : DefinitionInstanceTyped<InsomniaDefinition>
{
};

# DefinitionInstance<EntityContext &,InsomniaDefinition,InsomniaComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,InsomniaDefinition,InsomniaComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,InsomniaDefinition,InsomniaComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,InsomniaDefinition,InsomniaComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,InsomniaDefinition,InsomniaComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,InsomniaDefinition,InsomniaComponent> *this, EntityContext *);
};

# DefinitionSerializer<InsomniaDefinition>

struct __cppobj DefinitionSerializer<InsomniaDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<InsomniaDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,InsomniaDefinition> > mSchema;
};

# DefinitionSerializer<InsomniaDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<InsomniaDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,InstantDespawnDefinition,InstantDespawnComponent>

struct __cppobj DefinitionInstance<EntityContext &,InstantDespawnDefinition,InstantDespawnComponent> : DefinitionInstanceTyped<InstantDespawnDefinition>
{
};

# DefinitionInstance<EntityContext &,InstantDespawnDefinition,InstantDespawnComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,InstantDespawnDefinition,InstantDespawnComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,InstantDespawnDefinition,InstantDespawnComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,InstantDespawnDefinition,InstantDespawnComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,InstantDespawnDefinition,InstantDespawnComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,InstantDespawnDefinition,InstantDespawnComponent> *this, EntityContext *);
};

# DefinitionSerializer<InstantDespawnDefinition>

struct __cppobj DefinitionSerializer<InstantDespawnDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<InstantDespawnDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,InstantDespawnDefinition> > mSchema;
};

# DefinitionSerializer<InstantDespawnDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<InstantDespawnDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,InteractDefinition,InteractComponent>

struct __cppobj DefinitionInstance<EntityContext &,InteractDefinition,InteractComponent> : DefinitionInstanceTyped<InteractDefinition>
{
};

# DefinitionInstance<EntityContext &,InteractDefinition,InteractComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,InteractDefinition,InteractComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,InteractDefinition,InteractComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,InteractDefinition,InteractComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,InteractDefinition,InteractComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,InteractDefinition,InteractComponent> *this, EntityContext *);
};

# DefinitionSerializer<InteractDefinition>

struct __cppobj DefinitionSerializer<InteractDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<InteractDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,InteractDefinition> > mSchema;
};

# DefinitionSerializer<InteractDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<InteractDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,LeashableDefinition,LeashableComponent>

struct __cppobj DefinitionInstance<EntityContext &,LeashableDefinition,LeashableComponent> : DefinitionInstanceTyped<LeashableDefinition>
{
};

# DefinitionInstance<EntityContext &,LeashableDefinition,LeashableComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,LeashableDefinition,LeashableComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,LeashableDefinition,LeashableComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,LeashableDefinition,LeashableComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,LeashableDefinition,LeashableComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,LeashableDefinition,LeashableComponent> *this, EntityContext *);
};

# DefinitionSerializer<LeashableDefinition>

struct __cppobj DefinitionSerializer<LeashableDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<LeashableDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,LeashableDefinition> > mSchema;
};

# DefinitionSerializer<LeashableDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<LeashableDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,LegacyTradeableDefinition,LegacyTradeableComponent>

struct __cppobj DefinitionInstance<EntityContext &,LegacyTradeableDefinition,LegacyTradeableComponent> : DefinitionInstanceTyped<LegacyTradeableDefinition>
{
};

# DefinitionInstance<EntityContext &,LegacyTradeableDefinition,LegacyTradeableComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,LegacyTradeableDefinition,LegacyTradeableComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,LegacyTradeableDefinition,LegacyTradeableComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,LegacyTradeableDefinition,LegacyTradeableComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,LegacyTradeableDefinition,LegacyTradeableComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,LegacyTradeableDefinition,LegacyTradeableComponent> *this, EntityContext *);
};

# DefinitionSerializer<LegacyTradeableDefinition>

struct __cppobj DefinitionSerializer<LegacyTradeableDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<LegacyTradeableDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,LegacyTradeableDefinition> > mSchema;
};

# DefinitionSerializer<LegacyTradeableDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<LegacyTradeableDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,LookAtDefinition,LookAtComponent>

struct __cppobj DefinitionInstance<EntityContext &,LookAtDefinition,LookAtComponent> : DefinitionInstanceTyped<LookAtDefinition>
{
};

# DefinitionInstance<EntityContext &,LookAtDefinition,LookAtComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,LookAtDefinition,LookAtComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,LookAtDefinition,LookAtComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,LookAtDefinition,LookAtComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,LookAtDefinition,LookAtComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,LookAtDefinition,LookAtComponent> *this, EntityContext *);
};

# DefinitionSerializer<LookAtDefinition>

struct __cppobj DefinitionSerializer<LookAtDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<LookAtDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,LookAtDefinition> > mSchema;
};

# DefinitionSerializer<LookAtDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<LookAtDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<MobEffectDefinition>

struct __cppobj DefinitionInstanceTyped<MobEffectDefinition> : IDefinitionInstance
{
  std::unique_ptr<MobEffectDefinition> mDefinition;
};

# DefinitionInstanceTyped<MobEffectDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<MobEffectDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,MobEffectDefinition,MobEffectComponent>

struct __cppobj DefinitionInstance<EntityContext &,MobEffectDefinition,MobEffectComponent> : DefinitionInstanceTyped<MobEffectDefinition>
{
};

# DefinitionInstance<EntityContext &,MobEffectDefinition,MobEffectComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,MobEffectDefinition,MobEffectComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,MobEffectDefinition,MobEffectComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,MobEffectDefinition,MobEffectComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,MobEffectDefinition,MobEffectComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,MobEffectDefinition,MobEffectComponent> *this, EntityContext *);
};

# DefinitionSerializer<MobEffectDefinition>

struct __cppobj DefinitionSerializer<MobEffectDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<MobEffectDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,MobEffectDefinition> > mSchema;
};

# DefinitionSerializer<MobEffectDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<MobEffectDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,MountTameableDefinition,MountTamingComponent>

struct __cppobj DefinitionInstance<EntityContext &,MountTameableDefinition,MountTamingComponent> : DefinitionInstanceTyped<MountTameableDefinition>
{
};

# DefinitionInstance<EntityContext &,MountTameableDefinition,MountTamingComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,MountTameableDefinition,MountTamingComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,MountTameableDefinition,MountTamingComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,MountTameableDefinition,MountTamingComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,MountTameableDefinition,MountTamingComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,MountTameableDefinition,MountTamingComponent> *this, EntityContext *);
};

# DefinitionSerializer<MountTameableDefinition>

struct __cppobj DefinitionSerializer<MountTameableDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<MountTameableDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,MountTameableDefinition> > mSchema;
};

# DefinitionSerializer<MountTameableDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<MountTameableDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,NameableDefinition,NameableComponent>

struct __cppobj DefinitionInstance<EntityContext &,NameableDefinition,NameableComponent> : DefinitionInstanceTyped<NameableDefinition>
{
};

# DefinitionInstance<EntityContext &,NameableDefinition,NameableComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,NameableDefinition,NameableComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,NameableDefinition,NameableComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,NameableDefinition,NameableComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,NameableDefinition,NameableComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,NameableDefinition,NameableComponent> *this, EntityContext *);
};

# DefinitionSerializer<NameableDefinition>

struct __cppobj DefinitionSerializer<NameableDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<NameableDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,NameableDefinition> > mSchema;
};

# DefinitionSerializer<NameableDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<NameableDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<OutOfControlDefinition>

struct __cppobj DefinitionInstanceTyped<OutOfControlDefinition> : IDefinitionInstance
{
  std::unique_ptr<OutOfControlDefinition> mDefinition;
};

# DefinitionInstanceTyped<OutOfControlDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<OutOfControlDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,OutOfControlDefinition,OutOfControlComponent>

struct __cppobj DefinitionInstance<EntityContext &,OutOfControlDefinition,OutOfControlComponent> : DefinitionInstanceTyped<OutOfControlDefinition>
{
};

# DefinitionInstance<EntityContext &,OutOfControlDefinition,OutOfControlComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,OutOfControlDefinition,OutOfControlComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,OutOfControlDefinition,OutOfControlComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,OutOfControlDefinition,OutOfControlComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,OutOfControlDefinition,OutOfControlComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,OutOfControlDefinition,OutOfControlComponent> *this, EntityContext *);
};

# DefinitionSerializer<OutOfControlDefinition>

struct __cppobj DefinitionSerializer<OutOfControlDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<OutOfControlDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,OutOfControlDefinition> > mSchema;
};

# DefinitionSerializer<OutOfControlDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<OutOfControlDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<PeekDefinition>

struct __cppobj DefinitionInstanceTyped<PeekDefinition> : IDefinitionInstance
{
  std::unique_ptr<PeekDefinition> mDefinition;
};

# DefinitionInstanceTyped<PeekDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<PeekDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,PeekDefinition,PeekComponent>

struct __cppobj DefinitionInstance<EntityContext &,PeekDefinition,PeekComponent> : DefinitionInstanceTyped<PeekDefinition>
{
};

# DefinitionInstance<EntityContext &,PeekDefinition,PeekComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,PeekDefinition,PeekComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,PeekDefinition,PeekComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,PeekDefinition,PeekComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,PeekDefinition,PeekComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,PeekDefinition,PeekComponent> *this, EntityContext *);
};

# DefinitionSerializer<PeekDefinition>

struct __cppobj DefinitionSerializer<PeekDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<PeekDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,PeekDefinition> > mSchema;
};

# DefinitionSerializer<PeekDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<PeekDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<PhysicsDefinition>

struct __cppobj DefinitionInstanceTyped<PhysicsDefinition> : IDefinitionInstance
{
  std::unique_ptr<PhysicsDefinition> mDefinition;
};

# DefinitionInstanceTyped<PhysicsDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<PhysicsDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,PhysicsDefinition,PhysicsComponent>

struct __cppobj DefinitionInstance<EntityContext &,PhysicsDefinition,PhysicsComponent> : DefinitionInstanceTyped<PhysicsDefinition>
{
};

# DefinitionInstance<EntityContext &,PhysicsDefinition,PhysicsComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,PhysicsDefinition,PhysicsComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,PhysicsDefinition,PhysicsComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,PhysicsDefinition,PhysicsComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,PhysicsDefinition,PhysicsComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,PhysicsDefinition,PhysicsComponent> *this, EntityContext *);
};

# DefinitionSerializer<PhysicsDefinition>

struct __cppobj DefinitionSerializer<PhysicsDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<PhysicsDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,PhysicsDefinition> > mSchema;
};

# DefinitionSerializer<PhysicsDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<PhysicsDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<RailActivatorDefinition>

struct __cppobj DefinitionInstanceTyped<RailActivatorDefinition> : IDefinitionInstance
{
  std::unique_ptr<RailActivatorDefinition> mDefinition;
};

# DefinitionInstanceTyped<RailActivatorDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<RailActivatorDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,RailActivatorDefinition,RailActivatorComponent>

struct __cppobj DefinitionInstance<EntityContext &,RailActivatorDefinition,RailActivatorComponent> : DefinitionInstanceTyped<RailActivatorDefinition>
{
};

# DefinitionInstance<EntityContext &,RailActivatorDefinition,RailActivatorComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,RailActivatorDefinition,RailActivatorComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,RailActivatorDefinition,RailActivatorComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,RailActivatorDefinition,RailActivatorComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,RailActivatorDefinition,RailActivatorComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,RailActivatorDefinition,RailActivatorComponent> *this, EntityContext *);
};

# DefinitionSerializer<RailActivatorDefinition>

struct __cppobj DefinitionSerializer<RailActivatorDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<RailActivatorDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,RailActivatorDefinition> > mSchema;
};

# DefinitionSerializer<RailActivatorDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<RailActivatorDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<RailMovementDefinition>

struct __cppobj DefinitionInstanceTyped<RailMovementDefinition> : IDefinitionInstance
{
  std::unique_ptr<RailMovementDefinition> mDefinition;
};

# DefinitionInstanceTyped<RailMovementDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<RailMovementDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,RailMovementDefinition,RailMovementComponent>

struct __cppobj DefinitionInstance<EntityContext &,RailMovementDefinition,RailMovementComponent> : DefinitionInstanceTyped<RailMovementDefinition>
{
};

# DefinitionInstance<EntityContext &,RailMovementDefinition,RailMovementComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,RailMovementDefinition,RailMovementComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,RailMovementDefinition,RailMovementComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,RailMovementDefinition,RailMovementComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,RailMovementDefinition,RailMovementComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,RailMovementDefinition,RailMovementComponent> *this, EntityContext *);
};

# DefinitionSerializer<RailMovementDefinition>

struct __cppobj DefinitionSerializer<RailMovementDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<RailMovementDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,RailMovementDefinition> > mSchema;
};

# DefinitionSerializer<RailMovementDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<RailMovementDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,RideableDefinition,RideableComponent>

struct __cppobj DefinitionInstance<EntityContext &,RideableDefinition,RideableComponent> : DefinitionInstanceTyped<RideableDefinition>
{
};

# DefinitionInstance<EntityContext &,RideableDefinition,RideableComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,RideableDefinition,RideableComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,RideableDefinition,RideableComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,RideableDefinition,RideableComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,RideableDefinition,RideableComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,RideableDefinition,RideableComponent> *this, EntityContext *);
};

# DefinitionSerializer<RideableDefinition>

struct __cppobj DefinitionSerializer<RideableDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<RideableDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,RideableDefinition> > mSchema;
};

# DefinitionSerializer<RideableDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<RideableDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<ScaffoldingClimberDefinition>

struct __cppobj DefinitionInstanceTyped<ScaffoldingClimberDefinition> : IDefinitionInstance
{
  std::unique_ptr<ScaffoldingClimberDefinition> mDefinition;
};

# DefinitionInstanceTyped<ScaffoldingClimberDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<ScaffoldingClimberDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,ScaffoldingClimberDefinition,ScaffoldingClimberComponent>

struct __cppobj DefinitionInstance<EntityContext &,ScaffoldingClimberDefinition,ScaffoldingClimberComponent> : DefinitionInstanceTyped<ScaffoldingClimberDefinition>
{
};

# DefinitionInstance<EntityContext &,ScaffoldingClimberDefinition,ScaffoldingClimberComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,ScaffoldingClimberDefinition,ScaffoldingClimberComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,ScaffoldingClimberDefinition,ScaffoldingClimberComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,ScaffoldingClimberDefinition,ScaffoldingClimberComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,ScaffoldingClimberDefinition,ScaffoldingClimberComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,ScaffoldingClimberDefinition,ScaffoldingClimberComponent> *this, EntityContext *);
};

# DefinitionSerializer<ScaffoldingClimberDefinition>

struct __cppobj DefinitionSerializer<ScaffoldingClimberDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<ScaffoldingClimberDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,ScaffoldingClimberDefinition> > mSchema;
};

# DefinitionSerializer<ScaffoldingClimberDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<ScaffoldingClimberDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,ScaleByAgeDefinition,ScaleByAgeComponent>

struct __cppobj DefinitionInstance<EntityContext &,ScaleByAgeDefinition,ScaleByAgeComponent> : DefinitionInstanceTyped<ScaleByAgeDefinition>
{
};

# DefinitionInstance<EntityContext &,ScaleByAgeDefinition,ScaleByAgeComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,ScaleByAgeDefinition,ScaleByAgeComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,ScaleByAgeDefinition,ScaleByAgeComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,ScaleByAgeDefinition,ScaleByAgeComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,ScaleByAgeDefinition,ScaleByAgeComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,ScaleByAgeDefinition,ScaleByAgeComponent> *this, EntityContext *);
};

# DefinitionSerializer<ScaleByAgeDefinition>

struct __cppobj DefinitionSerializer<ScaleByAgeDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<ScaleByAgeDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,ScaleByAgeDefinition> > mSchema;
};

# DefinitionSerializer<ScaleByAgeDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<ScaleByAgeDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,SchedulerDefinition,SchedulerComponent>

struct __cppobj DefinitionInstance<EntityContext &,SchedulerDefinition,SchedulerComponent> : DefinitionInstanceTyped<SchedulerDefinition>
{
};

# DefinitionInstance<EntityContext &,SchedulerDefinition,SchedulerComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,SchedulerDefinition,SchedulerComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,SchedulerDefinition,SchedulerComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,SchedulerDefinition,SchedulerComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,SchedulerDefinition,SchedulerComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,SchedulerDefinition,SchedulerComponent> *this, EntityContext *);
};

# DefinitionSerializer<SchedulerDefinition>

struct __cppobj DefinitionSerializer<SchedulerDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<SchedulerDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,SchedulerDefinition> > mSchema;
};

# DefinitionSerializer<SchedulerDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<SchedulerDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,ShareableDefinition,ShareableComponent>

struct __cppobj DefinitionInstance<EntityContext &,ShareableDefinition,ShareableComponent> : DefinitionInstanceTyped<ShareableDefinition>
{
};

# DefinitionInstance<EntityContext &,ShareableDefinition,ShareableComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,ShareableDefinition,ShareableComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,ShareableDefinition,ShareableComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,ShareableDefinition,ShareableComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,ShareableDefinition,ShareableComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,ShareableDefinition,ShareableComponent> *this, EntityContext *);
};

# DefinitionSerializer<ShareableDefinition>

struct __cppobj DefinitionSerializer<ShareableDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<ShareableDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,ShareableDefinition> > mSchema;
};

# DefinitionSerializer<ShareableDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<ShareableDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,ShooterDefinition,ShooterComponent>

struct __cppobj DefinitionInstance<EntityContext &,ShooterDefinition,ShooterComponent> : DefinitionInstanceTyped<ShooterDefinition>
{
};

# DefinitionInstance<EntityContext &,ShooterDefinition,ShooterComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,ShooterDefinition,ShooterComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,ShooterDefinition,ShooterComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,ShooterDefinition,ShooterComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,ShooterDefinition,ShooterComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,ShooterDefinition,ShooterComponent> *this, EntityContext *);
};

# DefinitionSerializer<ShooterDefinition>

struct __cppobj DefinitionSerializer<ShooterDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<ShooterDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,ShooterDefinition> > mSchema;
};

# DefinitionSerializer<ShooterDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<ShooterDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,SittableDefinition,SitComponent>

struct __cppobj DefinitionInstance<EntityContext &,SittableDefinition,SitComponent> : DefinitionInstanceTyped<SittableDefinition>
{
};

# DefinitionInstance<EntityContext &,SittableDefinition,SitComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,SittableDefinition,SitComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,SittableDefinition,SitComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,SittableDefinition,SitComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,SittableDefinition,SitComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,SittableDefinition,SitComponent> *this, EntityContext *);
};

# DefinitionSerializer<SittableDefinition>

struct __cppobj DefinitionSerializer<SittableDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<SittableDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,SittableDefinition> > mSchema;
};

# DefinitionSerializer<SittableDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<SittableDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,TameableDefinition,TameableComponent>

struct __cppobj DefinitionInstance<EntityContext &,TameableDefinition,TameableComponent> : DefinitionInstanceTyped<TameableDefinition>
{
};

# DefinitionInstance<EntityContext &,TameableDefinition,TameableComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,TameableDefinition,TameableComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,TameableDefinition,TameableComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,TameableDefinition,TameableComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,TameableDefinition,TameableComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,TameableDefinition,TameableComponent> *this, EntityContext *);
};

# DefinitionSerializer<TameableDefinition>

struct __cppobj DefinitionSerializer<TameableDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<TameableDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,TameableDefinition> > mSchema;
};

# DefinitionSerializer<TameableDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<TameableDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,TimerDefinition,TimerComponent>

struct __cppobj DefinitionInstance<EntityContext &,TimerDefinition,TimerComponent> : DefinitionInstanceTyped<TimerDefinition>
{
};

# DefinitionInstance<EntityContext &,TimerDefinition,TimerComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,TimerDefinition,TimerComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,TimerDefinition,TimerComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,TimerDefinition,TimerComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,TimerDefinition,TimerComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,TimerDefinition,TimerComponent> *this, EntityContext *);
};

# DefinitionSerializer<TimerDefinition>

struct __cppobj DefinitionSerializer<TimerDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<TimerDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,TimerDefinition> > mSchema;
};

# DefinitionSerializer<TimerDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<TimerDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,SpawnActorDefinition,SpawnActorComponent>

struct __cppobj DefinitionInstance<EntityContext &,SpawnActorDefinition,SpawnActorComponent> : DefinitionInstanceTyped<SpawnActorDefinition>
{
};

# DefinitionInstance<EntityContext &,SpawnActorDefinition,SpawnActorComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,SpawnActorDefinition,SpawnActorComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,SpawnActorDefinition,SpawnActorComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,SpawnActorDefinition,SpawnActorComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,SpawnActorDefinition,SpawnActorComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,SpawnActorDefinition,SpawnActorComponent> *this, EntityContext *);
};

# DefinitionSerializer<SpawnActorDefinition>

struct __cppobj DefinitionSerializer<SpawnActorDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<SpawnActorDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,SpawnActorDefinition> > mSchema;
};

# DefinitionSerializer<SpawnActorDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<SpawnActorDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,TrustingDefinition,TrustingComponent>

struct __cppobj DefinitionInstance<EntityContext &,TrustingDefinition,TrustingComponent> : DefinitionInstanceTyped<TrustingDefinition>
{
};

# DefinitionInstance<EntityContext &,TrustingDefinition,TrustingComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,TrustingDefinition,TrustingComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,TrustingDefinition,TrustingComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,TrustingDefinition,TrustingComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,TrustingDefinition,TrustingComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,TrustingDefinition,TrustingComponent> *this, EntityContext *);
};

# DefinitionSerializer<TrustingDefinition>

struct __cppobj DefinitionSerializer<TrustingDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<TrustingDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,TrustingDefinition> > mSchema;
};

# DefinitionSerializer<TrustingDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<TrustingDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,BalloonDefinition,BalloonComponent>

struct __cppobj DefinitionInstance<EntityContext &,BalloonDefinition,BalloonComponent> : DefinitionInstanceTyped<BalloonDefinition>
{
};

# DefinitionInstance<EntityContext &,BalloonDefinition,BalloonComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,BalloonDefinition,BalloonComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,BalloonDefinition,BalloonComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,BalloonDefinition,BalloonComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,BalloonDefinition,BalloonComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,BalloonDefinition,BalloonComponent> *this, EntityContext *);
};

# DefinitionSerializer<BalloonDefinition>

struct __cppobj DefinitionSerializer<BalloonDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<BalloonDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,BalloonDefinition> > mSchema;
};

# DefinitionSerializer<BalloonDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<BalloonDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstance<EntityContext &,BalloonableDefinition,BalloonableComponent>

struct __cppobj DefinitionInstance<EntityContext &,BalloonableDefinition,BalloonableComponent> : DefinitionInstanceTyped<BalloonableDefinition>
{
};

# DefinitionInstance<EntityContext &,BalloonableDefinition,BalloonableComponent>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,BalloonableDefinition,BalloonableComponent>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,BalloonableDefinition,BalloonableComponent> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,BalloonableDefinition,BalloonableComponent> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,BalloonableDefinition,BalloonableComponent> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,BalloonableDefinition,BalloonableComponent> *this, EntityContext *);
};

# DefinitionSerializer<BalloonableDefinition>

struct __cppobj DefinitionSerializer<BalloonableDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<BalloonableDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,BalloonableDefinition> > mSchema;
};

# DefinitionSerializer<BalloonableDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<BalloonableDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<NearestAttackableTargetDefinition>

struct __cppobj DefinitionInstanceTyped<NearestAttackableTargetDefinition> : IDefinitionInstance
{
  std::unique_ptr<NearestAttackableTargetDefinition> mDefinition;
};

# DefinitionInstanceTyped<NearestAttackableTargetDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<NearestAttackableTargetDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,NearestAttackableTargetDefinition,NearestAttackableTargetGoal>

struct __cppobj DefinitionInstance<EntityContext &,NearestAttackableTargetDefinition,NearestAttackableTargetGoal> : DefinitionInstanceTyped<NearestAttackableTargetDefinition>
{
};

# DefinitionInstance<EntityContext &,NearestAttackableTargetDefinition,NearestAttackableTargetGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,NearestAttackableTargetDefinition,NearestAttackableTargetGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,NearestAttackableTargetDefinition,NearestAttackableTargetGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,NearestAttackableTargetDefinition,NearestAttackableTargetGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,NearestAttackableTargetDefinition,NearestAttackableTargetGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,NearestAttackableTargetDefinition,NearestAttackableTargetGoal> *this, EntityContext *);
};

# DefinitionSerializer<NearestAttackableTargetDefinition>

struct __cppobj DefinitionSerializer<NearestAttackableTargetDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<NearestAttackableTargetDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,NearestAttackableTargetDefinition> > mSchema;
};

# DefinitionSerializer<NearestAttackableTargetDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<NearestAttackableTargetDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DrinkPotionGoal

struct __cppobj DrinkPotionGoal : Goal
{
  Mob *mMob;
  const float mWalkSpeedModifier;
  const std::vector<DrinkPotionData> mDrinkPotionData;
  int mThrottleCooldown;
  int mUsingTime;
  AttributeModifier mSpeedAttributeModifier;
};

# DrinkPotionGoal_vtbl

struct /*VFT*/ DrinkPotionGoal_vtbl
{
  void (__fastcall *~Goal)(Goal *this);
  bool (__fastcall *canUse)(Goal *this);
  bool (__fastcall *canContinueToUse)(Goal *this);
  bool (__fastcall *canBeInterrupted)(Goal *this);
  void (__fastcall *start)(Goal *this);
  void (__fastcall *stop)(Goal *this);
  void (__fastcall *tick)(Goal *this);
  void (__fastcall *appendDebugInfo)(Goal *this, std::string *);
  bool (__fastcall *isTargetGoal)(Goal *this);
  void (__fastcall *onPlayerDimensionChanged)(Goal *this, Player *, AutomaticID<Dimension,int>);
};

# DefendTrustedTargetGoal

struct __cppobj DefendTrustedTargetGoal : NearestAttackableTargetGoal
{
  LevelSoundEvent mAggroSound;
  const DefinitionTrigger mOnStartEvent;
};

# DefendTrustedTargetGoal_vtbl

struct /*VFT*/ DefendTrustedTargetGoal_vtbl
{
  void (__fastcall *~Goal)(Goal *this);
  bool (__fastcall *canUse)(Goal *this);
  bool (__fastcall *canContinueToUse)(Goal *this);
  bool (__fastcall *canBeInterrupted)(Goal *this);
  void (__fastcall *start)(Goal *this);
  void (__fastcall *stop)(Goal *this);
  void (__fastcall *tick)(Goal *this);
  void (__fastcall *appendDebugInfo)(Goal *this, std::string *);
  bool (__fastcall *isTargetGoal)(Goal *this);
  void (__fastcall *onPlayerDimensionChanged)(Goal *this, Player *, AutomaticID<Dimension,int>);
  bool (__fastcall *_canAttack)(TargetGoal *this, Mob *, Actor *, bool, bool, const MobDescriptor **);
  ActorUniqueID *(__fastcall *_findTarget)(NearestAttackableTargetGoal *this, ActorUniqueID *result, const MobDescriptor **);
};

# Dolphin

struct __cppobj __declspec(align(8)) Dolphin : WaterAnimal
{
  int mBreatheCounter;
};

# DecoratorDefinition

struct __cppobj DecoratorDefinition : BehaviorDefinition
{
  std::unique_ptr<BehaviorDefinition> mChild;
};

# DecoratorDefinition_vtbl

struct /*VFT*/ DecoratorDefinition_vtbl
{
  void (__fastcall *~BehaviorDefinition)(BehaviorDefinition *this);
  void (__fastcall *load)(BehaviorDefinition *this, Json::Value, const BehaviorFactory *);
  std::unique_ptr<BehaviorNode> *(__fastcall *createNode)(BehaviorDefinition *this, std::unique_ptr<BehaviorNode> *result, Actor *, const BehaviorFactory *, BehaviorNode *, BehaviorData *);
};

# destroyBlocks::__l14::<lambda_ec037d1b7fb645caffe4fefc3634d19a>

struct __cppobj destroyBlocks::__l14::<lambda_ec037d1b7fb645caffe4fefc3634d19a>
{
  const std::string *actorId;
  const Block *block;
  BlockPos *targetBlockPos;
  BlockSource *region;
};

# DispenserBlockActor

struct __cppobj __declspec(align(8)) DispenserBlockActor : RandomizableBlockActorContainer
{
  ItemStack mItems[9];
  Random mRandom;
};

# DropperBlockActor

struct __cppobj DropperBlockActor : DispenserBlockActor
{
};

# DirectMobMovementProxy

struct __cppobj DirectMobMovementProxy : DirectMobMovementProxyImpl<IMobMovementProxy>
{
};

# DragonFireball

struct __cppobj DragonFireball : Fireball
{
};

# DragonFireball_vtbl

struct /*VFT*/ DragonFireball_vtbl
{
  bool (__fastcall *hasComponent)(Actor *this, const HashedString *);
  void (__fastcall *reloadHardcoded)(Actor *this, Actor::InitializationMethod, const VariantParameterList *);
  void (__fastcall *reloadHardcodedClient)(Actor *this, Actor::InitializationMethod, const VariantParameterList *);
  void (__fastcall *initializeComponents)(Actor *this, Actor::InitializationMethod, const VariantParameterList *);
  void (__fastcall *reloadComponents)(Actor *this, Actor::InitializationMethod, const VariantParameterList *);
  void (__fastcall *_serverInitItemStackIds)(Actor *this);
  void (__fastcall *_doInitialMove)(Actor *this);
  bool (__fastcall *checkAllSensitiveWords)(Actor *this);
  bool (__fastcall *checkNameTag)(Actor *this);
  void (__fastcall *~Actor)(Actor *this);
  void (__fastcall *reset)(Actor *this);
  int (__fastcall *getOnDeathExperience)(Actor *this);
  ActorType (__fastcall *getOwnerEntityType)(Actor *this);
  void (__fastcall *remove)(Actor *this);
  void (__fastcall *setPos)(Actor *this, const Vec3 *);
  const PredictedMovementValues *(__fastcall *getPredictedMovementValues)(Actor *this);
  const Vec3 *(__fastcall *getPos)(Actor *this);
  const Vec3 *(__fastcall *getPosOld)(Actor *this);
  const Vec3 *(__fastcall *getPosExtrapolated)(Actor *this, const Vec3 *result, float);
  Vec3 *(__fastcall *getAttachPos)(Actor *this, Vec3 *result, ActorLocation, float);
  Vec3 *(__fastcall *getFiringPos)(Actor *this, Vec3 *result);
  void (__fastcall *setRot)(Actor *this, const Vec2 *);
  void (__fastcall *move)(Actor *this, IActorMovementProxy *, const Vec3 *);
  void (__fastcall *move)(Actor *this, const Vec3 *);
  Vec3 *(__fastcall *getInterpolatedRidingPosition)(Actor *this, Vec3 *result, float);
  float (__fastcall *getInterpolatedBodyRot)(Actor *this, float);
  float (__fastcall *getInterpolatedHeadRot)(Actor *this, float);
  float (__fastcall *getInterpolatedBodyYaw)(Actor *this, float);
  float (__fastcall *getYawSpeedInDegreesPerSecond)(Actor *this);
  float (__fastcall *getInterpolatedWalkAnimSpeed)(Actor *this, float);
  Vec3 *(__fastcall *getInterpolatedRidingOffset)(Actor *this, Vec3 *result, float);
  void (__fastcall *checkBlockCollisions)(Actor *this);
  void (__fastcall *checkBlockCollisions)(Actor *this, const AABB *, std::function<void __cdecl(BlockSource &,Block const &,BlockPos const &,Actor &)>);
  bool (__fastcall *isFireImmune)(Actor *this);
  bool (__fastcall *breaksFallingBlocks)(Actor *this);
  void (__fastcall *blockedByShield)(Actor *this, const ActorDamageSource *, Actor *);
  void (__fastcall *teleportTo)(Actor *this, const Vec3 *, bool, int, int, const ActorUniqueID *);
  bool (__fastcall *tryTeleportTo)(Actor *this, const Vec3 *, bool, bool, int, int);
  void (__fastcall *chorusFruitTeleport)(Actor *this, Vec3 *);
  void (__fastcall *lerpTo)(Actor *this, const Vec3 *, const Vec2 *, int);
  void (__fastcall *lerpMotion)(Actor *this, const Vec3 *);
  std::unique_ptr<AddActorBasePacket> *(__fastcall *getAddPacket)(Actor *this, std::unique_ptr<AddActorBasePacket> *result);
  void (__fastcall *normalTick)(Actor *this);
  void (__fastcall *baseTick)(Actor *this);
  void (__fastcall *rideTick)(Actor *this);
  void (__fastcall *positionRider)(Actor *this, Actor *, float);
  float (__fastcall *getRidingHeight)(Actor *this);
  bool (__fastcall *startRiding)(Actor *this, Actor *);
  void (__fastcall *addRider)(Actor *this, Actor *);
  void (__fastcall *flagRiderToRemove)(Actor *this, Actor *);
  std::string *(__fastcall *getExitTip)(Actor *this, std::string *result, const std::string *, InputMode);
  bool (__fastcall *intersects)(Actor *this, const Vec3 *, const Vec3 *);
  bool (__fastcall *isFree)(Actor *this, const Vec3 *);
  bool (__fastcall *isFree)(Actor *this, const Vec3 *, float);
  bool (__fastcall *isInWall)(Actor *this);
  bool (__fastcall *isInvisible)(Actor *this);
  bool (__fastcall *canShowNameTag)(Actor *this);
  bool (__fastcall *canExistInPeaceful)(Actor *this);
  void (__fastcall *setNameTagVisible)(Actor *this, bool);
  const std::string *(__fastcall *getNameTag)(Actor *this);
  unsigned __int64 (__fastcall *getNameTagAsHash)(Actor *this);
  std::string *(__fastcall *getFormattedNameTag)(Actor *this, std::string *result);
  void (__fastcall *filterFormattedNameTag)(Actor *this, const UIProfanityContext *);
  void (__fastcall *setNameTag)(Actor *this, const std::string *);
  bool (__fastcall *getAlwaysShowNameTag)(Actor *this);
  void (__fastcall *setScoreTag)(Actor *this, const std::string *);
  const std::string *(__fastcall *getScoreTag)(Actor *this);
  bool (__fastcall *isInWater)(Actor *this);
  bool (__fastcall *hasEnteredWater)(Actor *this);
  bool (__fastcall *isImmersedInWater)(Actor *this);
  bool (__fastcall *isInWaterOrRain)(Actor *this);
  bool (__fastcall *isInLava)(Actor *this);
  bool (__fastcall *isUnderLiquid)(Actor *this, MaterialType);
  bool (__fastcall *isOverWater)(Actor *this);
  void (__fastcall *makeStuckInBlock)(Actor *this, const Vec3 *);
  float (__fastcall *getCameraOffset)(Actor *this);
  float (__fastcall *getShadowHeightOffs)(Actor *this);
  float (__fastcall *getShadowRadius)(Actor *this);
  Vec3 *(__fastcall *getHeadLookVector)(Actor *this, Vec3 *result, float);
  bool (__fastcall *canSeeInvisible)(Actor *this);
  bool (__fastcall *canSee)(Actor *this, const Vec3 *);
  bool (__fastcall *canSee)(Actor *this, const Actor *);
  bool (__fastcall *isSkyLit)(Actor *this, float);
  float (__fastcall *getBrightness)(Actor *this, float);
  bool (__fastcall *interactPreventDefault)(Actor *this);
  void (__fastcall *playerTouch)(Actor *this, Player *);
  void (__fastcall *onAboveBubbleColumn)(Actor *this, const bool);
  void (__fastcall *onInsideBubbleColumn)(Actor *this, const bool);
  bool (__fastcall *isImmobile)(Actor *this);
  bool (__fastcall *isSilent)(Actor *this);
  bool (__fastcall *isPickable)(Actor *this);
  bool (__fastcall *isFishable)(Actor *this);
  bool (__fastcall *isSleeping)(Actor *this);
  bool (__fastcall *isShootable)(Actor *this);
  void (__fastcall *setSneaking)(Actor *this, bool);
  bool (__fastcall *isBlocking)(Actor *this);
  bool (__fastcall *isDamageBlocked)(Actor *this, const ActorDamageSource *);
  bool (__fastcall *isAlive)(Actor *this);
  bool (__fastcall *isOnFire)(Actor *this);
  bool (__fastcall *isOnHotBlock)(Actor *this);
  bool (__fastcall *isCreativeModeAllowed)(Actor *this);
  bool (__fastcall *isSurfaceMob)(Actor *this);
  bool (__fastcall *isTargetable)(Actor *this);
  bool (__fastcall *isLocalPlayer)(Actor *this);
  bool (__fastcall *isPlayer)(Actor *this);
  bool (__fastcall *canAttack)(Actor *this, Actor *, bool);
  void (__fastcall *setTarget)(Actor *this, Actor *);
  Actor *(__fastcall *findAttackTarget)(Actor *this);
  bool (__fastcall *isValidTarget)(Actor *this, Actor *);
  bool (__fastcall *attack)(Actor *this, Actor *);
  void (__fastcall *performRangedAttack)(Actor *this, Actor *, float);
  void (__fastcall *adjustDamageAmount)(Actor *this, int *);
  int (__fastcall *getEquipmentCount)(Actor *this);
  void (__fastcall *setOwner)(Actor *this, const ActorUniqueID);
  void (__fastcall *setSitting)(Actor *this, bool);
  void (__fastcall *onTame)(Actor *this);
  void (__fastcall *onFailedTame)(Actor *this);
  int (__fastcall *getInventorySize)(Actor *this);
  int (__fastcall *getEquipSlots)(Actor *this);
  int (__fastcall *getChestSlots)(Actor *this);
  void (__fastcall *setStanding)(Actor *this, bool);
  bool (__fastcall *canPowerJump)(Actor *this);
  void (__fastcall *setCanPowerJump)(Actor *this, bool);
  bool (__fastcall *isJumping)(Actor *this);
  bool (__fastcall *isEnchanted)(Actor *this);
  void (__fastcall *rideJumped)(Actor *this);
  void (__fastcall *rideLanded)(Actor *this, const Vec3 *, const Vec3 *);
  bool (__fastcall *shouldRender)(Actor *this);
  bool (__fastcall *isInvulnerableTo)(Actor *this, const ActorDamageSource *);
  ActorDamageCause (__fastcall *getBlockDamageCause)(Actor *this, const Block *);
  void (__fastcall *actuallyHurt)(Actor *this, int, const ActorDamageSource *, bool);
  void (__fastcall *animateHurt)(Actor *this);
  bool (__fastcall *doFireHurt)(Actor *this, int);
  void (__fastcall *onLightningHit)(Actor *this);
  void (__fastcall *onBounceStarted)(Actor *this, const BlockPos *, const Block *);
  void (__fastcall *feed)(Actor *this, int);
  void (__fastcall *handleEntityEvent)(Actor *this, ActorEvent, int);
  float (__fastcall *getPickRadius)(Actor *this);
  const HashedString *(__fastcall *getActorRendererId)(Actor *this);
  ItemActor *(__fastcall *spawnAtLocation)(Actor *this, const ItemStack *, float);
  ItemActor *(__fastcall *spawnAtLocation)(Actor *this, const Block *, int, float);
  ItemActor *(__fastcall *spawnAtLocation)(Actor *this, const Block *, int);
  ItemActor *(__fastcall *spawnAtLocation)(Actor *this, int, int, float);
  ItemActor *(__fastcall *spawnAtLocation)(Actor *this, int, int);
  void (__fastcall *despawn)(Actor *this);
  void (__fastcall *killed)(Actor *this, Actor *);
  void (__fastcall *awardKillScore)(Actor *this, Actor *, int);
  void (__fastcall *setArmor)(Actor *this, ArmorSlot, const ItemStack *);
  const ItemStack *(__fastcall *getArmor)(Actor *this, ArmorSlot);
  ArmorMaterialType (__fastcall *getArmorMaterialTypeInSlot)(Actor *this, ArmorSlot);
  ArmorTextureType (__fastcall *getArmorMaterialTextureTypeInSlot)(Actor *this, ArmorSlot);
  float (__fastcall *getArmorColorInSlot)(Actor *this, ArmorSlot, int);
  const ItemStack *(__fastcall *getEquippedSlot)(Actor *this, EquipmentSlot);
  void (__fastcall *setEquippedSlot)(Actor *this, EquipmentSlot, const ItemStack *);
  const ItemStack *(__fastcall *getCarriedItem)(Actor *this);
  void (__fastcall *setCarriedItem)(Actor *this, const ItemStack *);
  void (__fastcall *setOffhandSlot)(Actor *this, const ItemStack *);
  const ItemStack *(__fastcall *getEquippedTotem)(Actor *this);
  bool (__fastcall *consumeTotem)(Actor *this);
  bool (__fastcall *save)(Actor *this, CompoundTag *);
  void (__fastcall *saveWithoutId)(Actor *this, CompoundTag *);
  bool (__fastcall *load)(Actor *this, const CompoundTag *, DataLoadHelper *);
  void (__fastcall *loadLinks)(Actor *this, const CompoundTag *, std::vector<ActorLink> *, DataLoadHelper *);
  ActorType (__fastcall *getEntityTypeId)(Actor *this);
  const HashedString *(__fastcall *queryEntityRenderer)(Actor *this);
  ActorUniqueID *(__fastcall *getSourceUniqueID)(Actor *this, ActorUniqueID *result);
  void (__fastcall *setOnFire)(Actor *this, int);
  AABB *(__fastcall *getHandleWaterAABB)(Actor *this, AABB *result);
  void (__fastcall *handleInsidePortal)(Actor *this, const BlockPos *);
  int (__fastcall *getPortalCooldown)(Actor *this);
  int (__fastcall *getPortalWaitTime)(Actor *this);
  AutomaticID<Dimension,int> *(__fastcall *getDimensionId)(Actor *this, AutomaticID<Dimension,int> *result);
  bool (__fastcall *canChangeDimensions)(Actor *this);
  void (__fastcall *changeDimension)(Actor *this, const ChangeDimensionPacket *);
  void (__fastcall *changeDimension)(Actor *this, AutomaticID<Dimension,int>, bool);
  ActorUniqueID *(__fastcall *getControllingPlayer)(Actor *this, ActorUniqueID *result);
  void (__fastcall *checkFallDamage)(Actor *this, float, bool);
  void (__fastcall *causeFallDamage)(Actor *this, float);
  void (__fastcall *handleFallDistanceOnServer)(Actor *this, float, bool);
  void (__fastcall *playSynchronizedSound)(Actor *this, LevelSoundEvent, const Vec3 *, int, bool);
  void (__fastcall *playSynchronizedSound)(Actor *this, LevelSoundEvent, const Vec3 *, const Block *, bool);
  void (__fastcall *onSynchedDataUpdate)(Actor *this, int);
  bool (__fastcall *canAddRider)(Actor *this, Actor *);
  bool (__fastcall *canPickupItem)(Actor *this, const ItemStack *);
  bool (__fastcall *canBePulledIntoVehicle)(Actor *this);
  bool (__fastcall *inCaravan)(Actor *this);
  bool (__fastcall *isLeashableType)(Actor *this);
  void (__fastcall *tickLeash)(Actor *this);
  void (__fastcall *sendMotionPacketIfNeeded)(Actor *this);
  bool (__fastcall *canSynchronizeNewEntity)(Actor *this);
  bool (__fastcall *stopRiding)(Actor *this, bool, bool, bool, bool);
  void (__fastcall *startSwimming)(Actor *this);
  void (__fastcall *stopSwimming)(Actor *this);
  void (__fastcall *buildDebugInfo)(Actor *this, std::string *);
  CommandPermissionLevel (__fastcall *getCommandPermissionLevel)(Actor *this);
  AttributeInstance *(__fastcall *getMutableAttribute)(Actor *this, const Attribute *);
  const AttributeInstance *(__fastcall *getAttribute)(Actor *this, const Attribute *);
  int (__fastcall *getDeathTime)(Actor *this);
  void (__fastcall *heal)(Actor *this, int);
  bool (__fastcall *isInvertedHealAndHarm)(Actor *this);
  bool (__fastcall *canBeAffected)(Actor *this, const MobEffectInstance *);
  bool (__fastcall *canBeAffected)(Actor *this, int);
  bool (__fastcall *canBeAffectedByArrow)(Actor *this, const MobEffectInstance *);
  void (__fastcall *onEffectAdded)(Actor *this, MobEffectInstance *);
  void (__fastcall *onEffectUpdated)(Actor *this, const MobEffectInstance *);
  void (__fastcall *onEffectRemoved)(Actor *this, MobEffectInstance *);
  AnimationComponent *(__fastcall *getAnimationComponent)(Actor *this);
  void (__fastcall *openContainerComponent)(Actor *this, Player *);
  void (__fastcall *swing)(Actor *this);
  void (__fastcall *useItem)(Actor *this, ItemStackBase *, ItemUseMethod, bool);
  bool (__fastcall *hasOutputSignal)(Actor *this, unsigned __int8);
  int (__fastcall *getOutputSignal)(Actor *this);
  void (__fastcall *getDebugText)(Actor *this, std::vector<std::string> *);
  float (__fastcall *getMapDecorationRotation)(Actor *this);
  float (__fastcall *getRiderYRotation)(Actor *this, const Actor *);
  float (__fastcall *getYHeadRot)(Actor *this);
  bool (__fastcall *isWorldBuilder)(Actor *this);
  bool (__fastcall *isCreative)(Actor *this);
  bool (__fastcall *isAdventure)(Actor *this);
  bool (__fastcall *add)(Actor *this, ItemStack *);
  bool (__fastcall *drop)(Actor *this, const ItemStack *, bool);
  bool (__fastcall *getInteraction)(Actor *this, Player *, ActorInteraction *, const Vec3 *);
  bool (__fastcall *canDestroyBlock)(Actor *this, const Block *);
  void (__fastcall *setAuxValue)(Actor *this, int);
  void (__fastcall *setSize)(Actor *this, float, float);
  int (__fastcall *getLifeSpan)(Actor *this);
  void (__fastcall *onOrphan)(Actor *this);
  void (__fastcall *wobble)(Actor *this);
  bool (__fastcall *wasHurt)(Actor *this);
  void (__fastcall *startSpinAttack)(Actor *this);
  void (__fastcall *stopSpinAttack)(Actor *this);
  void (__fastcall *setDamageNearbyMobs)(Actor *this, bool);
  bool (__fastcall *hasCritBox)(Actor *this);
  bool (__fastcall *isCritHit)(Actor *this);
  void (__fastcall *renderDebugServerState)(Actor *this, const Options *);
  void (__fastcall *reloadLootTable)(Actor *this, const EquipmentTableDefinition *);
  void (__fastcall *reloadLootTable)(Actor *this);
  float (__fastcall *getDeletionDelayTimeSeconds)(Actor *this);
  void (__fastcall *kill)(Actor *this);
  void (__fastcall *die)(Actor *this, const ActorDamageSource *);
  bool (__fastcall *shouldTick)(Actor *this);
  std::shared_ptr<IActorMovementProxy> *(__fastcall *createMovementProxy)(Actor *this, std::shared_ptr<IActorMovementProxy> *result);
  void (__fastcall *updateEntitySpecificMolangVariables)(Actor *this, RenderParams *);
  bool (__fastcall *shouldTryMakeStepSound)(Actor *this);
  float (__fastcall *getNextStep)(Actor *this, const float);
  bool (__fastcall *canMakeStepSound)(Actor *this);
  void (__fastcall *outOfWorld)(Actor *this);
  bool (__fastcall *_hurt)(Actor *this, const ActorDamageSource *, int, bool, bool);
  void (__fastcall *markHurt)(Actor *this);
  void (__fastcall *readAdditionalSaveData)(Actor *this, const CompoundTag *, DataLoadHelper *);
  void (__fastcall *addAdditionalSaveData)(Actor *this, CompoundTag *);
  void (__fastcall *_playStepSound)(Actor *this, const BlockPos *, const Block *);
  void (__fastcall *_playFlySound)(Actor *this, const BlockPos *, const Block *);
  bool (__fastcall *_makeFlySound)(Actor *this);
  void (__fastcall *checkInsideBlocks)(Actor *this, float);
  void (__fastcall *pushOutOfBlocks)(Actor *this, const Vec3 *);
  bool (__fastcall *updateWaterState)(Actor *this);
  void (__fastcall *doWaterSplashEffect)(Actor *this);
  void (__fastcall *spawnTrailBubbles)(Actor *this);
  void (__fastcall *updateInsideBlock)(Actor *this);
  LootTable *(__fastcall *getLootTable)(Actor *this);
  LootTable *(__fastcall *getDefaultLootTable)(Actor *this);
  void (__fastcall *_removeRider)(Actor *this, const ActorUniqueID *, bool, bool, bool);
  void (__fastcall *_onSizeUpdated)(Actor *this);
  void (__fastcall *_doAutoAttackOnTouch)(Actor *this, Actor *);
  float (__fastcall *getInertia)(Fireball *this);
  void (__fastcall *onHit)(Fireball *this, const HitResult *);
  ParticleType (__fastcall *getTrailParticle)(Fireball *this);
  bool (__fastcall *shouldBurn)(Fireball *this);
};

# DispenserBlock

struct __cppobj DispenserBlock : ActorBlock
{
};

# DispenserBlock_vtbl

struct /*VFT*/ DispenserBlock_vtbl
{
  void (__fastcall *~BlockLegacy)(BlockLegacy *this);
  const Block *(__fastcall *getStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  const Block *(__fastcall *getModBlockStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  std::shared_ptr<BlockActor> *(__fastcall *newBlockEntity)(BlockLegacy *this, std::shared_ptr<BlockActor> *result, const BlockPos *, const Block *);
  const Block *(__fastcall *getNextBlockPermutation)(BlockLegacy *this, const Block *);
  bool (__fastcall *hasTag)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *);
  bool (__fastcall *getCollisionShape)(BlockLegacy *this, AABB *, const Block *, BlockSource *, const BlockPos *, Actor *);
  bool (__fastcall *isObstructingChests)(BlockLegacy *this, BlockSource *, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *, int *);
  void (__fastcall *addAABBs)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *);
  const AABB *(__fastcall *getAABB)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, AABB *, bool);
  bool (__fastcall *addCollisionShapes)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *, Actor *);
  const AABB *(__fastcall *getOutline)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  bool (__fastcall *getLiquidClipVolume)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  void (__fastcall *onProjectileHit)(BlockLegacy *this, BlockSource *, const BlockPos *, const Actor *);
  bool (__fastcall *liquidCanFlowIntoFromDirection)(BlockLegacy *this, unsigned __int8, const std::function<Block const & __cdecl(BlockPos const &)> *, const BlockPos *);
  bool (__fastcall *hasVariableLighting)(BlockLegacy *this);
  bool (__fastcall *isStrippable)(BlockLegacy *this, const Block *);
  const Block *(__fastcall *getStrippedBlock)(BlockLegacy *this, const Block *);
  bool (__fastcall *canProvideSupport)(BlockLegacy *this, const Block *, unsigned __int8, BlockSupportType);
  bool (__fastcall *canConnect)(BlockLegacy *this, const Block *, unsigned __int8, const Block *);
  void (__fastcall *getConnectedDirections)(BlockLegacy *this, const Block *, const BlockPos *, BlockSource *, bool *, bool *, bool *, bool *);
  bool (__fastcall *isStemBlock)(BlockLegacy *this);
  bool (__fastcall *isContainerBlock)(BlockLegacy *this);
  bool (__fastcall *isCraftingBlock)(BlockLegacy *this);
  bool (__fastcall *isWaterBlocking)(BlockLegacy *this);
  bool (__fastcall *isHurtableBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceGateBlock)(BlockLegacy *this);
  bool (__fastcall *isThinFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isWallBlock)(BlockLegacy *this);
  bool (__fastcall *isStairBlock)(BlockLegacy *this);
  bool (__fastcall *isSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoubleSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoorBlock)(BlockLegacy *this);
  bool (__fastcall *isRailBlock)(BlockLegacy *this);
  bool (__fastcall *isButtonBlock)(BlockLegacy *this);
  bool (__fastcall *canHurtAndBreakItem)(BlockLegacy *this);
  bool (__fastcall *isSignalSource)(BlockLegacy *this);
  bool (__fastcall *canBeOriginalSurface)(BlockLegacy *this);
  bool (__fastcall *isValidAuxValue)(BlockLegacy *this, int);
  void (__fastcall *setTargetLandBlocks)(BlockLegacy *this, const std::vector<std::string> *);
  bool (__fastcall *canFillAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  const Block *(__fastcall *sanitizeFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *onFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getDirectSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  bool (__fastcall *waterSpreadCausesSpawn)(BlockLegacy *this);
  bool (__fastcall *canContainLiquid)(BlockLegacy *this);
  bool (__fastcall *shouldConnectToRedstone)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  void (__fastcall *handleRain)(BlockLegacy *this, BlockSource *, const BlockPos *, float);
  bool (__fastcall *canBeUsedInCommands)(BlockLegacy *this, const BaseGameVersion *);
  float (__fastcall *getThickness)(BlockLegacy *this);
  float (__fastcall *getFlexibility)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *checkIsPathable)(BlockLegacy *this, Actor *, const BlockPos *, const BlockPos *);
  bool (__fastcall *shouldDispense)(BlockLegacy *this, BlockSource *, Container *);
  bool (__fastcall *dispense)(BlockLegacy *this, BlockSource *, Container *, int, const Vec3 *, unsigned __int8);
  void (__fastcall *transformOnFall)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *onRedstoneUpdate)(BlockLegacy *this, BlockSource *, const BlockPos *, int, bool);
  void (__fastcall *onMove)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *detachesOnPistonMove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *movedByPiston)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureNeighborBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *setupRedstoneComponent)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *specialUse)(BlockLegacy *this, Player *, const BlockPos *, ItemStack *);
  BlockProperty (__fastcall *getRedstoneProperty)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *updateEntityAfterFallOn)(BlockLegacy *this, IActorMovementProxy *);
  bool (__fastcall *isBounceBlock)(BlockLegacy *this);
  bool (__fastcall *ignoreEntitiesOnPistonMove)(BlockLegacy *this, const Block *);
  bool (__fastcall *onFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, FertilizerType);
  bool (__fastcall *mayConsumeFertilizer)(BlockLegacy *this, BlockSource *);
  bool (__fastcall *canBeFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *mayPick)(BlockLegacy *this, BlockSource *, const Block *, bool);
  bool (__fastcall *mayPick)(BlockLegacy *this);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, unsigned __int8);
  bool (__fastcall *mayPlaceOn)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *tryToPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const ActorBlockSyncMessage *);
  bool (__fastcall *breaksFallingBlocks)(BlockLegacy *this, const Block *);
  void (__fastcall *destroy)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, Actor *);
  bool (__fastcall *playerWillDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  bool (__fastcall *getIgnoresDestroyPermissions)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *neighborChanged)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *getSecondPart)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  int (__fastcall *getResourceCount)(BlockLegacy *this, Random *, const Block *, int, bool);
  ItemInstance *(__fastcall *getResourceItem)(BlockLegacy *this, ItemInstance *result, Random *, const Block *, int);
  ItemInstance *(__fastcall *asItemInstance)(BlockLegacy *this, ItemInstance *result, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *spawnResources)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  void (__fastcall *trySpawnResourcesOnExplosion)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  bool (__fastcall *spawnBurnResources)(BlockLegacy *this, BlockSource *, float, float, float);
  const Block *(__fastcall *getPlacementBlock)(BlockLegacy *this, Actor *, const BlockPos *, unsigned __int8, const Vec3 *, int);
  int (__fastcall *calcVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *isAttachedTo)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  bool (__fastcall *attack)(BlockLegacy *this, Player *, const BlockPos *);
  void (__fastcall *handleEntityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, Vec3 *);
  void (__fastcall *entityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  int (__fastcall *getExperienceDrop)(BlockLegacy *this, Random *);
  bool (__fastcall *canBeBuiltOver)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *triggerEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, int, int);
  void (__fastcall *executeEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *, Actor *);
  void (__fastcall *executeEvent)(BlockLegacy *this, const std::string *, RenderParams *);
  bool (__fastcall *executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  bool (__fastcall *executeTriggerChain)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  const MobSpawnerData *(__fastcall *getMobToSpawn)(BlockLegacy *this, const SpawnConditions *, BlockSource *);
  bool (__fastcall *shouldStopFalling)(BlockLegacy *this, Actor *);
  bool (__fastcall *pushesUpFallingBlocks)(BlockLegacy *this);
  float (__fastcall *calcGroundFriction)(BlockLegacy *this, Mob *, const BlockPos *);
  bool (__fastcall *canHaveExtraData)(BlockLegacy *this);
  bool (__fastcall *hasComparatorSignal)(BlockLegacy *this);
  int (__fastcall *getComparatorSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, unsigned __int8);
  bool (__fastcall *onDig)(BlockLegacy *this, const Block *, Actor *, ItemStack *, const BlockPos *);
  bool (__fastcall *canSlide)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *canSpawnAt)(BlockLegacy *this, const BlockSource *, const BlockPos *);
  void (__fastcall *notifySpawnedAt)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getIconYOffset)(BlockLegacy *this);
  std::string *(__fastcall *buildDescriptionId)(BlockLegacy *this, std::string *result, const Block *);
  bool (__fastcall *isAuxValueRelevantForPicking)(BlockLegacy *this);
  int (__fastcall *getColor)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getColor)(BlockLegacy *this, const Block *);
  int (__fastcall *getColorAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getColorForParticle)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *isSeasonTinted)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  void (__fastcall *onGraphicsModeChanged)(BlockLegacy *this, const BlockGraphicsModeChangeContext *);
  float (__fastcall *getShadeBrightness)(BlockLegacy *this, const Block *);
  const AABB *(__fastcall *getVisualShapeInWorld)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, AABB *, bool);
  const AABB *(__fastcall *getVisualShape)(BlockLegacy *this, const Block *, AABB *, bool);
  const AABB *(__fastcall *getUIShape)(BlockLegacy *this, const Block *, AABB *);
  int (__fastcall *telemetryVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getVariant)(BlockLegacy *this, const Block *);
  bool (__fastcall *canSpawnOn)(BlockLegacy *this);
  const Block *(__fastcall *getRenderBlock)(BlockLegacy *this);
  unsigned __int8 (__fastcall *getMappedFace)(BlockLegacy *this, unsigned __int8, const Block *);
  bool (__fastcall *renderTwoFaced)(BlockLegacy *this);
  Flip (__fastcall *getFaceFlip)(BlockLegacy *this, unsigned __int8, const Block *);
  void (__fastcall *animateTick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  BlockLegacy *(__fastcall *init)(BlockLegacy *this);
  BlockLegacy *(__fastcall *setLightBlock)(BlockLegacy *this, Brightness);
  BlockLegacy *(__fastcall *setLightEmission)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setExplodeable)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFlammable)(BlockLegacy *this, FlameOdds, BurnOdds);
  BlockLegacy *(__fastcall *setDestroyTime)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFriction)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *addProperty)(BlockLegacy *this, BlockProperty);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *, unsigned __int64);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *);
  BlockLegacy *(__fastcall *setAllowsRunes)(BlockLegacy *this, bool);
  BlockLegacy *(__fastcall *setMapColor)(BlockLegacy *this, const mce::Color *);
  bool (__fastcall *canBeSilkTouched)(BlockLegacy *this);
  ItemInstance *(__fastcall *getSilkTouchItemInstance)(BlockLegacy *this, ItemInstance *result, const Block *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const Vec3 *, const Vec3 *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const AABB *);
  const Block *(__fastcall *tryLegacyUpgrade)(BlockLegacy *this, unsigned __int16);
  bool (__fastcall *dealsContactDamage)(BlockLegacy *this, const Actor *, const Block *, bool);
  void (__fastcall *onRemove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onExploded)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  void (__fastcall *onStandOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOff)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onPlayerPlacing)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, unsigned __int8);
  void (__fastcall *onPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onFallOn)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *playerDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  void (__fastcall *tick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  bool (__fastcall *shouldRandomTick)(BlockLegacy *this);
  bool (__fastcall *isInteractiveBlock)(BlockLegacy *this);
  HitResult *(__fastcall *clip)(BlockLegacy *this, HitResult *result, BlockSource *, const BlockPos *, const Vec3 *, const Vec3 *, bool);
  bool (__fastcall *use)(BlockLegacy *this, Player *, const BlockPos *, unsigned __int8);
  bool (__fastcall *canSurvive)(BlockLegacy *this, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this);
  int (__fastcall *getExtraRenderLayers)(BlockLegacy *this);
  float (__fastcall *getExplosionResistance)(BlockLegacy *this, Actor *);
  Brightness *(__fastcall *getLightEmission)(BlockLegacy *this, Brightness *result, const Block *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result, BlockSource *, const BlockPos *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result);
  bool (__fastcall *isCropBlock)(BlockLegacy *this);
  void (__fastcall *_executeEvent)(BlockLegacy *this, const std::string *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  bool (__fastcall *_executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *_forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  ItemInstance *(__fastcall *getEntityResourceItem)(ActorBlock *this, ItemInstance *result, Random *, const BlockActor *, int);
  int (__fastcall *getTickDelay)(DispenserBlock *this);
  void (__fastcall *dispenseFrom)(DispenserBlock *this, BlockSource *, const BlockPos *);
};

# DirtBlock

struct __cppobj DirtBlock : BlockLegacy
{
};

# DirtBlock_vtbl

struct /*VFT*/ DirtBlock_vtbl
{
  void (__fastcall *~BlockLegacy)(BlockLegacy *this);
  const Block *(__fastcall *getStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  const Block *(__fastcall *getModBlockStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  std::shared_ptr<BlockActor> *(__fastcall *newBlockEntity)(BlockLegacy *this, std::shared_ptr<BlockActor> *result, const BlockPos *, const Block *);
  const Block *(__fastcall *getNextBlockPermutation)(BlockLegacy *this, const Block *);
  bool (__fastcall *hasTag)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *);
  bool (__fastcall *getCollisionShape)(BlockLegacy *this, AABB *, const Block *, BlockSource *, const BlockPos *, Actor *);
  bool (__fastcall *isObstructingChests)(BlockLegacy *this, BlockSource *, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *, int *);
  void (__fastcall *addAABBs)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *);
  const AABB *(__fastcall *getAABB)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, AABB *, bool);
  bool (__fastcall *addCollisionShapes)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *, Actor *);
  const AABB *(__fastcall *getOutline)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  bool (__fastcall *getLiquidClipVolume)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  void (__fastcall *onProjectileHit)(BlockLegacy *this, BlockSource *, const BlockPos *, const Actor *);
  bool (__fastcall *liquidCanFlowIntoFromDirection)(BlockLegacy *this, unsigned __int8, const std::function<Block const & __cdecl(BlockPos const &)> *, const BlockPos *);
  bool (__fastcall *hasVariableLighting)(BlockLegacy *this);
  bool (__fastcall *isStrippable)(BlockLegacy *this, const Block *);
  const Block *(__fastcall *getStrippedBlock)(BlockLegacy *this, const Block *);
  bool (__fastcall *canProvideSupport)(BlockLegacy *this, const Block *, unsigned __int8, BlockSupportType);
  bool (__fastcall *canConnect)(BlockLegacy *this, const Block *, unsigned __int8, const Block *);
  void (__fastcall *getConnectedDirections)(BlockLegacy *this, const Block *, const BlockPos *, BlockSource *, bool *, bool *, bool *, bool *);
  bool (__fastcall *isStemBlock)(BlockLegacy *this);
  bool (__fastcall *isContainerBlock)(BlockLegacy *this);
  bool (__fastcall *isCraftingBlock)(BlockLegacy *this);
  bool (__fastcall *isWaterBlocking)(BlockLegacy *this);
  bool (__fastcall *isHurtableBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceGateBlock)(BlockLegacy *this);
  bool (__fastcall *isThinFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isWallBlock)(BlockLegacy *this);
  bool (__fastcall *isStairBlock)(BlockLegacy *this);
  bool (__fastcall *isSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoubleSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoorBlock)(BlockLegacy *this);
  bool (__fastcall *isRailBlock)(BlockLegacy *this);
  bool (__fastcall *isButtonBlock)(BlockLegacy *this);
  bool (__fastcall *canHurtAndBreakItem)(BlockLegacy *this);
  bool (__fastcall *isSignalSource)(BlockLegacy *this);
  bool (__fastcall *canBeOriginalSurface)(BlockLegacy *this);
  bool (__fastcall *isValidAuxValue)(BlockLegacy *this, int);
  void (__fastcall *setTargetLandBlocks)(BlockLegacy *this, const std::vector<std::string> *);
  bool (__fastcall *canFillAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  const Block *(__fastcall *sanitizeFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *onFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getDirectSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  bool (__fastcall *waterSpreadCausesSpawn)(BlockLegacy *this);
  bool (__fastcall *canContainLiquid)(BlockLegacy *this);
  bool (__fastcall *shouldConnectToRedstone)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  void (__fastcall *handleRain)(BlockLegacy *this, BlockSource *, const BlockPos *, float);
  bool (__fastcall *canBeUsedInCommands)(BlockLegacy *this, const BaseGameVersion *);
  float (__fastcall *getThickness)(BlockLegacy *this);
  float (__fastcall *getFlexibility)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *checkIsPathable)(BlockLegacy *this, Actor *, const BlockPos *, const BlockPos *);
  bool (__fastcall *shouldDispense)(BlockLegacy *this, BlockSource *, Container *);
  bool (__fastcall *dispense)(BlockLegacy *this, BlockSource *, Container *, int, const Vec3 *, unsigned __int8);
  void (__fastcall *transformOnFall)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *onRedstoneUpdate)(BlockLegacy *this, BlockSource *, const BlockPos *, int, bool);
  void (__fastcall *onMove)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *detachesOnPistonMove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *movedByPiston)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureNeighborBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *setupRedstoneComponent)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *specialUse)(BlockLegacy *this, Player *, const BlockPos *, ItemStack *);
  BlockProperty (__fastcall *getRedstoneProperty)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *updateEntityAfterFallOn)(BlockLegacy *this, IActorMovementProxy *);
  bool (__fastcall *isBounceBlock)(BlockLegacy *this);
  bool (__fastcall *ignoreEntitiesOnPistonMove)(BlockLegacy *this, const Block *);
  bool (__fastcall *onFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, FertilizerType);
  bool (__fastcall *mayConsumeFertilizer)(BlockLegacy *this, BlockSource *);
  bool (__fastcall *canBeFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *mayPick)(BlockLegacy *this, BlockSource *, const Block *, bool);
  bool (__fastcall *mayPick)(BlockLegacy *this);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, unsigned __int8);
  bool (__fastcall *mayPlaceOn)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *tryToPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const ActorBlockSyncMessage *);
  bool (__fastcall *breaksFallingBlocks)(BlockLegacy *this, const Block *);
  void (__fastcall *destroy)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, Actor *);
  bool (__fastcall *playerWillDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  bool (__fastcall *getIgnoresDestroyPermissions)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *neighborChanged)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *getSecondPart)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  int (__fastcall *getResourceCount)(BlockLegacy *this, Random *, const Block *, int, bool);
  ItemInstance *(__fastcall *getResourceItem)(BlockLegacy *this, ItemInstance *result, Random *, const Block *, int);
  ItemInstance *(__fastcall *asItemInstance)(BlockLegacy *this, ItemInstance *result, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *spawnResources)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  void (__fastcall *trySpawnResourcesOnExplosion)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  bool (__fastcall *spawnBurnResources)(BlockLegacy *this, BlockSource *, float, float, float);
  const Block *(__fastcall *getPlacementBlock)(BlockLegacy *this, Actor *, const BlockPos *, unsigned __int8, const Vec3 *, int);
  int (__fastcall *calcVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *isAttachedTo)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  bool (__fastcall *attack)(BlockLegacy *this, Player *, const BlockPos *);
  void (__fastcall *handleEntityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, Vec3 *);
  void (__fastcall *entityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  int (__fastcall *getExperienceDrop)(BlockLegacy *this, Random *);
  bool (__fastcall *canBeBuiltOver)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *triggerEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, int, int);
  void (__fastcall *executeEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *, Actor *);
  void (__fastcall *executeEvent)(BlockLegacy *this, const std::string *, RenderParams *);
  bool (__fastcall *executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  bool (__fastcall *executeTriggerChain)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  const MobSpawnerData *(__fastcall *getMobToSpawn)(BlockLegacy *this, const SpawnConditions *, BlockSource *);
  bool (__fastcall *shouldStopFalling)(BlockLegacy *this, Actor *);
  bool (__fastcall *pushesUpFallingBlocks)(BlockLegacy *this);
  float (__fastcall *calcGroundFriction)(BlockLegacy *this, Mob *, const BlockPos *);
  bool (__fastcall *canHaveExtraData)(BlockLegacy *this);
  bool (__fastcall *hasComparatorSignal)(BlockLegacy *this);
  int (__fastcall *getComparatorSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, unsigned __int8);
  bool (__fastcall *onDig)(BlockLegacy *this, const Block *, Actor *, ItemStack *, const BlockPos *);
  bool (__fastcall *canSlide)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *canSpawnAt)(BlockLegacy *this, const BlockSource *, const BlockPos *);
  void (__fastcall *notifySpawnedAt)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getIconYOffset)(BlockLegacy *this);
  std::string *(__fastcall *buildDescriptionId)(BlockLegacy *this, std::string *result, const Block *);
  bool (__fastcall *isAuxValueRelevantForPicking)(BlockLegacy *this);
  int (__fastcall *getColor)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getColor)(BlockLegacy *this, const Block *);
  int (__fastcall *getColorAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getColorForParticle)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *isSeasonTinted)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  void (__fastcall *onGraphicsModeChanged)(BlockLegacy *this, const BlockGraphicsModeChangeContext *);
  float (__fastcall *getShadeBrightness)(BlockLegacy *this, const Block *);
  const AABB *(__fastcall *getVisualShapeInWorld)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, AABB *, bool);
  const AABB *(__fastcall *getVisualShape)(BlockLegacy *this, const Block *, AABB *, bool);
  const AABB *(__fastcall *getUIShape)(BlockLegacy *this, const Block *, AABB *);
  int (__fastcall *telemetryVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getVariant)(BlockLegacy *this, const Block *);
  bool (__fastcall *canSpawnOn)(BlockLegacy *this);
  const Block *(__fastcall *getRenderBlock)(BlockLegacy *this);
  unsigned __int8 (__fastcall *getMappedFace)(BlockLegacy *this, unsigned __int8, const Block *);
  bool (__fastcall *renderTwoFaced)(BlockLegacy *this);
  Flip (__fastcall *getFaceFlip)(BlockLegacy *this, unsigned __int8, const Block *);
  void (__fastcall *animateTick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  BlockLegacy *(__fastcall *init)(BlockLegacy *this);
  BlockLegacy *(__fastcall *setLightBlock)(BlockLegacy *this, Brightness);
  BlockLegacy *(__fastcall *setLightEmission)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setExplodeable)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFlammable)(BlockLegacy *this, FlameOdds, BurnOdds);
  BlockLegacy *(__fastcall *setDestroyTime)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFriction)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *addProperty)(BlockLegacy *this, BlockProperty);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *, unsigned __int64);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *);
  BlockLegacy *(__fastcall *setAllowsRunes)(BlockLegacy *this, bool);
  BlockLegacy *(__fastcall *setMapColor)(BlockLegacy *this, const mce::Color *);
  bool (__fastcall *canBeSilkTouched)(BlockLegacy *this);
  ItemInstance *(__fastcall *getSilkTouchItemInstance)(BlockLegacy *this, ItemInstance *result, const Block *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const Vec3 *, const Vec3 *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const AABB *);
  const Block *(__fastcall *tryLegacyUpgrade)(BlockLegacy *this, unsigned __int16);
  bool (__fastcall *dealsContactDamage)(BlockLegacy *this, const Actor *, const Block *, bool);
  void (__fastcall *onRemove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onExploded)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  void (__fastcall *onStandOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOff)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onPlayerPlacing)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, unsigned __int8);
  void (__fastcall *onPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onFallOn)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *playerDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  void (__fastcall *tick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  bool (__fastcall *shouldRandomTick)(BlockLegacy *this);
  bool (__fastcall *isInteractiveBlock)(BlockLegacy *this);
  HitResult *(__fastcall *clip)(BlockLegacy *this, HitResult *result, BlockSource *, const BlockPos *, const Vec3 *, const Vec3 *, bool);
  bool (__fastcall *use)(BlockLegacy *this, Player *, const BlockPos *, unsigned __int8);
  bool (__fastcall *canSurvive)(BlockLegacy *this, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this);
  int (__fastcall *getExtraRenderLayers)(BlockLegacy *this);
  float (__fastcall *getExplosionResistance)(BlockLegacy *this, Actor *);
  Brightness *(__fastcall *getLightEmission)(BlockLegacy *this, Brightness *result, const Block *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result, BlockSource *, const BlockPos *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result);
  bool (__fastcall *isCropBlock)(BlockLegacy *this);
  void (__fastcall *_executeEvent)(BlockLegacy *this, const std::string *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  bool (__fastcall *_executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *_forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
};

# DiggerItem

struct __cppobj DiggerItem : Item
{
  float mSpeed;
  const Item::Tier mTier;
  int mAttackDamage;
  std::vector<Block const *> mBlocks;
  std::set<BlockLegacy const *> m_bBlocks;
};

# DoorItem

struct __cppobj __declspec(align(8)) DoorItem : Item
{
  DoorBlock::DoorType mType;
};

# DyePowderItem

struct __cppobj DyePowderItem : FertilizerItem
{
  _BYTE mColor[1];
  bool mIsFertilizer;
  bool mIsCocoaBean;
  TextureAtlasItem m_uvTextureItem;
};

# DiggingEnchant

struct __cppobj DiggingEnchant : Enchant
{
};

# DiggingEnchant_vtbl

struct /*VFT*/ DiggingEnchant_vtbl
{
  void (__fastcall *~Enchant)(Enchant *this);
  bool (__fastcall *isCompatibleWith)(Enchant *this, Enchant::Type);
  int (__fastcall *getMinCost)(Enchant *this, int);
  int (__fastcall *getMaxCost)(Enchant *this, int);
  int (__fastcall *getMinLevel)(Enchant *this);
  int (__fastcall *getMaxLevel)(Enchant *this);
  int (__fastcall *getDamageProtection)(Enchant *this, int, const ActorDamageSource *);
  float (__fastcall *getDamageBonus)(Enchant *this, int, const Actor *);
  void (__fastcall *doPostAttack)(Enchant *this, Actor *, Actor *, int);
  void (__fastcall *doPostHurt)(Enchant *this, ItemInstance *, Actor *, Actor *, int);
  bool (__fastcall *isMeleeDamageEnchant)(Enchant *this);
  bool (__fastcall *isProtectionEnchant)(Enchant *this);
  bool (__fastcall *isTreasureOnly)(Enchant *this);
  bool (__fastcall *isDiscoverable)(Enchant *this);
};

# DeprecatedSlabBlockItem

struct __cppobj DeprecatedSlabBlockItem : BlockItem
{
};

# DaylightDetectorBlockActor

struct __cppobj DaylightDetectorBlockActor : BlockActor
{
};

# DaylightDetectorBlockActor_vtbl

struct /*VFT*/ DaylightDetectorBlockActor_vtbl
{
  void (__fastcall *~BlockActor)(BlockActor *this);
  void (__fastcall *load)(BlockActor *this, Level *, const CompoundTag *, DataLoadHelper *);
  bool (__fastcall *save)(BlockActor *this, CompoundTag *);
  bool (__fastcall *saveItemInstanceData)(BlockActor *this, CompoundTag *);
  void (__fastcall *saveBlockData)(BlockActor *this, CompoundTag *, BlockSource *);
  void (__fastcall *loadBlockData)(BlockActor *this, const CompoundTag *, BlockSource *, DataLoadHelper *);
  void (__fastcall *onCustomTagLoadDone)(BlockActor *this, BlockSource *);
  void (__fastcall *tick)(BlockActor *this, BlockSource *);
  bool (__fastcall *isFinished)(BlockActor *this);
  void (__fastcall *onChanged)(BlockActor *this, BlockSource *);
  bool (__fastcall *isMovable)(BlockActor *this, BlockSource *);
  bool (__fastcall *isCustomNameSaved)(BlockActor *this);
  bool (__fastcall *onUpdatePacket)(BlockActor *this, const CompoundTag *, BlockSource *, const Player *);
  void (__fastcall *onPlace)(BlockActor *this, BlockSource *);
  void (__fastcall *onMove)(BlockActor *this);
  void (__fastcall *onRemoved)(BlockActor *this, BlockSource *);
  void (__fastcall *triggerEvent)(BlockActor *this, int, int);
  void (__fastcall *clearCache)(BlockActor *this);
  void (__fastcall *onNeighborChanged)(BlockActor *this, BlockSource *, const BlockPos *);
  float (__fastcall *getShadowRadius)(BlockActor *this, BlockSource *);
  bool (__fastcall *hasAlphaLayer)(BlockActor *this);
  BlockActor *(__fastcall *getCrackEntity)(BlockActor *this, BlockSource *, const BlockPos *);
  void (__fastcall *getDebugText)(BlockActor *this, std::vector<std::string> *, const BlockPos *);
  const std::string *(__fastcall *getCustomName)(BlockActor *this);
  const std::string *(__fastcall *getFilteredCustomName)(BlockActor *this, const UIProfanityContext *);
  std::string *(__fastcall *getName)(BlockActor *this, std::string *result);
  void (__fastcall *setCustomName)(BlockActor *this, const std::string *);
  std::string *(__fastcall *getImmersiveReaderText)(BlockActor *this, std::string *result, BlockSource *);
  int (__fastcall *getRepairCost)(BlockActor *this);
  PistonBlockActor *(__fastcall *getOwningPiston)(BlockActor *this, BlockSource *);
  const Container *(__fastcall *getContainer)(BlockActor *this);
  Container *(__fastcall *getContainer)(BlockActor *this);
  float (__fastcall *getDeletionDelayTimeSeconds)(BlockActor *this);
  void (__fastcall *checkWordsOnChunkLoad)(BlockActor *this, LevelChunk *);
  void (__fastcall *checkWordsOnUpdate)(BlockActor *this, Player *);
  void (__fastcall *onChunkLoaded)(BlockActor *this, LevelChunk *);
  void (__fastcall *onChunkUnloaded)(BlockActor *this, LevelChunk *);
  std::unique_ptr<BlockActorDataPacket> *(__fastcall *_getUpdatePacket)(BlockActor *this, std::unique_ptr<BlockActorDataPacket> *result, BlockSource *);
  void (__fastcall *_onUpdatePacket)(BlockActor *this, const CompoundTag *, BlockSource *);
  bool (__fastcall *_playerCanUpdate)(BlockActor *this, const Player *);
};

# DaylightDetectorBlock

struct __cppobj __declspec(align(8)) DaylightDetectorBlock : ActorBlock
{
  bool mIsInverted;
};

# DaylightDetectorBlock_vtbl

struct /*VFT*/ DaylightDetectorBlock_vtbl
{
  void (__fastcall *~BlockLegacy)(BlockLegacy *this);
  const Block *(__fastcall *getStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  const Block *(__fastcall *getModBlockStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  std::shared_ptr<BlockActor> *(__fastcall *newBlockEntity)(BlockLegacy *this, std::shared_ptr<BlockActor> *result, const BlockPos *, const Block *);
  const Block *(__fastcall *getNextBlockPermutation)(BlockLegacy *this, const Block *);
  bool (__fastcall *hasTag)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *);
  bool (__fastcall *getCollisionShape)(BlockLegacy *this, AABB *, const Block *, BlockSource *, const BlockPos *, Actor *);
  bool (__fastcall *isObstructingChests)(BlockLegacy *this, BlockSource *, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *, int *);
  void (__fastcall *addAABBs)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *);
  const AABB *(__fastcall *getAABB)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, AABB *, bool);
  bool (__fastcall *addCollisionShapes)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *, Actor *);
  const AABB *(__fastcall *getOutline)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  bool (__fastcall *getLiquidClipVolume)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  void (__fastcall *onProjectileHit)(BlockLegacy *this, BlockSource *, const BlockPos *, const Actor *);
  bool (__fastcall *liquidCanFlowIntoFromDirection)(BlockLegacy *this, unsigned __int8, const std::function<Block const & __cdecl(BlockPos const &)> *, const BlockPos *);
  bool (__fastcall *hasVariableLighting)(BlockLegacy *this);
  bool (__fastcall *isStrippable)(BlockLegacy *this, const Block *);
  const Block *(__fastcall *getStrippedBlock)(BlockLegacy *this, const Block *);
  bool (__fastcall *canProvideSupport)(BlockLegacy *this, const Block *, unsigned __int8, BlockSupportType);
  bool (__fastcall *canConnect)(BlockLegacy *this, const Block *, unsigned __int8, const Block *);
  void (__fastcall *getConnectedDirections)(BlockLegacy *this, const Block *, const BlockPos *, BlockSource *, bool *, bool *, bool *, bool *);
  bool (__fastcall *isStemBlock)(BlockLegacy *this);
  bool (__fastcall *isContainerBlock)(BlockLegacy *this);
  bool (__fastcall *isCraftingBlock)(BlockLegacy *this);
  bool (__fastcall *isWaterBlocking)(BlockLegacy *this);
  bool (__fastcall *isHurtableBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceGateBlock)(BlockLegacy *this);
  bool (__fastcall *isThinFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isWallBlock)(BlockLegacy *this);
  bool (__fastcall *isStairBlock)(BlockLegacy *this);
  bool (__fastcall *isSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoubleSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoorBlock)(BlockLegacy *this);
  bool (__fastcall *isRailBlock)(BlockLegacy *this);
  bool (__fastcall *isButtonBlock)(BlockLegacy *this);
  bool (__fastcall *canHurtAndBreakItem)(BlockLegacy *this);
  bool (__fastcall *isSignalSource)(BlockLegacy *this);
  bool (__fastcall *canBeOriginalSurface)(BlockLegacy *this);
  bool (__fastcall *isValidAuxValue)(BlockLegacy *this, int);
  void (__fastcall *setTargetLandBlocks)(BlockLegacy *this, const std::vector<std::string> *);
  bool (__fastcall *canFillAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  const Block *(__fastcall *sanitizeFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *onFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getDirectSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  bool (__fastcall *waterSpreadCausesSpawn)(BlockLegacy *this);
  bool (__fastcall *canContainLiquid)(BlockLegacy *this);
  bool (__fastcall *shouldConnectToRedstone)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  void (__fastcall *handleRain)(BlockLegacy *this, BlockSource *, const BlockPos *, float);
  bool (__fastcall *canBeUsedInCommands)(BlockLegacy *this, const BaseGameVersion *);
  float (__fastcall *getThickness)(BlockLegacy *this);
  float (__fastcall *getFlexibility)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *checkIsPathable)(BlockLegacy *this, Actor *, const BlockPos *, const BlockPos *);
  bool (__fastcall *shouldDispense)(BlockLegacy *this, BlockSource *, Container *);
  bool (__fastcall *dispense)(BlockLegacy *this, BlockSource *, Container *, int, const Vec3 *, unsigned __int8);
  void (__fastcall *transformOnFall)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *onRedstoneUpdate)(BlockLegacy *this, BlockSource *, const BlockPos *, int, bool);
  void (__fastcall *onMove)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *detachesOnPistonMove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *movedByPiston)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureNeighborBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *setupRedstoneComponent)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *specialUse)(BlockLegacy *this, Player *, const BlockPos *, ItemStack *);
  BlockProperty (__fastcall *getRedstoneProperty)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *updateEntityAfterFallOn)(BlockLegacy *this, IActorMovementProxy *);
  bool (__fastcall *isBounceBlock)(BlockLegacy *this);
  bool (__fastcall *ignoreEntitiesOnPistonMove)(BlockLegacy *this, const Block *);
  bool (__fastcall *onFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, FertilizerType);
  bool (__fastcall *mayConsumeFertilizer)(BlockLegacy *this, BlockSource *);
  bool (__fastcall *canBeFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *mayPick)(BlockLegacy *this, BlockSource *, const Block *, bool);
  bool (__fastcall *mayPick)(BlockLegacy *this);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, unsigned __int8);
  bool (__fastcall *mayPlaceOn)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *tryToPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const ActorBlockSyncMessage *);
  bool (__fastcall *breaksFallingBlocks)(BlockLegacy *this, const Block *);
  void (__fastcall *destroy)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, Actor *);
  bool (__fastcall *playerWillDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  bool (__fastcall *getIgnoresDestroyPermissions)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *neighborChanged)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *getSecondPart)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  int (__fastcall *getResourceCount)(BlockLegacy *this, Random *, const Block *, int, bool);
  ItemInstance *(__fastcall *getResourceItem)(BlockLegacy *this, ItemInstance *result, Random *, const Block *, int);
  ItemInstance *(__fastcall *asItemInstance)(BlockLegacy *this, ItemInstance *result, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *spawnResources)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  void (__fastcall *trySpawnResourcesOnExplosion)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  bool (__fastcall *spawnBurnResources)(BlockLegacy *this, BlockSource *, float, float, float);
  const Block *(__fastcall *getPlacementBlock)(BlockLegacy *this, Actor *, const BlockPos *, unsigned __int8, const Vec3 *, int);
  int (__fastcall *calcVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *isAttachedTo)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  bool (__fastcall *attack)(BlockLegacy *this, Player *, const BlockPos *);
  void (__fastcall *handleEntityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, Vec3 *);
  void (__fastcall *entityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  int (__fastcall *getExperienceDrop)(BlockLegacy *this, Random *);
  bool (__fastcall *canBeBuiltOver)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *triggerEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, int, int);
  void (__fastcall *executeEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *, Actor *);
  void (__fastcall *executeEvent)(BlockLegacy *this, const std::string *, RenderParams *);
  bool (__fastcall *executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  bool (__fastcall *executeTriggerChain)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  const MobSpawnerData *(__fastcall *getMobToSpawn)(BlockLegacy *this, const SpawnConditions *, BlockSource *);
  bool (__fastcall *shouldStopFalling)(BlockLegacy *this, Actor *);
  bool (__fastcall *pushesUpFallingBlocks)(BlockLegacy *this);
  float (__fastcall *calcGroundFriction)(BlockLegacy *this, Mob *, const BlockPos *);
  bool (__fastcall *canHaveExtraData)(BlockLegacy *this);
  bool (__fastcall *hasComparatorSignal)(BlockLegacy *this);
  int (__fastcall *getComparatorSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, unsigned __int8);
  bool (__fastcall *onDig)(BlockLegacy *this, const Block *, Actor *, ItemStack *, const BlockPos *);
  bool (__fastcall *canSlide)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *canSpawnAt)(BlockLegacy *this, const BlockSource *, const BlockPos *);
  void (__fastcall *notifySpawnedAt)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getIconYOffset)(BlockLegacy *this);
  std::string *(__fastcall *buildDescriptionId)(BlockLegacy *this, std::string *result, const Block *);
  bool (__fastcall *isAuxValueRelevantForPicking)(BlockLegacy *this);
  int (__fastcall *getColor)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getColor)(BlockLegacy *this, const Block *);
  int (__fastcall *getColorAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getColorForParticle)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *isSeasonTinted)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  void (__fastcall *onGraphicsModeChanged)(BlockLegacy *this, const BlockGraphicsModeChangeContext *);
  float (__fastcall *getShadeBrightness)(BlockLegacy *this, const Block *);
  const AABB *(__fastcall *getVisualShapeInWorld)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, AABB *, bool);
  const AABB *(__fastcall *getVisualShape)(BlockLegacy *this, const Block *, AABB *, bool);
  const AABB *(__fastcall *getUIShape)(BlockLegacy *this, const Block *, AABB *);
  int (__fastcall *telemetryVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getVariant)(BlockLegacy *this, const Block *);
  bool (__fastcall *canSpawnOn)(BlockLegacy *this);
  const Block *(__fastcall *getRenderBlock)(BlockLegacy *this);
  unsigned __int8 (__fastcall *getMappedFace)(BlockLegacy *this, unsigned __int8, const Block *);
  bool (__fastcall *renderTwoFaced)(BlockLegacy *this);
  Flip (__fastcall *getFaceFlip)(BlockLegacy *this, unsigned __int8, const Block *);
  void (__fastcall *animateTick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  BlockLegacy *(__fastcall *init)(BlockLegacy *this);
  BlockLegacy *(__fastcall *setLightBlock)(BlockLegacy *this, Brightness);
  BlockLegacy *(__fastcall *setLightEmission)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setExplodeable)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFlammable)(BlockLegacy *this, FlameOdds, BurnOdds);
  BlockLegacy *(__fastcall *setDestroyTime)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFriction)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *addProperty)(BlockLegacy *this, BlockProperty);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *, unsigned __int64);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *);
  BlockLegacy *(__fastcall *setAllowsRunes)(BlockLegacy *this, bool);
  BlockLegacy *(__fastcall *setMapColor)(BlockLegacy *this, const mce::Color *);
  bool (__fastcall *canBeSilkTouched)(BlockLegacy *this);
  ItemInstance *(__fastcall *getSilkTouchItemInstance)(BlockLegacy *this, ItemInstance *result, const Block *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const Vec3 *, const Vec3 *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const AABB *);
  const Block *(__fastcall *tryLegacyUpgrade)(BlockLegacy *this, unsigned __int16);
  bool (__fastcall *dealsContactDamage)(BlockLegacy *this, const Actor *, const Block *, bool);
  void (__fastcall *onRemove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onExploded)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  void (__fastcall *onStandOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOff)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onPlayerPlacing)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, unsigned __int8);
  void (__fastcall *onPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onFallOn)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *playerDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  void (__fastcall *tick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  bool (__fastcall *shouldRandomTick)(BlockLegacy *this);
  bool (__fastcall *isInteractiveBlock)(BlockLegacy *this);
  HitResult *(__fastcall *clip)(BlockLegacy *this, HitResult *result, BlockSource *, const BlockPos *, const Vec3 *, const Vec3 *, bool);
  bool (__fastcall *use)(BlockLegacy *this, Player *, const BlockPos *, unsigned __int8);
  bool (__fastcall *canSurvive)(BlockLegacy *this, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this);
  int (__fastcall *getExtraRenderLayers)(BlockLegacy *this);
  float (__fastcall *getExplosionResistance)(BlockLegacy *this, Actor *);
  Brightness *(__fastcall *getLightEmission)(BlockLegacy *this, Brightness *result, const Block *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result, BlockSource *, const BlockPos *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result);
  bool (__fastcall *isCropBlock)(BlockLegacy *this);
  void (__fastcall *_executeEvent)(BlockLegacy *this, const std::string *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  bool (__fastcall *_executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *_forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  ItemInstance *(__fastcall *getEntityResourceItem)(ActorBlock *this, ItemInstance *result, Random *, const BlockActor *, int);
  void (__fastcall *updateShape)(DaylightDetectorBlock *this, BlockSource *, const BlockPos *);
  void (__fastcall *updateSignalStrength)(DaylightDetectorBlock *this, BlockSource *, const BlockPos *);
};

# DropperBlock

struct __cppobj DropperBlock : DispenserBlock
{
};

# DropperBlock_vtbl

struct /*VFT*/ DropperBlock_vtbl
{
  void (__fastcall *~BlockLegacy)(BlockLegacy *this);
  const Block *(__fastcall *getStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  const Block *(__fastcall *getModBlockStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  std::shared_ptr<BlockActor> *(__fastcall *newBlockEntity)(BlockLegacy *this, std::shared_ptr<BlockActor> *result, const BlockPos *, const Block *);
  const Block *(__fastcall *getNextBlockPermutation)(BlockLegacy *this, const Block *);
  bool (__fastcall *hasTag)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *);
  bool (__fastcall *getCollisionShape)(BlockLegacy *this, AABB *, const Block *, BlockSource *, const BlockPos *, Actor *);
  bool (__fastcall *isObstructingChests)(BlockLegacy *this, BlockSource *, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *, int *);
  void (__fastcall *addAABBs)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *);
  const AABB *(__fastcall *getAABB)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, AABB *, bool);
  bool (__fastcall *addCollisionShapes)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *, Actor *);
  const AABB *(__fastcall *getOutline)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  bool (__fastcall *getLiquidClipVolume)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  void (__fastcall *onProjectileHit)(BlockLegacy *this, BlockSource *, const BlockPos *, const Actor *);
  bool (__fastcall *liquidCanFlowIntoFromDirection)(BlockLegacy *this, unsigned __int8, const std::function<Block const & __cdecl(BlockPos const &)> *, const BlockPos *);
  bool (__fastcall *hasVariableLighting)(BlockLegacy *this);
  bool (__fastcall *isStrippable)(BlockLegacy *this, const Block *);
  const Block *(__fastcall *getStrippedBlock)(BlockLegacy *this, const Block *);
  bool (__fastcall *canProvideSupport)(BlockLegacy *this, const Block *, unsigned __int8, BlockSupportType);
  bool (__fastcall *canConnect)(BlockLegacy *this, const Block *, unsigned __int8, const Block *);
  void (__fastcall *getConnectedDirections)(BlockLegacy *this, const Block *, const BlockPos *, BlockSource *, bool *, bool *, bool *, bool *);
  bool (__fastcall *isStemBlock)(BlockLegacy *this);
  bool (__fastcall *isContainerBlock)(BlockLegacy *this);
  bool (__fastcall *isCraftingBlock)(BlockLegacy *this);
  bool (__fastcall *isWaterBlocking)(BlockLegacy *this);
  bool (__fastcall *isHurtableBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceGateBlock)(BlockLegacy *this);
  bool (__fastcall *isThinFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isWallBlock)(BlockLegacy *this);
  bool (__fastcall *isStairBlock)(BlockLegacy *this);
  bool (__fastcall *isSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoubleSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoorBlock)(BlockLegacy *this);
  bool (__fastcall *isRailBlock)(BlockLegacy *this);
  bool (__fastcall *isButtonBlock)(BlockLegacy *this);
  bool (__fastcall *canHurtAndBreakItem)(BlockLegacy *this);
  bool (__fastcall *isSignalSource)(BlockLegacy *this);
  bool (__fastcall *canBeOriginalSurface)(BlockLegacy *this);
  bool (__fastcall *isValidAuxValue)(BlockLegacy *this, int);
  void (__fastcall *setTargetLandBlocks)(BlockLegacy *this, const std::vector<std::string> *);
  bool (__fastcall *canFillAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  const Block *(__fastcall *sanitizeFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *onFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getDirectSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  bool (__fastcall *waterSpreadCausesSpawn)(BlockLegacy *this);
  bool (__fastcall *canContainLiquid)(BlockLegacy *this);
  bool (__fastcall *shouldConnectToRedstone)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  void (__fastcall *handleRain)(BlockLegacy *this, BlockSource *, const BlockPos *, float);
  bool (__fastcall *canBeUsedInCommands)(BlockLegacy *this, const BaseGameVersion *);
  float (__fastcall *getThickness)(BlockLegacy *this);
  float (__fastcall *getFlexibility)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *checkIsPathable)(BlockLegacy *this, Actor *, const BlockPos *, const BlockPos *);
  bool (__fastcall *shouldDispense)(BlockLegacy *this, BlockSource *, Container *);
  bool (__fastcall *dispense)(BlockLegacy *this, BlockSource *, Container *, int, const Vec3 *, unsigned __int8);
  void (__fastcall *transformOnFall)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *onRedstoneUpdate)(BlockLegacy *this, BlockSource *, const BlockPos *, int, bool);
  void (__fastcall *onMove)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *detachesOnPistonMove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *movedByPiston)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureNeighborBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *setupRedstoneComponent)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *specialUse)(BlockLegacy *this, Player *, const BlockPos *, ItemStack *);
  BlockProperty (__fastcall *getRedstoneProperty)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *updateEntityAfterFallOn)(BlockLegacy *this, IActorMovementProxy *);
  bool (__fastcall *isBounceBlock)(BlockLegacy *this);
  bool (__fastcall *ignoreEntitiesOnPistonMove)(BlockLegacy *this, const Block *);
  bool (__fastcall *onFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, FertilizerType);
  bool (__fastcall *mayConsumeFertilizer)(BlockLegacy *this, BlockSource *);
  bool (__fastcall *canBeFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *mayPick)(BlockLegacy *this, BlockSource *, const Block *, bool);
  bool (__fastcall *mayPick)(BlockLegacy *this);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, unsigned __int8);
  bool (__fastcall *mayPlaceOn)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *tryToPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const ActorBlockSyncMessage *);
  bool (__fastcall *breaksFallingBlocks)(BlockLegacy *this, const Block *);
  void (__fastcall *destroy)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, Actor *);
  bool (__fastcall *playerWillDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  bool (__fastcall *getIgnoresDestroyPermissions)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *neighborChanged)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *getSecondPart)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  int (__fastcall *getResourceCount)(BlockLegacy *this, Random *, const Block *, int, bool);
  ItemInstance *(__fastcall *getResourceItem)(BlockLegacy *this, ItemInstance *result, Random *, const Block *, int);
  ItemInstance *(__fastcall *asItemInstance)(BlockLegacy *this, ItemInstance *result, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *spawnResources)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  void (__fastcall *trySpawnResourcesOnExplosion)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  bool (__fastcall *spawnBurnResources)(BlockLegacy *this, BlockSource *, float, float, float);
  const Block *(__fastcall *getPlacementBlock)(BlockLegacy *this, Actor *, const BlockPos *, unsigned __int8, const Vec3 *, int);
  int (__fastcall *calcVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *isAttachedTo)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  bool (__fastcall *attack)(BlockLegacy *this, Player *, const BlockPos *);
  void (__fastcall *handleEntityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, Vec3 *);
  void (__fastcall *entityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  int (__fastcall *getExperienceDrop)(BlockLegacy *this, Random *);
  bool (__fastcall *canBeBuiltOver)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *triggerEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, int, int);
  void (__fastcall *executeEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *, Actor *);
  void (__fastcall *executeEvent)(BlockLegacy *this, const std::string *, RenderParams *);
  bool (__fastcall *executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  bool (__fastcall *executeTriggerChain)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  const MobSpawnerData *(__fastcall *getMobToSpawn)(BlockLegacy *this, const SpawnConditions *, BlockSource *);
  bool (__fastcall *shouldStopFalling)(BlockLegacy *this, Actor *);
  bool (__fastcall *pushesUpFallingBlocks)(BlockLegacy *this);
  float (__fastcall *calcGroundFriction)(BlockLegacy *this, Mob *, const BlockPos *);
  bool (__fastcall *canHaveExtraData)(BlockLegacy *this);
  bool (__fastcall *hasComparatorSignal)(BlockLegacy *this);
  int (__fastcall *getComparatorSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, unsigned __int8);
  bool (__fastcall *onDig)(BlockLegacy *this, const Block *, Actor *, ItemStack *, const BlockPos *);
  bool (__fastcall *canSlide)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *canSpawnAt)(BlockLegacy *this, const BlockSource *, const BlockPos *);
  void (__fastcall *notifySpawnedAt)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getIconYOffset)(BlockLegacy *this);
  std::string *(__fastcall *buildDescriptionId)(BlockLegacy *this, std::string *result, const Block *);
  bool (__fastcall *isAuxValueRelevantForPicking)(BlockLegacy *this);
  int (__fastcall *getColor)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getColor)(BlockLegacy *this, const Block *);
  int (__fastcall *getColorAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getColorForParticle)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *isSeasonTinted)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  void (__fastcall *onGraphicsModeChanged)(BlockLegacy *this, const BlockGraphicsModeChangeContext *);
  float (__fastcall *getShadeBrightness)(BlockLegacy *this, const Block *);
  const AABB *(__fastcall *getVisualShapeInWorld)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, AABB *, bool);
  const AABB *(__fastcall *getVisualShape)(BlockLegacy *this, const Block *, AABB *, bool);
  const AABB *(__fastcall *getUIShape)(BlockLegacy *this, const Block *, AABB *);
  int (__fastcall *telemetryVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getVariant)(BlockLegacy *this, const Block *);
  bool (__fastcall *canSpawnOn)(BlockLegacy *this);
  const Block *(__fastcall *getRenderBlock)(BlockLegacy *this);
  unsigned __int8 (__fastcall *getMappedFace)(BlockLegacy *this, unsigned __int8, const Block *);
  bool (__fastcall *renderTwoFaced)(BlockLegacy *this);
  Flip (__fastcall *getFaceFlip)(BlockLegacy *this, unsigned __int8, const Block *);
  void (__fastcall *animateTick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  BlockLegacy *(__fastcall *init)(BlockLegacy *this);
  BlockLegacy *(__fastcall *setLightBlock)(BlockLegacy *this, Brightness);
  BlockLegacy *(__fastcall *setLightEmission)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setExplodeable)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFlammable)(BlockLegacy *this, FlameOdds, BurnOdds);
  BlockLegacy *(__fastcall *setDestroyTime)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFriction)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *addProperty)(BlockLegacy *this, BlockProperty);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *, unsigned __int64);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *);
  BlockLegacy *(__fastcall *setAllowsRunes)(BlockLegacy *this, bool);
  BlockLegacy *(__fastcall *setMapColor)(BlockLegacy *this, const mce::Color *);
  bool (__fastcall *canBeSilkTouched)(BlockLegacy *this);
  ItemInstance *(__fastcall *getSilkTouchItemInstance)(BlockLegacy *this, ItemInstance *result, const Block *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const Vec3 *, const Vec3 *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const AABB *);
  const Block *(__fastcall *tryLegacyUpgrade)(BlockLegacy *this, unsigned __int16);
  bool (__fastcall *dealsContactDamage)(BlockLegacy *this, const Actor *, const Block *, bool);
  void (__fastcall *onRemove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onExploded)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  void (__fastcall *onStandOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOff)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onPlayerPlacing)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, unsigned __int8);
  void (__fastcall *onPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onFallOn)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *playerDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  void (__fastcall *tick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  bool (__fastcall *shouldRandomTick)(BlockLegacy *this);
  bool (__fastcall *isInteractiveBlock)(BlockLegacy *this);
  HitResult *(__fastcall *clip)(BlockLegacy *this, HitResult *result, BlockSource *, const BlockPos *, const Vec3 *, const Vec3 *, bool);
  bool (__fastcall *use)(BlockLegacy *this, Player *, const BlockPos *, unsigned __int8);
  bool (__fastcall *canSurvive)(BlockLegacy *this, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this);
  int (__fastcall *getExtraRenderLayers)(BlockLegacy *this);
  float (__fastcall *getExplosionResistance)(BlockLegacy *this, Actor *);
  Brightness *(__fastcall *getLightEmission)(BlockLegacy *this, Brightness *result, const Block *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result, BlockSource *, const BlockPos *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result);
  bool (__fastcall *isCropBlock)(BlockLegacy *this);
  void (__fastcall *_executeEvent)(BlockLegacy *this, const std::string *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  bool (__fastcall *_executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *_forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  ItemInstance *(__fastcall *getEntityResourceItem)(ActorBlock *this, ItemInstance *result, Random *, const BlockActor *, int);
  int (__fastcall *getTickDelay)(DispenserBlock *this);
  void (__fastcall *dispenseFrom)(DispenserBlock *this, BlockSource *, const BlockPos *);
};

# DefaultMobSpawner

struct __cppobj DefaultMobSpawner : BaseMobSpawner
{
  MobSpawnerBlockActor *mOwner;
};

# DefaultMobSpawner_vtbl

struct /*VFT*/ DefaultMobSpawner_vtbl
{
  void (__fastcall *~BaseMobSpawner)(BaseMobSpawner *this);
  void (__fastcall *tick)(BaseMobSpawner *this, BlockSource *);
  void (__fastcall *load)(BaseMobSpawner *this, const CompoundTag *);
  void (__fastcall *save)(BaseMobSpawner *this, CompoundTag *);
  const BlockPos *(__fastcall *getPos)(BaseMobSpawner *this);
};

# DeadBush

struct __cppobj DeadBush : BushBlock
{
};

# DeadBush_vtbl

struct /*VFT*/ DeadBush_vtbl
{
  void (__fastcall *~BlockLegacy)(BlockLegacy *this);
  const Block *(__fastcall *getStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  const Block *(__fastcall *getModBlockStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  std::shared_ptr<BlockActor> *(__fastcall *newBlockEntity)(BlockLegacy *this, std::shared_ptr<BlockActor> *result, const BlockPos *, const Block *);
  const Block *(__fastcall *getNextBlockPermutation)(BlockLegacy *this, const Block *);
  bool (__fastcall *hasTag)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *);
  bool (__fastcall *getCollisionShape)(BlockLegacy *this, AABB *, const Block *, BlockSource *, const BlockPos *, Actor *);
  bool (__fastcall *isObstructingChests)(BlockLegacy *this, BlockSource *, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *, int *);
  void (__fastcall *addAABBs)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *);
  const AABB *(__fastcall *getAABB)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, AABB *, bool);
  bool (__fastcall *addCollisionShapes)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *, Actor *);
  const AABB *(__fastcall *getOutline)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  bool (__fastcall *getLiquidClipVolume)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  void (__fastcall *onProjectileHit)(BlockLegacy *this, BlockSource *, const BlockPos *, const Actor *);
  bool (__fastcall *liquidCanFlowIntoFromDirection)(BlockLegacy *this, unsigned __int8, const std::function<Block const & __cdecl(BlockPos const &)> *, const BlockPos *);
  bool (__fastcall *hasVariableLighting)(BlockLegacy *this);
  bool (__fastcall *isStrippable)(BlockLegacy *this, const Block *);
  const Block *(__fastcall *getStrippedBlock)(BlockLegacy *this, const Block *);
  bool (__fastcall *canProvideSupport)(BlockLegacy *this, const Block *, unsigned __int8, BlockSupportType);
  bool (__fastcall *canConnect)(BlockLegacy *this, const Block *, unsigned __int8, const Block *);
  void (__fastcall *getConnectedDirections)(BlockLegacy *this, const Block *, const BlockPos *, BlockSource *, bool *, bool *, bool *, bool *);
  bool (__fastcall *isStemBlock)(BlockLegacy *this);
  bool (__fastcall *isContainerBlock)(BlockLegacy *this);
  bool (__fastcall *isCraftingBlock)(BlockLegacy *this);
  bool (__fastcall *isWaterBlocking)(BlockLegacy *this);
  bool (__fastcall *isHurtableBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceGateBlock)(BlockLegacy *this);
  bool (__fastcall *isThinFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isWallBlock)(BlockLegacy *this);
  bool (__fastcall *isStairBlock)(BlockLegacy *this);
  bool (__fastcall *isSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoubleSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoorBlock)(BlockLegacy *this);
  bool (__fastcall *isRailBlock)(BlockLegacy *this);
  bool (__fastcall *isButtonBlock)(BlockLegacy *this);
  bool (__fastcall *canHurtAndBreakItem)(BlockLegacy *this);
  bool (__fastcall *isSignalSource)(BlockLegacy *this);
  bool (__fastcall *canBeOriginalSurface)(BlockLegacy *this);
  bool (__fastcall *isValidAuxValue)(BlockLegacy *this, int);
  void (__fastcall *setTargetLandBlocks)(BlockLegacy *this, const std::vector<std::string> *);
  bool (__fastcall *canFillAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  const Block *(__fastcall *sanitizeFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *onFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getDirectSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  bool (__fastcall *waterSpreadCausesSpawn)(BlockLegacy *this);
  bool (__fastcall *canContainLiquid)(BlockLegacy *this);
  bool (__fastcall *shouldConnectToRedstone)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  void (__fastcall *handleRain)(BlockLegacy *this, BlockSource *, const BlockPos *, float);
  bool (__fastcall *canBeUsedInCommands)(BlockLegacy *this, const BaseGameVersion *);
  float (__fastcall *getThickness)(BlockLegacy *this);
  float (__fastcall *getFlexibility)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *checkIsPathable)(BlockLegacy *this, Actor *, const BlockPos *, const BlockPos *);
  bool (__fastcall *shouldDispense)(BlockLegacy *this, BlockSource *, Container *);
  bool (__fastcall *dispense)(BlockLegacy *this, BlockSource *, Container *, int, const Vec3 *, unsigned __int8);
  void (__fastcall *transformOnFall)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *onRedstoneUpdate)(BlockLegacy *this, BlockSource *, const BlockPos *, int, bool);
  void (__fastcall *onMove)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *detachesOnPistonMove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *movedByPiston)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureNeighborBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *setupRedstoneComponent)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *specialUse)(BlockLegacy *this, Player *, const BlockPos *, ItemStack *);
  BlockProperty (__fastcall *getRedstoneProperty)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *updateEntityAfterFallOn)(BlockLegacy *this, IActorMovementProxy *);
  bool (__fastcall *isBounceBlock)(BlockLegacy *this);
  bool (__fastcall *ignoreEntitiesOnPistonMove)(BlockLegacy *this, const Block *);
  bool (__fastcall *onFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, FertilizerType);
  bool (__fastcall *mayConsumeFertilizer)(BlockLegacy *this, BlockSource *);
  bool (__fastcall *canBeFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *mayPick)(BlockLegacy *this, BlockSource *, const Block *, bool);
  bool (__fastcall *mayPick)(BlockLegacy *this);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, unsigned __int8);
  bool (__fastcall *mayPlaceOn)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *tryToPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const ActorBlockSyncMessage *);
  bool (__fastcall *breaksFallingBlocks)(BlockLegacy *this, const Block *);
  void (__fastcall *destroy)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, Actor *);
  bool (__fastcall *playerWillDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  bool (__fastcall *getIgnoresDestroyPermissions)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *neighborChanged)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *getSecondPart)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  int (__fastcall *getResourceCount)(BlockLegacy *this, Random *, const Block *, int, bool);
  ItemInstance *(__fastcall *getResourceItem)(BlockLegacy *this, ItemInstance *result, Random *, const Block *, int);
  ItemInstance *(__fastcall *asItemInstance)(BlockLegacy *this, ItemInstance *result, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *spawnResources)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  void (__fastcall *trySpawnResourcesOnExplosion)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  bool (__fastcall *spawnBurnResources)(BlockLegacy *this, BlockSource *, float, float, float);
  const Block *(__fastcall *getPlacementBlock)(BlockLegacy *this, Actor *, const BlockPos *, unsigned __int8, const Vec3 *, int);
  int (__fastcall *calcVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *isAttachedTo)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  bool (__fastcall *attack)(BlockLegacy *this, Player *, const BlockPos *);
  void (__fastcall *handleEntityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, Vec3 *);
  void (__fastcall *entityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  int (__fastcall *getExperienceDrop)(BlockLegacy *this, Random *);
  bool (__fastcall *canBeBuiltOver)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *triggerEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, int, int);
  void (__fastcall *executeEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *, Actor *);
  void (__fastcall *executeEvent)(BlockLegacy *this, const std::string *, RenderParams *);
  bool (__fastcall *executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  bool (__fastcall *executeTriggerChain)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  const MobSpawnerData *(__fastcall *getMobToSpawn)(BlockLegacy *this, const SpawnConditions *, BlockSource *);
  bool (__fastcall *shouldStopFalling)(BlockLegacy *this, Actor *);
  bool (__fastcall *pushesUpFallingBlocks)(BlockLegacy *this);
  float (__fastcall *calcGroundFriction)(BlockLegacy *this, Mob *, const BlockPos *);
  bool (__fastcall *canHaveExtraData)(BlockLegacy *this);
  bool (__fastcall *hasComparatorSignal)(BlockLegacy *this);
  int (__fastcall *getComparatorSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, unsigned __int8);
  bool (__fastcall *onDig)(BlockLegacy *this, const Block *, Actor *, ItemStack *, const BlockPos *);
  bool (__fastcall *canSlide)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *canSpawnAt)(BlockLegacy *this, const BlockSource *, const BlockPos *);
  void (__fastcall *notifySpawnedAt)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getIconYOffset)(BlockLegacy *this);
  std::string *(__fastcall *buildDescriptionId)(BlockLegacy *this, std::string *result, const Block *);
  bool (__fastcall *isAuxValueRelevantForPicking)(BlockLegacy *this);
  int (__fastcall *getColor)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getColor)(BlockLegacy *this, const Block *);
  int (__fastcall *getColorAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getColorForParticle)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *isSeasonTinted)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  void (__fastcall *onGraphicsModeChanged)(BlockLegacy *this, const BlockGraphicsModeChangeContext *);
  float (__fastcall *getShadeBrightness)(BlockLegacy *this, const Block *);
  const AABB *(__fastcall *getVisualShapeInWorld)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, AABB *, bool);
  const AABB *(__fastcall *getVisualShape)(BlockLegacy *this, const Block *, AABB *, bool);
  const AABB *(__fastcall *getUIShape)(BlockLegacy *this, const Block *, AABB *);
  int (__fastcall *telemetryVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getVariant)(BlockLegacy *this, const Block *);
  bool (__fastcall *canSpawnOn)(BlockLegacy *this);
  const Block *(__fastcall *getRenderBlock)(BlockLegacy *this);
  unsigned __int8 (__fastcall *getMappedFace)(BlockLegacy *this, unsigned __int8, const Block *);
  bool (__fastcall *renderTwoFaced)(BlockLegacy *this);
  Flip (__fastcall *getFaceFlip)(BlockLegacy *this, unsigned __int8, const Block *);
  void (__fastcall *animateTick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  BlockLegacy *(__fastcall *init)(BlockLegacy *this);
  BlockLegacy *(__fastcall *setLightBlock)(BlockLegacy *this, Brightness);
  BlockLegacy *(__fastcall *setLightEmission)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setExplodeable)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFlammable)(BlockLegacy *this, FlameOdds, BurnOdds);
  BlockLegacy *(__fastcall *setDestroyTime)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFriction)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *addProperty)(BlockLegacy *this, BlockProperty);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *, unsigned __int64);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *);
  BlockLegacy *(__fastcall *setAllowsRunes)(BlockLegacy *this, bool);
  BlockLegacy *(__fastcall *setMapColor)(BlockLegacy *this, const mce::Color *);
  bool (__fastcall *canBeSilkTouched)(BlockLegacy *this);
  ItemInstance *(__fastcall *getSilkTouchItemInstance)(BlockLegacy *this, ItemInstance *result, const Block *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const Vec3 *, const Vec3 *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const AABB *);
  const Block *(__fastcall *tryLegacyUpgrade)(BlockLegacy *this, unsigned __int16);
  bool (__fastcall *dealsContactDamage)(BlockLegacy *this, const Actor *, const Block *, bool);
  void (__fastcall *onRemove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onExploded)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  void (__fastcall *onStandOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOff)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onPlayerPlacing)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, unsigned __int8);
  void (__fastcall *onPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onFallOn)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *playerDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  void (__fastcall *tick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  bool (__fastcall *shouldRandomTick)(BlockLegacy *this);
  bool (__fastcall *isInteractiveBlock)(BlockLegacy *this);
  HitResult *(__fastcall *clip)(BlockLegacy *this, HitResult *result, BlockSource *, const BlockPos *, const Vec3 *, const Vec3 *, bool);
  bool (__fastcall *use)(BlockLegacy *this, Player *, const BlockPos *, unsigned __int8);
  bool (__fastcall *canSurvive)(BlockLegacy *this, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this);
  int (__fastcall *getExtraRenderLayers)(BlockLegacy *this);
  float (__fastcall *getExplosionResistance)(BlockLegacy *this, Actor *);
  Brightness *(__fastcall *getLightEmission)(BlockLegacy *this, Brightness *result, const Block *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result, BlockSource *, const BlockPos *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result);
  bool (__fastcall *isCropBlock)(BlockLegacy *this);
  void (__fastcall *_executeEvent)(BlockLegacy *this, const std::string *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  bool (__fastcall *_executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *_forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *checkAlive)(BushBlock *this, BlockSource *, const BlockPos *);
};

# DetectorRailBlock

struct __cppobj DetectorRailBlock : BaseRailBlock
{
};

# DetectorRailBlock_vtbl

struct /*VFT*/ DetectorRailBlock_vtbl
{
  void (__fastcall *~BlockLegacy)(BlockLegacy *this);
  const Block *(__fastcall *getStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  const Block *(__fastcall *getModBlockStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  std::shared_ptr<BlockActor> *(__fastcall *newBlockEntity)(BlockLegacy *this, std::shared_ptr<BlockActor> *result, const BlockPos *, const Block *);
  const Block *(__fastcall *getNextBlockPermutation)(BlockLegacy *this, const Block *);
  bool (__fastcall *hasTag)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *);
  bool (__fastcall *getCollisionShape)(BlockLegacy *this, AABB *, const Block *, BlockSource *, const BlockPos *, Actor *);
  bool (__fastcall *isObstructingChests)(BlockLegacy *this, BlockSource *, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *, int *);
  void (__fastcall *addAABBs)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *);
  const AABB *(__fastcall *getAABB)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, AABB *, bool);
  bool (__fastcall *addCollisionShapes)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *, Actor *);
  const AABB *(__fastcall *getOutline)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  bool (__fastcall *getLiquidClipVolume)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  void (__fastcall *onProjectileHit)(BlockLegacy *this, BlockSource *, const BlockPos *, const Actor *);
  bool (__fastcall *liquidCanFlowIntoFromDirection)(BlockLegacy *this, unsigned __int8, const std::function<Block const & __cdecl(BlockPos const &)> *, const BlockPos *);
  bool (__fastcall *hasVariableLighting)(BlockLegacy *this);
  bool (__fastcall *isStrippable)(BlockLegacy *this, const Block *);
  const Block *(__fastcall *getStrippedBlock)(BlockLegacy *this, const Block *);
  bool (__fastcall *canProvideSupport)(BlockLegacy *this, const Block *, unsigned __int8, BlockSupportType);
  bool (__fastcall *canConnect)(BlockLegacy *this, const Block *, unsigned __int8, const Block *);
  void (__fastcall *getConnectedDirections)(BlockLegacy *this, const Block *, const BlockPos *, BlockSource *, bool *, bool *, bool *, bool *);
  bool (__fastcall *isStemBlock)(BlockLegacy *this);
  bool (__fastcall *isContainerBlock)(BlockLegacy *this);
  bool (__fastcall *isCraftingBlock)(BlockLegacy *this);
  bool (__fastcall *isWaterBlocking)(BlockLegacy *this);
  bool (__fastcall *isHurtableBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceGateBlock)(BlockLegacy *this);
  bool (__fastcall *isThinFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isWallBlock)(BlockLegacy *this);
  bool (__fastcall *isStairBlock)(BlockLegacy *this);
  bool (__fastcall *isSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoubleSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoorBlock)(BlockLegacy *this);
  bool (__fastcall *isRailBlock)(BlockLegacy *this);
  bool (__fastcall *isButtonBlock)(BlockLegacy *this);
  bool (__fastcall *canHurtAndBreakItem)(BlockLegacy *this);
  bool (__fastcall *isSignalSource)(BlockLegacy *this);
  bool (__fastcall *canBeOriginalSurface)(BlockLegacy *this);
  bool (__fastcall *isValidAuxValue)(BlockLegacy *this, int);
  void (__fastcall *setTargetLandBlocks)(BlockLegacy *this, const std::vector<std::string> *);
  bool (__fastcall *canFillAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  const Block *(__fastcall *sanitizeFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *onFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getDirectSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  bool (__fastcall *waterSpreadCausesSpawn)(BlockLegacy *this);
  bool (__fastcall *canContainLiquid)(BlockLegacy *this);
  bool (__fastcall *shouldConnectToRedstone)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  void (__fastcall *handleRain)(BlockLegacy *this, BlockSource *, const BlockPos *, float);
  bool (__fastcall *canBeUsedInCommands)(BlockLegacy *this, const BaseGameVersion *);
  float (__fastcall *getThickness)(BlockLegacy *this);
  float (__fastcall *getFlexibility)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *checkIsPathable)(BlockLegacy *this, Actor *, const BlockPos *, const BlockPos *);
  bool (__fastcall *shouldDispense)(BlockLegacy *this, BlockSource *, Container *);
  bool (__fastcall *dispense)(BlockLegacy *this, BlockSource *, Container *, int, const Vec3 *, unsigned __int8);
  void (__fastcall *transformOnFall)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *onRedstoneUpdate)(BlockLegacy *this, BlockSource *, const BlockPos *, int, bool);
  void (__fastcall *onMove)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *detachesOnPistonMove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *movedByPiston)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureNeighborBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *setupRedstoneComponent)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *specialUse)(BlockLegacy *this, Player *, const BlockPos *, ItemStack *);
  BlockProperty (__fastcall *getRedstoneProperty)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *updateEntityAfterFallOn)(BlockLegacy *this, IActorMovementProxy *);
  bool (__fastcall *isBounceBlock)(BlockLegacy *this);
  bool (__fastcall *ignoreEntitiesOnPistonMove)(BlockLegacy *this, const Block *);
  bool (__fastcall *onFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, FertilizerType);
  bool (__fastcall *mayConsumeFertilizer)(BlockLegacy *this, BlockSource *);
  bool (__fastcall *canBeFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *mayPick)(BlockLegacy *this, BlockSource *, const Block *, bool);
  bool (__fastcall *mayPick)(BlockLegacy *this);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, unsigned __int8);
  bool (__fastcall *mayPlaceOn)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *tryToPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const ActorBlockSyncMessage *);
  bool (__fastcall *breaksFallingBlocks)(BlockLegacy *this, const Block *);
  void (__fastcall *destroy)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, Actor *);
  bool (__fastcall *playerWillDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  bool (__fastcall *getIgnoresDestroyPermissions)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *neighborChanged)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *getSecondPart)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  int (__fastcall *getResourceCount)(BlockLegacy *this, Random *, const Block *, int, bool);
  ItemInstance *(__fastcall *getResourceItem)(BlockLegacy *this, ItemInstance *result, Random *, const Block *, int);
  ItemInstance *(__fastcall *asItemInstance)(BlockLegacy *this, ItemInstance *result, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *spawnResources)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  void (__fastcall *trySpawnResourcesOnExplosion)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  bool (__fastcall *spawnBurnResources)(BlockLegacy *this, BlockSource *, float, float, float);
  const Block *(__fastcall *getPlacementBlock)(BlockLegacy *this, Actor *, const BlockPos *, unsigned __int8, const Vec3 *, int);
  int (__fastcall *calcVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *isAttachedTo)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  bool (__fastcall *attack)(BlockLegacy *this, Player *, const BlockPos *);
  void (__fastcall *handleEntityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, Vec3 *);
  void (__fastcall *entityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  int (__fastcall *getExperienceDrop)(BlockLegacy *this, Random *);
  bool (__fastcall *canBeBuiltOver)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *triggerEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, int, int);
  void (__fastcall *executeEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *, Actor *);
  void (__fastcall *executeEvent)(BlockLegacy *this, const std::string *, RenderParams *);
  bool (__fastcall *executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  bool (__fastcall *executeTriggerChain)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  const MobSpawnerData *(__fastcall *getMobToSpawn)(BlockLegacy *this, const SpawnConditions *, BlockSource *);
  bool (__fastcall *shouldStopFalling)(BlockLegacy *this, Actor *);
  bool (__fastcall *pushesUpFallingBlocks)(BlockLegacy *this);
  float (__fastcall *calcGroundFriction)(BlockLegacy *this, Mob *, const BlockPos *);
  bool (__fastcall *canHaveExtraData)(BlockLegacy *this);
  bool (__fastcall *hasComparatorSignal)(BlockLegacy *this);
  int (__fastcall *getComparatorSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, unsigned __int8);
  bool (__fastcall *onDig)(BlockLegacy *this, const Block *, Actor *, ItemStack *, const BlockPos *);
  bool (__fastcall *canSlide)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *canSpawnAt)(BlockLegacy *this, const BlockSource *, const BlockPos *);
  void (__fastcall *notifySpawnedAt)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getIconYOffset)(BlockLegacy *this);
  std::string *(__fastcall *buildDescriptionId)(BlockLegacy *this, std::string *result, const Block *);
  bool (__fastcall *isAuxValueRelevantForPicking)(BlockLegacy *this);
  int (__fastcall *getColor)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getColor)(BlockLegacy *this, const Block *);
  int (__fastcall *getColorAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getColorForParticle)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *isSeasonTinted)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  void (__fastcall *onGraphicsModeChanged)(BlockLegacy *this, const BlockGraphicsModeChangeContext *);
  float (__fastcall *getShadeBrightness)(BlockLegacy *this, const Block *);
  const AABB *(__fastcall *getVisualShapeInWorld)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, AABB *, bool);
  const AABB *(__fastcall *getVisualShape)(BlockLegacy *this, const Block *, AABB *, bool);
  const AABB *(__fastcall *getUIShape)(BlockLegacy *this, const Block *, AABB *);
  int (__fastcall *telemetryVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getVariant)(BlockLegacy *this, const Block *);
  bool (__fastcall *canSpawnOn)(BlockLegacy *this);
  const Block *(__fastcall *getRenderBlock)(BlockLegacy *this);
  unsigned __int8 (__fastcall *getMappedFace)(BlockLegacy *this, unsigned __int8, const Block *);
  bool (__fastcall *renderTwoFaced)(BlockLegacy *this);
  Flip (__fastcall *getFaceFlip)(BlockLegacy *this, unsigned __int8, const Block *);
  void (__fastcall *animateTick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  BlockLegacy *(__fastcall *init)(BlockLegacy *this);
  BlockLegacy *(__fastcall *setLightBlock)(BlockLegacy *this, Brightness);
  BlockLegacy *(__fastcall *setLightEmission)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setExplodeable)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFlammable)(BlockLegacy *this, FlameOdds, BurnOdds);
  BlockLegacy *(__fastcall *setDestroyTime)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFriction)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *addProperty)(BlockLegacy *this, BlockProperty);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *, unsigned __int64);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *);
  BlockLegacy *(__fastcall *setAllowsRunes)(BlockLegacy *this, bool);
  BlockLegacy *(__fastcall *setMapColor)(BlockLegacy *this, const mce::Color *);
  bool (__fastcall *canBeSilkTouched)(BlockLegacy *this);
  ItemInstance *(__fastcall *getSilkTouchItemInstance)(BlockLegacy *this, ItemInstance *result, const Block *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const Vec3 *, const Vec3 *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const AABB *);
  const Block *(__fastcall *tryLegacyUpgrade)(BlockLegacy *this, unsigned __int16);
  bool (__fastcall *dealsContactDamage)(BlockLegacy *this, const Actor *, const Block *, bool);
  void (__fastcall *onRemove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onExploded)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  void (__fastcall *onStandOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOff)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onPlayerPlacing)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, unsigned __int8);
  void (__fastcall *onPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onFallOn)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *playerDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  void (__fastcall *tick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  bool (__fastcall *shouldRandomTick)(BlockLegacy *this);
  bool (__fastcall *isInteractiveBlock)(BlockLegacy *this);
  HitResult *(__fastcall *clip)(BlockLegacy *this, HitResult *result, BlockSource *, const BlockPos *, const Vec3 *, const Vec3 *, bool);
  bool (__fastcall *use)(BlockLegacy *this, Player *, const BlockPos *, unsigned __int8);
  bool (__fastcall *canSurvive)(BlockLegacy *this, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this);
  int (__fastcall *getExtraRenderLayers)(BlockLegacy *this);
  float (__fastcall *getExplosionResistance)(BlockLegacy *this, Actor *);
  Brightness *(__fastcall *getLightEmission)(BlockLegacy *this, Brightness *result, const Block *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result, BlockSource *, const BlockPos *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result);
  bool (__fastcall *isCropBlock)(BlockLegacy *this);
  void (__fastcall *_executeEvent)(BlockLegacy *this, const std::string *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  bool (__fastcall *_executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *_forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
};

# DragonEggBlock

struct __cppobj DragonEggBlock : HeavyBlock
{
};

# DragonEggBlock_vtbl

struct /*VFT*/ DragonEggBlock_vtbl
{
  void (__fastcall *~BlockLegacy)(BlockLegacy *this);
  const Block *(__fastcall *getStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  const Block *(__fastcall *getModBlockStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  std::shared_ptr<BlockActor> *(__fastcall *newBlockEntity)(BlockLegacy *this, std::shared_ptr<BlockActor> *result, const BlockPos *, const Block *);
  const Block *(__fastcall *getNextBlockPermutation)(BlockLegacy *this, const Block *);
  bool (__fastcall *hasTag)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *);
  bool (__fastcall *getCollisionShape)(BlockLegacy *this, AABB *, const Block *, BlockSource *, const BlockPos *, Actor *);
  bool (__fastcall *isObstructingChests)(BlockLegacy *this, BlockSource *, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *, int *);
  void (__fastcall *addAABBs)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *);
  const AABB *(__fastcall *getAABB)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, AABB *, bool);
  bool (__fastcall *addCollisionShapes)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *, Actor *);
  const AABB *(__fastcall *getOutline)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  bool (__fastcall *getLiquidClipVolume)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  void (__fastcall *onProjectileHit)(BlockLegacy *this, BlockSource *, const BlockPos *, const Actor *);
  bool (__fastcall *liquidCanFlowIntoFromDirection)(BlockLegacy *this, unsigned __int8, const std::function<Block const & __cdecl(BlockPos const &)> *, const BlockPos *);
  bool (__fastcall *hasVariableLighting)(BlockLegacy *this);
  bool (__fastcall *isStrippable)(BlockLegacy *this, const Block *);
  const Block *(__fastcall *getStrippedBlock)(BlockLegacy *this, const Block *);
  bool (__fastcall *canProvideSupport)(BlockLegacy *this, const Block *, unsigned __int8, BlockSupportType);
  bool (__fastcall *canConnect)(BlockLegacy *this, const Block *, unsigned __int8, const Block *);
  void (__fastcall *getConnectedDirections)(BlockLegacy *this, const Block *, const BlockPos *, BlockSource *, bool *, bool *, bool *, bool *);
  bool (__fastcall *isStemBlock)(BlockLegacy *this);
  bool (__fastcall *isContainerBlock)(BlockLegacy *this);
  bool (__fastcall *isCraftingBlock)(BlockLegacy *this);
  bool (__fastcall *isWaterBlocking)(BlockLegacy *this);
  bool (__fastcall *isHurtableBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceGateBlock)(BlockLegacy *this);
  bool (__fastcall *isThinFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isWallBlock)(BlockLegacy *this);
  bool (__fastcall *isStairBlock)(BlockLegacy *this);
  bool (__fastcall *isSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoubleSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoorBlock)(BlockLegacy *this);
  bool (__fastcall *isRailBlock)(BlockLegacy *this);
  bool (__fastcall *isButtonBlock)(BlockLegacy *this);
  bool (__fastcall *canHurtAndBreakItem)(BlockLegacy *this);
  bool (__fastcall *isSignalSource)(BlockLegacy *this);
  bool (__fastcall *canBeOriginalSurface)(BlockLegacy *this);
  bool (__fastcall *isValidAuxValue)(BlockLegacy *this, int);
  void (__fastcall *setTargetLandBlocks)(BlockLegacy *this, const std::vector<std::string> *);
  bool (__fastcall *canFillAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  const Block *(__fastcall *sanitizeFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *onFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getDirectSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  bool (__fastcall *waterSpreadCausesSpawn)(BlockLegacy *this);
  bool (__fastcall *canContainLiquid)(BlockLegacy *this);
  bool (__fastcall *shouldConnectToRedstone)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  void (__fastcall *handleRain)(BlockLegacy *this, BlockSource *, const BlockPos *, float);
  bool (__fastcall *canBeUsedInCommands)(BlockLegacy *this, const BaseGameVersion *);
  float (__fastcall *getThickness)(BlockLegacy *this);
  float (__fastcall *getFlexibility)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *checkIsPathable)(BlockLegacy *this, Actor *, const BlockPos *, const BlockPos *);
  bool (__fastcall *shouldDispense)(BlockLegacy *this, BlockSource *, Container *);
  bool (__fastcall *dispense)(BlockLegacy *this, BlockSource *, Container *, int, const Vec3 *, unsigned __int8);
  void (__fastcall *transformOnFall)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *onRedstoneUpdate)(BlockLegacy *this, BlockSource *, const BlockPos *, int, bool);
  void (__fastcall *onMove)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *detachesOnPistonMove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *movedByPiston)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureNeighborBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *setupRedstoneComponent)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *specialUse)(BlockLegacy *this, Player *, const BlockPos *, ItemStack *);
  BlockProperty (__fastcall *getRedstoneProperty)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *updateEntityAfterFallOn)(BlockLegacy *this, IActorMovementProxy *);
  bool (__fastcall *isBounceBlock)(BlockLegacy *this);
  bool (__fastcall *ignoreEntitiesOnPistonMove)(BlockLegacy *this, const Block *);
  bool (__fastcall *onFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, FertilizerType);
  bool (__fastcall *mayConsumeFertilizer)(BlockLegacy *this, BlockSource *);
  bool (__fastcall *canBeFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *mayPick)(BlockLegacy *this, BlockSource *, const Block *, bool);
  bool (__fastcall *mayPick)(BlockLegacy *this);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, unsigned __int8);
  bool (__fastcall *mayPlaceOn)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *tryToPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const ActorBlockSyncMessage *);
  bool (__fastcall *breaksFallingBlocks)(BlockLegacy *this, const Block *);
  void (__fastcall *destroy)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, Actor *);
  bool (__fastcall *playerWillDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  bool (__fastcall *getIgnoresDestroyPermissions)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *neighborChanged)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *getSecondPart)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  int (__fastcall *getResourceCount)(BlockLegacy *this, Random *, const Block *, int, bool);
  ItemInstance *(__fastcall *getResourceItem)(BlockLegacy *this, ItemInstance *result, Random *, const Block *, int);
  ItemInstance *(__fastcall *asItemInstance)(BlockLegacy *this, ItemInstance *result, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *spawnResources)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  void (__fastcall *trySpawnResourcesOnExplosion)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  bool (__fastcall *spawnBurnResources)(BlockLegacy *this, BlockSource *, float, float, float);
  const Block *(__fastcall *getPlacementBlock)(BlockLegacy *this, Actor *, const BlockPos *, unsigned __int8, const Vec3 *, int);
  int (__fastcall *calcVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *isAttachedTo)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  bool (__fastcall *attack)(BlockLegacy *this, Player *, const BlockPos *);
  void (__fastcall *handleEntityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, Vec3 *);
  void (__fastcall *entityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  int (__fastcall *getExperienceDrop)(BlockLegacy *this, Random *);
  bool (__fastcall *canBeBuiltOver)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *triggerEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, int, int);
  void (__fastcall *executeEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *, Actor *);
  void (__fastcall *executeEvent)(BlockLegacy *this, const std::string *, RenderParams *);
  bool (__fastcall *executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  bool (__fastcall *executeTriggerChain)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  const MobSpawnerData *(__fastcall *getMobToSpawn)(BlockLegacy *this, const SpawnConditions *, BlockSource *);
  bool (__fastcall *shouldStopFalling)(BlockLegacy *this, Actor *);
  bool (__fastcall *pushesUpFallingBlocks)(BlockLegacy *this);
  float (__fastcall *calcGroundFriction)(BlockLegacy *this, Mob *, const BlockPos *);
  bool (__fastcall *canHaveExtraData)(BlockLegacy *this);
  bool (__fastcall *hasComparatorSignal)(BlockLegacy *this);
  int (__fastcall *getComparatorSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, unsigned __int8);
  bool (__fastcall *onDig)(BlockLegacy *this, const Block *, Actor *, ItemStack *, const BlockPos *);
  bool (__fastcall *canSlide)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *canSpawnAt)(BlockLegacy *this, const BlockSource *, const BlockPos *);
  void (__fastcall *notifySpawnedAt)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getIconYOffset)(BlockLegacy *this);
  std::string *(__fastcall *buildDescriptionId)(BlockLegacy *this, std::string *result, const Block *);
  bool (__fastcall *isAuxValueRelevantForPicking)(BlockLegacy *this);
  int (__fastcall *getColor)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getColor)(BlockLegacy *this, const Block *);
  int (__fastcall *getColorAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getColorForParticle)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *isSeasonTinted)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  void (__fastcall *onGraphicsModeChanged)(BlockLegacy *this, const BlockGraphicsModeChangeContext *);
  float (__fastcall *getShadeBrightness)(BlockLegacy *this, const Block *);
  const AABB *(__fastcall *getVisualShapeInWorld)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, AABB *, bool);
  const AABB *(__fastcall *getVisualShape)(BlockLegacy *this, const Block *, AABB *, bool);
  const AABB *(__fastcall *getUIShape)(BlockLegacy *this, const Block *, AABB *);
  int (__fastcall *telemetryVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getVariant)(BlockLegacy *this, const Block *);
  bool (__fastcall *canSpawnOn)(BlockLegacy *this);
  const Block *(__fastcall *getRenderBlock)(BlockLegacy *this);
  unsigned __int8 (__fastcall *getMappedFace)(BlockLegacy *this, unsigned __int8, const Block *);
  bool (__fastcall *renderTwoFaced)(BlockLegacy *this);
  Flip (__fastcall *getFaceFlip)(BlockLegacy *this, unsigned __int8, const Block *);
  void (__fastcall *animateTick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  BlockLegacy *(__fastcall *init)(BlockLegacy *this);
  BlockLegacy *(__fastcall *setLightBlock)(BlockLegacy *this, Brightness);
  BlockLegacy *(__fastcall *setLightEmission)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setExplodeable)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFlammable)(BlockLegacy *this, FlameOdds, BurnOdds);
  BlockLegacy *(__fastcall *setDestroyTime)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFriction)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *addProperty)(BlockLegacy *this, BlockProperty);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *, unsigned __int64);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *);
  BlockLegacy *(__fastcall *setAllowsRunes)(BlockLegacy *this, bool);
  BlockLegacy *(__fastcall *setMapColor)(BlockLegacy *this, const mce::Color *);
  bool (__fastcall *canBeSilkTouched)(BlockLegacy *this);
  ItemInstance *(__fastcall *getSilkTouchItemInstance)(BlockLegacy *this, ItemInstance *result, const Block *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const Vec3 *, const Vec3 *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const AABB *);
  const Block *(__fastcall *tryLegacyUpgrade)(BlockLegacy *this, unsigned __int16);
  bool (__fastcall *dealsContactDamage)(BlockLegacy *this, const Actor *, const Block *, bool);
  void (__fastcall *onRemove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onExploded)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  void (__fastcall *onStandOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOff)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onPlayerPlacing)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, unsigned __int8);
  void (__fastcall *onPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onFallOn)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *playerDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  void (__fastcall *tick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  bool (__fastcall *shouldRandomTick)(BlockLegacy *this);
  bool (__fastcall *isInteractiveBlock)(BlockLegacy *this);
  HitResult *(__fastcall *clip)(BlockLegacy *this, HitResult *result, BlockSource *, const BlockPos *, const Vec3 *, const Vec3 *, bool);
  bool (__fastcall *use)(BlockLegacy *this, Player *, const BlockPos *, unsigned __int8);
  bool (__fastcall *canSurvive)(BlockLegacy *this, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this);
  int (__fastcall *getExtraRenderLayers)(BlockLegacy *this);
  float (__fastcall *getExplosionResistance)(BlockLegacy *this, Actor *);
  Brightness *(__fastcall *getLightEmission)(BlockLegacy *this, Brightness *result, const Block *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result, BlockSource *, const BlockPos *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result);
  bool (__fastcall *isCropBlock)(BlockLegacy *this);
  void (__fastcall *_executeEvent)(BlockLegacy *this, const std::string *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  bool (__fastcall *_executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *_forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  mce::Color *(__fastcall *getDustColor)(HeavyBlock *this, mce::Color *result, const Block *);
  std::string *(__fastcall *getDustParticleName)(HeavyBlock *this, std::string *result, const Block *);
  bool (__fastcall *falling)(HeavyBlock *this);
  void (__fastcall *onLand)(HeavyBlock *this, BlockSource *, const BlockPos *);
  bool (__fastcall *isFreeToFall)(HeavyBlock *this, BlockSource *, const BlockPos *);
  void (__fastcall *startFalling)(HeavyBlock *this, BlockSource *, const BlockPos *, const Block *, bool);
};

# DriedKelpBlock

struct __cppobj DriedKelpBlock : BlockLegacy
{
};

# DriedKelpBlock_vtbl

struct /*VFT*/ DriedKelpBlock_vtbl
{
  void (__fastcall *~BlockLegacy)(BlockLegacy *this);
  const Block *(__fastcall *getStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  const Block *(__fastcall *getModBlockStateFromLegacyData)(BlockLegacy *this, unsigned __int16);
  std::shared_ptr<BlockActor> *(__fastcall *newBlockEntity)(BlockLegacy *this, std::shared_ptr<BlockActor> *result, const BlockPos *, const Block *);
  const Block *(__fastcall *getNextBlockPermutation)(BlockLegacy *this, const Block *);
  bool (__fastcall *hasTag)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *);
  bool (__fastcall *getCollisionShape)(BlockLegacy *this, AABB *, const Block *, BlockSource *, const BlockPos *, Actor *);
  bool (__fastcall *isObstructingChests)(BlockLegacy *this, BlockSource *, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *);
  Vec3 *(__fastcall *randomlyModifyPosition)(BlockLegacy *this, Vec3 *result, const BlockPos *, int *);
  void (__fastcall *addAABBs)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *);
  const AABB *(__fastcall *getAABB)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, AABB *, bool);
  bool (__fastcall *addCollisionShapes)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, const AABB *, std::vector<AABB> *, Actor *);
  const AABB *(__fastcall *getOutline)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  bool (__fastcall *getLiquidClipVolume)(BlockLegacy *this, BlockSource *, const BlockPos *, AABB *);
  void (__fastcall *onProjectileHit)(BlockLegacy *this, BlockSource *, const BlockPos *, const Actor *);
  bool (__fastcall *liquidCanFlowIntoFromDirection)(BlockLegacy *this, unsigned __int8, const std::function<Block const & __cdecl(BlockPos const &)> *, const BlockPos *);
  bool (__fastcall *hasVariableLighting)(BlockLegacy *this);
  bool (__fastcall *isStrippable)(BlockLegacy *this, const Block *);
  const Block *(__fastcall *getStrippedBlock)(BlockLegacy *this, const Block *);
  bool (__fastcall *canProvideSupport)(BlockLegacy *this, const Block *, unsigned __int8, BlockSupportType);
  bool (__fastcall *canConnect)(BlockLegacy *this, const Block *, unsigned __int8, const Block *);
  void (__fastcall *getConnectedDirections)(BlockLegacy *this, const Block *, const BlockPos *, BlockSource *, bool *, bool *, bool *, bool *);
  bool (__fastcall *isStemBlock)(BlockLegacy *this);
  bool (__fastcall *isContainerBlock)(BlockLegacy *this);
  bool (__fastcall *isCraftingBlock)(BlockLegacy *this);
  bool (__fastcall *isWaterBlocking)(BlockLegacy *this);
  bool (__fastcall *isHurtableBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isFenceGateBlock)(BlockLegacy *this);
  bool (__fastcall *isThinFenceBlock)(BlockLegacy *this);
  bool (__fastcall *isWallBlock)(BlockLegacy *this);
  bool (__fastcall *isStairBlock)(BlockLegacy *this);
  bool (__fastcall *isSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoubleSlabBlock)(BlockLegacy *this);
  bool (__fastcall *isDoorBlock)(BlockLegacy *this);
  bool (__fastcall *isRailBlock)(BlockLegacy *this);
  bool (__fastcall *isButtonBlock)(BlockLegacy *this);
  bool (__fastcall *canHurtAndBreakItem)(BlockLegacy *this);
  bool (__fastcall *isSignalSource)(BlockLegacy *this);
  bool (__fastcall *canBeOriginalSurface)(BlockLegacy *this);
  bool (__fastcall *isValidAuxValue)(BlockLegacy *this, int);
  void (__fastcall *setTargetLandBlocks)(BlockLegacy *this, const std::vector<std::string> *);
  bool (__fastcall *canFillAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  const Block *(__fastcall *sanitizeFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *onFillBlock)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getDirectSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  bool (__fastcall *waterSpreadCausesSpawn)(BlockLegacy *this);
  bool (__fastcall *canContainLiquid)(BlockLegacy *this);
  bool (__fastcall *shouldConnectToRedstone)(BlockLegacy *this, BlockSource *, const BlockPos *, int);
  void (__fastcall *handleRain)(BlockLegacy *this, BlockSource *, const BlockPos *, float);
  bool (__fastcall *canBeUsedInCommands)(BlockLegacy *this, const BaseGameVersion *);
  float (__fastcall *getThickness)(BlockLegacy *this);
  float (__fastcall *getFlexibility)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *checkIsPathable)(BlockLegacy *this, Actor *, const BlockPos *, const BlockPos *);
  bool (__fastcall *shouldDispense)(BlockLegacy *this, BlockSource *, Container *);
  bool (__fastcall *dispense)(BlockLegacy *this, BlockSource *, Container *, int, const Vec3 *, unsigned __int8);
  void (__fastcall *transformOnFall)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *onRedstoneUpdate)(BlockLegacy *this, BlockSource *, const BlockPos *, int, bool);
  void (__fastcall *onMove)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *detachesOnPistonMove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *movedByPiston)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onStructureNeighborBlockPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *setupRedstoneComponent)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *specialUse)(BlockLegacy *this, Player *, const BlockPos *, ItemStack *);
  BlockProperty (__fastcall *getRedstoneProperty)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *updateEntityAfterFallOn)(BlockLegacy *this, IActorMovementProxy *);
  bool (__fastcall *isBounceBlock)(BlockLegacy *this);
  bool (__fastcall *ignoreEntitiesOnPistonMove)(BlockLegacy *this, const Block *);
  bool (__fastcall *onFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, FertilizerType);
  bool (__fastcall *mayConsumeFertilizer)(BlockLegacy *this, BlockSource *);
  bool (__fastcall *canBeFertilized)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *mayPick)(BlockLegacy *this, BlockSource *, const Block *, bool);
  bool (__fastcall *mayPick)(BlockLegacy *this);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *mayPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, unsigned __int8);
  bool (__fastcall *mayPlaceOn)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *tryToPlace)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const ActorBlockSyncMessage *);
  bool (__fastcall *breaksFallingBlocks)(BlockLegacy *this, const Block *);
  void (__fastcall *destroy)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, Actor *);
  bool (__fastcall *playerWillDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  bool (__fastcall *getIgnoresDestroyPermissions)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *neighborChanged)(BlockLegacy *this, BlockSource *, const BlockPos *, const BlockPos *);
  bool (__fastcall *getSecondPart)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  int (__fastcall *getResourceCount)(BlockLegacy *this, Random *, const Block *, int, bool);
  ItemInstance *(__fastcall *getResourceItem)(BlockLegacy *this, ItemInstance *result, Random *, const Block *, int);
  ItemInstance *(__fastcall *asItemInstance)(BlockLegacy *this, ItemInstance *result, BlockSource *, const BlockPos *, const Block *);
  void (__fastcall *spawnResources)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  void (__fastcall *trySpawnResourcesOnExplosion)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, std::vector<Item const *> *, float, int, bool);
  bool (__fastcall *spawnBurnResources)(BlockLegacy *this, BlockSource *, float, float, float);
  const Block *(__fastcall *getPlacementBlock)(BlockLegacy *this, Actor *, const BlockPos *, unsigned __int8, const Vec3 *, int);
  int (__fastcall *calcVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *isAttachedTo)(BlockLegacy *this, BlockSource *, const BlockPos *, BlockPos *);
  bool (__fastcall *attack)(BlockLegacy *this, Player *, const BlockPos *);
  void (__fastcall *handleEntityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, Vec3 *);
  void (__fastcall *entityInside)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  int (__fastcall *getExperienceDrop)(BlockLegacy *this, Random *);
  bool (__fastcall *canBeBuiltOver)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *triggerEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, int, int);
  void (__fastcall *executeEvent)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, const std::string *, Actor *);
  void (__fastcall *executeEvent)(BlockLegacy *this, const std::string *, RenderParams *);
  bool (__fastcall *executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  bool (__fastcall *executeTriggerChain)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, RenderParams *);
  const MobSpawnerData *(__fastcall *getMobToSpawn)(BlockLegacy *this, const SpawnConditions *, BlockSource *);
  bool (__fastcall *shouldStopFalling)(BlockLegacy *this, Actor *);
  bool (__fastcall *pushesUpFallingBlocks)(BlockLegacy *this);
  float (__fastcall *calcGroundFriction)(BlockLegacy *this, Mob *, const BlockPos *);
  bool (__fastcall *canHaveExtraData)(BlockLegacy *this);
  bool (__fastcall *hasComparatorSignal)(BlockLegacy *this);
  int (__fastcall *getComparatorSignal)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *, unsigned __int8);
  bool (__fastcall *onDig)(BlockLegacy *this, const Block *, Actor *, ItemStack *, const BlockPos *);
  bool (__fastcall *canSlide)(BlockLegacy *this, BlockSource *, const BlockPos *);
  bool (__fastcall *canSpawnAt)(BlockLegacy *this, const BlockSource *, const BlockPos *);
  void (__fastcall *notifySpawnedAt)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getIconYOffset)(BlockLegacy *this);
  std::string *(__fastcall *buildDescriptionId)(BlockLegacy *this, std::string *result, const Block *);
  bool (__fastcall *isAuxValueRelevantForPicking)(BlockLegacy *this);
  int (__fastcall *getColor)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  int (__fastcall *getColor)(BlockLegacy *this, const Block *);
  int (__fastcall *getColorAtPos)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getColorForParticle)(BlockLegacy *this, BlockSource *, const BlockPos *, const Block *);
  bool (__fastcall *isSeasonTinted)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  void (__fastcall *onGraphicsModeChanged)(BlockLegacy *this, const BlockGraphicsModeChangeContext *);
  float (__fastcall *getShadeBrightness)(BlockLegacy *this, const Block *);
  const AABB *(__fastcall *getVisualShapeInWorld)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *, AABB *, bool);
  const AABB *(__fastcall *getVisualShape)(BlockLegacy *this, const Block *, AABB *, bool);
  const AABB *(__fastcall *getUIShape)(BlockLegacy *this, const Block *, AABB *);
  int (__fastcall *telemetryVariant)(BlockLegacy *this, BlockSource *, const BlockPos *);
  int (__fastcall *getVariant)(BlockLegacy *this, const Block *);
  bool (__fastcall *canSpawnOn)(BlockLegacy *this);
  const Block *(__fastcall *getRenderBlock)(BlockLegacy *this);
  unsigned __int8 (__fastcall *getMappedFace)(BlockLegacy *this, unsigned __int8, const Block *);
  bool (__fastcall *renderTwoFaced)(BlockLegacy *this);
  Flip (__fastcall *getFaceFlip)(BlockLegacy *this, unsigned __int8, const Block *);
  void (__fastcall *animateTick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  BlockLegacy *(__fastcall *init)(BlockLegacy *this);
  BlockLegacy *(__fastcall *setLightBlock)(BlockLegacy *this, Brightness);
  BlockLegacy *(__fastcall *setLightEmission)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setExplodeable)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFlammable)(BlockLegacy *this, FlameOdds, BurnOdds);
  BlockLegacy *(__fastcall *setDestroyTime)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *setFriction)(BlockLegacy *this, float);
  BlockLegacy *(__fastcall *addProperty)(BlockLegacy *this, BlockProperty);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *, unsigned __int64);
  BlockLegacy *(__fastcall *addState)(BlockLegacy *this, const ItemState *);
  BlockLegacy *(__fastcall *setAllowsRunes)(BlockLegacy *this, bool);
  BlockLegacy *(__fastcall *setMapColor)(BlockLegacy *this, const mce::Color *);
  bool (__fastcall *canBeSilkTouched)(BlockLegacy *this);
  ItemInstance *(__fastcall *getSilkTouchItemInstance)(BlockLegacy *this, ItemInstance *result, const Block *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const Vec3 *, const Vec3 *);
  void (__fastcall *setVisualShape)(BlockLegacy *this, const AABB *);
  const Block *(__fastcall *tryLegacyUpgrade)(BlockLegacy *this, unsigned __int16);
  bool (__fastcall *dealsContactDamage)(BlockLegacy *this, const Actor *, const Block *, bool);
  void (__fastcall *onRemove)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onExploded)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *);
  void (__fastcall *onStandOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOn)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onStepOff)(BlockLegacy *this, Actor *, const BlockPos *);
  void (__fastcall *onPlayerPlacing)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, unsigned __int8);
  void (__fastcall *onPlace)(BlockLegacy *this, BlockSource *, const BlockPos *);
  void (__fastcall *onFallOn)(BlockLegacy *this, BlockSource *, const BlockPos *, Actor *, float);
  void (__fastcall *playerDestroy)(BlockLegacy *this, Player *, const BlockPos *, const Block *);
  void (__fastcall *tick)(BlockLegacy *this, BlockSource *, const BlockPos *, Random *);
  bool (__fastcall *shouldRandomTick)(BlockLegacy *this);
  bool (__fastcall *isInteractiveBlock)(BlockLegacy *this);
  HitResult *(__fastcall *clip)(BlockLegacy *this, HitResult *result, BlockSource *, const BlockPos *, const Vec3 *, const Vec3 *, bool);
  bool (__fastcall *use)(BlockLegacy *this, Player *, const BlockPos *, unsigned __int8);
  bool (__fastcall *canSurvive)(BlockLegacy *this, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this, const Block *, BlockSource *, const BlockPos *);
  BlockRenderLayer (__fastcall *getRenderLayer)(BlockLegacy *this);
  int (__fastcall *getExtraRenderLayers)(BlockLegacy *this);
  float (__fastcall *getExplosionResistance)(BlockLegacy *this, Actor *);
  Brightness *(__fastcall *getLightEmission)(BlockLegacy *this, Brightness *result, const Block *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result, BlockSource *, const BlockPos *);
  mce::Color *(__fastcall *getMapColor)(BlockLegacy *this, mce::Color *result);
  bool (__fastcall *isCropBlock)(BlockLegacy *this);
  void (__fastcall *_executeEvent)(BlockLegacy *this, const std::string *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  bool (__fastcall *_executeTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
  void (__fastcall *_forceExecuteTrigger)(BlockLegacy *this, const DefinitionTrigger *, std::vector<std::pair<std::string const ,std::string const >> *, RenderParams *);
};

# Dimension::tryLoadLimboEntities::__l2::<lambda_957a6a9f8df991c2cd75a74c66548bb0>

struct __cppobj Dimension::tryLoadLimboEntities::__l2::<lambda_957a6a9f8df991c2cd75a74c66548bb0>
{
  Dimension *const __this;
  const ChunkPos *loadPos;
  ActorFactory *actorFactory;
  DefaultDataLoadHelper *dataLoadHelper;
};

# Dimension::sendPacketForEntity::__l2::<lambda_5347cf0c96c68c8f1c1d2cd5fcf0f654>

struct __cppobj Dimension::sendPacketForEntity::__l2::<lambda_5347cf0c96c68c8f1c1d2cd5fcf0f654>
{
  std::vector<NetworkIdentifierWithSubId> *ids;
  const Player **except;
  const Actor *entity;
  Dimension *const __this;
};

# Dimension::sendPacketForPosition::__l2::<lambda_5c32e6cbe81653b3e3fc0884fe7a6e00>

struct __cppobj Dimension::sendPacketForPosition::__l2::<lambda_5c32e6cbe81653b3e3fc0884fe7a6e00>
{
  Dimension *const __this;
  std::vector<NetworkIdentifierWithSubId> *ids;
  const Player **except;
  const BlockPos *position;
};

# Dimension::sendBroadcast::__l2::<lambda_4a04bb60d83343c5fc4a0580ed8cad38>

struct __cppobj Dimension::sendBroadcast::__l2::<lambda_4a04bb60d83343c5fc4a0580ed8cad38>
{
  Player **except;
  std::vector<NetworkIdentifierWithSubId> *ids;
};

# Dimension::onLevelDestruction::__l2::<lambda_931a35fe94392b4d9295e10589efda8e>

struct __cppobj Dimension::onLevelDestruction::__l2::<lambda_931a35fe94392b4d9295e10589efda8e>
{
};

# Dimension::tryGetClosestPublicRegion::__l2::<lambda_fc74881ffd5910f8a281febf198344f4>

struct __cppobj Dimension::tryGetClosestPublicRegion::__l2::<lambda_fc74881ffd5910f8a281febf198344f4>
{
  const ChunkPos *pos;
  BlockSource **foundSource;
};

# Dimension::distanceToNearestPlayerSqr2D::__l2::<lambda_39375131f5bbcd2095ae9756e0651d1b>

struct __cppobj Dimension::distanceToNearestPlayerSqr2D::__l2::<lambda_39375131f5bbcd2095ae9756e0651d1b>
{
  float *closestPlayer;
  Vec3 *origin;
};

# Dimension::fetchNearestAttackablePlayer::__l2::<lambda_7321a85d3f27d611db74167257847709>

struct __cppobj Dimension::fetchNearestAttackablePlayer::__l2::<lambda_7321a85d3f27d611db74167257847709>
{
  float *best;
  BlockPos *source;
  float *maxDist;
  Actor **sourceEntity;
  Player **result;
};

# Dimension::fetchNearestPlayer::__l2::<lambda_4b487e18adc39fbe8472d60003172668>

struct __cppobj Dimension::fetchNearestPlayer::__l2::<lambda_4b487e18adc39fbe8472d60003172668>
{
  float *maxDist;
  float *maxDistSqr;
  float *best;
  Player **result;
  Vec3 *pos;
  bool *findAnyNearPlayer;
};

# Dimension::processTickingAreaRemoves::__l2::<lambda_724cf37e188c9d9c1ecc1ccf07770601>

struct __cppobj Dimension::processTickingAreaRemoves::__l2::<lambda_724cf37e188c9d9c1ecc1ccf07770601>
{
  Dimension *const __this;
};

# Dimension::processTickingAreaRemoves::__l2::<lambda_0b40c6c56e3e86b934e6ef5594bd0af5>

struct __cppobj Dimension::processTickingAreaRemoves::__l2::<lambda_0b40c6c56e3e86b934e6ef5594bd0af5>
{
  std::vector<Vec3> *playerPositions;
};

# Dimension::tick::__l29::<lambda_ac349a165d3224bbbf904ca683e1527a>

struct __cppobj Dimension::tick::__l29::<lambda_ac349a165d3224bbbf904ca683e1527a>
{
  Json::Value *root;
};

# Dimension::tick::__l29::<lambda_c341610514d4db5768ffe5512544611a>

struct __cppobj Dimension::tick::__l29::<lambda_c341610514d4db5768ffe5512544611a>
{
  std::pair<std::string const ,EntityAOIInfo> *i;
  std::unordered_set<ActorUniqueID> *enteredEntities;
  std::unordered_set<ActorUniqueID> *leftEntities;
};

# Dimension::tryGarbageCollectStructures::__l8::<lambda_955c9274fedbba38053fa519564aad45>

struct __cppobj Dimension::tryGarbageCollectStructures::__l8::<lambda_955c9274fedbba38053fa519564aad45>
{
  WorldGenerator *generator;
  std::vector<ChunkPos> activeChunks;
};

# DistanceActorSorter

struct __cppobj DistanceActorSorter
{
  Vec3 c;
};

# DBStorage::_scheduleNextAutoCompaction::__l11::<lambda_a9bf4790d98a6f8751944fe9d1ad3293>

struct __cppobj DBStorage::_scheduleNextAutoCompaction::__l11::<lambda_a9bf4790d98a6f8751944fe9d1ad3293>
{
  DBStorage *const __this;
};

# DBStorage::flushToPermanentStorage::__l24::<lambda_27502401e673031e39c4dbb1d1031d4f>

struct __cppobj DBStorage::flushToPermanentStorage::__l24::<lambda_27502401e673031e39c4dbb1d1031d4f>
{
  DBStorage *const __this;
};

# DBStorage::flushToPermanentStorage::__l24::<lambda_2a07dc52328bfcdd63ff1a1cf36a5caf>

struct __cppobj DBStorage::flushToPermanentStorage::__l24::<lambda_2a07dc52328bfcdd63ff1a1cf36a5caf>
{
  DBStorage *const __this;
};

# DBStorage::{ctor}::__l2::<lambda_c6dbb92266e14d7aef6b0fa7a481069e>

struct __cppobj DBStorage::{ctor}::__l2::<lambda_c6dbb92266e14d7aef6b0fa7a481069e>
{
  DBStorage *const __this;
};

# DBStorage::{ctor}::__l14::<lambda_37dd41990f7fa328bba60860af145226>

struct __cppobj DBStorage::{ctor}::__l14::<lambda_37dd41990f7fa328bba60860af145226>
{
  DBStorage *const __this;
};

# DBChunkStorage::removeDimensionData::__l2::<lambda_4c2a8f246ce4260ae0dcb0f392dc6760>

struct __cppobj DBChunkStorage::removeDimensionData::__l2::<lambda_4c2a8f246ce4260ae0dcb0f392dc6760>
{
  const std::unordered_set<AutomaticID<Dimension,int>> *dimensionIds;
};

# DBChunkStorage::saveLiveChunk::__l13::<lambda_75180e3b4999301e3a39cdc727de41f0>

struct __cppobj DBChunkStorage::saveLiveChunk::__l13::<lambda_75180e3b4999301e3a39cdc727de41f0>
{
  DBChunkStorage *const __this;
  std::shared_ptr<LevelStorageWriteBatch> batch;
  ChunkPos id;
};

# DBChunkStorage::saveLiveChunk::__l13::<lambda_6dd2e0982947e9c0d5b2876227ec26e9>

struct __cppobj DBChunkStorage::saveLiveChunk::__l13::<lambda_6dd2e0982947e9c0d5b2876227ec26e9>
{
  std::shared_ptr<LevelStorageWriteBatch> batch;
  DBChunkStorage *const __this;
};

# DBChunkStorage::_writeBatch::__l2::<lambda_de90ad45c173d095d118f660dfc436d5>

struct __cppobj DBChunkStorage::_writeBatch::__l2::<lambda_de90ad45c173d095d118f660dfc436d5>
{
  DBChunkStorage *const __this;
  std::shared_ptr<std::vector<std::unique_ptr<LevelChunk,LevelChunkFinalDeleter>> > list;
};

# DBChunkStorage::_serializeChunk::__l50::<lambda_79b934b69e619e99a994ab95ede5b9bd>

struct __cppobj DBChunkStorage::_serializeChunk::__l50::<lambda_79b934b69e619e99a994ab95ede5b9bd>
{
  DBChunkStorage *const __this;
  DBChunkStorageKey lcKey;
};

# DBChunkStorage::_loadChunkFromDB::__l2::<lambda_e5fc82d40337e65216fc50d947aab069>

struct __cppobj DBChunkStorage::_loadChunkFromDB::__l2::<lambda_e5fc82d40337e65216fc50d947aab069>
{
  DBChunkStorage *const __this;
  bool *exists;
  LevelChunk *lc;
  std::unordered_map<LevelChunkHashMapKey,unsigned __int64> *deserializedHashMap;
};

# DeviceButtons

struct __cppobj DeviceButtons
{
};

# DownloadCallback

struct __cppobj DownloadCallback
{
  DownloadCallback_vtbl *__vftable /*VFT*/;
};

# DownloadCallback_vtbl

struct /*VFT*/ DownloadCallback_vtbl
{
  void (__fastcall *onSuccCallback)(DownloadCallback *this, tDownloadInfo *);
  void (__fastcall *onFailCallback)(DownloadCallback *this, tDownloadInfo *);
  void (__fastcall *onProgCallback)(DownloadCallback *this, tDownloadInfo *);
  void (__fastcall *~DownloadCallback)(DownloadCallback *this);
};

# Downloader::Error

const struct __cppobj Downloader::Error
{
  Downloader::ErrorCode code;
  int curlm_code;
  int curle_code;
  std::string message;
  std::string customId;
  std::string url;
};

# Downloader

struct __cppobj __declspec(align(8)) Downloader : std::enable_shared_from_this<Downloader>
{
  int _connectionTimeout;
  std::function<void __cdecl(std::string const &,Downloader::Error const &)> _onError;
  std::function<void __cdecl(double,double,std::string const &,std::string const &)> _onProgress;
  std::function<void __cdecl(std::string const &)> _onSuccess;
  std::function<void __cdecl(std::vector<std::string> const &,std::string,int)> _onBatchError;
  std::function<void __cdecl(std::vector<std::string> const &)> _onBatchSuccess;
  bool _supportResuming;
};

# Downloader::DownloadUnit

struct __cppobj Downloader::DownloadUnit
{
  std::string srcUrl;
  std::string storagePath;
  std::string customId;
  std::string tmpStoragePath;
  int size;
  std::string md5;
  std::string md5Check;
  bool isCompressed_;
  bool resumeDownload;
  int downloaded_size;
  int retry_time;
  int max_retry_time;
};

# detail::getRecipesByInput::__l7::<lambda_ad02f3291b5c4781efaba99a027fba61>

struct __cppobj detail::getRecipesByInput::__l7::<lambda_ad02f3291b5c4781efaba99a027fba61>
{
  std::vector<Recipe *> *recipeList;
};

# detail::getRecipesByResult::__l7::<lambda_ac68db9521f360fc1211687865086f67>

struct __cppobj detail::getRecipesByResult::__l7::<lambda_ac68db9521f360fc1211687865086f67>
{
  std::vector<Recipe *> *recipeList;
};

# DirectoryEntryComparer

struct __cppobj DirectoryEntryComparer
{
};

# DebugSettings

struct __cppobj DebugSettings
{
};

# DebugLoginController

struct __cppobj DebugLoginController : MinecraftScreenController
{
  std::shared_ptr<LoginScreenModel> mModel;
  std::string mDebugUserName;
  std::string mDebugPassword;
};

# DebugLoginController_vtbl

struct /*VFT*/ DebugLoginController_vtbl
{
  void (__fastcall *~IScreenController)(IScreenController *this);
  ui::DirtyFlag (__fastcall *tick)(IScreenController *this);
  ui::ViewRequest (__fastcall *handleEvent)(IScreenController *this, ScreenEvent *);
  std::optional<std::string > *(__fastcall *getRoute)(IScreenController *this, std::optional<std::string > *result);
  void (__fastcall *setScreenState)(IScreenController *this, const std::vector<std::pair<std::string,std::string >> *);
  void (__fastcall *onOpen)(ScreenController *this);
  void (__fastcall *onTerminate)(ScreenController *this);
  void (__fastcall *onInit)(ScreenController *this);
  void (__fastcall *onDelete)(ScreenController *this);
  bool (__fastcall *canExit)(ScreenController *this);
  ui::ViewRequest (__fastcall *tryExit)(ScreenController *this);
  bool (__fastcall *areControllerTabsEnabled)(ScreenController *this);
  void (__fastcall *onCreation)(ScreenController *this);
  void (__fastcall *logCreationTime)(ScreenController *this, const std::string *, long double, long double, unsigned __int8);
  void (__fastcall *onLeave)(ScreenController *this);
  void (__fastcall *leaveScreen)(ScreenController *this);
  ui::DirtyFlag (__fastcall *handleGameEventNotification)(ScreenController *this, ui::GameEventNotification);
  bool (__fastcall *bind)(ScreenController *this, const std::string *, unsigned int, const std::string *, UIPropertyBag *);
  bool (__fastcall *bind)(ScreenController *this, const std::string *, unsigned int, int, const std::string *, unsigned int, const std::string *, UIPropertyBag *);
  void (__fastcall *handleLicenseChanged)(ScreenController *this);
  void (__fastcall *onDictationEvent)(ScreenController *this, const std::string *);
  void (__fastcall *setAssociatedBlockPos)(ScreenController *this, const BlockPos *);
  void (__fastcall *setAssociatedEntityUniqueID)(ScreenController *this, const ActorUniqueID);
  void (__fastcall *setSuspendInput)(ScreenController *this, bool);
  float (__fastcall *getCallbackInterval)(ScreenController *this);
  void (__fastcall *onRender)(ScreenController *this);
  void (__fastcall *addStaticScreenVars)(ScreenController *this, Json::Value *);
  std::string *(__fastcall *getAdditionalScreenInfo)(ScreenController *this, std::string *result);
  std::string *(__fastcall *getTelemetryOverride)(ScreenController *this, std::string *result);
  void (__fastcall *addEventProperties)(ScreenController *this, std::unordered_map<std::string,std::string> *);
  ui::SceneType (__fastcall *getSceneType)(ScreenController *this);
  int (__fastcall *getScreenVersion)(ScreenController *this);
  bool (__fastcall *screenHandlesGamepadMenuButton)(ScreenController *this);
  ScreenControllerProxy *(__fastcall *getProxy)(ScreenController *this);
  void (__fastcall *onEntered)(ScreenController *this);
  unsigned int (__fastcall *getNameId)(ScreenController *this, const std::string *);
  bool (__fastcall *verifySceneStack)(ScreenController *this, SceneStack *);
  bool (__fastcall *_doesScreenHaveExitBehavior)(ScreenController *this);
  bool (__fastcall *_isStillValid)(MinecraftScreenController *this);
  bool (__fastcall *_getGamepadHelperVisible)(MinecraftScreenController *this);
  bool (__fastcall *_getMixedHelperVisible)(MinecraftScreenController *this);
  bool (__fastcall *_getKeyboardHelperVisible)(MinecraftScreenController *this);
  std::string *(__fastcall *_getButtonADescription)(MinecraftScreenController *this, std::string *result);
  std::string *(__fastcall *_getButtonBDescription)(MinecraftScreenController *this, std::string *result);
  std::string *(__fastcall *_getButtonXDescription)(MinecraftScreenController *this, std::string *result);
  std::string *(__fastcall *_getButtonYDescription)(MinecraftScreenController *this, std::string *result);
  std::string *(__fastcall *_getButtonKeyboardDescription)(MinecraftScreenController *this, std::string *result);
};

# downloadProgressFunc::__l8::<lambda_faf5f4f1c41e04eadd131e11ca6a1250>

struct __cppobj downloadProgressFunc::__l8::<lambda_faf5f4f1c41e04eadd131e11ca6a1250>
{
  Downloader::ProgressData data;
  long double totalToDownload;
  long double nowDownloaded;
};

# dump_snapshot::__l2::ComboTrace

struct __cppobj dump_snapshot::__l2::ComboTrace
{
  unsigned __int64 size;
  unsigned __int64 count;
};

# DiggerTypeMapping

struct __cppobj DiggerTypeMapping
{
};

# dragon::frameobject::ComputeDispatchContext

struct dragon::frameobject::ComputeDispatchContext
{
  dragon::mesh::VertexBufferResourceManager *vbManager;
  dragon::mesh::IndexBufferResourceManager *ibManager;
  dragon::rendering::CommandContext *commands;
  const dragon::frameobject::PreparedComputeDispatchCollection *dispatches;
  dragon::res::ResolvedTextureResource *const missingTexture;
};

# dragon::rendering::BgfxUniformHelpers

struct __cppobj dragon::rendering::BgfxUniformHelpers
{
};

# dragon::rendering::BgfxStateHelpers

struct __cppobj dragon::rendering::BgfxStateHelpers
{
};

# dragon::platform::helpers::VisitOverloaded<<lambda_ae2517dea6a52563ebf06e893bafaa1b>,<lambda_140c085b464193e54345a34ce7c4d135>,<lambda_3a4c268a3373c608c9cf19eea305b10f>,<lambda_ac6cad7418409f0d329dbf09122230ec>,<lambda_74985a6bbed240ab20d16ad2e43af3cb>,<lambda_1872cc4fd08d4a81875e786915d05a4b> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_ae2517dea6a52563ebf06e893bafaa1b>,<lambda_140c085b464193e54345a34ce7c4d135>,<lambda_3a4c268a3373c608c9cf19eea305b10f>,<lambda_ac6cad7418409f0d329dbf09122230ec>,<lambda_74985a6bbed240ab20d16ad2e43af3cb>,<lambda_1872cc4fd08d4a81875e786915d05a4b> > : _BYTE[], _BYTE[], _BYTE[], _BYTE[], _BYTE[], _BYTE[]
{
  _BYTE gap0[8];
  _BYTE gap10[8];
  _BYTE gap18[24];
  _BYTE gap30[8];
  _BYTE gap38[24];
};

# dragon::materials::definition::PropertiesBase<dragon::materials::definition::SamplerDefinition>

struct __cppobj dragon::materials::definition::PropertiesBase<dragon::materials::definition::SamplerDefinition>
{
  std::unordered_map<std::string,std::variant<dragon::materials::definition::PropertyField<dragon::materials::definition::ExternalUniformDeclaration,std::optional<dragon::materials::definition::ExternalUniformDeclaration> >,dragon::materials::definition::PropertyField<glm::tvec4<float,0>,std::optional<glm::tvec4<float,0> > >,dragon::materials::definition::PropertyField<float,std::optional<float> >,dragon::materials::definition::PropertyField<glm::tmat3x3<float,0>,std::optional<glm::tmat3x3<float,0> > >,dragon::materials::definition::PropertyField<glm::tmat4x4<float,0>,std::optional<glm::tmat4x4<float,0> > >,dragon::materials::definition::SamplerDefinition>> mValues;
};

# dragon::materials::definition::MaterialDefinitionProperties

struct __cppobj dragon::materials::definition::MaterialDefinitionProperties : dragon::materials::definition::PropertiesBase<dragon::materials::definition::SamplerDefinition>
{
};

# dragon::materials::definition::MaterialSharedSections

struct __cppobj dragon::materials::definition::MaterialSharedSections
{
  dragon::materials::definition::StageInputDefinition mInputDefinition;
  dragon::materials::definition::MaterialPassDeclaration mDeclarations;
  std::vector<dragon::materials::definition::SharedCodeSection> mCodeSections;
};

# dragon::materials::definition::MaterialDefinition

struct __cppobj dragon::materials::definition::MaterialDefinition
{
  std::string mName;
  std::optional<std::string > mParentName;
  dragon::materials::definition::MaterialDefinitionProperties mProperties;
  std::unordered_map<std::string,dragon::materials::definition::CustomTypeDeclaration> mCustomTypes;
  std::unordered_map<std::string,dragon::materials::definition::MaterialPass> mDefinedPasses;
  std::unordered_map<std::string,dragon::materials::definition::MaterialUsedPass> mUsedPasses;
  dragon::materials::definition::MaterialSharedSections mSharedSections;
};

# dragon::materials::MaterialResourceManager::_tryCreateMaterialAsync::__l19::<lambda_938045b63551f3018a978b16ad33ef93>

struct __cppobj dragon::materials::MaterialResourceManager::_tryCreateMaterialAsync::__l19::<lambda_938045b63551f3018a978b16ad33ef93>
{
  dragon::materials::MaterialResourceManager *const __this;
  unsigned __int64 locationHash;
  std::shared_ptr<dragon::materials::MaterialResourceManager::MaterialLoadResult> workResult;
};

# dragon::result::Result<void,enum dragon::res::TextureError>

struct dragon::result::Result<void,enum dragon::res::TextureError>
{
  std::variant<dragon::result::SuccessTag,enum dragon::res::TextureError> mValue;
};

# dragon::materials::details::materialentry::EntryCreator<glm::tvec4<float,0>,dragon::materials::MaterialUniform::UniformParameter>

struct __cppobj dragon::materials::details::materialentry::EntryCreator<glm::tvec4<float,0>,dragon::materials::MaterialUniform::UniformParameter>
{
};

# dragon::materials::details::materialentry::EntryCreator<glm::tmat3x3<float,0>,dragon::materials::MaterialUniform::UniformParameter>

struct __cppobj dragon::materials::details::materialentry::EntryCreator<glm::tmat3x3<float,0>,dragon::materials::MaterialUniform::UniformParameter>
{
};

# dragon::materials::details::materialentry::EntryCreator<glm::tmat4x4<float,0>,dragon::materials::MaterialUniform::UniformParameter>

struct __cppobj dragon::materials::details::materialentry::EntryCreator<glm::tmat4x4<float,0>,dragon::materials::MaterialUniform::UniformParameter>
{
};

# dragon::materials::details::materialentry::EntryCreator<int,dragon::materials::MaterialUniform::BufferParameter>

struct __cppobj dragon::materials::details::materialentry::EntryCreator<int,dragon::materials::MaterialUniform::BufferParameter>
{
};

# dragon::materials::MaterialUniformOverrides::getUniformData::__l6::<lambda_1decc1348a6b98aad40e18f0508027f9>

struct __cppobj dragon::materials::MaterialUniformOverrides::getUniformData::__l6::<lambda_1decc1348a6b98aad40e18f0508027f9>
{
};

# dragon::materials::MaterialUniformOverrides::getUniformData::__l6::<lambda_e6743f942619bee0f4263db114cda5a5>

struct __cppobj dragon::materials::MaterialUniformOverrides::getUniformData::__l6::<lambda_e6743f942619bee0f4263db114cda5a5>
{
};

# dragon::materials::MaterialUniformOverrides::getUniformData::__l6::<lambda_6332ce45d5b3dc3e663e0b768d288148>

struct __cppobj dragon::materials::MaterialUniformOverrides::getUniformData::__l6::<lambda_6332ce45d5b3dc3e663e0b768d288148>
{
};

# dragon::materials::MaterialUniformOverrides::getUniformData::__l6::<lambda_739851022b3115bfca82d865f26d3110>

struct __cppobj dragon::materials::MaterialUniformOverrides::getUniformData::__l6::<lambda_739851022b3115bfca82d865f26d3110>
{
};

# dragon::materials::MaterialUniformOverrides::getUniformData::__l6::<lambda_fc98ac70cf8b118a78728e20f63c3cb6>

struct __cppobj dragon::materials::MaterialUniformOverrides::getUniformData::__l6::<lambda_fc98ac70cf8b118a78728e20f63c3cb6>
{
};

# dragon::platform::helpers::VisitOverloaded<<lambda_1decc1348a6b98aad40e18f0508027f9>,<lambda_e6743f942619bee0f4263db114cda5a5>,<lambda_6332ce45d5b3dc3e663e0b768d288148>,<lambda_739851022b3115bfca82d865f26d3110>,<lambda_fc98ac70cf8b118a78728e20f63c3cb6> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_1decc1348a6b98aad40e18f0508027f9>,<lambda_e6743f942619bee0f4263db114cda5a5>,<lambda_6332ce45d5b3dc3e663e0b768d288148>,<lambda_739851022b3115bfca82d865f26d3110>,<lambda_fc98ac70cf8b118a78728e20f63c3cb6> > : dragon::materials::MaterialUniformOverrides::getUniformData::__l6::<lambda_1decc1348a6b98aad40e18f0508027f9>, dragon::materials::MaterialUniformOverrides::getUniformData::__l6::<lambda_e6743f942619bee0f4263db114cda5a5>, dragon::materials::MaterialUniformOverrides::getUniformData::__l6::<lambda_6332ce45d5b3dc3e663e0b768d288148>, dragon::materials::MaterialUniformOverrides::getUniformData::__l6::<lambda_739851022b3115bfca82d865f26d3110>, dragon::materials::MaterialUniformOverrides::getUniformData::__l6::<lambda_fc98ac70cf8b118a78728e20f63c3cb6>
{
  _BYTE gap0;
  _BYTE gap2;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_11c97bb4601acd4a010d09ba30890692>,<lambda_911e18ebfe7c3775069adcf0afb8ea72>,<lambda_3ac8d0be528e15713f44e7f572e92f92>,<lambda_47fbc99d5e8eafb657c1a159441f48b5>,<lambda_df8a3f9c158f9732a9c15954ec84b167> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_11c97bb4601acd4a010d09ba30890692>,<lambda_911e18ebfe7c3775069adcf0afb8ea72>,<lambda_3ac8d0be528e15713f44e7f572e92f92>,<lambda_47fbc99d5e8eafb657c1a159441f48b5>,<lambda_df8a3f9c158f9732a9c15954ec84b167> > : _BYTE[], _BYTE[], _BYTE[], _BYTE[], _BYTE[]
{
  _BYTE gap0;
  _BYTE gap2;
};

# dragon::memory::BgfxDataWrapper<dragon::memory::BufferSource::UseTracker>

struct __cppobj dragon::memory::BgfxDataWrapper<dragon::memory::BufferSource::UseTracker>
{
  const std::shared_ptr<dragon::memory::BufferSource::UseTracker> mData;
};

# dragon::memory::BgfxDataWrapper<std::vector<unsigned char> const >

struct __cppobj dragon::memory::BgfxDataWrapper<std::vector<unsigned char> const >
{
  const std::shared_ptr<std::vector<unsigned char> const > mData;
};

# dragon::mesh::details::IndexBufferHandleTypeKey

struct __cppobj dragon::mesh::details::IndexBufferHandleTypeKey
{
};

# dragon::mesh::IndexBufferType

struct __cppobj dragon::mesh::IndexBufferType
{
};

# dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::BufferResource::Accessor

struct __cppobj dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::BufferResource::Accessor
{
  dragon::rendering::BufferState *mState;
  bool *mWasEverCreated;
  bool *mWasEverUsed;
  std::variant<bgfx::IndexBufferHandle,bgfx::DynamicIndexBufferHandle> *mResource;
  dragon::mesh::IndexBufferType::ResourceDescription *mDescription;
  dragon::mesh::IndexBufferDescription *mPublicDescription;
  std::optional<dragon::mesh::IndexBufferType::ResourceCreationParameters> *mCreationParameters;
  std::vector<dragon::mesh::IndexBufferType::ResourceUpdateParameters> *mDeferredOrderedUpdateSequence;
  std::mutex *mAccessLock;
};

# dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::flush::__l5::DelayedDestroy

struct __cppobj dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::flush::__l5::DelayedDestroy
{
  std::function<void __cdecl(void)> mCallback;
};

# dragon::rendering::BufferResourceInstanceTraits<dragon::mesh::IndexBufferType>

struct __cppobj dragon::rendering::BufferResourceInstanceTraits<dragon::mesh::IndexBufferType>
{
};

# dragon::memory::BufferSource::resolve::__l2::<lambda_d3c53adb5163b2dc6cb38e1389232b1d>

struct __cppobj dragon::memory::BufferSource::resolve::__l2::<lambda_d3c53adb5163b2dc6cb38e1389232b1d>
{
};

# dragon::mesh::IndexBufferType::create::__l8::<lambda_e47c005c7d6b9976d725fa3856b3c219>

struct __cppobj dragon::mesh::IndexBufferType::create::__l8::<lambda_e47c005c7d6b9976d725fa3856b3c219>
{
  std::variant<bgfx::IndexBufferHandle,bgfx::DynamicIndexBufferHandle> *result;
  unsigned __int16 *flags;
};

# dragon::memory::BufferSource::resolve::__l2::<lambda_fbf8f11091c1cfcec0d531bce112a61e>

struct __cppobj dragon::memory::BufferSource::resolve::__l2::<lambda_fbf8f11091c1cfcec0d531bce112a61e>
{
};

# dragon::mesh::IndexBufferType::create::__l12::<lambda_b7dfe6184cc14514f6c43d7b49641c2d>

struct __cppobj dragon::mesh::IndexBufferType::create::__l12::<lambda_b7dfe6184cc14514f6c43d7b49641c2d>
{
  std::variant<bgfx::IndexBufferHandle,bgfx::DynamicIndexBufferHandle> *result;
  unsigned __int16 *flags;
};

# dragon::memory::BufferSource::resolve::__l2::<lambda_ed99f4815b8499836d50f291d0152fa5>

struct __cppobj dragon::memory::BufferSource::resolve::__l2::<lambda_ed99f4815b8499836d50f291d0152fa5>
{
};

# dragon::mesh::IndexBufferType::update::__l2::<lambda_08cf54ea2da37cd267dd894e7acde7af>::()::__l2::<lambda_a8d6c4b5e0e75fa7cec1c0297591184b>

struct __cppobj dragon::mesh::IndexBufferType::update::__l2::<lambda_08cf54ea2da37cd267dd894e7acde7af>::()::__l2::<lambda_a8d6c4b5e0e75fa7cec1c0297591184b>
{
  bgfx::DynamicIndexBufferHandle *buffer;
  const dragon::mesh::IndexBufferType::ResourceUpdateParameters *updateParameters;
};

# dragon::memory::BufferSource::resolve::__l2::<lambda_6cd7bdef28880426738d8ed9093e0c44>

struct __cppobj dragon::memory::BufferSource::resolve::__l2::<lambda_6cd7bdef28880426738d8ed9093e0c44>
{
  dragon::mesh::IndexBufferType::update::__l2::<lambda_08cf54ea2da37cd267dd894e7acde7af>::()::__l2::<lambda_a8d6c4b5e0e75fa7cec1c0297591184b> *callback;
};

# dragon::memory::BufferSource::resolve::__l2::<lambda_972838756510f9ca3676f4a62d582a6c>

struct __cppobj dragon::memory::BufferSource::resolve::__l2::<lambda_972838756510f9ca3676f4a62d582a6c>
{
  dragon::mesh::IndexBufferType::update::__l2::<lambda_08cf54ea2da37cd267dd894e7acde7af>::()::__l2::<lambda_a8d6c4b5e0e75fa7cec1c0297591184b> *callback;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_ed99f4815b8499836d50f291d0152fa5>,<lambda_6cd7bdef28880426738d8ed9093e0c44>,<lambda_972838756510f9ca3676f4a62d582a6c> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_ed99f4815b8499836d50f291d0152fa5>,<lambda_6cd7bdef28880426738d8ed9093e0c44>,<lambda_972838756510f9ca3676f4a62d582a6c> > : dragon::memory::BufferSource::resolve::__l2::<lambda_ed99f4815b8499836d50f291d0152fa5>, dragon::memory::BufferSource::resolve::__l2::<lambda_6cd7bdef28880426738d8ed9093e0c44>, dragon::memory::BufferSource::resolve::__l2::<lambda_972838756510f9ca3676f4a62d582a6c>
{
};

# dragon::mesh::IndexBufferType::isValid::__l2::<lambda_53e79ad09a321e11a3bed5dcb43e872f>

struct __cppobj dragon::mesh::IndexBufferType::isValid::__l2::<lambda_53e79ad09a321e11a3bed5dcb43e872f>
{
};

# dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::tryResolve::__l22::<lambda_1123d9f2a4657fcfeb32d1fe7719e711>

struct __cppobj dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::tryResolve::__l22::<lambda_1123d9f2a4657fcfeb32d1fe7719e711>
{
  dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType> *const __this;
  std::shared_ptr<dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::BufferResource> target;
};

# dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::update::__l33::<lambda_1db1a9c3e0d949d969f73bd75669861f>

struct __cppobj dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::update::__l33::<lambda_1db1a9c3e0d949d969f73bd75669861f>
{
  std::shared_ptr<dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::BufferResource> target;
  std::shared_ptr<dragon::mesh::IndexBufferType::ResourceUpdateParameters> updateArgs;
};

# dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::create::__l5::<lambda_fc7ebdbc801e9355ab1fe34a00d731ef>

struct __cppobj dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::create::__l5::<lambda_fc7ebdbc801e9355ab1fe34a00d731ef>
{
  dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType> *const __this;
  std::shared_ptr<dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::BufferResource> target;
};

# dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::create::__l5::<lambda_7a92b802fd333bc51acc068c70f5a25e>

struct __cppobj dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::create::__l5::<lambda_7a92b802fd333bc51acc068c70f5a25e>
{
  dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType> *const __this;
  std::shared_ptr<dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::BufferResource> target;
};

# dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::create::__l5::<lambda_52d819c29a468da680fb9348225b85c3>

struct __cppobj dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::create::__l5::<lambda_52d819c29a468da680fb9348225b85c3>
{
  dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType> *const __this;
  std::shared_ptr<dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::BufferResource> target;
};

# dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::flush::__l5::<lambda_54c1c396051d4b003046b116655049a1>

struct __cppobj dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType>::flush::__l5::<lambda_54c1c396051d4b003046b116655049a1>
{
  dragon::rendering::BufferResourceManager<dragon::mesh::IndexBufferType> *const __this;
  std::shared_ptr<std::vector<std::optional<dragon::rendering::details::BufferHandleTypeWrapper<dragon::mesh::details::IndexBufferHandleTypeKey,unsigned __int64> >> > buffersToDelete;
};

# dragon::guarded::GuardedAccess<dragon::memory::PartitionedAllocator<dragon::mesh::IndexBufferAllocator,unsigned int>,std::mutex,std::unique_lock>

struct __cppobj dragon::guarded::GuardedAccess<dragon::memory::PartitionedAllocator<dragon::mesh::IndexBufferAllocator,unsigned int>,std::mutex,std::unique_lock>
{
  dragon::memory::PartitionedAllocator<dragon::mesh::IndexBufferAllocator,unsigned int> *mAccess;
  std::unique_lock<std::mutex> mGuard;
};

# dragon::guarded::GuardedAccess<dragon::memory::PartitionedAllocator<dragon::mesh::VertexBufferAllocator,unsigned int>,std::mutex,std::unique_lock>

struct __cppobj dragon::guarded::GuardedAccess<dragon::memory::PartitionedAllocator<dragon::mesh::VertexBufferAllocator,unsigned int>,std::mutex,std::unique_lock>
{
  dragon::memory::PartitionedAllocator<dragon::mesh::VertexBufferAllocator,unsigned int> *mAccess;
  std::unique_lock<std::mutex> mGuard;
};

# dragon::mesh::details::VertexBufferHandleTypeKey

struct __cppobj dragon::mesh::details::VertexBufferHandleTypeKey
{
};

# dragon::mesh::VertexBufferType

struct __cppobj dragon::mesh::VertexBufferType
{
};

# dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType>::BufferResource::Accessor

struct __cppobj dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType>::BufferResource::Accessor
{
  dragon::rendering::BufferState *mState;
  bool *mWasEverCreated;
  bool *mWasEverUsed;
  std::variant<bgfx::VertexBufferHandle,bgfx::DynamicVertexBufferHandle> *mResource;
  dragon::mesh::VertexBufferType::ResourceDescription *mDescription;
  dragon::mesh::VertexBufferDescription *mPublicDescription;
  std::optional<dragon::mesh::VertexBufferType::ResourceCreationParameters> *mCreationParameters;
  std::vector<std::variant<dragon::mesh::VertexBufferType::ItemResourceUpdateParameters,dragon::mesh::A0xd4a888ee::VertexBufferType::OffsetResourceUpdateParameters>> *mDeferredOrderedUpdateSequence;
  std::mutex *mAccessLock;
};

# dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType>::flush::__l5::DelayedDestroy

struct __cppobj dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType>::flush::__l5::DelayedDestroy
{
  std::function<void __cdecl(void)> mCallback;
};

# dragon::rendering::BufferResourceInstanceTraits<dragon::mesh::VertexBufferType>

struct __cppobj dragon::rendering::BufferResourceInstanceTraits<dragon::mesh::VertexBufferType>
{
};

# dragon::memory::BufferSource::resolve::__l2::<lambda_838ec8792ec8f28cdf0b6e20dc2dccfb>

struct __cppobj dragon::memory::BufferSource::resolve::__l2::<lambda_838ec8792ec8f28cdf0b6e20dc2dccfb>
{
};

# dragon::mesh::VertexBufferType::create::__l8::<lambda_98fb0b014d7bc1522a65b9d9e52e128c>

struct __cppobj dragon::mesh::VertexBufferType::create::__l8::<lambda_98fb0b014d7bc1522a65b9d9e52e128c>
{
  std::variant<bgfx::VertexBufferHandle,bgfx::DynamicVertexBufferHandle> *result;
  const dragon::mesh::VertexBufferType::ResourceCreationParameters *creationParameters;
};

# dragon::memory::BufferSource::resolve::__l2::<lambda_97d926c5e853868c401c51db34c77980>

struct __cppobj dragon::memory::BufferSource::resolve::__l2::<lambda_97d926c5e853868c401c51db34c77980>
{
};

# dragon::mesh::VertexBufferType::create::__l12::<lambda_fc397e945a4de1d8f2f7561c51f6c5f5>

struct __cppobj dragon::mesh::VertexBufferType::create::__l12::<lambda_fc397e945a4de1d8f2f7561c51f6c5f5>
{
  std::variant<bgfx::VertexBufferHandle,bgfx::DynamicVertexBufferHandle> *result;
  const dragon::mesh::VertexBufferType::ResourceCreationParameters *creationParameters;
};

# dragon::memory::BufferSource::resolve::__l2::<lambda_8edc536ac967a6cc8403b61411f5980b>

struct __cppobj dragon::memory::BufferSource::resolve::__l2::<lambda_8edc536ac967a6cc8403b61411f5980b>
{
};

# dragon::mesh::VertexBufferType::update::__l2::<lambda_40fff7d480dea1c0478fd3f43504e31a>::()::__l2::<lambda_959750e4c9ef93d18ac58f647170ba0c>::()::__l2::<lambda_68816c14b011578f28feb10e9febd74e>

struct __cppobj dragon::mesh::VertexBufferType::update::__l2::<lambda_40fff7d480dea1c0478fd3f43504e31a>::()::__l2::<lambda_959750e4c9ef93d18ac58f647170ba0c>::()::__l2::<lambda_68816c14b011578f28feb10e9febd74e>
{
  bgfx::DynamicVertexBufferHandle *buffer;
  const dragon::mesh::VertexBufferType::ItemResourceUpdateParameters *update;
};

# dragon::memory::BufferSource::resolve::__l2::<lambda_b0d0607edd0eba6840a5b24f1333a20c>

struct __cppobj dragon::memory::BufferSource::resolve::__l2::<lambda_b0d0607edd0eba6840a5b24f1333a20c>
{
  dragon::mesh::VertexBufferType::update::__l2::<lambda_40fff7d480dea1c0478fd3f43504e31a>::()::__l2::<lambda_959750e4c9ef93d18ac58f647170ba0c>::()::__l2::<lambda_68816c14b011578f28feb10e9febd74e> *callback;
};

# dragon::memory::BufferSource::resolve::__l2::<lambda_55f5e5e8431511eed148866350b4018e>

struct __cppobj dragon::memory::BufferSource::resolve::__l2::<lambda_55f5e5e8431511eed148866350b4018e>
{
  dragon::mesh::VertexBufferType::update::__l2::<lambda_40fff7d480dea1c0478fd3f43504e31a>::()::__l2::<lambda_959750e4c9ef93d18ac58f647170ba0c>::()::__l2::<lambda_68816c14b011578f28feb10e9febd74e> *callback;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_8edc536ac967a6cc8403b61411f5980b>,<lambda_b0d0607edd0eba6840a5b24f1333a20c>,<lambda_55f5e5e8431511eed148866350b4018e> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_8edc536ac967a6cc8403b61411f5980b>,<lambda_b0d0607edd0eba6840a5b24f1333a20c>,<lambda_55f5e5e8431511eed148866350b4018e> > : dragon::memory::BufferSource::resolve::__l2::<lambda_8edc536ac967a6cc8403b61411f5980b>, dragon::memory::BufferSource::resolve::__l2::<lambda_b0d0607edd0eba6840a5b24f1333a20c>, dragon::memory::BufferSource::resolve::__l2::<lambda_55f5e5e8431511eed148866350b4018e>
{
};

# dragon::memory::BufferSource::resolve::__l2::<lambda_d476a4c0fe46b80781ed2c0b6efc5311>

struct __cppobj dragon::memory::BufferSource::resolve::__l2::<lambda_d476a4c0fe46b80781ed2c0b6efc5311>
{
};

# dragon::mesh::VertexBufferType::update::__l2::<lambda_40fff7d480dea1c0478fd3f43504e31a>::()::__l2::<lambda_056c755a608f3fa91ffb88d1fe572769>::()::__l2::<lambda_d00d24b5edc695afa9087d59daa5c1f7>

struct __cppobj dragon::mesh::VertexBufferType::update::__l2::<lambda_40fff7d480dea1c0478fd3f43504e31a>::()::__l2::<lambda_056c755a608f3fa91ffb88d1fe572769>::()::__l2::<lambda_d00d24b5edc695afa9087d59daa5c1f7>
{
  bgfx::DynamicVertexBufferHandle *buffer;
  const dragon::mesh::VertexBufferType::OffsetResourceUpdateParameters *update;
};

# dragon::memory::BufferSource::resolve::__l2::<lambda_b894f1bdc6442f43f52be69056a0f4b3>

struct __cppobj dragon::memory::BufferSource::resolve::__l2::<lambda_b894f1bdc6442f43f52be69056a0f4b3>
{
  dragon::mesh::VertexBufferType::update::__l2::<lambda_40fff7d480dea1c0478fd3f43504e31a>::()::__l2::<lambda_056c755a608f3fa91ffb88d1fe572769>::()::__l2::<lambda_d00d24b5edc695afa9087d59daa5c1f7> *callback;
};

# dragon::memory::BufferSource::resolve::__l2::<lambda_5fd1f2ea8d475504cc97b500a9582418>

struct __cppobj dragon::memory::BufferSource::resolve::__l2::<lambda_5fd1f2ea8d475504cc97b500a9582418>
{
  dragon::mesh::VertexBufferType::update::__l2::<lambda_40fff7d480dea1c0478fd3f43504e31a>::()::__l2::<lambda_056c755a608f3fa91ffb88d1fe572769>::()::__l2::<lambda_d00d24b5edc695afa9087d59daa5c1f7> *callback;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_d476a4c0fe46b80781ed2c0b6efc5311>,<lambda_b894f1bdc6442f43f52be69056a0f4b3>,<lambda_5fd1f2ea8d475504cc97b500a9582418> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_d476a4c0fe46b80781ed2c0b6efc5311>,<lambda_b894f1bdc6442f43f52be69056a0f4b3>,<lambda_5fd1f2ea8d475504cc97b500a9582418> > : dragon::memory::BufferSource::resolve::__l2::<lambda_d476a4c0fe46b80781ed2c0b6efc5311>, dragon::memory::BufferSource::resolve::__l2::<lambda_b894f1bdc6442f43f52be69056a0f4b3>, dragon::memory::BufferSource::resolve::__l2::<lambda_5fd1f2ea8d475504cc97b500a9582418>
{
};

# dragon::mesh::VertexBufferType::isValid::__l2::<lambda_f39eaa608e24edf60fb4ca9839ef1e2d>

struct __cppobj dragon::mesh::VertexBufferType::isValid::__l2::<lambda_f39eaa608e24edf60fb4ca9839ef1e2d>
{
};

# dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType>::tryResolve::__l22::<lambda_ea07797ae0991078f478eb958b35d8c5>

struct __cppobj dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType>::tryResolve::__l22::<lambda_ea07797ae0991078f478eb958b35d8c5>
{
  dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType> *const __this;
  std::shared_ptr<dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType>::BufferResource> target;
};

# dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType>::update::__l33::<lambda_14c51d3e5b277b8455f80d1082e4327f>

struct __cppobj dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType>::update::__l33::<lambda_14c51d3e5b277b8455f80d1082e4327f>
{
  std::shared_ptr<dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType>::BufferResource> target;
  std::shared_ptr<std::variant<dragon::mesh::VertexBufferType::ItemResourceUpdateParameters,dragon::mesh::A0xd4a888ee::VertexBufferType::OffsetResourceUpdateParameters> > updateArgs;
};

# dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType>::create::__l5::<lambda_dabbf7cedc89c32f11d3266758e58541>

struct __cppobj dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType>::create::__l5::<lambda_dabbf7cedc89c32f11d3266758e58541>
{
  dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType> *const __this;
  std::shared_ptr<dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType>::BufferResource> target;
};

# dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType>::create::__l5::<lambda_45457dacd318d8119fadd3fcbfeee320>

struct __cppobj dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType>::create::__l5::<lambda_45457dacd318d8119fadd3fcbfeee320>
{
  dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType> *const __this;
  std::shared_ptr<dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType>::BufferResource> target;
};

# dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType>::flush::__l5::<lambda_75e7f7263c8b82f0f3103054786d37f9>

struct __cppobj dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType>::flush::__l5::<lambda_75e7f7263c8b82f0f3103054786d37f9>
{
  dragon::rendering::BufferResourceManager<dragon::mesh::VertexBufferType> *const __this;
  std::shared_ptr<std::vector<std::optional<dragon::rendering::details::BufferHandleTypeWrapper<dragon::mesh::details::VertexBufferHandleTypeKey,unsigned __int64> >> > buffersToDelete;
};

# dragon::guarded::GuardedAccess<std::unordered_map<unsigned int,dragon::mesh::VertexDeclManager::Impl::DeclLayout>,std::shared_mutex,std::unique_lock>

struct __cppobj dragon::guarded::GuardedAccess<std::unordered_map<unsigned int,dragon::mesh::VertexDeclManager::Impl::DeclLayout>,std::shared_mutex,std::unique_lock>
{
  std::unordered_map<unsigned int,dragon::mesh::VertexDeclManager::Impl::DeclLayout> *mAccess;
  std::unique_lock<std::shared_mutex> mGuard;
};

# dragon::guarded::GuardedAccess<std::unordered_map<unsigned short,dragon::mesh::VertexDeclManager::Impl::DeclLayout const *>,std::shared_mutex,std::unique_lock>

struct __cppobj dragon::guarded::GuardedAccess<std::unordered_map<unsigned short,dragon::mesh::VertexDeclManager::Impl::DeclLayout const *>,std::shared_mutex,std::unique_lock>
{
  std::unordered_map<unsigned short,dragon::mesh::VertexDeclManager::Impl::DeclLayout const *> *mAccess;
  std::unique_lock<std::shared_mutex> mGuard;
};

# dragon::AssociativeTraits<dragon::guarded::GuardedAccess<std::unordered_map<unsigned short,dragon::mesh::VertexDeclManager::Impl::DeclLayout const *>,std::shared_mutex,std::shared_lock> >

struct __cppobj dragon::AssociativeTraits<dragon::guarded::GuardedAccess<std::unordered_map<unsigned short,dragon::mesh::VertexDeclManager::Impl::DeclLayout const *>,std::shared_mutex,std::shared_lock> >
{
};

# dragon::guarded::GuardedAccess<std::unordered_map<unsigned short,dragon::mesh::VertexDeclManager::Impl::DeclLayout const *>,std::shared_mutex,std::shared_lock>

struct __cppobj dragon::guarded::GuardedAccess<std::unordered_map<unsigned short,dragon::mesh::VertexDeclManager::Impl::DeclLayout const *>,std::shared_mutex,std::shared_lock>
{
  const std::unordered_map<unsigned short,dragon::mesh::VertexDeclManager::Impl::DeclLayout const *> *mAccess;
  std::shared_lock<std::shared_mutex> mGuard;
};

# dragon::AssociativeTraits<dragon::guarded::GuardedAccess<std::unordered_map<unsigned int,dragon::mesh::VertexDeclManager::Impl::DeclLayout>,std::shared_mutex,std::shared_lock> >

struct __cppobj dragon::AssociativeTraits<dragon::guarded::GuardedAccess<std::unordered_map<unsigned int,dragon::mesh::VertexDeclManager::Impl::DeclLayout>,std::shared_mutex,std::shared_lock> >
{
};

# dragon::guarded::GuardedAccess<std::unordered_map<unsigned int,dragon::mesh::VertexDeclManager::Impl::DeclLayout>,std::shared_mutex,std::shared_lock>

struct __cppobj dragon::guarded::GuardedAccess<std::unordered_map<unsigned int,dragon::mesh::VertexDeclManager::Impl::DeclLayout>,std::shared_mutex,std::shared_lock>
{
  const std::unordered_map<unsigned int,dragon::mesh::VertexDeclManager::Impl::DeclLayout> *mAccess;
  std::shared_lock<std::shared_mutex> mGuard;
};

# dragon::AssociativeTraits<dragon::guarded::GuardedAccess<std::unordered_map<unsigned int,dragon::mesh::VertexDeclManager::Impl::DeclLayout>,std::shared_mutex,std::unique_lock> >

struct __cppobj dragon::AssociativeTraits<dragon::guarded::GuardedAccess<std::unordered_map<unsigned int,dragon::mesh::VertexDeclManager::Impl::DeclLayout>,std::shared_mutex,std::unique_lock> >
{
};

# dragon::platform::BgfxCallbacks

struct __cppobj dragon::platform::BgfxCallbacks : bgfx::CallbackI
{
  Bedrock::Threading::InstancedThreadLocal<std::vector<Core::Profile::CPUProfileTokenMicroProfile>,std::allocator<std::vector<Core::Profile::CPUProfileTokenMicroProfile> > > mProfileTokenStack;
  dragon::rendering::GraphicsTasks *mGraphicsTasks;
  dragon::platform::BgfxContext *mContext;
};

# dragon::framegraph::detail::LinkedPass<dragon::rendering::RenderContext>

struct __cppobj dragon::framegraph::detail::LinkedPass<dragon::rendering::RenderContext>
{
  std::unique_ptr<dragon::framegraph::detail::AbstractPass<dragon::rendering::RenderContext>> pass;
  dragon::framegraph::detail::ResolveContext<dragon::rendering::RenderContext> linkContext;
};

# dragon::framegraph::DispatcherFrameContext

struct dragon::framegraph::DispatcherFrameContext
{
  Core::CpuRingBufferAllocator<unsigned char,2,0,Core::CheckedRingBuffer<2,0> > *mAllocator;
  cg::TaskDispatcher<cg::TaskScheduler<cg::LambdaExecutor<dragon::rendering::RenderContext,cg::TaskPoolGroupExecutionPolicy<dragon::rendering::RenderContext,1>,std::string const &,std::vector<cg::GroupPoolDescription> const &> > > *mDispatcher;
  dragon::rendering::BgfxEncoderPool *mEncoderPool;
  dragon::platform::ResourcesManager *mResourcesManager;
  dragon::res::ResolvedTextureResource *const mMissingTexture;
};

# dragon::platform::BgfxContext::updateVSync::__l8::<lambda_764a87c0eaf3482de06bcaf39f3678bd>

struct __cppobj dragon::platform::BgfxContext::updateVSync::__l8::<lambda_764a87c0eaf3482de06bcaf39f3678bd>
{
  dragon::platform::BgfxContext *const __this;
};

# dragon::platform::BgfxContext::updateMsaaLevel::__l5::<lambda_a8eeabbf44df1b129e628a89dd84c9f0>

struct __cppobj dragon::platform::BgfxContext::updateMsaaLevel::__l5::<lambda_a8eeabbf44df1b129e628a89dd84c9f0>
{
  dragon::platform::BgfxContext *const __this;
};

# dragon::platform::BgfxContext::updateResolution::__l2::<lambda_0f0591cc5a384e8319c0edb33e15d2a8>

struct __cppobj dragon::platform::BgfxContext::updateResolution::__l2::<lambda_0f0591cc5a384e8319c0edb33e15d2a8>
{
  dragon::platform::BgfxContext *const __this;
  const unsigned int width;
  const unsigned int height;
};

# dragon::framegraph::Linker<dragon::rendering::RenderContext,dragon::framegraph::NoLinkerTrace>::()::__l2::DescComparator

struct __cppobj dragon::framegraph::Linker<dragon::rendering::RenderContext,dragon::framegraph::NoLinkerTrace>::()::__l2::DescComparator
{
};

# dragon::platform::BgfxCallbacks::parallelForeach::__l2::<lambda_c5b29f0045c211cdae0854f24c11943a>

struct __cppobj dragon::platform::BgfxCallbacks::parallelForeach::__l2::<lambda_c5b29f0045c211cdae0854f24c11943a>
{
  void (__fastcall **_workCallback)(void *, const unsigned int);
  void **_context;
};

# dragon::rendering::GraphicsTasks::forCounter::__l10::<lambda_6742c2668b399ab4e6e158503fd0428d>

struct __cppobj dragon::rendering::GraphicsTasks::forCounter::__l10::<lambda_6742c2668b399ab4e6e158503fd0428d>
{
  dragon::platform::BgfxCallbacks::parallelForeach::__l2::<lambda_c5b29f0045c211cdae0854f24c11943a> *callback;
};

# dragon::rendering::GraphicsTasks::forCounter::__l8::<lambda_9e8a04d8d15f668592b8fe526de94bee>

struct __cppobj dragon::rendering::GraphicsTasks::forCounter::__l8::<lambda_9e8a04d8d15f668592b8fe526de94bee>
{
  const std::function<void __cdecl(unsigned int)> *resolve;
};

# dragon::rendering::GraphicsTasks::forCounter::__l8::<lambda_09a05b1c483888446fb68d850ffc7086>

struct __cppobj dragon::rendering::GraphicsTasks::forCounter::__l8::<lambda_09a05b1c483888446fb68d850ffc7086>
{
  dragon::platform::BgfxCallbacks::parallelForeach::__l2::<lambda_c5b29f0045c211cdae0854f24c11943a> *callback;
};

# dragon::platform::_createQuad::__l2::<lambda_7a30cfcb04208d5fc2a27b20b2e1bc05>

struct __cppobj dragon::platform::_createQuad::__l2::<lambda_7a30cfcb04208d5fc2a27b20b2e1bc05>
{
};

# dragon::platform::ShaderProgram

struct __cppobj dragon::platform::ShaderProgram
{
  dragon::platform::ShaderProgram::ShaderType mShaderType;
  bgfx::ProgramHandle mShaderProgram;
  std::vector<bgfx::ShaderHandle> mShaders;
};

# dragon::framegraph::detail::ResolvingTraits<dragon::rendering::RenderContext>

struct __cppobj dragon::framegraph::detail::ResolvingTraits<dragon::rendering::RenderContext>
{
};

# dragon::rendering::_applyUniformsAndTextures::__l30::<lambda_1704d25b6cc8d786cf29264f064185c5>

struct __cppobj dragon::rendering::_applyUniformsAndTextures::__l30::<lambda_1704d25b6cc8d786cf29264f064185c5>
{
  dragon::materials::MaterialUniformName *parameterName;
  bool *valueMustComeFromOverride;
};

# dragon::rendering::_applyUniformsAndTextures::__l30::<lambda_a99b85b88cd6cf6e89ad7036a456b843>

struct __cppobj dragon::rendering::_applyUniformsAndTextures::__l30::<lambda_a99b85b88cd6cf6e89ad7036a456b843>
{
};

# dragon::platform::helpers::VisitOverloaded<<lambda_1704d25b6cc8d786cf29264f064185c5>,<lambda_a99b85b88cd6cf6e89ad7036a456b843> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_1704d25b6cc8d786cf29264f064185c5>,<lambda_a99b85b88cd6cf6e89ad7036a456b843> > : dragon::rendering::_applyUniformsAndTextures::__l30::<lambda_1704d25b6cc8d786cf29264f064185c5>, dragon::rendering::_applyUniformsAndTextures::__l30::<lambda_a99b85b88cd6cf6e89ad7036a456b843>
{
};

# dragon::rendering::_applyUniformsAndTextures::__l43::<lambda_6b7fab46896fa255efc95c2fbafc2ae2>

struct __cppobj dragon::rendering::_applyUniformsAndTextures::__l43::<lambda_6b7fab46896fa255efc95c2fbafc2ae2>
{
};

# dragon::rendering::_applyUniformsAndTextures::__l47::<lambda_d47516446d760cd48e0888bd2eb90dfe>

struct __cppobj dragon::rendering::_applyUniformsAndTextures::__l47::<lambda_d47516446d760cd48e0888bd2eb90dfe>
{
  dragon::rendering::drawcommands::GraphicsCommandContext *target;
  const unsigned __int8 *slot;
  const dragon::materials::MaterialUniform *const *parameter;
};

# dragon::rendering::_applyUniformsAndTextures::__l47::<lambda_3d2bab5ce60b25cd54e7ca455a9d4cdc>

struct __cppobj dragon::rendering::_applyUniformsAndTextures::__l47::<lambda_3d2bab5ce60b25cd54e7ca455a9d4cdc>
{
  const dragon::materials::definition::ShaderPipeline *pipeline;
  dragon::rendering::drawcommands::GraphicsCommandContext *target;
  dragon::mesh::VertexBufferResourceManager *vbManager;
  const unsigned __int8 *slot;
  const dragon::materials::definition::SamplerAccess *access;
};

# dragon::rendering::_applyUniformsAndTextures::__l47::<lambda_d0a0ad24ae306ddb7fa133535f6a8ca9>

struct __cppobj dragon::rendering::_applyUniformsAndTextures::__l47::<lambda_d0a0ad24ae306ddb7fa133535f6a8ca9>
{
  const dragon::materials::definition::ShaderPipeline *pipeline;
  dragon::rendering::drawcommands::GraphicsCommandContext *target;
  dragon::mesh::IndexBufferResourceManager *ibManager;
  const unsigned __int8 *slot;
  const dragon::materials::definition::SamplerAccess *access;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_d47516446d760cd48e0888bd2eb90dfe>,<lambda_3d2bab5ce60b25cd54e7ca455a9d4cdc>,<lambda_d0a0ad24ae306ddb7fa133535f6a8ca9> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_d47516446d760cd48e0888bd2eb90dfe>,<lambda_3d2bab5ce60b25cd54e7ca455a9d4cdc>,<lambda_d0a0ad24ae306ddb7fa133535f6a8ca9> > : dragon::rendering::_applyUniformsAndTextures::__l47::<lambda_d47516446d760cd48e0888bd2eb90dfe>, dragon::rendering::_applyUniformsAndTextures::__l47::<lambda_3d2bab5ce60b25cd54e7ca455a9d4cdc>, dragon::rendering::_applyUniformsAndTextures::__l47::<lambda_d0a0ad24ae306ddb7fa133535f6a8ca9>
{
};

# dragon::rendering::_applyUniformsAndTextures::__l30::<lambda_7277a5edf1561b278cbb0acb1a0e072a>

struct __cppobj dragon::rendering::_applyUniformsAndTextures::__l30::<lambda_7277a5edf1561b278cbb0acb1a0e072a>
{
  dragon::materials::MaterialUniformName *parameterName;
  bool *valueMustComeFromOverride;
};

# dragon::rendering::_applyUniformsAndTextures::__l30::<lambda_48a2c54785fc918f684984be41e58521>

struct __cppobj dragon::rendering::_applyUniformsAndTextures::__l30::<lambda_48a2c54785fc918f684984be41e58521>
{
};

# dragon::platform::helpers::VisitOverloaded<<lambda_7277a5edf1561b278cbb0acb1a0e072a>,<lambda_48a2c54785fc918f684984be41e58521> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_7277a5edf1561b278cbb0acb1a0e072a>,<lambda_48a2c54785fc918f684984be41e58521> > : dragon::rendering::_applyUniformsAndTextures::__l30::<lambda_7277a5edf1561b278cbb0acb1a0e072a>, dragon::rendering::_applyUniformsAndTextures::__l30::<lambda_48a2c54785fc918f684984be41e58521>
{
};

# dragon::rendering::_applyUniformsAndTextures::__l43::<lambda_d19837e8ae0c2b3bd8e1d106ac7d5ff4>

struct __cppobj dragon::rendering::_applyUniformsAndTextures::__l43::<lambda_d19837e8ae0c2b3bd8e1d106ac7d5ff4>
{
};

# dragon::rendering::_applyUniformsAndTextures::__l43::<lambda_2038b89864331e997dac0998908fbef8>

struct __cppobj dragon::rendering::_applyUniformsAndTextures::__l43::<lambda_2038b89864331e997dac0998908fbef8>
{
  bool *valueMustComeFromOverride;
  dragon::materials::MaterialUniformName *parameterName;
  const dragon::materials::definition::ShaderPipeline *pipeline;
  dragon::rendering::drawcommands::GraphicsCommandContext *target;
  const dragon::materials::MaterialUniform::TextureParameter *textureParameter;
  bool *isValidState;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_d19837e8ae0c2b3bd8e1d106ac7d5ff4>,<lambda_2038b89864331e997dac0998908fbef8> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_d19837e8ae0c2b3bd8e1d106ac7d5ff4>,<lambda_2038b89864331e997dac0998908fbef8> > : dragon::rendering::_applyUniformsAndTextures::__l43::<lambda_d19837e8ae0c2b3bd8e1d106ac7d5ff4>, dragon::rendering::_applyUniformsAndTextures::__l43::<lambda_2038b89864331e997dac0998908fbef8>
{
};

# dragon::rendering::drawcommands::_resolveVertexBuffer::__l2::<lambda_12b1a0ae33466fe2a2564a97983e407c>

struct __cppobj dragon::rendering::drawcommands::_resolveVertexBuffer::__l2::<lambda_12b1a0ae33466fe2a2564a97983e407c>
{
};

# dragon::rendering::drawcommands::_resolveIndexBuffer::__l2::<lambda_040c469f11856dccdc394d032338fec6>

struct __cppobj dragon::rendering::drawcommands::_resolveIndexBuffer::__l2::<lambda_040c469f11856dccdc394d032338fec6>
{
};

# dragon::rendering::drawcommands::ComputeCommandContext

struct __cppobj dragon::rendering::drawcommands::ComputeCommandContext : dragon::rendering::drawcommands::GraphicsCommandContext
{
};

# dragon::rendering::drawcommands::bindUniforms::__l9::<lambda_980fd089874be37b5b32e9bedba6dffa>

struct __cppobj dragon::rendering::drawcommands::bindUniforms::__l9::<lambda_980fd089874be37b5b32e9bedba6dffa>
{
  bgfx::Encoder *encoder;
  unsigned __int8 *textureUnit;
  const std::optional<dragon::rendering::drawcommands::TextureBinding> *optionalTexture;
};

# dragon::rendering::drawcommands::bindUniforms::__l9::<lambda_4c449e30615802e73e5409d309bfe37a>

struct __cppobj dragon::rendering::drawcommands::bindUniforms::__l9::<lambda_4c449e30615802e73e5409d309bfe37a>
{
  bgfx::Encoder *encoder;
  unsigned __int8 *textureUnit;
  const std::optional<dragon::rendering::drawcommands::TextureBinding> *optionalTexture;
};

# dragon::rendering::drawcommands::bindUniforms::__l9::<lambda_c013d7da2eae639c3e1d79222ed700da>

struct __cppobj dragon::rendering::drawcommands::bindUniforms::__l9::<lambda_c013d7da2eae639c3e1d79222ed700da>
{
};

# dragon::platform::helpers::VisitOverloaded<<lambda_980fd089874be37b5b32e9bedba6dffa>,<lambda_4c449e30615802e73e5409d309bfe37a>,<lambda_c013d7da2eae639c3e1d79222ed700da> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_980fd089874be37b5b32e9bedba6dffa>,<lambda_4c449e30615802e73e5409d309bfe37a>,<lambda_c013d7da2eae639c3e1d79222ed700da> > : dragon::rendering::drawcommands::bindUniforms::__l9::<lambda_980fd089874be37b5b32e9bedba6dffa>, dragon::rendering::drawcommands::bindUniforms::__l9::<lambda_4c449e30615802e73e5409d309bfe37a>, dragon::rendering::drawcommands::bindUniforms::__l9::<lambda_c013d7da2eae639c3e1d79222ed700da>
{
};

# dragon::rendering::_processPendingCpuTasks::__l8::<lambda_448c4b3230988ab3fda8df397a79df9a>

struct __cppobj dragon::rendering::_processPendingCpuTasks::__l8::<lambda_448c4b3230988ab3fda8df397a79df9a>
{
  std::function<void __cdecl(std::shared_ptr<dragon::rendering::ProcessingPassReference>)> *taskRunner;
  std::shared_ptr<dragon::rendering::ProcessingPassReference> task;
};

# dragon::rendering::_processPendingCpuTasks::__l2::<lambda_a49022d37b2992ca9337e17e58dd6417>

struct __cppobj dragon::rendering::_processPendingCpuTasks::__l2::<lambda_a49022d37b2992ca9337e17e58dd6417>
{
  std::mutex *actionMutex;
  std::map<void const *,std::shared_ptr<dragon::rendering::ProcessingPassReference>> *pendingCpuPasses;
  std::vector<std::shared_ptr<cg::details::DispatchToken<std::shared_ptr<cg::details::WorkToken const >,std::shared_ptr<std::function<void __cdecl(dragon::rendering::RenderContext &)> > > const >> *pendingTokensBeingBuilt;
  cg::details::SpecializedScopedFrame<cg::TaskDispatcher<cg::TaskScheduler<cg::LambdaExecutor<dragon::rendering::RenderContext,cg::TaskPoolGroupExecutionPolicy<dragon::rendering::RenderContext,1>,std::string const &,std::vector<cg::GroupPoolDescription> const &> > >::TaskDispatcherExecution,void> *dispFrame;
  std::function<void __cdecl(std::shared_ptr<dragon::rendering::ProcessingPassReference>)> *taskRunner;
};

# dragon::rendering::_processPendingCpuTasks::__l2::<lambda_a49022d37b2992ca9337e17e58dd6417>::()::__l8::<lambda_283f970f6eea003ba75cbea4ab8e6818>

struct __cppobj dragon::rendering::_processPendingCpuTasks::__l2::<lambda_a49022d37b2992ca9337e17e58dd6417>::()::__l8::<lambda_283f970f6eea003ba75cbea4ab8e6818>
{
  std::function<void __cdecl(std::shared_ptr<dragon::rendering::ProcessingPassReference>)> *taskRunner;
  std::shared_ptr<dragon::rendering::ProcessingPassReference> task;
};

# dragon::rendering::_processPendingCpuTasks::__l8::<lambda_448c4b3230988ab3fda8df397a79df9a>::()::__l2::<lambda_1d6e7202e79cb330602c9fa0320586e0>

struct __cppobj dragon::rendering::_processPendingCpuTasks::__l8::<lambda_448c4b3230988ab3fda8df397a79df9a>::()::__l2::<lambda_1d6e7202e79cb330602c9fa0320586e0>
{
};

# dragon::rendering::_processPendingCpuTasks::__l2::<lambda_a49022d37b2992ca9337e17e58dd6417>::()::__l8::<lambda_283f970f6eea003ba75cbea4ab8e6818>::()::__l2::<lambda_ece766a7c2ff5b0bb61a1d869df9a721>

struct __cppobj dragon::rendering::_processPendingCpuTasks::__l2::<lambda_a49022d37b2992ca9337e17e58dd6417>::()::__l8::<lambda_283f970f6eea003ba75cbea4ab8e6818>::()::__l2::<lambda_ece766a7c2ff5b0bb61a1d869df9a721>
{
};

# dragon::rendering::GraphicsTasks::frame::__l36::<lambda_55ed0e2edbf27362bca1fa42ad637ebf>

struct __cppobj dragon::rendering::GraphicsTasks::frame::__l36::<lambda_55ed0e2edbf27362bca1fa42ad637ebf>
{
  std::shared_ptr<Core::DeferredTask> callback;
};

# dragon::rendering::GraphicsTasks::frame::__l2::<lambda_ce01dea6a319546938933c0ba3ab32c3>::()::__l26::<lambda_5c9fff34ec9def2773296cbe30df6075>

struct __cppobj dragon::rendering::GraphicsTasks::frame::__l2::<lambda_ce01dea6a319546938933c0ba3ab32c3>::()::__l26::<lambda_5c9fff34ec9def2773296cbe30df6075>
{
  std::shared_ptr<Core::DeferredTask> frameTask;
};

# dragon::rendering::GraphicsTasks::_waitUntilCompleted::__l15::<lambda_deba415402013b72ecca0c113cd988a6>

struct __cppobj dragon::rendering::GraphicsTasks::_waitUntilCompleted::__l15::<lambda_deba415402013b72ecca0c113cd988a6>
{
};

# dragon::rendering::GraphicsTasks::_forCounter::__l16::<lambda_b10b57bba4e646ff8335bd6049678819>

struct __cppobj dragon::rendering::GraphicsTasks::_forCounter::__l16::<lambda_b10b57bba4e646ff8335bd6049678819>
{
  const std::function<void __cdecl(unsigned __int64)> *workerCallback;
  unsigned __int64 i;
};

# dragon::rendering::GraphicsTasks::_forEach::__l9::<lambda_969734749d613c568b9705b7f9e0199d>

struct __cppobj dragon::rendering::GraphicsTasks::_forEach::__l9::<lambda_969734749d613c568b9705b7f9e0199d>
{
  const std::function<std::function<void __cdecl(dragon::rendering::RenderContext const &)> __cdecl(dragon::rendering::RenderContext const &)> *cb;
  dragon::rendering::RenderContext *context;
};

# dragon::rendering::GraphicsTasks::init::__l20::<lambda_7a56e14fcc487c3fed5f34b1847f3019>

struct __cppobj dragon::rendering::GraphicsTasks::init::__l20::<lambda_7a56e14fcc487c3fed5f34b1847f3019>
{
  const bgfx::Init *initParameters;
};

# dragon::rendering::GraphicsTasks::_executeSynchronousRenderOperation::__l9::<lambda_0cde9b5be5a4ecb138a5b690a066ddc5>

struct __cppobj dragon::rendering::GraphicsTasks::_executeSynchronousRenderOperation::__l9::<lambda_0cde9b5be5a4ecb138a5b690a066ddc5>
{
  std::shared_ptr<Core::DeferredTask> *task;
};

# dragon::rendering::GraphicsTasks::deinit::__l6::<lambda_abb12397cea64cca44710996cd5243c7>

struct __cppobj dragon::rendering::GraphicsTasks::deinit::__l6::<lambda_abb12397cea64cca44710996cd5243c7>
{
};

# dragon::rendering::GraphicsTasks::init::__l2::<lambda_f3b201ae555b08716be763728923aa12>

struct __cppobj dragon::rendering::GraphicsTasks::init::__l2::<lambda_f3b201ae555b08716be763728923aa12>
{
};

# dragon::rendering::GraphicsTasks::{ctor}::__l15::<lambda_a27074dfa039b0dfbd56b980842d50e1>

struct __cppobj dragon::rendering::GraphicsTasks::{ctor}::__l15::<lambda_a27074dfa039b0dfbd56b980842d50e1>
{
};

# dragon::rendering::GraphicsTasks::frame::__l2::<lambda_ce01dea6a319546938933c0ba3ab32c3>::()::__l13::<lambda_9b8a56bd7321156b3887584e3cd17161>

struct __cppobj dragon::rendering::GraphicsTasks::frame::__l2::<lambda_ce01dea6a319546938933c0ba3ab32c3>::()::__l13::<lambda_9b8a56bd7321156b3887584e3cd17161>
{
  dragon::rendering::GraphicsTasks *const __this;
};

# dragon::rendering::GraphicsTasks::_waitUntilCompleted::__l15::<lambda_deba415402013b72ecca0c113cd988a6>::()::__l2::<lambda_2b08aade7d02f1a433f90b058841c098>

struct __cppobj dragon::rendering::GraphicsTasks::_waitUntilCompleted::__l15::<lambda_deba415402013b72ecca0c113cd988a6>::()::__l2::<lambda_2b08aade7d02f1a433f90b058841c098>
{
};

# dragon::rendering::AsyncTasksScope::queue::__l2::<lambda_0b22387ff27ab7e2a15cceac869fb8ee>::()::__l2::<lambda_d7f97153e466fac0867844a242d6fc92>

struct __cppobj dragon::rendering::AsyncTasksScope::queue::__l2::<lambda_0b22387ff27ab7e2a15cceac869fb8ee>::()::__l2::<lambda_d7f97153e466fac0867844a242d6fc92>
{
};

# dragon::rendering::AsyncTasksScope::queue::__l2::<lambda_7773efb6b4df7d5c9396f16d18635c5f>::()::__l2::<lambda_3ffed232d6737c37987f2a0b7aaf28f4>

struct __cppobj dragon::rendering::AsyncTasksScope::queue::__l2::<lambda_7773efb6b4df7d5c9396f16d18635c5f>::()::__l2::<lambda_3ffed232d6737c37987f2a0b7aaf28f4>
{
};

# dragon::rendering::drawutils::Direct<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>

struct __cppobj dragon::rendering::drawutils::Direct<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>
{
};

# dragon::rendering::details::DependencyResolvedTypes<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>::DependenciesInvoker<std::shared_ptr<dragon::rendering::details::RenderPassImpl<0,0> > &>

struct __cppobj dragon::rendering::details::DependencyResolvedTypes<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>::DependenciesInvoker<std::shared_ptr<dragon::rendering::details::RenderPassImpl<0,0> > &>
{
};

# dragon::rendering::details::DependencyResolvedTypes<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>

struct __cppobj dragon::rendering::details::DependencyResolvedTypes<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>
{
};

# dragon::rendering::details::DependencyResolvedTypes<dragon::rendering::details::ColorBind>::DependenciesInvoker<std::shared_ptr<dragon::rendering::details::RenderPassImpl<0,0> > &>

struct __cppobj dragon::rendering::details::DependencyResolvedTypes<dragon::rendering::details::ColorBind>::DependenciesInvoker<std::shared_ptr<dragon::rendering::details::RenderPassImpl<0,0> > &>
{
};

# dragon::rendering::details::DependencyResolvedTypes<dragon::rendering::details::ColorBind>

struct __cppobj dragon::rendering::details::DependencyResolvedTypes<dragon::rendering::details::ColorBind>
{
};

# dragon::rendering::drawutils::Direct<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>::draw::__l2::<lambda_2c201bdeb1d56c01dfa79720746b7f57>

struct __cppobj dragon::rendering::drawutils::Direct<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>::draw::__l2::<lambda_2c201bdeb1d56c01dfa79720746b7f57>
{
  dragon::frameobject::components::MeshFilter meshFilter;
  const dragon::materials::Pass *materialPass;
  const std::shared_ptr<dragon::frameobject::components::MaterialFilter> innerFilter;
  const std::string fullName;
  dragon::frameobject::components::PassState passState;
  const dragon::frameobject::components::Transform transform;
};

# dragon::rendering::drawutils::Direct<dragon::rendering::details::ColorBind>::draw::__l2::<lambda_7665afc645e163e5c297af321cdc2f3f>

struct __cppobj dragon::rendering::drawutils::Direct<dragon::rendering::details::ColorBind>::draw::__l2::<lambda_7665afc645e163e5c297af321cdc2f3f>
{
  dragon::frameobject::components::MeshFilter meshFilter;
  const dragon::materials::Pass *materialPass;
  const std::shared_ptr<dragon::frameobject::components::MaterialFilter> innerFilter;
  const std::string fullName;
  dragon::frameobject::components::PassState passState;
  const dragon::frameobject::components::Transform transform;
};

# dragon::rendering::details::FoldWithMaterialResourceDependenciesRequire<cg::taskorder::DependencyBuilder<dragon::framegraph::dependency::BindMaterialTexture<dragon::rendering::RenderContext>,dragon::framegraph::dependency::BindFramebufferColor<dragon::rendering::RenderContext> > >

struct __cppobj dragon::rendering::details::FoldWithMaterialResourceDependenciesRequire<cg::taskorder::DependencyBuilder<dragon::framegraph::dependency::BindMaterialTexture<dragon::rendering::RenderContext>,dragon::framegraph::dependency::BindFramebufferColor<dragon::rendering::RenderContext> > >
{
};

# dragon::rendering::details::TaskCreator<dragon::rendering::GraphicsFrame,dragon::rendering::details::ColorBind>::createRenderPass::__l2::<lambda_681f695fa63b148e81874a7e0260f9e6>

struct __cppobj dragon::rendering::details::TaskCreator<dragon::rendering::GraphicsFrame,dragon::rendering::details::ColorBind>::createRenderPass::__l2::<lambda_681f695fa63b148e81874a7e0260f9e6>
{
  const std::string name;
  std::tuple<dragon::rendering::details::ColorBind> deps;
  const std::function<void __cdecl(dragon::framegraph::ExecutionContext<dragon::rendering::RenderContext> const &,dragon::rendering::ViewDescription const &,dragon::rendering::details::ColorBind const &)> callback;
};

# dragon::rendering::details::TaskCreator<dragon::rendering::GraphicsFrame,dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>::createRenderPass::__l2::<lambda_0ade20cb6f58f0bbb9f78eb07e9cdb68>

struct __cppobj dragon::rendering::details::TaskCreator<dragon::rendering::GraphicsFrame,dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>::createRenderPass::__l2::<lambda_0ade20cb6f58f0bbb9f78eb07e9cdb68>
{
  const std::string name;
  std::tuple<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind> deps;
  const std::function<void __cdecl(dragon::framegraph::ExecutionContext<dragon::rendering::RenderContext> const &,dragon::rendering::ViewDescription const &,dragon::rendering::details::ColorBind const &,dragon::rendering::details::MaterialBind const &,dragon::rendering::details::MaterialBind const &)> callback;
};

# dragon::rendering::details::TaskCreator<dragon::rendering::GraphicsFrame,dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>::_createSingleRenderPass::__l2::<lambda_86092073bd6acc70fa7dfd51cef7b831>

struct __cppobj dragon::rendering::details::TaskCreator<dragon::rendering::GraphicsFrame,dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>::_createSingleRenderPass::__l2::<lambda_86092073bd6acc70fa7dfd51cef7b831>
{
  const dragon::rendering::ViewDescription viewDesc;
  std::function<void __cdecl(dragon::framegraph::ExecutionContext<dragon::rendering::RenderContext> const &,dragon::rendering::ViewDescription const &,dragon::rendering::details::ColorBind const &,dragon::rendering::details::MaterialBind const &,dragon::rendering::details::MaterialBind const &)> callback;
  std::tuple<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind> deps;
  const std::string name;
};

# dragon::framegraph::Declarator<dragon::rendering::RenderContext>::declareTask::__l11::<lambda_27869ef3f1e58005b31ea92dc557b3c0>

struct __cppobj dragon::framegraph::Declarator<dragon::rendering::RenderContext>::declareTask::__l11::<lambda_27869ef3f1e58005b31ea92dc557b3c0>
{
  dragon::framegraph::Declarator<dragon::rendering::RenderContext> *const __this;
};

# dragon::framegraph::detail::ConcretePass<dragon::rendering::RenderContext,dragon::frameobject::PreparedComputeDispatchCollection>

struct __cppobj dragon::framegraph::detail::ConcretePass<dragon::rendering::RenderContext,dragon::frameobject::PreparedComputeDispatchCollection> : dragon::framegraph::detail::AbstractPass<dragon::rendering::RenderContext>
{
  std::function<void __cdecl(dragon::framegraph::ExecutionContext<dragon::rendering::RenderContext> const &,dragon::frameobject::PreparedComputeDispatchCollection const &)> mAction;
  const dragon::frameobject::PreparedComputeDispatchCollection mTaskContext;
  std::string mPassName;
};

# dragon::framegraph::detail::ConcretePass<dragon::rendering::RenderContext,dragon::frameobject::PreparedComputeDispatchCollection>_vtbl

struct /*VFT*/ dragon::framegraph::detail::ConcretePass<dragon::rendering::RenderContext,dragon::frameobject::PreparedComputeDispatchCollection>_vtbl
{
  void (__fastcall *~AbstractPass<dragon::rendering::RenderContext>)(dragon::framegraph::detail::AbstractPass<dragon::rendering::RenderContext> *this);
  void (__fastcall *execute)(dragon::framegraph::detail::AbstractPass<dragon::rendering::RenderContext> *this, const dragon::framegraph::ExecutionContext<dragon::rendering::RenderContext> *);
  gsl::basic_string_span<char const ,-1> *(__fastcall *name)(dragon::framegraph::detail::AbstractPass<dragon::rendering::RenderContext> *this, gsl::basic_string_span<char const ,-1> *result);
};

# dragon::rendering::drawutils::Direct<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind>

struct __cppobj dragon::rendering::drawutils::Direct<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind>
{
};

# dragon::rendering::details::DependencyResolvedTypes<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind>::DependenciesInvoker<std::shared_ptr<dragon::rendering::details::RenderPassImpl<0,0> > &>

struct __cppobj dragon::rendering::details::DependencyResolvedTypes<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind>::DependenciesInvoker<std::shared_ptr<dragon::rendering::details::RenderPassImpl<0,0> > &>
{
};

# dragon::rendering::details::DependencyResolvedTypes<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind>

struct __cppobj dragon::rendering::details::DependencyResolvedTypes<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind>
{
};

# dragon::rendering::drawutils::Direct<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind>::draw::__l2::<lambda_f2e4086b1c2eaa9dc15e69cc5e2e1b02>

struct __cppobj dragon::rendering::drawutils::Direct<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind>::draw::__l2::<lambda_f2e4086b1c2eaa9dc15e69cc5e2e1b02>
{
  dragon::frameobject::components::MeshFilter meshFilter;
  const dragon::materials::Pass *materialPass;
  const std::shared_ptr<dragon::frameobject::components::MaterialFilter> innerFilter;
  const std::string fullName;
  dragon::frameobject::components::PassState passState;
  const dragon::frameobject::components::Transform transform;
};

# dragon::rendering::details::TaskCreator<dragon::rendering::GraphicsFrame,dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind>::createRenderPass::__l2::<lambda_58787bc526953a7a5140bcccf22a9cbd>

struct __cppobj dragon::rendering::details::TaskCreator<dragon::rendering::GraphicsFrame,dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind>::createRenderPass::__l2::<lambda_58787bc526953a7a5140bcccf22a9cbd>
{
  const std::string name;
  std::tuple<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind> deps;
  const std::function<void __cdecl(dragon::framegraph::ExecutionContext<dragon::rendering::RenderContext> const &,dragon::rendering::ViewDescription const &,dragon::rendering::details::ColorBind const &,dragon::rendering::details::MaterialBind const &)> callback;
};

# dragon::rendering::drawutils::Direct<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>

struct __cppobj dragon::rendering::drawutils::Direct<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>
{
};

# dragon::rendering::details::DependencyResolvedTypes<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>::DependenciesInvoker<std::shared_ptr<dragon::rendering::details::RenderPassImpl<0,0> > &>

struct __cppobj dragon::rendering::details::DependencyResolvedTypes<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>::DependenciesInvoker<std::shared_ptr<dragon::rendering::details::RenderPassImpl<0,0> > &>
{
};

# dragon::rendering::details::DependencyResolvedTypes<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>

struct __cppobj dragon::rendering::details::DependencyResolvedTypes<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>
{
};

# dragon::rendering::drawutils::Direct<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>::draw::__l2::<lambda_a08b2be1e901d92fdd6da27142a99c04>

struct __cppobj dragon::rendering::drawutils::Direct<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>::draw::__l2::<lambda_a08b2be1e901d92fdd6da27142a99c04>
{
  dragon::frameobject::components::MeshFilter meshFilter;
  const dragon::materials::Pass *materialPass;
  const std::shared_ptr<dragon::frameobject::components::MaterialFilter> innerFilter;
  const std::string fullName;
  dragon::frameobject::components::PassState passState;
  const dragon::frameobject::components::Transform transform;
};

# dragon::rendering::details::FoldWithMaterialResourceDependenciesRequire<cg::taskorder::DependencyBuilder<dragon::framegraph::dependency::BindMaterialTexture<dragon::rendering::RenderContext>,dragon::framegraph::dependency::BindMaterialTexture<dragon::rendering::RenderContext>,dragon::framegraph::dependency::BindFramebufferColor<dragon::rendering::RenderContext> > >

struct __cppobj dragon::rendering::details::FoldWithMaterialResourceDependenciesRequire<cg::taskorder::DependencyBuilder<dragon::framegraph::dependency::BindMaterialTexture<dragon::rendering::RenderContext>,dragon::framegraph::dependency::BindMaterialTexture<dragon::rendering::RenderContext>,dragon::framegraph::dependency::BindFramebufferColor<dragon::rendering::RenderContext> > >
{
};

# dragon::rendering::details::TaskCreator<dragon::rendering::GraphicsFrame,dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>::createRenderPass::__l2::<lambda_f2515dd87d60d1ccac991d8ad0055031>

struct __cppobj dragon::rendering::details::TaskCreator<dragon::rendering::GraphicsFrame,dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind>::createRenderPass::__l2::<lambda_f2515dd87d60d1ccac991d8ad0055031>
{
  const std::string name;
  std::tuple<dragon::rendering::details::ColorBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind,dragon::rendering::details::MaterialBind> deps;
  const std::function<void __cdecl(dragon::framegraph::ExecutionContext<dragon::rendering::RenderContext> const &,dragon::rendering::ViewDescription const &,dragon::rendering::details::ColorBind const &,dragon::rendering::details::MaterialBind const &,dragon::rendering::details::MaterialBind const &,dragon::rendering::details::MaterialBind const &)> callback;
};

# dragon::framegraph::Declarator<dragon::rendering::RenderContext>::declareTask::__l11::<lambda_53f59f2fdc1e0e396dc2482c20c4e3be>

struct __cppobj dragon::framegraph::Declarator<dragon::rendering::RenderContext>::declareTask::__l11::<lambda_53f59f2fdc1e0e396dc2482c20c4e3be>
{
  dragon::framegraph::Declarator<dragon::rendering::RenderContext> *const __this;
};

# dragon::rendering::details::TextureHandleTypeKey

struct __cppobj dragon::rendering::details::TextureHandleTypeKey
{
};

# dragon::rendering::TextureResourceType

struct __cppobj dragon::rendering::TextureResourceType
{
};

# dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::BufferResource::Accessor

struct __cppobj dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::BufferResource::Accessor
{
  dragon::rendering::BufferState *mState;
  bool *mWasEverCreated;
  bool *mWasEverUsed;
  bgfx::TextureHandle *mResource;
  dragon::rendering::TextureResourceDescInternal *mDescription;
  dragon::rendering::TextureResourceDesc *mPublicDescription;
  std::optional<dragon::rendering::TextureResourceType::ResourceCreationParameters> *mCreationParameters;
  std::vector<dragon::rendering::TextureResourceType::ResourceUpdateParameters> *mDeferredOrderedUpdateSequence;
  std::mutex *mAccessLock;
};

# dragon::rendering::DeferredHandleState

struct __cppobj dragon::rendering::DeferredHandleState
{
  const std::optional<dragon::rendering::details::BufferHandleTypeWrapper<dragon::rendering::details::TextureHandleTypeKey,unsigned __int64> > mHandle;
  const std::function<enum dragon::rendering::DeferredActionResult __cdecl(std::optional<dragon::rendering::details::BufferHandleTypeWrapper<dragon::rendering::details::TextureHandleTypeKey,unsigned __int64> >,dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::BufferResource::Accessor &)> mDeferredAction;
};

# dragon::rendering::TextureResourceManager::Impl::PendingTask

struct __cppobj dragon::rendering::TextureResourceManager::Impl::PendingTask
{
  const std::optional<dragon::rendering::details::BufferHandleTypeWrapper<dragon::rendering::details::TextureHandleTypeKey,unsigned __int64> > mHandle;
  std::shared_ptr<dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::BufferResource> mResource;
  const std::function<enum dragon::rendering::DeferredActionResult __cdecl(std::optional<dragon::rendering::details::BufferHandleTypeWrapper<dragon::rendering::details::TextureHandleTypeKey,unsigned __int64> >,dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::BufferResource::Accessor &)> mAction;
};

# dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::flush::__l5::DelayedDestroy

struct __cppobj dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::flush::__l5::DelayedDestroy
{
  std::function<void __cdecl(void)> mCallback;
};

# dragon::rendering::BufferResourceInstanceTraits<dragon::rendering::TextureResourceType>

struct __cppobj dragon::rendering::BufferResourceInstanceTraits<dragon::rendering::TextureResourceType>
{
};

# dragon::memory::BufferSource::resolve::__l2::<lambda_15e28bd6d8adc8970663389fbec0ea91>

struct __cppobj dragon::memory::BufferSource::resolve::__l2::<lambda_15e28bd6d8adc8970663389fbec0ea91>
{
};

# dragon::rendering::TextureResourceType::create::__l32::<lambda_1a1126684490dea2688199c650391340>

struct __cppobj dragon::rendering::TextureResourceType::create::__l32::<lambda_1a1126684490dea2688199c650391340>
{
  bgfx::TextureHandle *result;
  dragon::rendering::BgfxTextureDesc *bgfxDesc;
  const cg::TextureDescription *desc;
};

# dragon::memory::BufferSource::resolve::__l2::<lambda_5e2cafae2a141aba0edbd603236f9af1>

struct __cppobj dragon::memory::BufferSource::resolve::__l2::<lambda_5e2cafae2a141aba0edbd603236f9af1>
{
};

# dragon::rendering::TextureResourceType::update::__l2::<lambda_aeb698e76d03013a75a21854b6e155b4>

struct __cppobj dragon::rendering::TextureResourceType::update::__l2::<lambda_aeb698e76d03013a75a21854b6e155b4>
{
  bgfx::TextureHandle *buffer;
  const dragon::rendering::TextureResourceType::ResourceUpdateParameters *updateParameters;
};

# dragon::rendering::DeferredResult<bool>::tryGet::__l2::<lambda_d6de28eadf07421413302508219c9a51>

struct __cppobj dragon::rendering::DeferredResult<bool>::tryGet::__l2::<lambda_d6de28eadf07421413302508219c9a51>
{
  bool *hasValue;
};

# dragon::rendering::DeferredResult<bool>::tryGet::__l2::<lambda_4f695ec9d24944df82080e8405298285>

struct __cppobj dragon::rendering::DeferredResult<bool>::tryGet::__l2::<lambda_4f695ec9d24944df82080e8405298285>
{
  bool *hasValue;
  bool *result;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_d6de28eadf07421413302508219c9a51>,<lambda_4f695ec9d24944df82080e8405298285> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_d6de28eadf07421413302508219c9a51>,<lambda_4f695ec9d24944df82080e8405298285> > : dragon::rendering::DeferredResult<bool>::tryGet::__l2::<lambda_d6de28eadf07421413302508219c9a51>, dragon::rendering::DeferredResult<bool>::tryGet::__l2::<lambda_4f695ec9d24944df82080e8405298285>
{
};

# dragon::rendering::DeferredResult<unsigned __int64>::tryGet::__l2::<lambda_874f16540db02b06724caa83fa505ee7>

struct __cppobj dragon::rendering::DeferredResult<unsigned __int64>::tryGet::__l2::<lambda_874f16540db02b06724caa83fa505ee7>
{
  bool *hasValue;
};

# dragon::rendering::DeferredResult<unsigned __int64>::tryGet::__l2::<lambda_431efd0944ca6c373b2f9ddf83690b1f>

struct __cppobj dragon::rendering::DeferredResult<unsigned __int64>::tryGet::__l2::<lambda_431efd0944ca6c373b2f9ddf83690b1f>
{
  bool *hasValue;
  std::variant<unsigned __int64> *result;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_874f16540db02b06724caa83fa505ee7>,<lambda_431efd0944ca6c373b2f9ddf83690b1f> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_874f16540db02b06724caa83fa505ee7>,<lambda_431efd0944ca6c373b2f9ddf83690b1f> > : dragon::rendering::DeferredResult<unsigned __int64>::tryGet::__l2::<lambda_874f16540db02b06724caa83fa505ee7>, dragon::rendering::DeferredResult<unsigned __int64>::tryGet::__l2::<lambda_431efd0944ca6c373b2f9ddf83690b1f>
{
};

# dragon::rendering::DeferredResult<bool>::tryGet::__l2::<lambda_0b7bc903a37556cee4cfa7c3b1a89326>

struct __cppobj dragon::rendering::DeferredResult<bool>::tryGet::__l2::<lambda_0b7bc903a37556cee4cfa7c3b1a89326>
{
  bool *hasValue;
};

# dragon::rendering::DeferredResult<bool>::tryGet::__l2::<lambda_cfba1d17f5626e9555f01136aad9081e>

struct __cppobj dragon::rendering::DeferredResult<bool>::tryGet::__l2::<lambda_cfba1d17f5626e9555f01136aad9081e>
{
  bool *hasValue;
  std::variant<bool> *result;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_0b7bc903a37556cee4cfa7c3b1a89326>,<lambda_cfba1d17f5626e9555f01136aad9081e> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_0b7bc903a37556cee4cfa7c3b1a89326>,<lambda_cfba1d17f5626e9555f01136aad9081e> > : dragon::rendering::DeferredResult<bool>::tryGet::__l2::<lambda_0b7bc903a37556cee4cfa7c3b1a89326>, dragon::rendering::DeferredResult<bool>::tryGet::__l2::<lambda_cfba1d17f5626e9555f01136aad9081e>
{
};

# dragon::rendering::details::runStep::__l2::<lambda_00429de7dd09878e4a3668b23c94d5c6>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_00429de7dd09878e4a3668b23c94d5c6>
{
  dragon::rendering::coroutine::DispatchTarget *currentTarget;
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > *stateHolder;
  const struct dragon::rendering::TextureResourceManager::Impl::copyAsync::__l2::<lambda_a6349755da7110c122d82e5a120d69a2> *coroutineCallback;
};

# dragon::rendering::details::runStep::__l2::<lambda_e10cfcc8bd96dc76aa2724a3faa1de0a>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_e10cfcc8bd96dc76aa2724a3faa1de0a>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > *stateHolder;
};

# dragon::rendering::details::runStep::__l2::<lambda_c74a313402be08b7adeb7d3263b0ea38>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_c74a313402be08b7adeb7d3263b0ea38>
{
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > *stateHolder;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_00429de7dd09878e4a3668b23c94d5c6>,<lambda_e10cfcc8bd96dc76aa2724a3faa1de0a>,<lambda_c74a313402be08b7adeb7d3263b0ea38> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_00429de7dd09878e4a3668b23c94d5c6>,<lambda_e10cfcc8bd96dc76aa2724a3faa1de0a>,<lambda_c74a313402be08b7adeb7d3263b0ea38> > : dragon::rendering::details::runStep::__l2::<lambda_00429de7dd09878e4a3668b23c94d5c6>, dragon::rendering::details::runStep::__l2::<lambda_e10cfcc8bd96dc76aa2724a3faa1de0a>, dragon::rendering::details::runStep::__l2::<lambda_c74a313402be08b7adeb7d3263b0ea38>
{
};

# dragon::rendering::details::runStep::__l2::<lambda_f200acfc803d93621704f593d8ae7717>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_f200acfc803d93621704f593d8ae7717>
{
  dragon::rendering::coroutine::DispatchTarget *currentTarget;
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > *stateHolder;
  const struct dragon::rendering::TextureResourceManager::Impl::readAsync::__l2::<lambda_661b6c1d40bfda803ee4881643ecfcc0> *coroutineCallback;
};

# dragon::rendering::details::runStep::__l2::<lambda_df5525a80596be2e2ff78d9490af6f0e>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_df5525a80596be2e2ff78d9490af6f0e>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > *stateHolder;
};

# dragon::rendering::details::runStep::__l2::<lambda_61b822541d2601907db01dfedeff616d>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_61b822541d2601907db01dfedeff616d>
{
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > *stateHolder;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_f200acfc803d93621704f593d8ae7717>,<lambda_df5525a80596be2e2ff78d9490af6f0e>,<lambda_61b822541d2601907db01dfedeff616d> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_f200acfc803d93621704f593d8ae7717>,<lambda_df5525a80596be2e2ff78d9490af6f0e>,<lambda_61b822541d2601907db01dfedeff616d> > : dragon::rendering::details::runStep::__l2::<lambda_f200acfc803d93621704f593d8ae7717>, dragon::rendering::details::runStep::__l2::<lambda_df5525a80596be2e2ff78d9490af6f0e>, dragon::rendering::details::runStep::__l2::<lambda_61b822541d2601907db01dfedeff616d>
{
};

# dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::tryResolve::__l22::<lambda_c4a429c257c1bc0d2dc1a8b4822f0fd9>

struct __cppobj dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::tryResolve::__l22::<lambda_c4a429c257c1bc0d2dc1a8b4822f0fd9>
{
  dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType> *const __this;
  std::shared_ptr<dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::BufferResource> target;
};

# dragon::rendering::TextureResourceManager::createAsExternal::__l12::<lambda_b09ac5df02a6a00a8bfe64931c430cce>::()::__l18::<lambda_73d510a550d1a71057ed7def60a67dd4>

struct __cppobj dragon::rendering::TextureResourceManager::createAsExternal::__l12::<lambda_b09ac5df02a6a00a8bfe64931c430cce>::()::__l18::<lambda_73d510a550d1a71057ed7def60a67dd4>
{
  dragon::rendering::TextureResourceManager *const __this;
  dragon::rendering::DeferredResult<bool> overrideAsyncResult;
  std::optional<dragon::rendering::details::BufferHandleTypeWrapper<dragon::rendering::details::TextureHandleTypeKey,unsigned __int64> > baseTexture;
  unsigned __int64 newNativeTexture;
};

# dragon::rendering::TextureResourceManager::Impl::readAsync::__l2::<lambda_661b6c1d40bfda803ee4881643ecfcc0>::()::__l2::<lambda_9effa90042a655dc8bd720bfc0235711>

struct __cppobj __declspec(align(8)) dragon::rendering::TextureResourceManager::Impl::readAsync::__l2::<lambda_661b6c1d40bfda803ee4881643ecfcc0>::()::__l2::<lambda_9effa90042a655dc8bd720bfc0235711>
{
  dragon::rendering::TextureResourceManager::Impl *const __this;
  const unsigned int finishFrameNumber;
};

# dragon::rendering::details::runStep::__l2::<lambda_a4713c0cfe5a3b6c52ea9ddde732e47d>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_a4713c0cfe5a3b6c52ea9ddde732e47d>
{
  dragon::rendering::coroutine::DispatchTarget *currentTarget;
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > *stateHolder;
  const std::function<std::variant<dragon::rendering::coroutine::TryAgain,dragon::rendering::coroutine::Run<bool>,bool> __cdecl(void)> *coroutineCallback;
};

# dragon::rendering::details::runStep::__l2::<lambda_66a3e410687ef6af83c0d08d2f7c8a05>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_66a3e410687ef6af83c0d08d2f7c8a05>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > *stateHolder;
};

# dragon::rendering::details::runStep::__l2::<lambda_20bf40bb9b5bd6a8f1d855db236d7b16>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_20bf40bb9b5bd6a8f1d855db236d7b16>
{
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > *stateHolder;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_a4713c0cfe5a3b6c52ea9ddde732e47d>,<lambda_66a3e410687ef6af83c0d08d2f7c8a05>,<lambda_20bf40bb9b5bd6a8f1d855db236d7b16> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_a4713c0cfe5a3b6c52ea9ddde732e47d>,<lambda_66a3e410687ef6af83c0d08d2f7c8a05>,<lambda_20bf40bb9b5bd6a8f1d855db236d7b16> > : dragon::rendering::details::runStep::__l2::<lambda_a4713c0cfe5a3b6c52ea9ddde732e47d>, dragon::rendering::details::runStep::__l2::<lambda_66a3e410687ef6af83c0d08d2f7c8a05>, dragon::rendering::details::runStep::__l2::<lambda_20bf40bb9b5bd6a8f1d855db236d7b16>
{
};

# dragon::rendering::details::runStep::__l2::<lambda_bc347f2c11c4f4acbd4f8abb87b036b1>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_bc347f2c11c4f4acbd4f8abb87b036b1>
{
  dragon::rendering::coroutine::DispatchTarget *currentTarget;
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,dragon::rendering::SharedTextureHandle> > *stateHolder;
  const dragon::rendering::DeferredResult<bool>::then::__l2::<lambda_c3545776d4a1357cc987df9697644608> *coroutineCallback;
};

# dragon::rendering::details::runStep::__l2::<lambda_8c9f3269710ce9476149804229953a1e>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_8c9f3269710ce9476149804229953a1e>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,dragon::rendering::SharedTextureHandle> > *stateHolder;
};

# dragon::rendering::details::runStep::__l2::<lambda_8312f1077e84881f7fcbfb5385b787af>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_8312f1077e84881f7fcbfb5385b787af>
{
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,dragon::rendering::SharedTextureHandle> > *stateHolder;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_bc347f2c11c4f4acbd4f8abb87b036b1>,<lambda_8c9f3269710ce9476149804229953a1e>,<lambda_8312f1077e84881f7fcbfb5385b787af> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_bc347f2c11c4f4acbd4f8abb87b036b1>,<lambda_8c9f3269710ce9476149804229953a1e>,<lambda_8312f1077e84881f7fcbfb5385b787af> > : dragon::rendering::details::runStep::__l2::<lambda_bc347f2c11c4f4acbd4f8abb87b036b1>, dragon::rendering::details::runStep::__l2::<lambda_8c9f3269710ce9476149804229953a1e>, dragon::rendering::details::runStep::__l2::<lambda_8312f1077e84881f7fcbfb5385b787af>
{
};

# dragon::rendering::details::runStep::__l2::<lambda_61ef815dfe04875bdb4f9819a637ba35>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_61ef815dfe04875bdb4f9819a637ba35>
{
  dragon::rendering::coroutine::DispatchTarget *currentTarget;
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,dragon::rendering::SharedTextureHandle> > *stateHolder;
  const struct dragon::rendering::DeferredResult<unsigned __int64>::then::__l2::<lambda_8b27e51beabb27cbb611d54cf4caa5b9> *coroutineCallback;
};

# dragon::rendering::details::runStep::__l2::<lambda_e748f7c1651b3c2605040e30cd0026d1>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_e748f7c1651b3c2605040e30cd0026d1>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,dragon::rendering::SharedTextureHandle> > *stateHolder;
};

# dragon::rendering::details::runStep::__l2::<lambda_58c10b021011d7de0219795f1f17daad>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_58c10b021011d7de0219795f1f17daad>
{
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,dragon::rendering::SharedTextureHandle> > *stateHolder;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_61ef815dfe04875bdb4f9819a637ba35>,<lambda_e748f7c1651b3c2605040e30cd0026d1>,<lambda_58c10b021011d7de0219795f1f17daad> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_61ef815dfe04875bdb4f9819a637ba35>,<lambda_e748f7c1651b3c2605040e30cd0026d1>,<lambda_58c10b021011d7de0219795f1f17daad> > : dragon::rendering::details::runStep::__l2::<lambda_61ef815dfe04875bdb4f9819a637ba35>, dragon::rendering::details::runStep::__l2::<lambda_e748f7c1651b3c2605040e30cd0026d1>, dragon::rendering::details::runStep::__l2::<lambda_58c10b021011d7de0219795f1f17daad>
{
};

# dragon::rendering::details::runStep::__l2::<lambda_56131c259497b6ec942552da7c21d76f>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_56131c259497b6ec942552da7c21d76f>
{
  dragon::rendering::coroutine::DispatchTarget *currentTarget;
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,dragon::rendering::SharedTextureHandle> > *stateHolder;
  const std::function<std::variant<dragon::rendering::coroutine::TryAgain,dragon::rendering::coroutine::Run<dragon::rendering::SharedTextureHandle>,dragon::rendering::SharedTextureHandle> __cdecl(void)> *coroutineCallback;
};

# dragon::rendering::details::runStep::__l2::<lambda_f6d401144df93177f677010af549061f>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_f6d401144df93177f677010af549061f>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,dragon::rendering::SharedTextureHandle> > *stateHolder;
};

# dragon::rendering::details::runStep::__l2::<lambda_d1887979d014c5c700c893676632811d>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_d1887979d014c5c700c893676632811d>
{
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,dragon::rendering::SharedTextureHandle> > *stateHolder;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_56131c259497b6ec942552da7c21d76f>,<lambda_f6d401144df93177f677010af549061f>,<lambda_d1887979d014c5c700c893676632811d> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_56131c259497b6ec942552da7c21d76f>,<lambda_f6d401144df93177f677010af549061f>,<lambda_d1887979d014c5c700c893676632811d> > : dragon::rendering::details::runStep::__l2::<lambda_56131c259497b6ec942552da7c21d76f>, dragon::rendering::details::runStep::__l2::<lambda_f6d401144df93177f677010af549061f>, dragon::rendering::details::runStep::__l2::<lambda_d1887979d014c5c700c893676632811d>
{
};

# dragon::rendering::details::runStep::__l2::<lambda_a1b2a7e0f3d6af6c5b58879eada7c855>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_a1b2a7e0f3d6af6c5b58879eada7c855>
{
  dragon::rendering::coroutine::DispatchTarget *currentTarget;
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > *stateHolder;
  const struct dragon::rendering::DeferredResult<bool>::then::__l2::<lambda_b36912425dc1a21ee23179b794f7fa70> *coroutineCallback;
};

# dragon::rendering::details::runStep::__l2::<lambda_7993acc3c8eb0047818e9d50cdee1abd>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_7993acc3c8eb0047818e9d50cdee1abd>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > *stateHolder;
};

# dragon::rendering::details::runStep::__l2::<lambda_22b116b7cbf894fad86dc64ae6df4c1f>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_22b116b7cbf894fad86dc64ae6df4c1f>
{
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > *stateHolder;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_a1b2a7e0f3d6af6c5b58879eada7c855>,<lambda_7993acc3c8eb0047818e9d50cdee1abd>,<lambda_22b116b7cbf894fad86dc64ae6df4c1f> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_a1b2a7e0f3d6af6c5b58879eada7c855>,<lambda_7993acc3c8eb0047818e9d50cdee1abd>,<lambda_22b116b7cbf894fad86dc64ae6df4c1f> > : dragon::rendering::details::runStep::__l2::<lambda_a1b2a7e0f3d6af6c5b58879eada7c855>, dragon::rendering::details::runStep::__l2::<lambda_7993acc3c8eb0047818e9d50cdee1abd>, dragon::rendering::details::runStep::__l2::<lambda_22b116b7cbf894fad86dc64ae6df4c1f>
{
};

# dragon::rendering::details::runStep::__l2::<lambda_9e9b351cf491e6fbbcbd224f44748919>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_9e9b351cf491e6fbbcbd224f44748919>
{
  dragon::rendering::coroutine::DispatchTarget *currentTarget;
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > *stateHolder;
  const struct dragon::rendering::DeferredResult<bool>::then::__l2::<lambda_69c394c075e7947ecf6de6e23a7a00d3> *coroutineCallback;
};

# dragon::rendering::details::runStep::__l2::<lambda_c4f55adc6fc3bd9650f292b46e07f10d>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_c4f55adc6fc3bd9650f292b46e07f10d>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > *stateHolder;
};

# dragon::rendering::details::runStep::__l2::<lambda_6aa0680ec266c8fdc971c0b007e2fb1c>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_6aa0680ec266c8fdc971c0b007e2fb1c>
{
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > *stateHolder;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_9e9b351cf491e6fbbcbd224f44748919>,<lambda_c4f55adc6fc3bd9650f292b46e07f10d>,<lambda_6aa0680ec266c8fdc971c0b007e2fb1c> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_9e9b351cf491e6fbbcbd224f44748919>,<lambda_c4f55adc6fc3bd9650f292b46e07f10d>,<lambda_6aa0680ec266c8fdc971c0b007e2fb1c> > : dragon::rendering::details::runStep::__l2::<lambda_9e9b351cf491e6fbbcbd224f44748919>, dragon::rendering::details::runStep::__l2::<lambda_c4f55adc6fc3bd9650f292b46e07f10d>, dragon::rendering::details::runStep::__l2::<lambda_6aa0680ec266c8fdc971c0b007e2fb1c>
{
};

# dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::update::__l33::<lambda_458b16ee16903832b42a44567235bda7>

struct __cppobj dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::update::__l33::<lambda_458b16ee16903832b42a44567235bda7>
{
  std::shared_ptr<dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::BufferResource> target;
  std::shared_ptr<dragon::rendering::TextureResourceType::ResourceUpdateParameters> updateArgs;
};

# dragon::rendering::coroutine::dispatch::__l6::<lambda_a1c2d30c4013903b5aec4fa185d2cdc4>

struct __cppobj dragon::rendering::coroutine::dispatch::__l6::<lambda_a1c2d30c4013903b5aec4fa185d2cdc4>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,dragon::rendering::SharedTextureHandle> > stateHolder;
  const dragon::rendering::TextureResourceManager::createAsExternal::__l12::<lambda_b09ac5df02a6a00a8bfe64931c430cce> coroutineCallback;
};

# dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::create::__l5::<lambda_7429854351f78834836fb87ef94ecddb>

struct __cppobj dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::create::__l5::<lambda_7429854351f78834836fb87ef94ecddb>
{
  dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType> *const __this;
  std::shared_ptr<dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::BufferResource> target;
};

# dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::create::__l5::<lambda_d8d78cde96f6ae0c209904e24ae369f7>

struct __cppobj dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::create::__l5::<lambda_d8d78cde96f6ae0c209904e24ae369f7>
{
  dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType> *const __this;
  std::shared_ptr<dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::BufferResource> target;
};

# dragon::rendering::coroutine::dispatch::__l6::<lambda_f30324bc8d40a6c0d5e4401c96f79fb9>

struct __cppobj dragon::rendering::coroutine::dispatch::__l6::<lambda_f30324bc8d40a6c0d5e4401c96f79fb9>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::TextureResourceManager::Impl::overrideInternalAsync::__l2::<lambda_f6804d13e6c1f399c569beed1d3a6cb8> coroutineCallback;
};

# dragon::rendering::coroutine::dispatch::__l5::<lambda_c602feaaae81dd2253c3cb291027307a>

struct __cppobj dragon::rendering::coroutine::dispatch::__l5::<lambda_c602feaaae81dd2253c3cb291027307a>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::TextureResourceManager::Impl::overrideInternalAsync::__l2::<lambda_f6804d13e6c1f399c569beed1d3a6cb8> coroutineCallback;
};

# dragon::rendering::coroutine::dispatch::__l6::<lambda_76852469a24b588dffed7499cbd54af8>

struct __cppobj dragon::rendering::coroutine::dispatch::__l6::<lambda_76852469a24b588dffed7499cbd54af8>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,unsigned __int64> > stateHolder;
  const dragon::rendering::TextureResourceManager::Impl::getInternalAsync::__l2::<lambda_c2f36c41a6f8b939cf03ff8a0cc2efce> coroutineCallback;
};

# dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::flush::__l5::<lambda_e5ad9426d677070c2fdef4038fc0294b>

struct __cppobj dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType>::flush::__l5::<lambda_e5ad9426d677070c2fdef4038fc0294b>
{
  dragon::rendering::BufferResourceManager<dragon::rendering::TextureResourceType> *const __this;
  std::shared_ptr<std::vector<std::optional<dragon::rendering::details::BufferHandleTypeWrapper<dragon::rendering::details::TextureHandleTypeKey,unsigned __int64> >> > buffersToDelete;
};

# dragon::rendering::coroutine::dispatch::__l5::<lambda_69b722bc7359d47c64df04b8afc3a891>

struct __cppobj dragon::rendering::coroutine::dispatch::__l5::<lambda_69b722bc7359d47c64df04b8afc3a891>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,dragon::rendering::SharedTextureHandle> > stateHolder;
  const dragon::rendering::DeferredResult<unsigned __int64>::then::__l2::<lambda_e7b38f5f36d64d4501f5714de64d6730> coroutineCallback;
};

# dragon::rendering::details::runStep::__l2::<lambda_0d771b36c68787c1e72511b5fa13c6d0>::()::__l2::<lambda_092210d0254d409187ac1f8d6f07185d>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_0d771b36c68787c1e72511b5fa13c6d0>::()::__l2::<lambda_092210d0254d409187ac1f8d6f07185d>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,dragon::rendering::SharedTextureHandle> > stateHolder;
  const dragon::rendering::coroutine::Run<dragon::rendering::SharedTextureHandle> run;
};

# dragon::rendering::coroutine::dispatch::__l5::<lambda_11a1d5ae472a027cb6632881bcbca6c5>

struct __cppobj dragon::rendering::coroutine::dispatch::__l5::<lambda_11a1d5ae472a027cb6632881bcbca6c5>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::coroutine::when::__l2::<lambda_43bb4ffe9e3a22cb4498ae83c4961d8c> coroutineCallback;
};

# dragon::rendering::coroutine::dispatch::__l5::<lambda_c4661421668a05dd66275e614d2c913d>

struct __cppobj dragon::rendering::coroutine::dispatch::__l5::<lambda_c4661421668a05dd66275e614d2c913d>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,dragon::rendering::SharedTextureHandle> > stateHolder;
  const dragon::rendering::DeferredResult<bool>::then::__l2::<lambda_c3545776d4a1357cc987df9697644608> coroutineCallback;
};

# dragon::rendering::details::runStep::__l2::<lambda_c39af1b785cfd9fef232bb63f8916fde>::()::__l2::<lambda_13f3d7855e4af07a3c276e9986c506b2>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_c39af1b785cfd9fef232bb63f8916fde>::()::__l2::<lambda_13f3d7855e4af07a3c276e9986c506b2>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::coroutine::Run<bool> run;
};

# dragon::rendering::details::runStep::__l2::<lambda_a569cced27cf5a1cf209a41b43f8456a>::()::__l6::<lambda_1b68472403d595797829ecc57129966e>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_a569cced27cf5a1cf209a41b43f8456a>::()::__l6::<lambda_1b68472403d595797829ecc57129966e>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::TextureResourceManager::Impl::overrideInternalAsync::__l2::<lambda_f6804d13e6c1f399c569beed1d3a6cb8> coroutineCallback;
};

# dragon::rendering::details::runStep::__l2::<lambda_a569cced27cf5a1cf209a41b43f8456a>::()::__l5::<lambda_84e065d48bed39571ec09499ccc3d49a>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_a569cced27cf5a1cf209a41b43f8456a>::()::__l5::<lambda_84e065d48bed39571ec09499ccc3d49a>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::TextureResourceManager::Impl::overrideInternalAsync::__l2::<lambda_f6804d13e6c1f399c569beed1d3a6cb8> coroutineCallback;
};

# dragon::rendering::details::runStep::__l2::<lambda_56a057a413dadfdd162cdce03e706fb2>::()::__l2::<lambda_d381cb58fc7779d7b1a7400c6ba63a6b>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_56a057a413dadfdd162cdce03e706fb2>::()::__l2::<lambda_d381cb58fc7779d7b1a7400c6ba63a6b>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,unsigned __int64> > stateHolder;
  const dragon::rendering::coroutine::Run<unsigned __int64> run;
};

# dragon::rendering::details::runStep::__l2::<lambda_df5525a80596be2e2ff78d9490af6f0e>::()::__l2::<lambda_d96772231ef00d7358ecf86c49fd7f57>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_df5525a80596be2e2ff78d9490af6f0e>::()::__l2::<lambda_d96772231ef00d7358ecf86c49fd7f57>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::coroutine::Run<bool> run;
};

# dragon::rendering::details::runStep::__l2::<lambda_f200acfc803d93621704f593d8ae7717>::()::__l6::<lambda_c201794e9569b397d4574556637b0a8c>

struct __cppobj __declspec(align(64)) dragon::rendering::details::runStep::__l2::<lambda_f200acfc803d93621704f593d8ae7717>::()::__l6::<lambda_c201794e9569b397d4574556637b0a8c>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::TextureResourceManager::Impl::readAsync::__l2::<lambda_661b6c1d40bfda803ee4881643ecfcc0> coroutineCallback;
};

# dragon::rendering::details::runStep::__l2::<lambda_f200acfc803d93621704f593d8ae7717>::()::__l5::<lambda_f161ca190794011fd8c399182391bc7e>

struct __cppobj __declspec(align(64)) dragon::rendering::details::runStep::__l2::<lambda_f200acfc803d93621704f593d8ae7717>::()::__l5::<lambda_f161ca190794011fd8c399182391bc7e>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::TextureResourceManager::Impl::readAsync::__l2::<lambda_661b6c1d40bfda803ee4881643ecfcc0> coroutineCallback;
};

# dragon::rendering::details::runStep::__l2::<lambda_e10cfcc8bd96dc76aa2724a3faa1de0a>::()::__l2::<lambda_8fde154722b8182b3040c7b4e0d20e1a>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_e10cfcc8bd96dc76aa2724a3faa1de0a>::()::__l2::<lambda_8fde154722b8182b3040c7b4e0d20e1a>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::coroutine::Run<bool> run;
};

# dragon::rendering::details::runStep::__l2::<lambda_00429de7dd09878e4a3668b23c94d5c6>::()::__l6::<lambda_f36c08dd3cb8b019023aa1579e15a3cc>

struct __cppobj __declspec(align(8)) dragon::rendering::details::runStep::__l2::<lambda_00429de7dd09878e4a3668b23c94d5c6>::()::__l6::<lambda_f36c08dd3cb8b019023aa1579e15a3cc>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::TextureResourceManager::Impl::copyAsync::__l2::<lambda_a6349755da7110c122d82e5a120d69a2> coroutineCallback;
  _BYTE gap18[64];
};

# dragon::rendering::details::runStep::__l2::<lambda_00429de7dd09878e4a3668b23c94d5c6>::()::__l5::<lambda_61a91c263a9f826421fecc11c824e563>

struct __cppobj __declspec(align(8)) dragon::rendering::details::runStep::__l2::<lambda_00429de7dd09878e4a3668b23c94d5c6>::()::__l5::<lambda_61a91c263a9f826421fecc11c824e563>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::TextureResourceManager::Impl::copyAsync::__l2::<lambda_a6349755da7110c122d82e5a120d69a2> coroutineCallback;
  _BYTE gap18[64];
};

# dragon::rendering::details::runStep::__l2::<lambda_c4f55adc6fc3bd9650f292b46e07f10d>::()::__l2::<lambda_4ffc2df15ba54d80d4a68a47656f5b0c>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_c4f55adc6fc3bd9650f292b46e07f10d>::()::__l2::<lambda_4ffc2df15ba54d80d4a68a47656f5b0c>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::coroutine::Run<bool> run;
};

# dragon::rendering::details::runStep::__l2::<lambda_9e9b351cf491e6fbbcbd224f44748919>::()::__l6::<lambda_a799483fea850e5e7b740f8f8b259dd2>

struct __cppobj __declspec(align(8)) dragon::rendering::details::runStep::__l2::<lambda_9e9b351cf491e6fbbcbd224f44748919>::()::__l6::<lambda_a799483fea850e5e7b740f8f8b259dd2>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::DeferredResult<bool>::then::__l2::<lambda_69c394c075e7947ecf6de6e23a7a00d3> coroutineCallback;
  _BYTE gap18[32];
};

# dragon::rendering::details::runStep::__l2::<lambda_9e9b351cf491e6fbbcbd224f44748919>::()::__l5::<lambda_ce33225d20eac731c3c5d3af79018974>

struct __cppobj __declspec(align(8)) dragon::rendering::details::runStep::__l2::<lambda_9e9b351cf491e6fbbcbd224f44748919>::()::__l5::<lambda_ce33225d20eac731c3c5d3af79018974>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::DeferredResult<bool>::then::__l2::<lambda_69c394c075e7947ecf6de6e23a7a00d3> coroutineCallback;
  _BYTE gap18[32];
};

# dragon::rendering::details::runStep::__l2::<lambda_7993acc3c8eb0047818e9d50cdee1abd>::()::__l2::<lambda_e8536be739904b349810d2196988cf6e>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_7993acc3c8eb0047818e9d50cdee1abd>::()::__l2::<lambda_e8536be739904b349810d2196988cf6e>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::coroutine::Run<bool> run;
};

# dragon::rendering::details::runStep::__l2::<lambda_a1b2a7e0f3d6af6c5b58879eada7c855>::()::__l6::<lambda_89a176c9f04a1fbb53c7bf68c08f9c09>

struct __cppobj __declspec(align(8)) dragon::rendering::details::runStep::__l2::<lambda_a1b2a7e0f3d6af6c5b58879eada7c855>::()::__l6::<lambda_89a176c9f04a1fbb53c7bf68c08f9c09>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::DeferredResult<bool>::then::__l2::<lambda_b36912425dc1a21ee23179b794f7fa70> coroutineCallback;
  _BYTE gap18[32];
};

# dragon::rendering::details::runStep::__l2::<lambda_a1b2a7e0f3d6af6c5b58879eada7c855>::()::__l5::<lambda_cb722233db968e5f59240fb8589f559c>

struct __cppobj __declspec(align(8)) dragon::rendering::details::runStep::__l2::<lambda_a1b2a7e0f3d6af6c5b58879eada7c855>::()::__l5::<lambda_cb722233db968e5f59240fb8589f559c>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::DeferredResult<bool>::then::__l2::<lambda_b36912425dc1a21ee23179b794f7fa70> coroutineCallback;
  _BYTE gap18[32];
};

# dragon::rendering::details::runStep::__l2::<lambda_432cf39907ff9873ee4e999290412742>::()::__l2::<lambda_d4ad2026ebbdcf5a3d5e6a0c5150cfc6>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_432cf39907ff9873ee4e999290412742>::()::__l2::<lambda_d4ad2026ebbdcf5a3d5e6a0c5150cfc6>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,dragon::rendering::SharedTextureHandle> > stateHolder;
  const dragon::rendering::coroutine::Run<dragon::rendering::SharedTextureHandle> run;
};

# dragon::rendering::details::runStep::__l2::<lambda_f6d401144df93177f677010af549061f>::()::__l2::<lambda_5d14e8a7d4aa62a6124ce6bb12f4b788>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_f6d401144df93177f677010af549061f>::()::__l2::<lambda_5d14e8a7d4aa62a6124ce6bb12f4b788>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,dragon::rendering::SharedTextureHandle> > stateHolder;
  const dragon::rendering::coroutine::Run<dragon::rendering::SharedTextureHandle> run;
};

# dragon::rendering::details::runStep::__l2::<lambda_b05b51eb72137a21c2cf1048902f2e5e>::()::__l2::<lambda_1613ea905ce01cf62e8c52812631a7c0>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_b05b51eb72137a21c2cf1048902f2e5e>::()::__l2::<lambda_1613ea905ce01cf62e8c52812631a7c0>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::coroutine::Run<bool> run;
};

# dragon::rendering::details::runStep::__l2::<lambda_e748f7c1651b3c2605040e30cd0026d1>::()::__l2::<lambda_4789fb643bb4830fc45696c9194f4566>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_e748f7c1651b3c2605040e30cd0026d1>::()::__l2::<lambda_4789fb643bb4830fc45696c9194f4566>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,dragon::rendering::SharedTextureHandle> > stateHolder;
  const dragon::rendering::coroutine::Run<dragon::rendering::SharedTextureHandle> run;
};

# dragon::rendering::details::runStep::__l2::<lambda_61ef815dfe04875bdb4f9819a637ba35>::()::__l6::<lambda_e24b39e3a7c6f8729d91b3f580c2dc97>

struct __cppobj __declspec(align(64)) dragon::rendering::details::runStep::__l2::<lambda_61ef815dfe04875bdb4f9819a637ba35>::()::__l6::<lambda_e24b39e3a7c6f8729d91b3f580c2dc97>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,dragon::rendering::SharedTextureHandle> > stateHolder;
  const dragon::rendering::DeferredResult<unsigned __int64>::then::__l2::<lambda_8b27e51beabb27cbb611d54cf4caa5b9> coroutineCallback;
};

# dragon::rendering::details::runStep::__l2::<lambda_61ef815dfe04875bdb4f9819a637ba35>::()::__l5::<lambda_fb7cafac9c0cdd995dfb619d50ecfedb>

struct __cppobj __declspec(align(64)) dragon::rendering::details::runStep::__l2::<lambda_61ef815dfe04875bdb4f9819a637ba35>::()::__l5::<lambda_fb7cafac9c0cdd995dfb619d50ecfedb>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,dragon::rendering::SharedTextureHandle> > stateHolder;
  const dragon::rendering::DeferredResult<unsigned __int64>::then::__l2::<lambda_8b27e51beabb27cbb611d54cf4caa5b9> coroutineCallback;
};

# dragon::rendering::details::runStep::__l2::<lambda_8c9f3269710ce9476149804229953a1e>::()::__l2::<lambda_2802f83d76530a35048e269653041662>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_8c9f3269710ce9476149804229953a1e>::()::__l2::<lambda_2802f83d76530a35048e269653041662>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,dragon::rendering::SharedTextureHandle> > stateHolder;
  const dragon::rendering::coroutine::Run<dragon::rendering::SharedTextureHandle> run;
};

# dragon::rendering::details::runStep::__l2::<lambda_011674cc6bf6055202422059f93cb0b6>::()::__l2::<lambda_946c52530d637afd7db21fcf161be18c>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_011674cc6bf6055202422059f93cb0b6>::()::__l2::<lambda_946c52530d637afd7db21fcf161be18c>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,unsigned __int64> > stateHolder;
  const dragon::rendering::coroutine::Run<unsigned __int64> run;
};

# dragon::rendering::details::runStep::__l2::<lambda_66a3e410687ef6af83c0d08d2f7c8a05>::()::__l2::<lambda_6d7945c89d3c8f0e5ddea32179639038>

struct __cppobj dragon::rendering::details::runStep::__l2::<lambda_66a3e410687ef6af83c0d08d2f7c8a05>::()::__l2::<lambda_6d7945c89d3c8f0e5ddea32179639038>
{
  dragon::rendering::GraphicsTasks *gfxTasks;
  std::shared_ptr<std::variant<dragon::rendering::details::Empty,bool> > stateHolder;
  const dragon::rendering::coroutine::Run<bool> run;
};

# dragon::PagedBufferView<dragon::mesh::VertexBufferView,dragon::mesh::VertexSpanRegistry>

struct __cppobj dragon::PagedBufferView<dragon::mesh::VertexBufferView,dragon::mesh::VertexSpanRegistry> : dragon::mesh::VertexBufferView
{
  dragon::mesh::SplitMergeBasedSpanRegistry<dragon::mesh::VertexSpanType,dragon::memory::BufferSource &&>::Span mStorageSpan;
  gsl::not_null<dragon::mesh::VertexSpanRegistry *> mStorageSource;
};

# dragon::PagedBufferView<dragon::mesh::VertexBufferView,dragon::mesh::VertexSpanRegistry>_vtbl

struct /*VFT*/ dragon::PagedBufferView<dragon::mesh::VertexBufferView,dragon::mesh::VertexSpanRegistry>_vtbl
{
  void (__fastcall *~VertexBufferView)(dragon::mesh::VertexBufferView *this);
};

# dragon::UpdateVertexBufferTransaction::apply::__l5::<lambda_a0a64e1c7867513b871690dbd0dac5db>

struct __cppobj dragon::UpdateVertexBufferTransaction::apply::__l5::<lambda_a0a64e1c7867513b871690dbd0dac5db>
{
  dragon::UpdateVertexBufferTransaction *const __this;
  const unsigned int *offset;
};

# dragon::UpdateVertexBufferTransaction::apply::__l5::<lambda_dfd5f0409683ab748d9a99769867473c>

struct __cppobj dragon::UpdateVertexBufferTransaction::apply::__l5::<lambda_dfd5f0409683ab748d9a99769867473c>
{
};

# dragon::platform::helpers::VisitOverloaded<<lambda_a0a64e1c7867513b871690dbd0dac5db>,<lambda_dfd5f0409683ab748d9a99769867473c> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_a0a64e1c7867513b871690dbd0dac5db>,<lambda_dfd5f0409683ab748d9a99769867473c> > : dragon::UpdateVertexBufferTransaction::apply::__l5::<lambda_a0a64e1c7867513b871690dbd0dac5db>, dragon::UpdateVertexBufferTransaction::apply::__l5::<lambda_dfd5f0409683ab748d9a99769867473c>
{
};

# dragon::PagedBufferView<dragon::mesh::IndexBufferView,dragon::mesh::IndexSpanRegistry>

struct __cppobj dragon::PagedBufferView<dragon::mesh::IndexBufferView,dragon::mesh::IndexSpanRegistry> : dragon::mesh::IndexBufferView
{
  dragon::mesh::SplitMergeBasedSpanRegistry<dragon::mesh::IndexSpanType,dragon::memory::BufferSource &&>::Span mStorageSpan;
  gsl::not_null<dragon::mesh::IndexSpanRegistry *> mStorageSource;
};

# dragon::PagedBufferView<dragon::mesh::IndexBufferView,dragon::mesh::IndexSpanRegistry>_vtbl

struct /*VFT*/ dragon::PagedBufferView<dragon::mesh::IndexBufferView,dragon::mesh::IndexSpanRegistry>_vtbl
{
  void (__fastcall *~IndexBufferView)(dragon::mesh::IndexBufferView *this);
};

# dragon::UpdateIndexBufferTransaction

struct __cppobj dragon::UpdateIndexBufferTransaction
{
  std::vector<unsigned char> mBufferData;
  unsigned int mBufferStride;
  unsigned int mCount;
  std::string mDebugName;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_bf8217875efd4734fc345b4ef63f6648>,<lambda_752c0c19f3f0232d69a7dbbec83b0069> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_bf8217875efd4734fc345b4ef63f6648>,<lambda_752c0c19f3f0232d69a7dbbec83b0069> > : _BYTE[], _BYTE[]
{
  _BYTE gap0[16];
};

# dragon::CreateShaderBufferTransaction

struct __cppobj dragon::CreateShaderBufferTransaction
{
  std::vector<unsigned char> mBufferData;
  std::string mDebugName;
  unsigned int mBufferStride;
  unsigned int mCount;
};

# dragon::UpdateShaderBufferTransaction

struct __cppobj dragon::UpdateShaderBufferTransaction
{
  mce::ServerResourcePointer<mce::ResourcePointer<dragon::res::ResolvedShaderBufferResource,mce::ResourceBlockTemplate<dragon::res::ResolvedShaderBufferResource,mce::UncheckedHandleTracker,dragon::BufferDescription>,std::shared_ptr>,mce::AssertResourceServiceErrorHandler> mExistingBuffer;
  std::vector<unsigned char> mBufferData;
  std::string mDebugName;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_8574d24f6ba3260e6512bd19c23332cb> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_8574d24f6ba3260e6512bd19c23332cb> > : _BYTE[]
{
};

# dragon::platform::helpers::VisitOverloaded<<lambda_ef04bbbe9db0627491ed8a68d2971e49>,<lambda_cb2b4c4012b8f92c166615c0ab0943ba>,<lambda_eef8078e1bccecd3e2b3cf439b9fe412>,<lambda_ccc5cedc205676584038f50995c97560> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_ef04bbbe9db0627491ed8a68d2971e49>,<lambda_cb2b4c4012b8f92c166615c0ab0943ba>,<lambda_eef8078e1bccecd3e2b3cf439b9fe412>,<lambda_ccc5cedc205676584038f50995c97560> > : _BYTE[], _BYTE[], _BYTE[], _BYTE[]
{
  _BYTE gap0[32];
  _BYTE gap20[32];
  _BYTE gap40[32];
};

# dragon::platform::helpers::VisitOverloaded<<lambda_8b396866c5fe75c5542c62259c6a9bb1> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_8b396866c5fe75c5542c62259c6a9bb1> > : _BYTE[]
{
};

# dragon::CreateAccelerationStructureWithQuadIndexBufferTransaction

struct __cppobj dragon::CreateAccelerationStructureWithQuadIndexBufferTransaction
{
  mce::ServerResourcePointer<mce::ResourcePointer<dragon::mesh::ResolvedVertexBufferResource,mce::ResourceBlockTemplate<dragon::mesh::ResolvedVertexBufferResource,mce::UncheckedHandleTracker,dragon::BufferDescription>,std::shared_ptr>,mce::AssertResourceServiceErrorHandler> mVertexBuffer;
  unsigned int mVertexCount;
  dragon::rendering::BgfxPrimitiveIndexBuffer *mIndexBuffer;
  _BYTE mBuildFlags[2];
  std::string mDebugName;
};

# dragon::platform::helpers::VisitOverloaded<<lambda_6fcb2d35f34fb2797d3759006d77a339>,<lambda_06aa723ec6d816dc5b681cceedbd6330>,<lambda_4967c4eaee6be9a101ef51498e7e7e5c>,<lambda_f344babe6311f80830aad2f4fe42b3d0> >

struct __cppobj __declspec(align(8)) dragon::platform::helpers::VisitOverloaded<<lambda_6fcb2d35f34fb2797d3759006d77a339>,<lambda_06aa723ec6d816dc5b681cceedbd6330>,<lambda_4967c4eaee6be9a101ef51498e7e7e5c>,<lambda_f344babe6311f80830aad2f4fe42b3d0> > : _BYTE[], _BYTE[], _BYTE[], _BYTE[]
{
  _BYTE gap0[40];
  _BYTE gap28[32];
  _BYTE gap48[32];
  _BYTE gap68[32];
};

# dragon::platform::helpers::VisitOverloaded<<lambda_3b3a38ca1c5399c6f597f779098ccd90> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_3b3a38ca1c5399c6f597f779098ccd90> > : _BYTE[]
{
};

# dragon::platform::helpers::VisitOverloaded<<lambda_63759548f050931abeef0f4e2fd24f88>,<lambda_d56d4d2f7249e72c13e0d36d290eebff>,<lambda_a9c0175f63b744e2348f358ed6bca670>,<lambda_bbb4de575de97cbc76dc6ef9a84919c4> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_63759548f050931abeef0f4e2fd24f88>,<lambda_d56d4d2f7249e72c13e0d36d290eebff>,<lambda_a9c0175f63b744e2348f358ed6bca670>,<lambda_bbb4de575de97cbc76dc6ef9a84919c4> > : _BYTE[], _BYTE[], _BYTE[], _BYTE[]
{
  _BYTE gap0[40];
  _BYTE gap28[40];
  _BYTE gap50[40];
};

# dragon::UpdateVertexOnlyAccelerationStructureTransaction::apply::__l11::<lambda_0243b5dcd3a99e8661e057624a474c96>

struct __cppobj dragon::UpdateVertexOnlyAccelerationStructureTransaction::apply::__l11::<lambda_0243b5dcd3a99e8661e057624a474c96>
{
};

# dragon::platform::helpers::VisitOverloaded<<lambda_0243b5dcd3a99e8661e057624a474c96> >

struct __cppobj dragon::platform::helpers::VisitOverloaded<<lambda_0243b5dcd3a99e8661e057624a474c96> > : dragon::UpdateVertexOnlyAccelerationStructureTransaction::apply::__l11::<lambda_0243b5dcd3a99e8661e057624a474c96>
{
};

# dragon::result::Result<std::optional<dragon::res::TextureDescription>,enum dragon::res::TextureError>

struct __cppobj dragon::result::Result<std::optional<dragon::res::TextureDescription>,enum dragon::res::TextureError>
{
  std::variant<std::optional<dragon::res::TextureDescription>,enum dragon::res::TextureError> mValue;
};

# dragon::res::UpdateTextureRegionTransaction

struct __cppobj dragon::res::UpdateTextureRegionTransaction
{
  unsigned int mX;
  unsigned int mY;
  cg::ImageBuffer mImageBuffer;
};

# dragon::res::CopyTextureTransaction

struct __cppobj dragon::res::CopyTextureTransaction
{
  dragon::res::ClientTexture mSrc;
};

# dragon::res::TextureRead::wait::__l4::<lambda_01a2631989fab186b0742e2fff9bfaed>

struct __cppobj dragon::res::TextureRead::wait::__l4::<lambda_01a2631989fab186b0742e2fff9bfaed>
{
};

# dragon::res::ResolvedTextureResource::{dtor}::__l5::<lambda_28b687352226c6311cbeb9099133fe66>

struct __cppobj dragon::res::ResolvedTextureResource::{dtor}::__l5::<lambda_28b687352226c6311cbeb9099133fe66>
{
  bgfx::TextureHandle handle;
};

# DropperContainerManagerModel

struct __cppobj DropperContainerManagerModel : LevelContainerManagerModel
{
};

# DropperContainerManagerModel_vtbl

struct /*VFT*/ DropperContainerManagerModel_vtbl
{
  void (__fastcall *~IContainerManager)(IContainerManager *this);
  ContainerID (__fastcall *getContainerId)(IContainerManager *this);
  void (__fastcall *setContainerId)(IContainerManager *this, ContainerID);
  ContainerType (__fastcall *getContainerType)(IContainerManager *this);
  void (__fastcall *setContainerType)(IContainerManager *this, ContainerType);
  void (__fastcall *serverInitItemStackIds)(IContainerManager *this);
  std::vector<ItemStack> *(__fastcall *getItemCopies)(IContainerManager *this, std::vector<ItemStack> *result);
  void (__fastcall *setSlot)(IContainerManager *this, int, const ItemStack *, bool);
  const ItemStack *(__fastcall *getSlot)(IContainerManager *this, int);
  void (__fastcall *setData)(IContainerManager *this, int, int);
  void (__fastcall *broadcastChanges)(IContainerManager *this);
  bool (__fastcall *validateContainer)(IContainerManager *this);
  bool (__fastcall *isValid)(ContainerManagerModel *this, float);
  ContainerScreenContext *(__fastcall *_postInit)(ContainerManagerModel *this, ContainerScreenContext *result);
};

# DispenserContainerManagerModel

struct __cppobj DispenserContainerManagerModel : LevelContainerManagerModel
{
};

# DispenserContainerManagerModel_vtbl

struct /*VFT*/ DispenserContainerManagerModel_vtbl
{
  void (__fastcall *~IContainerManager)(IContainerManager *this);
  ContainerID (__fastcall *getContainerId)(IContainerManager *this);
  void (__fastcall *setContainerId)(IContainerManager *this, ContainerID);
  ContainerType (__fastcall *getContainerType)(IContainerManager *this);
  void (__fastcall *setContainerType)(IContainerManager *this, ContainerType);
  void (__fastcall *serverInitItemStackIds)(IContainerManager *this);
  std::vector<ItemStack> *(__fastcall *getItemCopies)(IContainerManager *this, std::vector<ItemStack> *result);
  void (__fastcall *setSlot)(IContainerManager *this, int, const ItemStack *, bool);
  const ItemStack *(__fastcall *getSlot)(IContainerManager *this, int);
  void (__fastcall *setData)(IContainerManager *this, int, int);
  void (__fastcall *broadcastChanges)(IContainerManager *this);
  bool (__fastcall *validateContainer)(IContainerManager *this);
  bool (__fastcall *isValid)(ContainerManagerModel *this, float);
  ContainerScreenContext *(__fastcall *_postInit)(ContainerManagerModel *this, ContainerScreenContext *result);
};

# DanceSystem

struct __cppobj DanceSystem : ITickingSystem
{
};

# DanceSystem_vtbl

struct /*VFT*/ DanceSystem_vtbl
{
  void (__fastcall *~ITickingSystem)(ITickingSystem *this);
  void (__fastcall *tick)(ITickingSystem *this, EntityRegistry *);
};

# DwellerSystem

struct __cppobj DwellerSystem : ITickingSystem
{
};

# DwellerSystem_vtbl

struct /*VFT*/ DwellerSystem_vtbl
{
  void (__fastcall *~ITickingSystem)(ITickingSystem *this);
  void (__fastcall *tick)(ITickingSystem *this, EntityRegistry *);
};

# DoorInteractGoal

struct __cppobj DoorInteractGoal : Goal
{
  BlockPos mDoorPos;
  const DoorBlock *mDoorBlock;
  bool mInitialToggledState;
  bool mMobOversized;
  bool mExited;
  float mDoorOpenDirX;
  float mDoorOpenDirZ;
  Direction::Type mEnterDirection;
  Direction::Type mExitDirection;
  Mob *mMob;
};

# DoorInteractGoal_vtbl

struct /*VFT*/ DoorInteractGoal_vtbl
{
  void (__fastcall *~Goal)(Goal *this);
  bool (__fastcall *canUse)(Goal *this);
  bool (__fastcall *canContinueToUse)(Goal *this);
  bool (__fastcall *canBeInterrupted)(Goal *this);
  void (__fastcall *start)(Goal *this);
  void (__fastcall *stop)(Goal *this);
  void (__fastcall *tick)(Goal *this);
  void (__fastcall *appendDebugInfo)(Goal *this, std::string *);
  bool (__fastcall *isTargetGoal)(Goal *this);
  void (__fastcall *onPlayerDimensionChanged)(Goal *this, Player *, AutomaticID<Dimension,int>);
};

# DefendVillageTargetDefinition

struct __cppobj __declspec(align(8)) DefendVillageTargetDefinition : TargetGoalDefinition
{
  float mAttackChance;
};

# DefendVillageTargetDefinition_vtbl

struct /*VFT*/ DefendVillageTargetDefinition_vtbl
{
  void (__fastcall *~BaseGoalDefinition)(BaseGoalDefinition *this);
  bool (__fastcall *validateMobType)(BaseGoalDefinition *this, Mob *);
  bool (__fastcall *validate)(BaseGoalDefinition *this, Mob *);
};

# DefendVillageTargetGoal

struct __cppobj __declspec(align(8)) DefendVillageTargetGoal : TargetGoal
{
  Mob *mPotentialTarget;
  float mAttackChance;
};

# DefendVillageTargetGoal_vtbl

struct /*VFT*/ DefendVillageTargetGoal_vtbl
{
  void (__fastcall *~Goal)(Goal *this);
  bool (__fastcall *canUse)(Goal *this);
  bool (__fastcall *canContinueToUse)(Goal *this);
  bool (__fastcall *canBeInterrupted)(Goal *this);
  void (__fastcall *start)(Goal *this);
  void (__fastcall *stop)(Goal *this);
  void (__fastcall *tick)(Goal *this);
  void (__fastcall *appendDebugInfo)(Goal *this, std::string *);
  bool (__fastcall *isTargetGoal)(Goal *this);
  void (__fastcall *onPlayerDimensionChanged)(Goal *this, Player *, AutomaticID<Dimension,int>);
  bool (__fastcall *_canAttack)(TargetGoal *this, Mob *, Actor *, bool, bool, const MobDescriptor **);
};

# DelayedAttackDefinition

struct __cppobj __declspec(align(8)) DelayedAttackDefinition : MeleeAttackDefinition
{
  float mAttackDuration;
  float mHitDelayPercent;
  LevelSoundEvent mSound;
};

# DelayedAttackDefinition_vtbl

struct /*VFT*/ DelayedAttackDefinition_vtbl
{
  void (__fastcall *~BaseGoalDefinition)(BaseGoalDefinition *this);
  bool (__fastcall *validateMobType)(BaseGoalDefinition *this, Mob *);
  bool (__fastcall *validate)(BaseGoalDefinition *this, Mob *);
};

# DelayedAttackGoal

struct __cppobj __declspec(align(8)) DelayedAttackGoal : MeleeAttackGoal
{
  int mAttackDurationTicks;
  int mPostPathingTicks;
  int mHitDelayTicks;
  _BYTE mAttackFlag[4];
  LevelSoundEvent mSound;
};

# DelayedAttackGoal_vtbl

struct /*VFT*/ DelayedAttackGoal_vtbl
{
  void (__fastcall *~Goal)(Goal *this);
  bool (__fastcall *canUse)(Goal *this);
  bool (__fastcall *canContinueToUse)(Goal *this);
  bool (__fastcall *canBeInterrupted)(Goal *this);
  void (__fastcall *start)(Goal *this);
  void (__fastcall *stop)(Goal *this);
  void (__fastcall *tick)(Goal *this);
  void (__fastcall *appendDebugInfo)(Goal *this, std::string *);
  bool (__fastcall *isTargetGoal)(Goal *this);
  void (__fastcall *onPlayerDimensionChanged)(Goal *this, Player *, AutomaticID<Dimension,int>);
  void (__fastcall *_attemptMoveToTarget)(MeleeAttackGoal *this, Actor *);
  void (__fastcall *_attemptAttackTarget)(MeleeAttackGoal *this, Actor *, float, float, float);
};

# DragonBaseGoalDefinition

struct __cppobj __declspec(align(8)) DragonBaseGoalDefinition : BaseGoalDefinition
{
  float mActiveSpeed;
  float mFlightSpeed;
  float mTurnSpeed;
  FloatRange mTargetZone;
};

# DragonBaseGoalDefinition_vtbl

struct /*VFT*/ DragonBaseGoalDefinition_vtbl
{
  void (__fastcall *~BaseGoalDefinition)(BaseGoalDefinition *this);
  bool (__fastcall *validateMobType)(BaseGoalDefinition *this, Mob *);
  bool (__fastcall *validate)(BaseGoalDefinition *this, Mob *);
};

# DragonBaseGoal

struct __cppobj __declspec(align(8)) DragonBaseGoal : Goal
{
  EnderDragon *mDragon;
  float mActiveSpeed;
  float mFlightSpeed;
  float mTurnSpeed;
  FloatRange mTargetZone;
};

# DragonBaseGoal_vtbl

struct /*VFT*/ DragonBaseGoal_vtbl
{
  void (__fastcall *~Goal)(Goal *this);
  bool (__fastcall *canUse)(Goal *this);
  bool (__fastcall *canContinueToUse)(Goal *this);
  bool (__fastcall *canBeInterrupted)(Goal *this);
  void (__fastcall *start)(Goal *this);
  void (__fastcall *stop)(Goal *this);
  void (__fastcall *tick)(Goal *this);
  void (__fastcall *appendDebugInfo)(Goal *this, std::string *);
  bool (__fastcall *isTargetGoal)(Goal *this);
  void (__fastcall *onPlayerDimensionChanged)(Goal *this, Player *, AutomaticID<Dimension,int>);
};

# DragonChargePlayerDefinition

struct __cppobj __declspec(align(8)) DragonChargePlayerDefinition : DragonBaseGoalDefinition
{
  float mContinueChargeThresholdTime;
};

# DragonChargePlayerDefinition_vtbl

struct /*VFT*/ DragonChargePlayerDefinition_vtbl
{
  void (__fastcall *~BaseGoalDefinition)(BaseGoalDefinition *this);
  bool (__fastcall *validateMobType)(BaseGoalDefinition *this, Mob *);
  bool (__fastcall *validate)(BaseGoalDefinition *this, Mob *);
};

# DragonChargePlayerGoal

struct __cppobj DragonChargePlayerGoal : DragonBaseGoal
{
  int mOutsideChargeZoneTicks;
  int mContinueChargeThresholdTicks;
};

# DragonChargePlayerGoal_vtbl

struct /*VFT*/ DragonChargePlayerGoal_vtbl
{
  void (__fastcall *~Goal)(Goal *this);
  bool (__fastcall *canUse)(Goal *this);
  bool (__fastcall *canContinueToUse)(Goal *this);
  bool (__fastcall *canBeInterrupted)(Goal *this);
  void (__fastcall *start)(Goal *this);
  void (__fastcall *stop)(Goal *this);
  void (__fastcall *tick)(Goal *this);
  void (__fastcall *appendDebugInfo)(Goal *this, std::string *);
  bool (__fastcall *isTargetGoal)(Goal *this);
  void (__fastcall *onPlayerDimensionChanged)(Goal *this, Player *, AutomaticID<Dimension,int>);
};

# DragonBaseGoalDefinition::buildDragonBaseSchema::__l2::<lambda_ac3b56ffc0f5393751f1704d25cc5371>

struct __cppobj DragonBaseGoalDefinition::buildDragonBaseSchema::__l2::<lambda_ac3b56ffc0f5393751f1704d25cc5371>
{
  bool targetZoneJsonRequired;
  std::string targetZoneField;
};

# DragonBaseGoalDefinition::buildDragonBaseSchema::__l2::<lambda_1938c658b5a686de9d54375c62570bb0>

struct __cppobj DragonBaseGoalDefinition::buildDragonBaseSchema::__l2::<lambda_1938c658b5a686de9d54375c62570bb0>
{
};

# DragonDeathGoal

struct __cppobj __declspec(align(8)) DragonDeathGoal : Goal
{
  EnderDragon *mDragon;
  int mTime;
};

# DragonDeathGoal_vtbl

struct /*VFT*/ DragonDeathGoal_vtbl
{
  void (__fastcall *~Goal)(Goal *this);
  bool (__fastcall *canUse)(Goal *this);
  bool (__fastcall *canContinueToUse)(Goal *this);
  bool (__fastcall *canBeInterrupted)(Goal *this);
  void (__fastcall *start)(Goal *this);
  void (__fastcall *stop)(Goal *this);
  void (__fastcall *tick)(Goal *this);
  void (__fastcall *appendDebugInfo)(Goal *this, std::string *);
  bool (__fastcall *isTargetGoal)(Goal *this);
  void (__fastcall *onPlayerDimensionChanged)(Goal *this, Player *, AutomaticID<Dimension,int>);
};

# DragonFlamingDefinition

struct __cppobj DragonFlamingDefinition : BaseGoalDefinition
{
  int mGroundFlameAttackCount;
  float mCooldownTime;
  float mFlameTime;
  float mRoarTime;
  float mSmokeRadius;
  float mSmokeTime;
  std::string mSmokeColor;
};

# DragonFlamingDefinition_vtbl

struct /*VFT*/ DragonFlamingDefinition_vtbl
{
  void (__fastcall *~BaseGoalDefinition)(BaseGoalDefinition *this);
  bool (__fastcall *validateMobType)(BaseGoalDefinition *this, Mob *);
  bool (__fastcall *validate)(BaseGoalDefinition *this, Mob *);
};

# DragonFlamingGoal

struct __cppobj DragonFlamingGoal : Goal
{
  EnderDragon *mDragon;
  int mGroundFlameAttackCount;
  int mCooldownTicks;
  int mFlameTicks;
  int mFlameDurationTicks;
  int mRoarTicks;
  int mRoarDurationTicks;
  int mSmokeDurationTicks;
  float mSmokeRadius;
  mce::Color mSmokeColor;
};

# DragonFlamingGoal_vtbl

struct /*VFT*/ DragonFlamingGoal_vtbl
{
  void (__fastcall *~Goal)(Goal *this);
  bool (__fastcall *canUse)(Goal *this);
  bool (__fastcall *canContinueToUse)(Goal *this);
  bool (__fastcall *canBeInterrupted)(Goal *this);
  void (__fastcall *start)(Goal *this);
  void (__fastcall *stop)(Goal *this);
  void (__fastcall *tick)(Goal *this);
  void (__fastcall *appendDebugInfo)(Goal *this, std::string *);
  bool (__fastcall *isTargetGoal)(Goal *this);
  void (__fastcall *onPlayerDimensionChanged)(Goal *this, Player *, AutomaticID<Dimension,int>);
};

# DragonHoldingPatternGoal

struct __cppobj DragonHoldingPatternGoal : Goal
{
  std::unique_ptr<Path> mCurrentPath;
  bool mClockwise;
  EnderDragon *mDragon;
};

# DragonHoldingPatternGoal_vtbl

struct /*VFT*/ DragonHoldingPatternGoal_vtbl
{
  void (__fastcall *~Goal)(Goal *this);
  bool (__fastcall *canUse)(Goal *this);
  bool (__fastcall *canContinueToUse)(Goal *this);
  bool (__fastcall *canBeInterrupted)(Goal *this);
  void (__fastcall *start)(Goal *this);
  void (__fastcall *stop)(Goal *this);
  void (__fastcall *tick)(Goal *this);
  void (__fastcall *appendDebugInfo)(Goal *this, std::string *);
  bool (__fastcall *isTargetGoal)(Goal *this);
  void (__fastcall *onPlayerDimensionChanged)(Goal *this, Player *, AutomaticID<Dimension,int>);
};

# DragonLandingGoal

struct __cppobj __declspec(align(8)) DragonLandingGoal : Goal
{
  EnderDragon *mDragon;
  std::unique_ptr<Path> mCurrentPath;
  bool mDone;
};

# DragonLandingGoal_vtbl

struct /*VFT*/ DragonLandingGoal_vtbl
{
  void (__fastcall *~Goal)(Goal *this);
  bool (__fastcall *canUse)(Goal *this);
  bool (__fastcall *canContinueToUse)(Goal *this);
  bool (__fastcall *canBeInterrupted)(Goal *this);
  void (__fastcall *start)(Goal *this);
  void (__fastcall *stop)(Goal *this);
  void (__fastcall *tick)(Goal *this);
  void (__fastcall *appendDebugInfo)(Goal *this, std::string *);
  bool (__fastcall *isTargetGoal)(Goal *this);
  void (__fastcall *onPlayerDimensionChanged)(Goal *this, Player *, AutomaticID<Dimension,int>);
};

# DragonScanningGoal

struct __cppobj __declspec(align(8)) DragonScanningGoal : Goal
{
  EnderDragon *mDragon;
  float mScanTime;
};

# DragonScanningGoal_vtbl

struct /*VFT*/ DragonScanningGoal_vtbl
{
  void (__fastcall *~Goal)(Goal *this);
  bool (__fastcall *canUse)(Goal *this);
  bool (__fastcall *canContinueToUse)(Goal *this);
  bool (__fastcall *canBeInterrupted)(Goal *this);
  void (__fastcall *start)(Goal *this);
  void (__fastcall *stop)(Goal *this);
  void (__fastcall *tick)(Goal *this);
  void (__fastcall *appendDebugInfo)(Goal *this, std::string *);
  bool (__fastcall *isTargetGoal)(Goal *this);
  void (__fastcall *onPlayerDimensionChanged)(Goal *this, Player *, AutomaticID<Dimension,int>);
};

# DragonStrafePlayerDefinition

struct __cppobj DragonStrafePlayerDefinition : DragonBaseGoalDefinition
{
  float mSwitchDirectionProbability;
  float mRangeAndViewTime;
  float mFireballRange;
  float mViewAngle;
};

# DragonStrafePlayerDefinition_vtbl

struct /*VFT*/ DragonStrafePlayerDefinition_vtbl
{
  void (__fastcall *~BaseGoalDefinition)(BaseGoalDefinition *this);
  bool (__fastcall *validateMobType)(BaseGoalDefinition *this, Mob *);
  bool (__fastcall *validate)(BaseGoalDefinition *this, Mob *);
};

# DragonStrafePlayerGoal

struct __cppobj __declspec(align(8)) DragonStrafePlayerGoal : DragonBaseGoal
{
  Actor *mAttackTarget;
  std::unique_ptr<Path> mCurrentPath;
  bool mClockwise;
  bool mDone;
  int mHasTargetTicks;
  int mRangeAndViewTicks;
  float mFireballPower;
  float mFireballRange;
  float mSwitchDirectionProbability;
  float mViewAngle;
};

# DragonStrafePlayerGoal_vtbl

struct /*VFT*/ DragonStrafePlayerGoal_vtbl
{
  void (__fastcall *~Goal)(Goal *this);
  bool (__fastcall *canUse)(Goal *this);
  bool (__fastcall *canContinueToUse)(Goal *this);
  bool (__fastcall *canBeInterrupted)(Goal *this);
  void (__fastcall *start)(Goal *this);
  void (__fastcall *stop)(Goal *this);
  void (__fastcall *tick)(Goal *this);
  void (__fastcall *appendDebugInfo)(Goal *this, std::string *);
  bool (__fastcall *isTargetGoal)(Goal *this);
  void (__fastcall *onPlayerDimensionChanged)(Goal *this, Player *, AutomaticID<Dimension,int>);
};

# DragonBaseGoalDefinition::buildDragonBaseSchema::__l2::<lambda_b1aa74c093f58ccb20c883e4bd30ac6c>

struct __cppobj DragonBaseGoalDefinition::buildDragonBaseSchema::__l2::<lambda_b1aa74c093f58ccb20c883e4bd30ac6c>
{
  bool targetZoneJsonRequired;
  std::string targetZoneField;
};

# DragonBaseGoalDefinition::buildDragonBaseSchema::__l2::<lambda_539b8604f9adc26e401b11765918b94f>

struct __cppobj DragonBaseGoalDefinition::buildDragonBaseSchema::__l2::<lambda_539b8604f9adc26e401b11765918b94f>
{
};

# DragonTakeoffGoal

struct __cppobj DragonTakeoffGoal : Goal
{
  bool mFirstTick;
  std::unique_ptr<Path> mCurrentPath;
  EnderDragon *mDragon;
};

# DragonTakeoffGoal_vtbl

struct /*VFT*/ DragonTakeoffGoal_vtbl
{
  void (__fastcall *~Goal)(Goal *this);
  bool (__fastcall *canUse)(Goal *this);
  bool (__fastcall *canContinueToUse)(Goal *this);
  bool (__fastcall *canBeInterrupted)(Goal *this);
  void (__fastcall *start)(Goal *this);
  void (__fastcall *stop)(Goal *this);
  void (__fastcall *tick)(Goal *this);
  void (__fastcall *appendDebugInfo)(Goal *this, std::string *);
  bool (__fastcall *isTargetGoal)(Goal *this);
  void (__fastcall *onPlayerDimensionChanged)(Goal *this, Player *, AutomaticID<Dimension,int>);
};

# DropItemForDefinition

struct __cppobj __declspec(align(8)) DropItemForDefinition : BaseGoalDefinition
{
  float mSecondsBeforePickup;
  float mTotalCoolDownSeconds;
  float mDropItemChance;
  float mOfferingDistance;
  float mMinimumTeleportDistance;
  float mLookAtTargetMaxHeadHeight;
  std::string mLootTable;
  DefinitionTrigger mOnDropAttempt;
  FloatRange mTimeOfDayRange;
  Vec3 mTargetRange;
  Vec3 mTeleportDistanceFromTarget;
  std::vector<MobDescriptor> mTargetFilter;
  int mSearchCount;
  int mSearchHeight;
  int mSearchRange;
  float mGoalRadius;
  float mSpeedModifier;
};

# DropItemForDefinition_vtbl

struct /*VFT*/ DropItemForDefinition_vtbl
{
  void (__fastcall *~BaseGoalDefinition)(BaseGoalDefinition *this);
  bool (__fastcall *validateMobType)(BaseGoalDefinition *this, Mob *);
  bool (__fastcall *validate)(BaseGoalDefinition *this, Mob *);
};

# DropItemForGoal

struct __cppobj DropItemForGoal : BaseMoveToBlockGoal
{
  bool mHasDroppedItem;
  int mCooldownRemaining;
  int mTicksBeforePickup;
  int mTotalCooldownTicks;
  float mDropItemChance;
  float mPreferredSquareDistance;
  float mMinimumTeleportDistance;
  float mLookAtTargetMaxHeadHeight;
  std::string mLootTable;
  ActorUniqueID mDropForID;
  DefinitionTrigger mOnDropAttempt;
  FloatRange mTimeOfDayRange;
  Vec3 mTargetRange;
  Vec3 mTeleportDistanceFromTarget;
  std::vector<MobDescriptor> mTargetFilter;
};

# DropItemForGoal_vtbl

struct /*VFT*/ DropItemForGoal_vtbl
{
  void (__fastcall *~Goal)(Goal *this);
  bool (__fastcall *canUse)(Goal *this);
  bool (__fastcall *canContinueToUse)(Goal *this);
  bool (__fastcall *canBeInterrupted)(Goal *this);
  void (__fastcall *start)(Goal *this);
  void (__fastcall *stop)(Goal *this);
  void (__fastcall *tick)(Goal *this);
  void (__fastcall *appendDebugInfo)(Goal *this, std::string *);
  bool (__fastcall *isTargetGoal)(Goal *this);
  void (__fastcall *onPlayerDimensionChanged)(Goal *this, Player *, AutomaticID<Dimension,int>);
  bool (__fastcall *hasReachedTarget)(BaseMoveToGoal *this);
  bool (__fastcall *isValidTarget)(BaseMoveToGoal *this, BlockSource *, const BlockPos *);
  int (__fastcall *_nextStartTick)(BaseMoveToGoal *this);
  bool (__fastcall *_canReach)(BaseMoveToGoal *this, const BlockPos *);
  void (__fastcall *_moveToBlock)(BaseMoveToGoal *this);
  Vec3 *(__fastcall *_getTargetPosition)(BaseMoveToGoal *this, Vec3 *result);
  unsigned __int64 (__fastcall *_getRepathTime)(BaseMoveToGoal *this);
  bool (__fastcall *findTargetBlock)(BaseMoveToBlockGoal *this);
};

# DropItemForDefinition::buildSchema::__l2::<lambda_ba3f88ce38b474a7f7f5b2392b30d3e4>

struct __cppobj DropItemForDefinition::buildSchema::__l2::<lambda_ba3f88ce38b474a7f7f5b2392b30d3e4>
{
  bool timeOfDayRangeJsonRequired;
  std::string timeOfDayRangeField;
};

# DropItemForDefinition::buildSchema::__l2::<lambda_2a97a3f1a23358a985ef13bb8cdac69a>

struct __cppobj DropItemForDefinition::buildSchema::__l2::<lambda_2a97a3f1a23358a985ef13bb8cdac69a>
{
};

# DefinitionInstanceTyped<AvoidBlockGoal::Definition>

struct __cppobj DefinitionInstanceTyped<AvoidBlockGoal::Definition> : IDefinitionInstance
{
  std::unique_ptr<AvoidBlockGoal::Definition> mDefinition;
};

# DefinitionInstanceTyped<AvoidBlockGoal::Definition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<AvoidBlockGoal::Definition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,AvoidBlockGoal::Definition,AvoidBlockGoal>

struct __cppobj DefinitionInstance<EntityContext &,AvoidBlockGoal::Definition,AvoidBlockGoal> : DefinitionInstanceTyped<AvoidBlockGoal::Definition>
{
};

# DefinitionInstance<EntityContext &,AvoidBlockGoal::Definition,AvoidBlockGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,AvoidBlockGoal::Definition,AvoidBlockGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,AvoidBlockGoal::Definition,AvoidBlockGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,AvoidBlockGoal::Definition,AvoidBlockGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,AvoidBlockGoal::Definition,AvoidBlockGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,AvoidBlockGoal::Definition,AvoidBlockGoal> *this, EntityContext *);
};

# DefinitionSerializer<AvoidBlockGoal::Definition>

struct __cppobj DefinitionSerializer<AvoidBlockGoal::Definition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<AvoidBlockGoal::Definition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,AvoidBlockGoal::Definition> > mSchema;
};

# DefinitionSerializer<AvoidBlockGoal::Definition>_vtbl

struct /*VFT*/ DefinitionSerializer<AvoidBlockGoal::Definition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<AvoidMobTypeDefinition>

struct __cppobj DefinitionInstanceTyped<AvoidMobTypeDefinition> : IDefinitionInstance
{
  std::unique_ptr<AvoidMobTypeDefinition> mDefinition;
};

# DefinitionInstanceTyped<AvoidMobTypeDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<AvoidMobTypeDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,AvoidMobTypeDefinition,AvoidMobTypeGoal>

struct __cppobj DefinitionInstance<EntityContext &,AvoidMobTypeDefinition,AvoidMobTypeGoal> : DefinitionInstanceTyped<AvoidMobTypeDefinition>
{
};

# DefinitionInstance<EntityContext &,AvoidMobTypeDefinition,AvoidMobTypeGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,AvoidMobTypeDefinition,AvoidMobTypeGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,AvoidMobTypeDefinition,AvoidMobTypeGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,AvoidMobTypeDefinition,AvoidMobTypeGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,AvoidMobTypeDefinition,AvoidMobTypeGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,AvoidMobTypeDefinition,AvoidMobTypeGoal> *this, EntityContext *);
};

# DefinitionSerializer<AvoidMobTypeDefinition>

struct __cppobj DefinitionSerializer<AvoidMobTypeDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<AvoidMobTypeDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,AvoidMobTypeDefinition> > mSchema;
};

# DefinitionSerializer<AvoidMobTypeDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<AvoidMobTypeDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<ChargeAttackDefinition>

struct __cppobj DefinitionInstanceTyped<ChargeAttackDefinition> : IDefinitionInstance
{
  std::unique_ptr<ChargeAttackDefinition> mDefinition;
};

# DefinitionInstanceTyped<ChargeAttackDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<ChargeAttackDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,ChargeAttackDefinition,ChargeAttackGoal>

struct __cppobj DefinitionInstance<EntityContext &,ChargeAttackDefinition,ChargeAttackGoal> : DefinitionInstanceTyped<ChargeAttackDefinition>
{
};

# DefinitionInstance<EntityContext &,ChargeAttackDefinition,ChargeAttackGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,ChargeAttackDefinition,ChargeAttackGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,ChargeAttackDefinition,ChargeAttackGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,ChargeAttackDefinition,ChargeAttackGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,ChargeAttackDefinition,ChargeAttackGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,ChargeAttackDefinition,ChargeAttackGoal> *this, EntityContext *);
};

# DefinitionSerializer<ChargeAttackDefinition>

struct __cppobj DefinitionSerializer<ChargeAttackDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<ChargeAttackDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,ChargeAttackDefinition> > mSchema;
};

# DefinitionSerializer<ChargeAttackDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<ChargeAttackDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<ChargeHeldItemDefinition>

struct __cppobj DefinitionInstanceTyped<ChargeHeldItemDefinition> : IDefinitionInstance
{
  std::unique_ptr<ChargeHeldItemDefinition> mDefinition;
};

# DefinitionInstanceTyped<ChargeHeldItemDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<ChargeHeldItemDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,ChargeHeldItemDefinition,ChargeHeldItemGoal>

struct __cppobj DefinitionInstance<EntityContext &,ChargeHeldItemDefinition,ChargeHeldItemGoal> : DefinitionInstanceTyped<ChargeHeldItemDefinition>
{
};

# DefinitionInstance<EntityContext &,ChargeHeldItemDefinition,ChargeHeldItemGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,ChargeHeldItemDefinition,ChargeHeldItemGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,ChargeHeldItemDefinition,ChargeHeldItemGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,ChargeHeldItemDefinition,ChargeHeldItemGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,ChargeHeldItemDefinition,ChargeHeldItemGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,ChargeHeldItemDefinition,ChargeHeldItemGoal> *this, EntityContext *);
};

# DefinitionSerializer<ChargeHeldItemDefinition>

struct __cppobj DefinitionSerializer<ChargeHeldItemDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<ChargeHeldItemDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,ChargeHeldItemDefinition> > mSchema;
};

# DefinitionSerializer<ChargeHeldItemDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<ChargeHeldItemDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<CircleAroundAnchorDefinition>

struct __cppobj DefinitionInstanceTyped<CircleAroundAnchorDefinition> : IDefinitionInstance
{
  std::unique_ptr<CircleAroundAnchorDefinition> mDefinition;
};

# DefinitionInstanceTyped<CircleAroundAnchorDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<CircleAroundAnchorDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,CircleAroundAnchorDefinition,CircleAroundAnchorGoal>

struct __cppobj DefinitionInstance<EntityContext &,CircleAroundAnchorDefinition,CircleAroundAnchorGoal> : DefinitionInstanceTyped<CircleAroundAnchorDefinition>
{
};

# DefinitionInstance<EntityContext &,CircleAroundAnchorDefinition,CircleAroundAnchorGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,CircleAroundAnchorDefinition,CircleAroundAnchorGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,CircleAroundAnchorDefinition,CircleAroundAnchorGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,CircleAroundAnchorDefinition,CircleAroundAnchorGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,CircleAroundAnchorDefinition,CircleAroundAnchorGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,CircleAroundAnchorDefinition,CircleAroundAnchorGoal> *this, EntityContext *);
};

# DefinitionSerializer<CircleAroundAnchorDefinition>

struct __cppobj DefinitionSerializer<CircleAroundAnchorDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<CircleAroundAnchorDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,CircleAroundAnchorDefinition> > mSchema;
};

# DefinitionSerializer<CircleAroundAnchorDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<CircleAroundAnchorDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<ControlledByPlayerDefinition>

struct __cppobj DefinitionInstanceTyped<ControlledByPlayerDefinition> : IDefinitionInstance
{
  std::unique_ptr<ControlledByPlayerDefinition> mDefinition;
};

# DefinitionInstanceTyped<ControlledByPlayerDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<ControlledByPlayerDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,ControlledByPlayerDefinition,ControlledByPlayerGoal>

struct __cppobj DefinitionInstance<EntityContext &,ControlledByPlayerDefinition,ControlledByPlayerGoal> : DefinitionInstanceTyped<ControlledByPlayerDefinition>
{
};

# DefinitionInstance<EntityContext &,ControlledByPlayerDefinition,ControlledByPlayerGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,ControlledByPlayerDefinition,ControlledByPlayerGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,ControlledByPlayerDefinition,ControlledByPlayerGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,ControlledByPlayerDefinition,ControlledByPlayerGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,ControlledByPlayerDefinition,ControlledByPlayerGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,ControlledByPlayerDefinition,ControlledByPlayerGoal> *this, EntityContext *);
};

# DefinitionSerializer<ControlledByPlayerDefinition>

struct __cppobj DefinitionSerializer<ControlledByPlayerDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<ControlledByPlayerDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,ControlledByPlayerDefinition> > mSchema;
};

# DefinitionSerializer<ControlledByPlayerDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<ControlledByPlayerDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<DefendVillageTargetDefinition>

struct __cppobj DefinitionInstanceTyped<DefendVillageTargetDefinition> : IDefinitionInstance
{
  std::unique_ptr<DefendVillageTargetDefinition> mDefinition;
};

# DefinitionInstanceTyped<DefendVillageTargetDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<DefendVillageTargetDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,DefendVillageTargetDefinition,DefendVillageTargetGoal>

struct __cppobj DefinitionInstance<EntityContext &,DefendVillageTargetDefinition,DefendVillageTargetGoal> : DefinitionInstanceTyped<DefendVillageTargetDefinition>
{
};

# DefinitionInstance<EntityContext &,DefendVillageTargetDefinition,DefendVillageTargetGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,DefendVillageTargetDefinition,DefendVillageTargetGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,DefendVillageTargetDefinition,DefendVillageTargetGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,DefendVillageTargetDefinition,DefendVillageTargetGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,DefendVillageTargetDefinition,DefendVillageTargetGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,DefendVillageTargetDefinition,DefendVillageTargetGoal> *this, EntityContext *);
};

# DefinitionSerializer<DefendVillageTargetDefinition>

struct __cppobj DefinitionSerializer<DefendVillageTargetDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<DefendVillageTargetDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,DefendVillageTargetDefinition> > mSchema;
};

# DefinitionSerializer<DefendVillageTargetDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<DefendVillageTargetDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<DelayedAttackDefinition>

struct __cppobj DefinitionInstanceTyped<DelayedAttackDefinition> : IDefinitionInstance
{
  std::unique_ptr<DelayedAttackDefinition> mDefinition;
};

# DefinitionInstanceTyped<DelayedAttackDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<DelayedAttackDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,DelayedAttackDefinition,DelayedAttackGoal>

struct __cppobj DefinitionInstance<EntityContext &,DelayedAttackDefinition,DelayedAttackGoal> : DefinitionInstanceTyped<DelayedAttackDefinition>
{
};

# DefinitionInstance<EntityContext &,DelayedAttackDefinition,DelayedAttackGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,DelayedAttackDefinition,DelayedAttackGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,DelayedAttackDefinition,DelayedAttackGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,DelayedAttackDefinition,DelayedAttackGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,DelayedAttackDefinition,DelayedAttackGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,DelayedAttackDefinition,DelayedAttackGoal> *this, EntityContext *);
};

# DefinitionSerializer<DelayedAttackDefinition>

struct __cppobj DefinitionSerializer<DelayedAttackDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<DelayedAttackDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,DelayedAttackDefinition> > mSchema;
};

# DefinitionSerializer<DelayedAttackDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<DelayedAttackDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<DragonChargePlayerDefinition>

struct __cppobj DefinitionInstanceTyped<DragonChargePlayerDefinition> : IDefinitionInstance
{
  std::unique_ptr<DragonChargePlayerDefinition> mDefinition;
};

# DefinitionInstanceTyped<DragonChargePlayerDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<DragonChargePlayerDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,DragonChargePlayerDefinition,DragonChargePlayerGoal>

struct __cppobj DefinitionInstance<EntityContext &,DragonChargePlayerDefinition,DragonChargePlayerGoal> : DefinitionInstanceTyped<DragonChargePlayerDefinition>
{
};

# DefinitionInstance<EntityContext &,DragonChargePlayerDefinition,DragonChargePlayerGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,DragonChargePlayerDefinition,DragonChargePlayerGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,DragonChargePlayerDefinition,DragonChargePlayerGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,DragonChargePlayerDefinition,DragonChargePlayerGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,DragonChargePlayerDefinition,DragonChargePlayerGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,DragonChargePlayerDefinition,DragonChargePlayerGoal> *this, EntityContext *);
};

# DefinitionSerializer<DragonChargePlayerDefinition>

struct __cppobj DefinitionSerializer<DragonChargePlayerDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<DragonChargePlayerDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,DragonChargePlayerDefinition> > mSchema;
};

# DefinitionSerializer<DragonChargePlayerDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<DragonChargePlayerDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<DragonFlamingDefinition>

struct __cppobj DefinitionInstanceTyped<DragonFlamingDefinition> : IDefinitionInstance
{
  std::unique_ptr<DragonFlamingDefinition> mDefinition;
};

# DefinitionInstanceTyped<DragonFlamingDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<DragonFlamingDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,DragonFlamingDefinition,DragonFlamingGoal>

struct __cppobj DefinitionInstance<EntityContext &,DragonFlamingDefinition,DragonFlamingGoal> : DefinitionInstanceTyped<DragonFlamingDefinition>
{
};

# DefinitionInstance<EntityContext &,DragonFlamingDefinition,DragonFlamingGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,DragonFlamingDefinition,DragonFlamingGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,DragonFlamingDefinition,DragonFlamingGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,DragonFlamingDefinition,DragonFlamingGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,DragonFlamingDefinition,DragonFlamingGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,DragonFlamingDefinition,DragonFlamingGoal> *this, EntityContext *);
};

# DefinitionSerializer<DragonFlamingDefinition>

struct __cppobj DefinitionSerializer<DragonFlamingDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<DragonFlamingDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,DragonFlamingDefinition> > mSchema;
};

# DefinitionSerializer<DragonFlamingDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<DragonFlamingDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<DragonStrafePlayerDefinition>

struct __cppobj DefinitionInstanceTyped<DragonStrafePlayerDefinition> : IDefinitionInstance
{
  std::unique_ptr<DragonStrafePlayerDefinition> mDefinition;
};

# DefinitionInstanceTyped<DragonStrafePlayerDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<DragonStrafePlayerDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,DragonStrafePlayerDefinition,DragonStrafePlayerGoal>

struct __cppobj DefinitionInstance<EntityContext &,DragonStrafePlayerDefinition,DragonStrafePlayerGoal> : DefinitionInstanceTyped<DragonStrafePlayerDefinition>
{
};

# DefinitionInstance<EntityContext &,DragonStrafePlayerDefinition,DragonStrafePlayerGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,DragonStrafePlayerDefinition,DragonStrafePlayerGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,DragonStrafePlayerDefinition,DragonStrafePlayerGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,DragonStrafePlayerDefinition,DragonStrafePlayerGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,DragonStrafePlayerDefinition,DragonStrafePlayerGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,DragonStrafePlayerDefinition,DragonStrafePlayerGoal> *this, EntityContext *);
};

# DefinitionSerializer<DragonStrafePlayerDefinition>

struct __cppobj DefinitionSerializer<DragonStrafePlayerDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<DragonStrafePlayerDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,DragonStrafePlayerDefinition> > mSchema;
};

# DefinitionSerializer<DragonStrafePlayerDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<DragonStrafePlayerDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<DropItemForDefinition>

struct __cppobj DefinitionInstanceTyped<DropItemForDefinition> : IDefinitionInstance
{
  std::unique_ptr<DropItemForDefinition> mDefinition;
};

# DefinitionInstanceTyped<DropItemForDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<DropItemForDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,DropItemForDefinition,DropItemForGoal>

struct __cppobj DefinitionInstance<EntityContext &,DropItemForDefinition,DropItemForGoal> : DefinitionInstanceTyped<DropItemForDefinition>
{
};

# DefinitionInstance<EntityContext &,DropItemForDefinition,DropItemForGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,DropItemForDefinition,DropItemForGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,DropItemForDefinition,DropItemForGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,DropItemForDefinition,DropItemForGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,DropItemForDefinition,DropItemForGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,DropItemForDefinition,DropItemForGoal> *this, EntityContext *);
};

# DefinitionSerializer<DropItemForDefinition>

struct __cppobj DefinitionSerializer<DropItemForDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<DropItemForDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,DropItemForDefinition> > mSchema;
};

# DefinitionSerializer<DropItemForDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<DropItemForDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<EatBlockDefinition>

struct __cppobj DefinitionInstanceTyped<EatBlockDefinition> : IDefinitionInstance
{
  std::unique_ptr<EatBlockDefinition> mDefinition;
};

# DefinitionInstanceTyped<EatBlockDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<EatBlockDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,EatBlockDefinition,EatBlockGoal>

struct __cppobj DefinitionInstance<EntityContext &,EatBlockDefinition,EatBlockGoal> : DefinitionInstanceTyped<EatBlockDefinition>
{
};

# DefinitionInstance<EntityContext &,EatBlockDefinition,EatBlockGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,EatBlockDefinition,EatBlockGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,EatBlockDefinition,EatBlockGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,EatBlockDefinition,EatBlockGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,EatBlockDefinition,EatBlockGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,EatBlockDefinition,EatBlockGoal> *this, EntityContext *);
};

# DefinitionSerializer<EatBlockDefinition>

struct __cppobj DefinitionSerializer<EatBlockDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<EatBlockDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,EatBlockDefinition> > mSchema;
};

# DefinitionSerializer<EatBlockDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<EatBlockDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<EquipItemGoal::Definition>

struct __cppobj DefinitionInstanceTyped<EquipItemGoal::Definition> : IDefinitionInstance
{
  std::unique_ptr<EquipItemGoal::Definition> mDefinition;
};

# DefinitionInstanceTyped<EquipItemGoal::Definition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<EquipItemGoal::Definition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,EquipItemGoal::Definition,EquipItemGoal>

struct __cppobj DefinitionInstance<EntityContext &,EquipItemGoal::Definition,EquipItemGoal> : DefinitionInstanceTyped<EquipItemGoal::Definition>
{
};

# DefinitionInstance<EntityContext &,EquipItemGoal::Definition,EquipItemGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,EquipItemGoal::Definition,EquipItemGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,EquipItemGoal::Definition,EquipItemGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,EquipItemGoal::Definition,EquipItemGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,EquipItemGoal::Definition,EquipItemGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,EquipItemGoal::Definition,EquipItemGoal> *this, EntityContext *);
};

# DefinitionSerializer<EquipItemGoal::Definition>

struct __cppobj DefinitionSerializer<EquipItemGoal::Definition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<EquipItemGoal::Definition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,EquipItemGoal::Definition> > mSchema;
};

# DefinitionSerializer<EquipItemGoal::Definition>_vtbl

struct /*VFT*/ DefinitionSerializer<EquipItemGoal::Definition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<ExploreOutskirtsDefinition>

struct __cppobj DefinitionInstanceTyped<ExploreOutskirtsDefinition> : IDefinitionInstance
{
  std::unique_ptr<ExploreOutskirtsDefinition> mDefinition;
};

# DefinitionInstanceTyped<ExploreOutskirtsDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<ExploreOutskirtsDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,ExploreOutskirtsDefinition,ExploreOutskirtsGoal>

struct __cppobj DefinitionInstance<EntityContext &,ExploreOutskirtsDefinition,ExploreOutskirtsGoal> : DefinitionInstanceTyped<ExploreOutskirtsDefinition>
{
};

# DefinitionInstance<EntityContext &,ExploreOutskirtsDefinition,ExploreOutskirtsGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,ExploreOutskirtsDefinition,ExploreOutskirtsGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,ExploreOutskirtsDefinition,ExploreOutskirtsGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,ExploreOutskirtsDefinition,ExploreOutskirtsGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,ExploreOutskirtsDefinition,ExploreOutskirtsGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,ExploreOutskirtsDefinition,ExploreOutskirtsGoal> *this, EntityContext *);
};

# DefinitionSerializer<ExploreOutskirtsDefinition>

struct __cppobj DefinitionSerializer<ExploreOutskirtsDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<ExploreOutskirtsDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,ExploreOutskirtsDefinition> > mSchema;
};

# DefinitionSerializer<ExploreOutskirtsDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<ExploreOutskirtsDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<GuardianAttackDefinition>

struct __cppobj DefinitionInstanceTyped<GuardianAttackDefinition> : IDefinitionInstance
{
  std::unique_ptr<GuardianAttackDefinition> mDefinition;
};

# DefinitionInstanceTyped<GuardianAttackDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<GuardianAttackDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,GuardianAttackDefinition,GuardianAttackGoal>

struct __cppobj DefinitionInstance<EntityContext &,GuardianAttackDefinition,GuardianAttackGoal> : DefinitionInstanceTyped<GuardianAttackDefinition>
{
};

# DefinitionInstance<EntityContext &,GuardianAttackDefinition,GuardianAttackGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,GuardianAttackDefinition,GuardianAttackGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,GuardianAttackDefinition,GuardianAttackGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,GuardianAttackDefinition,GuardianAttackGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,GuardianAttackDefinition,GuardianAttackGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,GuardianAttackDefinition,GuardianAttackGoal> *this, EntityContext *);
};

# DefinitionSerializer<GuardianAttackDefinition>

struct __cppobj DefinitionSerializer<GuardianAttackDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<GuardianAttackDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,GuardianAttackDefinition> > mSchema;
};

# DefinitionSerializer<GuardianAttackDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<GuardianAttackDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<HarvestFarmBlockDefinition>

struct __cppobj DefinitionInstanceTyped<HarvestFarmBlockDefinition> : IDefinitionInstance
{
  std::unique_ptr<HarvestFarmBlockDefinition> mDefinition;
};

# DefinitionInstanceTyped<HarvestFarmBlockDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<HarvestFarmBlockDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,HarvestFarmBlockDefinition,HarvestFarmBlockGoal>

struct __cppobj DefinitionInstance<EntityContext &,HarvestFarmBlockDefinition,HarvestFarmBlockGoal> : DefinitionInstanceTyped<HarvestFarmBlockDefinition>
{
};

# DefinitionInstance<EntityContext &,HarvestFarmBlockDefinition,HarvestFarmBlockGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,HarvestFarmBlockDefinition,HarvestFarmBlockGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,HarvestFarmBlockDefinition,HarvestFarmBlockGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,HarvestFarmBlockDefinition,HarvestFarmBlockGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,HarvestFarmBlockDefinition,HarvestFarmBlockGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,HarvestFarmBlockDefinition,HarvestFarmBlockGoal> *this, EntityContext *);
};

# DefinitionSerializer<HarvestFarmBlockDefinition>

struct __cppobj DefinitionSerializer<HarvestFarmBlockDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<HarvestFarmBlockDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,HarvestFarmBlockDefinition> > mSchema;
};

# DefinitionSerializer<HarvestFarmBlockDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<HarvestFarmBlockDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<MeleeAttackDefinition>

struct __cppobj DefinitionInstanceTyped<MeleeAttackDefinition> : IDefinitionInstance
{
  std::unique_ptr<MeleeAttackDefinition> mDefinition;
};

# DefinitionInstanceTyped<MeleeAttackDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<MeleeAttackDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,MeleeAttackDefinition,MeleeAttackGoal>

struct __cppobj DefinitionInstance<EntityContext &,MeleeAttackDefinition,MeleeAttackGoal> : DefinitionInstanceTyped<MeleeAttackDefinition>
{
};

# DefinitionInstance<EntityContext &,MeleeAttackDefinition,MeleeAttackGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,MeleeAttackDefinition,MeleeAttackGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,MeleeAttackDefinition,MeleeAttackGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,MeleeAttackDefinition,MeleeAttackGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,MeleeAttackDefinition,MeleeAttackGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,MeleeAttackDefinition,MeleeAttackGoal> *this, EntityContext *);
};

# DefinitionSerializer<MeleeAttackDefinition>

struct __cppobj DefinitionSerializer<MeleeAttackDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<MeleeAttackDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,MeleeAttackDefinition> > mSchema;
};

# DefinitionSerializer<MeleeAttackDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<MeleeAttackDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<MoveTowardsDwellingRestrictionDefinition>

struct __cppobj DefinitionInstanceTyped<MoveTowardsDwellingRestrictionDefinition> : IDefinitionInstance
{
  std::unique_ptr<MoveTowardsDwellingRestrictionDefinition> mDefinition;
};

# DefinitionInstanceTyped<MoveTowardsDwellingRestrictionDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<MoveTowardsDwellingRestrictionDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,MoveTowardsDwellingRestrictionDefinition,MoveTowardsDwellingRestrictionGoal>

struct __cppobj DefinitionInstance<EntityContext &,MoveTowardsDwellingRestrictionDefinition,MoveTowardsDwellingRestrictionGoal> : DefinitionInstanceTyped<MoveTowardsDwellingRestrictionDefinition>
{
};

# DefinitionInstance<EntityContext &,MoveTowardsDwellingRestrictionDefinition,MoveTowardsDwellingRestrictionGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,MoveTowardsDwellingRestrictionDefinition,MoveTowardsDwellingRestrictionGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,MoveTowardsDwellingRestrictionDefinition,MoveTowardsDwellingRestrictionGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,MoveTowardsDwellingRestrictionDefinition,MoveTowardsDwellingRestrictionGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,MoveTowardsDwellingRestrictionDefinition,MoveTowardsDwellingRestrictionGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,MoveTowardsDwellingRestrictionDefinition,MoveTowardsDwellingRestrictionGoal> *this, EntityContext *);
};

# DefinitionSerializer<MoveTowardsDwellingRestrictionDefinition>

struct __cppobj DefinitionSerializer<MoveTowardsDwellingRestrictionDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<MoveTowardsDwellingRestrictionDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,MoveTowardsDwellingRestrictionDefinition> > mSchema;
};

# DefinitionSerializer<MoveTowardsDwellingRestrictionDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<MoveTowardsDwellingRestrictionDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<MoveTowardsHomeRestrictionDefinition>

struct __cppobj DefinitionInstanceTyped<MoveTowardsHomeRestrictionDefinition> : IDefinitionInstance
{
  std::unique_ptr<MoveTowardsHomeRestrictionDefinition> mDefinition;
};

# DefinitionInstanceTyped<MoveTowardsHomeRestrictionDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<MoveTowardsHomeRestrictionDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,MoveTowardsHomeRestrictionDefinition,MoveTowardsHomeRestrictionGoal>

struct __cppobj DefinitionInstance<EntityContext &,MoveTowardsHomeRestrictionDefinition,MoveTowardsHomeRestrictionGoal> : DefinitionInstanceTyped<MoveTowardsHomeRestrictionDefinition>
{
};

# DefinitionInstance<EntityContext &,MoveTowardsHomeRestrictionDefinition,MoveTowardsHomeRestrictionGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,MoveTowardsHomeRestrictionDefinition,MoveTowardsHomeRestrictionGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,MoveTowardsHomeRestrictionDefinition,MoveTowardsHomeRestrictionGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,MoveTowardsHomeRestrictionDefinition,MoveTowardsHomeRestrictionGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,MoveTowardsHomeRestrictionDefinition,MoveTowardsHomeRestrictionGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,MoveTowardsHomeRestrictionDefinition,MoveTowardsHomeRestrictionGoal> *this, EntityContext *);
};

# DefinitionSerializer<MoveTowardsHomeRestrictionDefinition>

struct __cppobj DefinitionSerializer<MoveTowardsHomeRestrictionDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<MoveTowardsHomeRestrictionDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,MoveTowardsHomeRestrictionDefinition> > mSchema;
};

# DefinitionSerializer<MoveTowardsHomeRestrictionDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<MoveTowardsHomeRestrictionDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<OcelotAttackDefinition>

struct __cppobj DefinitionInstanceTyped<OcelotAttackDefinition> : IDefinitionInstance
{
  std::unique_ptr<OcelotAttackDefinition> mDefinition;
};

# DefinitionInstanceTyped<OcelotAttackDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<OcelotAttackDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,OcelotAttackDefinition,OcelotAttackGoal>

struct __cppobj DefinitionInstance<EntityContext &,OcelotAttackDefinition,OcelotAttackGoal> : DefinitionInstanceTyped<OcelotAttackDefinition>
{
};

# DefinitionInstance<EntityContext &,OcelotAttackDefinition,OcelotAttackGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,OcelotAttackDefinition,OcelotAttackGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,OcelotAttackDefinition,OcelotAttackGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,OcelotAttackDefinition,OcelotAttackGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,OcelotAttackDefinition,OcelotAttackGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,OcelotAttackDefinition,OcelotAttackGoal> *this, EntityContext *);
};

# DefinitionSerializer<OcelotAttackDefinition>

struct __cppobj DefinitionSerializer<OcelotAttackDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<OcelotAttackDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,OcelotAttackDefinition> > mSchema;
};

# DefinitionSerializer<OcelotAttackDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<OcelotAttackDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<RangedAttackDefinition>

struct __cppobj DefinitionInstanceTyped<RangedAttackDefinition> : IDefinitionInstance
{
  std::unique_ptr<RangedAttackDefinition> mDefinition;
};

# DefinitionInstanceTyped<RangedAttackDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<RangedAttackDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,RangedAttackDefinition,RangedAttackGoal>

struct __cppobj DefinitionInstance<EntityContext &,RangedAttackDefinition,RangedAttackGoal> : DefinitionInstanceTyped<RangedAttackDefinition>
{
};

# DefinitionInstance<EntityContext &,RangedAttackDefinition,RangedAttackGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,RangedAttackDefinition,RangedAttackGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,RangedAttackDefinition,RangedAttackGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,RangedAttackDefinition,RangedAttackGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,RangedAttackDefinition,RangedAttackGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,RangedAttackDefinition,RangedAttackGoal> *this, EntityContext *);
};

# DefinitionSerializer<RangedAttackDefinition>

struct __cppobj DefinitionSerializer<RangedAttackDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<RangedAttackDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,RangedAttackDefinition> > mSchema;
};

# DefinitionSerializer<RangedAttackDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<RangedAttackDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<SlimeAttackDefinition>

struct __cppobj DefinitionInstanceTyped<SlimeAttackDefinition> : IDefinitionInstance
{
  std::unique_ptr<SlimeAttackDefinition> mDefinition;
};

# DefinitionInstanceTyped<SlimeAttackDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<SlimeAttackDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};

# DefinitionInstance<EntityContext &,SlimeAttackDefinition,SlimeAttackGoal>

struct __cppobj DefinitionInstance<EntityContext &,SlimeAttackDefinition,SlimeAttackGoal> : DefinitionInstanceTyped<SlimeAttackDefinition>
{
};

# DefinitionInstance<EntityContext &,SlimeAttackDefinition,SlimeAttackGoal>_vtbl

struct /*VFT*/ DefinitionInstance<EntityContext &,SlimeAttackDefinition,SlimeAttackGoal>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *_create)(DefinitionInstance<EntityContext &,SlimeAttackDefinition,SlimeAttackGoal> *this, EntityContext *);
  void (__fastcall *_initialize)(DefinitionInstance<EntityContext &,SlimeAttackDefinition,SlimeAttackGoal> *this, EntityContext *);
  void (__fastcall *_uninitialize)(DefinitionInstance<EntityContext &,SlimeAttackDefinition,SlimeAttackGoal> *this, EntityContext *);
  void (__fastcall *_destroy)(DefinitionInstance<EntityContext &,SlimeAttackDefinition,SlimeAttackGoal> *this, EntityContext *);
};

# DefinitionSerializer<SlimeAttackDefinition>

struct __cppobj DefinitionSerializer<SlimeAttackDefinition> : IDefinitionSerializer
{
  std::function<std::shared_ptr<DefinitionInstanceTyped<SlimeAttackDefinition> > __cdecl(void)> mDefinitionInitializer;
  std::shared_ptr<JsonUtil::JsonSchemaObjectNode<JsonUtil::EmptyClass,SlimeAttackDefinition> > mSchema;
};

# DefinitionSerializer<SlimeAttackDefinition>_vtbl

struct /*VFT*/ DefinitionSerializer<SlimeAttackDefinition>_vtbl
{
  void (__fastcall *~IDefinitionSerializer)(IDefinitionSerializer *this);
  std::shared_ptr<IDefinitionInstance> *(__fastcall *serializeDefinitionInstance)(IDefinitionSerializer *this, std::shared_ptr<IDefinitionInstance> *result, const Json::Value *, bool);
};

# DefinitionInstanceTyped<SlimeFloatDefinition>

struct __cppobj DefinitionInstanceTyped<SlimeFloatDefinition> : IDefinitionInstance
{
  std::unique_ptr<SlimeFloatDefinition> mDefinition;
};

# DefinitionInstanceTyped<SlimeFloatDefinition>_vtbl

struct /*VFT*/ DefinitionInstanceTyped<SlimeFloatDefinition>_vtbl
{
  void (__fastcall *~IDefinitionInstance)(IDefinitionInstance *this);
  unsigned __int16 (__fastcall *getRuntimeTypeId)(IDefinitionInstance *this);
  void (__fastcall *create)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *initialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *uninitialize)(IDefinitionInstance *this, const ContextAccessor *);
  void (__fastcall *destroy)(IDefinitionInstance *this, const ContextAccessor *);
};