diff options
| author | jacob1 <jfu614@gmail.com> | 2013-05-14 18:40:18 (GMT) |
|---|---|---|
| committer | jacob1 <jfu614@gmail.com> | 2013-05-14 18:40:18 (GMT) |
| commit | 431f5a0083dca3da5c881e507908690ebb5a052a (patch) | |
| tree | 0b9aeb0e485e3892960a403f445f4a273b03d1f7 /src/gui | |
| parent | 18ddb7a1558d474f6f216307c89bfde5e24f924d (diff) | |
| download | powder-431f5a0083dca3da5c881e507908690ebb5a052a.zip powder-431f5a0083dca3da5c881e507908690ebb5a052a.tar.gz | |
lua simulation api functions for creating particles, walls, boxes, and walls
Diffstat (limited to 'src/gui')
| -rw-r--r-- | src/gui/game/GameController.cpp | 2 | ||||
| -rw-r--r-- | src/gui/game/GameModel.cpp | 10 | ||||
| -rw-r--r-- | src/gui/game/GameModel.h | 25 | ||||
| -rw-r--r-- | src/gui/game/Tool.cpp | 8 |
4 files changed, 24 insertions, 21 deletions
diff --git a/src/gui/game/GameController.cpp b/src/gui/game/GameController.cpp index fab4a5d..09e1a1c 100644 --- a/src/gui/game/GameController.cpp +++ b/src/gui/game/GameController.cpp @@ -1306,7 +1306,7 @@ void GameController::Vote(int direction) void GameController::ChangeBrush() { - gameModel->SetBrush(gameModel->GetBrushID()+1); + gameModel->SetBrushID(gameModel->GetBrushID()+1); BrushChanged(gameModel->GetBrushID(), gameModel->GetBrush()->GetRadius().X, gameModel->GetBrush()->GetRadius().Y); } diff --git a/src/gui/game/GameModel.cpp b/src/gui/game/GameModel.cpp index 1494d6d..18276d0 100644 --- a/src/gui/game/GameModel.cpp +++ b/src/gui/game/GameModel.cpp @@ -292,7 +292,7 @@ void GameModel::BuildMenus() //Build menu for GOL types for(int i = 0; i < NGOL; i++) { - Tool * tempTool = new GolTool(i, sim->gmenu[i].name, std::string(sim->gmenu[i].description), PIXR(sim->gmenu[i].colour), PIXG(sim->gmenu[i].colour), PIXB(sim->gmenu[i].colour), "DEFAULT_PT_LIFE_"+std::string(sim->gmenu[i].name)); + Tool * tempTool = new GolTool(PT_LIFE|(i<<8), sim->gmenu[i].name, std::string(sim->gmenu[i].description), PIXR(sim->gmenu[i].colour), PIXG(sim->gmenu[i].colour), PIXB(sim->gmenu[i].colour), "DEFAULT_PT_LIFE_"+std::string(sim->gmenu[i].name)); menuList[SC_LIFE]->AddTool(tempTool); } @@ -424,12 +424,17 @@ Brush * GameModel::GetBrush() return brushList[currentBrush]; } +vector<Brush*> GameModel::GetBrushList() +{ + return brushList; +} + int GameModel::GetBrushID() { return currentBrush; } -void GameModel::SetBrush(int i) +void GameModel::SetBrushID(int i) { currentBrush = i%brushList.size(); notifyBrushChanged(); @@ -511,6 +516,7 @@ Menu * GameModel::GetActiveMenu() return activeMenu; } +//Get an element tool from an element ID Tool * GameModel::GetElementTool(int elementID) { #ifdef DEBUG diff --git a/src/gui/game/GameModel.h b/src/gui/game/GameModel.h index 0ade162..f8ccfb5 100644 --- a/src/gui/game/GameModel.h +++ b/src/gui/game/GameModel.h @@ -105,8 +105,6 @@ public: GameModel(); ~GameModel(); - Tool * GetToolFromIdentifier(std::string identifier); - void SetEdgeMode(int edgeMode); int GetEdgeMode(); @@ -136,26 +134,29 @@ public: void UpdateQuickOptions(); + Tool * GetActiveTool(int selection); + void SetActiveTool(int selection, Tool * tool); void SetToolStrength(float value); float GetToolStrength(); - Tool * GetLastTool(); void SetLastTool(Tool * newTool); + Tool * GetToolFromIdentifier(std::string identifier); + Tool * GetElementTool(int elementID); + vector<Tool*> GetToolList(); + vector<Tool*> GetUnlistedTools(); + + Brush * GetBrush(); + vector<Brush*> GetBrushList(); + int GetBrushID(); + void SetBrushID(int i); void SetVote(int direction); SaveInfo * GetSave(); SaveFile * GetSaveFile(); - Brush * GetBrush(); void SetSave(SaveInfo * newSave); void SetSaveFile(SaveFile * newSave); void AddObserver(GameView * observer); - //Get an element tool from an element ID - Tool * GetElementTool(int elementID); - - Tool * GetActiveTool(int selection); - void SetActiveTool(int selection, Tool * tool); - bool GetPaused(); void SetPaused(bool pauseState); bool GetDecoration(); @@ -166,16 +167,12 @@ public: void ShowGravityGrid(bool showGrid); void ClearSimulation(); vector<Menu*> GetMenuList(); - vector<Tool*> GetUnlistedTools(); - vector<Tool*> GetToolList(); vector<QuickOption*> GetQuickOptions(); void SetActiveMenu(Menu * menu); Menu * GetActiveMenu(); void FrameStep(int frames); User GetUser(); void SetUser(User user); - void SetBrush(int i); - int GetBrushID(); Simulation * GetSimulation(); Renderer * GetRenderer(); void SetZoomEnabled(bool enabled); diff --git a/src/gui/game/Tool.cpp b/src/gui/game/Tool.cpp index ed43da7..e33b0ce 100644 --- a/src/gui/game/Tool.cpp +++ b/src/gui/game/Tool.cpp @@ -117,16 +117,16 @@ GolTool::GolTool(int id, string name, string description, int r, int g, int b, s } GolTool::~GolTool() {} void GolTool::Draw(Simulation * sim, Brush * brush, ui::Point position){ - sim->CreateParts(position.X, position.Y, PT_LIFE|(toolID<<8), brush); + sim->CreateParts(position.X, position.Y, toolID, brush); } void GolTool::DrawLine(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2, bool dragging) { - sim->CreateLine(position1.X, position1.Y, position2.X, position2.Y, PT_LIFE|(toolID<<8), brush); + sim->CreateLine(position1.X, position1.Y, position2.X, position2.Y, toolID, brush); } void GolTool::DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2) { - sim->CreateBox(position1.X, position1.Y, position2.X, position2.Y, PT_LIFE|(toolID<<8), 0); + sim->CreateBox(position1.X, position1.Y, position2.X, position2.Y, toolID, 0); } void GolTool::DrawFill(Simulation * sim, Brush * brush, ui::Point position) { - sim->FloodParts(position.X, position.Y, PT_LIFE|(toolID<<8), -1, -1, 0); + sim->FloodParts(position.X, position.Y, toolID, -1, -1, 0); } |
