Polyphase Game Engine
Loading...
Searching...
No Matches
TilemapGridModule.h
Go to the documentation of this file.
1#pragma once
2
3#if EDITOR
4
5#include "../../../PreferencesModule.h"
6#include "Maths.h"
7
8// Preferences entry under Appearance > Viewport > Tilemap Grid.
9// Owns the colors used by TilePaintManager::DrawGridOverlay so users can
10// customize the cell grid appearance without recompiling.
11class TilemapGridModule : public PreferencesModule
12{
13public:
14 DECLARE_PREFERENCES_MODULE(TilemapGridModule)
15
16 TilemapGridModule();
17 virtual ~TilemapGridModule();
18
19 virtual const char* GetName() const override { return GetStaticName(); }
20 virtual const char* GetParentPath() const override { return GetStaticParentPath(); }
21 virtual void Render() override;
22 virtual void LoadSettings(const rapidjson::Document& doc) override;
23 virtual void SaveSettings(rapidjson::Document& doc) override;
24
25 // Settings accessors used by TilePaintManager.
26 glm::vec4 GetMinorColor() const { return mMinorColor; }
27 glm::vec4 GetAxisColor() const { return mAxisColor; }
28 bool GetHighlightAxes() const { return mHighlightAxes; }
29
30 static TilemapGridModule* Get();
31
32private:
33 // Defaults match the original hardcoded values in TilePaintManager so
34 // existing users don't see a sudden visual change after the upgrade.
35 glm::vec4 mMinorColor = glm::vec4(1.0f, 1.0f, 1.0f, 0.35f);
36 glm::vec4 mAxisColor = glm::vec4(1.0f, 1.0f, 0.4f, 0.85f);
37 bool mHighlightAxes = true;
38
39 static TilemapGridModule* sInstance;
40};
41
42#endif
Definition JsonHelpers.h:15