mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-02-01 10:31:01 +00:00
Added GameModeName to Scene Added function to get number of active scenes Added logic to level/client loading to enact gameplay mode logic driven by either Scene's GameModeName or project setting's default game mode Added template module.cs file for module creation and adjusted new module logic in AssetBrowser to create off template Updated FPSGameplay code to have deathmatchGame mode work with new GameMode logic Updated EmptyLevel scene to define deathMatchGame as gamemode Updated FPSGameplay module script to properly client/server initialize
82 lines
1.6 KiB
C++
82 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include "console/engineAPI.h"
|
|
|
|
#ifndef _NETOBJECT_H_
|
|
#include "sim/netObject.h"
|
|
#endif
|
|
|
|
#ifndef _ITICKABLE_H_
|
|
#include "core/iTickable.h"
|
|
#endif
|
|
|
|
#include "scene/sceneObject.h"
|
|
|
|
/// Scene
|
|
/// This object is effectively a smart container to hold and manage any relevent scene objects and data
|
|
/// used to run things.
|
|
class Scene : public NetObject, public virtual ITickable
|
|
{
|
|
typedef NetObject Parent;
|
|
|
|
bool mIsSubScene;
|
|
|
|
Scene* mParentScene;
|
|
|
|
Vector<Scene*> mSubScenes;
|
|
|
|
Vector<SceneObject*> mPermanentObjects;
|
|
|
|
Vector<SceneObject*> mDynamicObjects;
|
|
|
|
S32 mSceneId;
|
|
|
|
bool mIsEditing;
|
|
|
|
bool mIsDirty;
|
|
|
|
StringTableEntry mGameModeName;
|
|
|
|
protected:
|
|
static Scene * smRootScene;
|
|
|
|
DECLARE_CONOBJECT(Scene);
|
|
|
|
public:
|
|
Scene();
|
|
~Scene();
|
|
|
|
static void initPersistFields();
|
|
|
|
virtual bool onAdd();
|
|
virtual void onRemove();
|
|
|
|
virtual void interpolateTick(F32 delta);
|
|
virtual void processTick();
|
|
virtual void advanceTime(F32 timeDelta);
|
|
|
|
virtual void addObject(SimObject* object);
|
|
virtual void removeObject(SimObject* object);
|
|
|
|
void addDynamicObject(SceneObject* object);
|
|
void removeDynamicObject(SceneObject* object);
|
|
|
|
//
|
|
//Networking
|
|
U32 packUpdate(NetConnection *conn, U32 mask, BitStream *stream);
|
|
void unpackUpdate(NetConnection *conn, BitStream *stream);
|
|
|
|
//
|
|
Vector<SceneObject*> getObjectsByClass(String className);
|
|
|
|
static Scene *getRootScene()
|
|
{
|
|
if (Scene::smSceneList.empty())
|
|
return nullptr;
|
|
|
|
return Scene::smSceneList[0];
|
|
}
|
|
|
|
static Vector<Scene*> smSceneList;
|
|
};
|