Files
fs2open.github.com/code/scripting/api/objs/modelinstance.h
T
Goober5000 57705db466 add scripting support for submodels
Allow scripts to reference submodels, submodel instances, and model instances.  Currently just a few properties (like Orientation and Radius) can be accessed, but this can be easily expanded in the future.

Also add relevant functions to calculate real-world positions and orientations of rotated submodels.
2022-02-16 21:45:23 -05:00

63 lines
1.1 KiB
C++

#pragma once
#include "scripting/ade_api.h"
#include "model/model.h"
namespace scripting {
namespace api {
class modelinstance_h
{
protected:
polymodel_instance *_pmi;
public:
explicit modelinstance_h(int pmi_id);
explicit modelinstance_h(polymodel_instance *pmi);
modelinstance_h();
polymodel_instance *Get();
bool IsValid();
};
DECLARE_ADE_OBJ(l_ModelInstance, modelinstance_h);
class submodelinstance_h
{
protected:
polymodel_instance *_pmi;
polymodel *_pm;
int _submodel_num;
public:
explicit submodelinstance_h(int pmi_id, int submodel_num);
explicit submodelinstance_h(polymodel_instance *pmi, int submodel_num);
submodelinstance_h();
polymodel_instance *GetModelInstance();
submodel_instance *Get();
polymodel *GetModel();
bsp_info *GetSubmodel();
int GetSubmodelIndex();
bool IsValid();
};
DECLARE_ADE_OBJ(l_SubmodelInstance, submodelinstance_h);
class modelsubmodelinstances_h : public modelinstance_h
{
public:
modelsubmodelinstances_h(polymodel_instance *pmi);
modelsubmodelinstances_h();
};
DECLARE_ADE_OBJ(l_ModelSubmodelInstances, modelsubmodelinstances_h);
}
}