37#include <unordered_map>
64 bool LoadTerrainObject(
const Ogre::String& name,
const Ogre::Vector3& pos,
const Ogre::Vector3& rot,
const Ogre::String& instancename,
const Ogre::String& type,
float rendering_distance = 0,
bool enable_collisions =
true,
int scripthandler = -1,
bool uniquifyMaterial =
false);
66 void moveObjectVisuals(
const Ogre::String& instancename,
const Ogre::Vector3& pos);
76 float yawfrom,
float yawto,
77 float scalefrom,
float scaleto,
78 char* ColorMap,
char* DensityMap,
char* treemesh,
char* treeCollmesh,
79 float gridspacing,
float highdens,
80 int minDist,
int maxDist,
int mapsizex,
int mapsizez,
81 Ogre::SceneNode* pagedGroupingNode);
84 float SwaySpeed,
float SwayLength,
float SwayDistribution,
float Density,
85 float minx,
float miny,
float minH,
float maxx,
float maxy,
float maxH,
86 char* grassmat,
char* colorMapFilename,
char* densityMapFilename,
88 int range,
int mapsizex,
int mapsizez,
89 Ogre::SceneNode* pagedGroupingNode);
110 Ogre::ParticleSystem*
psys =
nullptr;
111 Ogre::SceneNode*
node =
nullptr;
131 std::unordered_map<std::string, std::shared_ptr<RoR::ODefDocument>>
m_odef_cache;
Central state/object manager and communications hub.
Self reference-counting objects, as requred by AngelScript garbage collector.
Ogre::SceneNode * getGroupingSceneNode()
RoR::ODefDocument * FetchODef(std::string const &odef_name)
bool UpdateTerrainObjects(float dt)
void UpdateParticleEffectObjects()
bool LoadTerrainObject(const Ogre::String &name, const Ogre::Vector3 &pos, const Ogre::Vector3 &rot, const Ogre::String &instancename, const Ogre::String &type, float rendering_distance=0, bool enable_collisions=true, int scripthandler=-1, bool uniquifyMaterial=false)
TerrainEditorObjectID_t FindEditorObjectByInstanceName(std::string const &instance_name)
Returns offset to m_editor_objects or -1 if not found.
void ProcessODefCollisionBoxes(TerrainEditorObjectPtr obj, ODefDocument *odef, const TerrainEditorObjectPtr ¶ms, bool race_event)
LocalizerVec & GetLocalizers()
std::vector< TObjDocumentPtr > m_tobj_cache
void ProcessTree(float yawfrom, float yawto, float scalefrom, float scaleto, char *ColorMap, char *DensityMap, char *treemesh, char *treeCollmesh, float gridspacing, float highdens, int minDist, int maxDist, int mapsizex, int mapsizez, Ogre::SceneNode *pagedGroupingNode)
std::vector< MeshObject * > m_mesh_objects
int m_tobj_cache_active_id
void UpdateAnimatedObjects(float dt)
ProceduralManagerPtr & getProceduralManager()
std::vector< Forests::PagedGeometry * > m_paged_geometry
Ogre::SceneNode * m_terrn2_grouping_node
For a readable scene graph (via inspector script)
bool m_has_predefined_actors
bool HasPredefinedActors()
void LoadTObjFile(Ogre::String filename)
TerrainEditorObjectPtrVec & GetEditorObjects()
std::unordered_map< std::string, std::shared_ptr< RoR::ODefDocument > > m_odef_cache
ProceduralManagerPtr m_procedural_manager
bool GetEditorObjectFlagRotYXZ(TerrainEditorObjectPtr const &object)
SurveyMapEntityVec m_map_entities
TerrainEditorObjectPtrVec m_editor_objects
void LoadPredefinedActors()
std::vector< TObjDocumentPtr > & GetTobjCache()
std::vector< ParticleEffectObject > m_particle_effect_objects
void moveObjectVisuals(const Ogre::String &instancename, const Ogre::Vector3 &pos)
Ogre::SceneNode * m_tobj_grouping_node
For even more readable scene graph (via inspector script)
bool LoadTerrainScript(const Ogre::String &filename)
std::vector< AnimatedObject > m_animated_objects
void SpawnSinglePredefinedActor(TerrainEditorObjectPtr const &object)
void destroyObject(const Ogre::String &instancename)
Ogre::SceneNode * m_angelscript_grouping_node
For even more readable scene graph (via inspector script)
void ProcessGrass(float SwaySpeed, float SwayLength, float SwayDistribution, float Density, float minx, float miny, float minH, float maxx, float maxy, float maxH, char *grassmat, char *colorMapFilename, char *densityMapFilename, Forests::FadeTechnique fadetech, Forests::GrassTechnique techn, int range, int mapsizex, int mapsizez, Ogre::SceneNode *pagedGroupingNode)
LocalizerVec m_localizers
void ProcessPredefinedActor(int tobj_cache_id, const std::string &name, const Ogre::Vector3 position, const Ogre::Vector3 rotation, const TObjSpecialObject type)
std::vector< Localizer > LocalizerVec
std::vector< SurveyMapEntity > SurveyMapEntityVec
GrassTechnique
A technique used to render grass.
FadeTechnique
A technique used to fade grass into the distance.
int TerrainEditorObjectID_t
Offset into RoR::TerrainObjectManager::m_editor_objects, use RoR::TERRAINEDITOROBJECTID_INVALID as em...
std::vector< TerrainEditorObjectPtr > TerrainEditorObjectPtrVec
Ogre::Quaternion rotation
Ogre::AnimationState * anim
Ogre::ParticleSystem * psys