kinda add RunService
This commit is contained in:
@@ -509,6 +509,10 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\RunServiceInstance.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\SelectionService.cpp"
|
||||
>
|
||||
@@ -902,6 +906,10 @@
|
||||
RelativePath=".\src\include\DataModelV2\PVInstance.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\RunServiceInstance.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\SelectionService.h"
|
||||
>
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "XplicitNgine/XplicitNgine.h"
|
||||
#include "SoundService.h"
|
||||
#include "LightingInstance.h"
|
||||
#include "RunServiceInstance.h"
|
||||
|
||||
// Libraries
|
||||
#include "rapidxml/rapidxml.hpp"
|
||||
@@ -38,6 +39,7 @@ public:
|
||||
ThumbnailGeneratorInstance* getThumbnailGenerator();
|
||||
SoundService* getSoundService();
|
||||
LightingInstance* getLighting();
|
||||
RunService* getRunService();
|
||||
|
||||
std::string message;
|
||||
std::string _loadedFileName;
|
||||
@@ -47,7 +49,7 @@ public:
|
||||
SelectionService* getSelectionService();
|
||||
PartInstance* makePart();
|
||||
void clearLevel();
|
||||
void toggleRun();
|
||||
void toggleRun(bool doRun);
|
||||
bool isRunning();
|
||||
void resetEngine();
|
||||
#if _DEBUG
|
||||
@@ -72,6 +74,8 @@ private:
|
||||
XplicitNgine* xplicitNgine;
|
||||
SoundService* soundService;
|
||||
LightingInstance* lightingInstance;
|
||||
RunService* runService;
|
||||
|
||||
bool running;
|
||||
|
||||
};
|
||||
|
||||
14
src/include/DataModelV2/RunServiceInstance.h
Normal file
14
src/include/DataModelV2/RunServiceInstance.h
Normal file
@@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
#include "Instance.h"
|
||||
|
||||
class RunService :
|
||||
public Instance
|
||||
{
|
||||
public:
|
||||
RunService(void);
|
||||
~RunService(void);
|
||||
|
||||
void run();
|
||||
void pause();
|
||||
void reset();
|
||||
};
|
||||
@@ -12,3 +12,4 @@ public:
|
||||
void zoomToExtents();
|
||||
std::vector<PartInstance *> partObjects;
|
||||
};
|
||||
|
||||
|
||||
@@ -192,6 +192,8 @@ void Application::onInit() {
|
||||
tool = new Tool();
|
||||
// Called before Application::run() beings
|
||||
cameraController.setFrame(Vector3(0,2,10));
|
||||
cameraController.Zoom(-1);
|
||||
|
||||
_dataModel = new DataModelInstance();
|
||||
_dataModel->setParent(NULL);
|
||||
_dataModel->setName("undefined");
|
||||
|
||||
@@ -25,7 +25,10 @@ DataModelInstance::DataModelInstance(void)
|
||||
workspace = new WorkspaceInstance();
|
||||
guiRoot = new GuiRootInstance();
|
||||
level = new LevelInstance();
|
||||
thumbnailGenerator = new ThumbnailGeneratorInstance();
|
||||
runService = new RunService();
|
||||
|
||||
//thumbnailGenerator = new ThumbnailGeneratorInstance();
|
||||
|
||||
soundService = new SoundService();
|
||||
lightingInstance = new LightingInstance();
|
||||
|
||||
@@ -67,9 +70,10 @@ XplicitNgine * DataModelInstance::getEngine()
|
||||
return xplicitNgine;
|
||||
}
|
||||
|
||||
void DataModelInstance::toggleRun()
|
||||
// Please use RunService->run(); & RunService->pause(); instead
|
||||
void DataModelInstance::toggleRun(bool doRun)
|
||||
{
|
||||
running = !running;
|
||||
running = doRun;
|
||||
//if(!running)
|
||||
//resetEngine();
|
||||
}
|
||||
@@ -90,7 +94,6 @@ void DataModelInstance::modXMLLevel(float modY)
|
||||
_modY += modY;
|
||||
clearLevel();
|
||||
debugGetOpen();
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -642,6 +645,7 @@ void DataModelInstance::drawMessage(RenderDevice* rd)
|
||||
}
|
||||
}
|
||||
|
||||
// Instance getters
|
||||
WorkspaceInstance* DataModelInstance::getWorkspace()
|
||||
{
|
||||
return workspace;
|
||||
@@ -675,4 +679,9 @@ SoundService* DataModelInstance::getSoundService()
|
||||
LightingInstance* DataModelInstance::getLighting()
|
||||
{
|
||||
return lightingInstance;
|
||||
}
|
||||
|
||||
RunService* DataModelInstance::getRunService()
|
||||
{
|
||||
return runService;
|
||||
}
|
||||
@@ -183,26 +183,26 @@ void LevelInstance::winCondition()
|
||||
{
|
||||
DataModelInstance* DataModel = (DataModelInstance*)getParent(); //If level parent gets changed to something other than Datamodel it could cause nasty data corruption bugs
|
||||
DataModel->setMessage(winMessage);
|
||||
DataModel->toggleRun();
|
||||
DataModel->getRunService()->pause();
|
||||
}
|
||||
|
||||
void LevelInstance::loseCondition()
|
||||
{
|
||||
DataModelInstance* DataModel = (DataModelInstance*)getParent();
|
||||
DataModel->setMessage(loseMessage);
|
||||
DataModel->toggleRun();
|
||||
DataModel->getRunService()->pause();
|
||||
}
|
||||
|
||||
void LevelInstance::pauseCondition()
|
||||
{
|
||||
DataModelInstance* DataModel = (DataModelInstance*)getParent();
|
||||
DataModel->toggleRun();
|
||||
DataModel->getRunService()->pause();
|
||||
}
|
||||
|
||||
void LevelInstance::drawCondition()
|
||||
{
|
||||
DataModelInstance* DataModel = (DataModelInstance*)getParent();
|
||||
DataModel->toggleRun();
|
||||
DataModel->getRunService()->pause();
|
||||
}
|
||||
|
||||
void LevelInstance::Step(SimTime sdt)
|
||||
|
||||
36
src/source/DataModelV2/RunServiceInstance.cpp
Normal file
36
src/source/DataModelV2/RunServiceInstance.cpp
Normal file
@@ -0,0 +1,36 @@
|
||||
#include "DataModelV2/RunServiceInstance.h"
|
||||
#include "DataModelV2/ToggleImageButtonInstance.h"
|
||||
#include "Globals.h"
|
||||
|
||||
RunService::RunService()
|
||||
{
|
||||
// Run Service, not RunService, because Roblox themselves did it. Why? IDK!
|
||||
name = "Run Service";
|
||||
className = "RunService";
|
||||
canDelete = false;
|
||||
}
|
||||
|
||||
RunService::~RunService(void)
|
||||
{
|
||||
}
|
||||
|
||||
void RunService::run()
|
||||
{
|
||||
// Tell GUI that we are running
|
||||
Instance* go = g_dataModel->getGuiRoot()->findFirstChild("go");
|
||||
g_dataModel->toggleRun(true);
|
||||
((ToggleImageButtonInstance*)go)->checked = true;
|
||||
}
|
||||
|
||||
void RunService::pause()
|
||||
{
|
||||
// Tell GUI that we paused
|
||||
Instance* go = g_dataModel->getGuiRoot()->findFirstChild("go");
|
||||
g_dataModel->toggleRun(false);
|
||||
((ToggleImageButtonInstance*)go)->checked = false;
|
||||
}
|
||||
|
||||
void RunService::reset()
|
||||
{
|
||||
// Can't really implement right now
|
||||
}
|
||||
@@ -6,8 +6,12 @@ void MenuButtonListener::onButton1MouseClick(BaseButtonInstance* button)
|
||||
{
|
||||
if(button->name == "go")
|
||||
{
|
||||
g_dataModel->toggleRun();
|
||||
((ToggleImageButtonInstance*)button)->checked = g_dataModel->isRunning();
|
||||
bool isRunning = g_dataModel->isRunning();
|
||||
if(isRunning)
|
||||
g_dataModel->getRunService()->pause();
|
||||
else
|
||||
g_dataModel->getRunService()->run();
|
||||
//((ToggleImageButtonInstance*)button)->checked = !isRunning;
|
||||
}
|
||||
else if(button->name == "file")
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user