diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2013-03-24 12:24:17 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2013-03-24 12:24:17 (GMT) |
| commit | 9b5b85f9b01cbda7ef9a7ec2a15b2a35630a5b9d (patch) | |
| tree | ac7d040253b459ce102e476cb19ab59e3cfa90d7 /src/gui/game/GameController.h | |
| parent | 6bf98ccdca39936a3c51367862eed7c49f8786ec (diff) | |
| parent | bdc69f31c0be94191015838886bdcc2bc67f1acb (diff) | |
| download | powder-9b5b85f9b01cbda7ef9a7ec2a15b2a35630a5b9d.zip powder-9b5b85f9b01cbda7ef9a7ec2a15b2a35630a5b9d.tar.gz | |
Merge branch 'reorganisation' of github.com:FacialTurd/The-Powder-Toy
Diffstat (limited to 'src/gui/game/GameController.h')
| -rw-r--r-- | src/gui/game/GameController.h | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/src/gui/game/GameController.h b/src/gui/game/GameController.h new file mode 100644 index 0000000..644d25c --- /dev/null +++ b/src/gui/game/GameController.h @@ -0,0 +1,155 @@ + #ifndef GAMECONTROLLER_H +#define GAMECONTROLLER_H + +#include <queue> +#include "GameView.h" +#include "GameModel.h" +#include "simulation/Simulation.h" +#include "gui/interface/Point.h" +#include "gui/search/SearchController.h" +#include "gui/render/RenderController.h" +#include "gui/preview/PreviewController.h" +#include "gui/login/LoginController.h" +#include "gui/tags/TagsController.h" +#include "gui/console/ConsoleController.h" +#include "gui/localbrowser/LocalBrowserController.h" +#include "gui/options/OptionsController.h" +//#include "cat/TPTScriptInterface.h" +#include "cat/LuaScriptInterface.h" +#include "client/ClientListener.h" +#include "RenderPreset.h" +#include "Menu.h" + +using namespace std; + +class DebugInfo; +class Notification; +class GameModel; +class GameView; +class CommandInterface; +class ConsoleController; +class GameController: public ClientListener +{ +private: + //Simulation * sim; + bool firstTick; + int screenshotIndex; + PreviewController * activePreview; + GameView * gameView; + GameModel * gameModel; + SearchController * search; + RenderController * renderOptions; + LoginController * loginWindow; + ConsoleController * console; + TagsController * tagsWindow; + LocalBrowserController * localBrowser; + OptionsController * options; + CommandInterface * commandInterface; + vector<DebugInfo*> debugInfo; +public: + bool HasDone; + class SearchCallback; + class RenderCallback; + class SSaveCallback; + class TagsCallback; + class StampsCallback; + class OptionsCallback; + class SaveOpenCallback; + friend class SaveOpenCallback; + GameController(); + ~GameController(); + GameView * GetView(); + + bool BrushChanged(int brushType, int rx, int ry); + bool MouseMove(int x, int y, int dx, int dy); + bool MouseDown(int x, int y, unsigned button); + bool MouseUp(int x, int y, unsigned button); + bool MouseWheel(int x, int y, int d); + bool KeyPress(int key, Uint16 character, bool shift, bool ctrl, bool alt); + bool KeyRelease(int key, Uint16 character, bool shift, bool ctrl, bool alt); + void Tick(); + void Exit(); + + void Install(); + + void HistoryRestore(); + void HistorySnapshot(); + + void AdjustGridSize(int direction); + void InvertAirSim(); + void LoadRenderPreset(int presetNum); + void SetZoomEnabled(bool zoomEnable); + void SetZoomPosition(ui::Point position); + void AdjustBrushSize(int direction, bool logarithmic = false, bool xAxis = false, bool yAxis = false); + void AdjustZoomSize(int direction, bool logarithmic = false); + void ToolClick(int toolSelection, ui::Point point); + void DrawPoints(int toolSelection, queue<ui::Point> & pointQueue); + void DrawRect(int toolSelection, ui::Point point1, ui::Point point2); + void DrawLine(int toolSelection, ui::Point point1, ui::Point point2); + void DrawFill(int toolSelection, ui::Point point); + void StampRegion(ui::Point point1, ui::Point point2); + void CopyRegion(ui::Point point1, ui::Point point2); + void CutRegion(ui::Point point1, ui::Point point2); + void Update(); + void SetPaused(bool pauseState); + void SetPaused(); + void SetDecoration(bool decorationState); + void SetDecoration(); + void ShowGravityGrid(); + void SetHudEnable(bool hudState); + void SetActiveMenu(Menu * menu); + std::vector<Menu*> GetMenuList(); + void SetActiveTool(int toolSelection, Tool * tool); + void ActiveToolChanged(int toolSelection, Tool *tool); + void SetActiveColourPreset(int preset); + void SetColour(ui::Colour colour); + void SetToolStrength(float value); + void LoadSaveFile(SaveFile * file); + void LoadSave(SaveInfo * save); + void OpenSearch(); + void OpenLogin(); + void OpenTags(); + void OpenSavePreview(int saveID, int saveDate); + void OpenSavePreview(); + void OpenLocalSaveWindow(bool asCurrent); + void OpenLocalBrowse(); + void OpenOptions(); + void OpenRenderOptions(); + void OpenSaveWindow(); + void SaveAsCurrent(); + void OpenStamps(); + void OpenElementSearch(); + void OpenColourPicker(); + void PlaceSave(ui::Point position); + void ClearSim(); + void ReloadSim(); + void Vote(int direction); + void ChangeBrush(); + void ShowConsole(); + void HideConsole(); + void FrameStep(); + void TranslateSave(ui::Point point); + void TransformSave(matrix2d transform); + ui::Point PointTranslate(ui::Point point); + ui::Point NormaliseBlockCoord(ui::Point point); + std::string ElementResolve(int type); + std::string WallName(int type); + + void ResetAir(); + void ResetSpark(); + void SwitchGravity(); + void SwitchAir(); + void ToggleAHeat(); + + void LoadClipboard(); + void LoadStamp(); + + void RemoveNotification(Notification * notification); + + virtual void NotifyUpdateAvailable(Client * sender); + virtual void NotifyAuthUserChanged(Client * sender); + virtual void NotifyNewNotification(Client * sender, std::pair<std::string, std::string> notification); + void RunUpdater(); +}; + +#endif // GAMECONTROLLER_H |
