2018-10-07 03:42:33 +00:00
|
|
|
#pragma once
|
2015-09-10 20:30:35 +00:00
|
|
|
#include "../../DNACommon/DNACommon.hpp"
|
2015-10-27 00:19:03 +00:00
|
|
|
#include "../DNAMP1.hpp"
|
2016-10-02 22:41:36 +00:00
|
|
|
#include "../SAVW.hpp"
|
2017-02-24 08:28:44 +00:00
|
|
|
#include "zeus/CAABox.hpp"
|
2017-12-16 02:16:20 +00:00
|
|
|
#include "specter/genie.hpp"
|
|
|
|
|
2017-12-29 08:08:12 +00:00
|
|
|
#include <cstdio>
|
2015-09-10 20:30:35 +00:00
|
|
|
|
2017-12-16 02:16:20 +00:00
|
|
|
#define SO_NAME_SPECPROP() SPECTER_PROPERTY("Name", "Instance name; Used to debug scripting events")
|
|
|
|
#define SO_LOCATION_SPECPROP() SPECTER_PROPERTY("Location", "World relative location of the Actor instance")
|
|
|
|
#define SO_ORIENTATION_SPECPROP() SPECTER_PROPERTY("Orientation", "Object local axis-angle")
|
|
|
|
#define SO_SCALE_SPECPROP() SPECTER_PROPERTY("Scale", "Object local scale")
|
|
|
|
#define SO_COLLISION_EXTENT_SPECPROP() SPECTER_PROPERTY("Collision Extent", "")
|
|
|
|
#define SO_COLLISION_OFFSET_SPECPROP() SPECTER_PROPERTY("Collision Offset", "")
|
|
|
|
#define SO_ACTIVE_SPECPROP() SPECTER_PROPERTY("Active", "If enabled, object instance is drawn and updated")
|
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
namespace DataSpec::DNAMP1 {
|
2017-02-24 08:28:44 +00:00
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
zeus::CTransform ConvertEditorEulerToTransform4f(const zeus::CVector3f& scale, const zeus::CVector3f& orientation,
|
2017-02-24 08:28:44 +00:00
|
|
|
const zeus::CVector3f& position);
|
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
struct IScriptObject : BigDNAVYaml {
|
2019-08-11 00:49:41 +00:00
|
|
|
AT_DECL_DNA_YAMLV
|
2018-12-08 05:30:43 +00:00
|
|
|
atUint32 type;
|
|
|
|
Value<atUint32> id;
|
|
|
|
struct Connection : BigDNA {
|
2018-02-22 07:24:51 +00:00
|
|
|
AT_DECL_DNA_YAML
|
2018-12-08 05:30:43 +00:00
|
|
|
Value<atUint32> state;
|
|
|
|
Value<atUint32> msg;
|
|
|
|
Value<atUint32> target;
|
|
|
|
};
|
|
|
|
|
|
|
|
Value<atUint32> connectionCount;
|
|
|
|
Vector<Connection, AT_DNA_COUNT(connectionCount)> connections;
|
|
|
|
Value<atUint32> propertyCount;
|
2019-08-10 02:32:48 +00:00
|
|
|
~IScriptObject() override = default;
|
2018-12-08 05:30:43 +00:00
|
|
|
|
|
|
|
virtual void addCMDLRigPairs(PAKRouter<PAKBridge>&, CharacterAssociations<UniqueID32>& charAssoc) const {}
|
|
|
|
virtual void nameIDs(PAKRouter<PAKBridge>& pakRouter) const {}
|
|
|
|
virtual void gatherDependencies(std::vector<hecl::ProjectPath>& pathsOut,
|
|
|
|
std::vector<hecl::ProjectPath>& lazyOut) const {}
|
|
|
|
virtual void gatherScans(std::vector<Scan>& scansOut) const {}
|
|
|
|
virtual zeus::CAABox getVISIAABB(hecl::blender::Token& btok) const { return {}; }
|
2015-09-10 20:30:35 +00:00
|
|
|
};
|
2018-12-08 05:30:43 +00:00
|
|
|
} // namespace DataSpec::DNAMP1
|