Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/rendering/StarWorldPainter.hpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2023-06-20 14:33:09 +1000
committerKae <80987908+Novaenia@users.noreply.github.com>2023-06-20 14:33:09 +1000
commit6352e8e3196f78388b6c771073f9e03eaa612673 (patch)
treee23772f79a7fbc41bc9108951e9e136857484bf4 /source/rendering/StarWorldPainter.hpp
parent6741a057e5639280d85d0f88ba26f000baa58f61 (diff)
everything everywhere
all at once
Diffstat (limited to 'source/rendering/StarWorldPainter.hpp')
-rw-r--r--source/rendering/StarWorldPainter.hpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/source/rendering/StarWorldPainter.hpp b/source/rendering/StarWorldPainter.hpp
new file mode 100644
index 0000000..92bc45d
--- /dev/null
+++ b/source/rendering/StarWorldPainter.hpp
@@ -0,0 +1,67 @@
+#ifndef STAR_WORLD_PAINTER_HPP
+#define STAR_WORLD_PAINTER_HPP
+
+#include "StarWorldRenderData.hpp"
+#include "StarTilePainter.hpp"
+#include "StarEnvironmentPainter.hpp"
+#include "StarTextPainter.hpp"
+#include "StarDrawablePainter.hpp"
+#include "StarRenderer.hpp"
+
+namespace Star {
+
+STAR_CLASS(WorldPainter);
+
+// Will update client rendering window internally
+class WorldPainter {
+public:
+ WorldPainter();
+
+ void renderInit(RendererPtr renderer);
+
+ void setCameraPosition(WorldGeometry const& worldGeometry, Vec2F const& position);
+
+ WorldCamera const& camera() const;
+
+ void render(WorldRenderData& renderData);
+
+private:
+ void renderParticles(WorldRenderData& renderData, Particle::Layer layer);
+ void renderBars(WorldRenderData& renderData);
+
+ void drawEntityLayer(List<Drawable> drawables, EntityHighlightEffect highlightEffect = EntityHighlightEffect());
+
+ void drawDrawable(Drawable drawable);
+ void drawDrawableSet(List<Drawable>& drawable);
+
+ WorldCamera m_camera;
+
+ RendererPtr m_renderer;
+
+ TextPainterPtr m_textPainter;
+ DrawablePainterPtr m_drawablePainter;
+ EnvironmentPainterPtr m_environmentPainter;
+ TilePainterPtr m_tilePainter;
+
+ Json m_highlightConfig;
+ Map<EntityHighlightEffectType, pair<String, String>> m_highlightDirectives;
+
+ Vec2F m_entityBarOffset;
+ Vec2F m_entityBarSpacing;
+ Vec2F m_entityBarSize;
+ Vec2F m_entityBarIconOffset;
+
+ // Updated every frame
+
+ AssetsConstPtr m_assets;
+ RectF m_worldScreenRect;
+
+ Vec2F m_previousCameraCenter;
+ Vec2F m_parallaxWorldPosition;
+
+ float m_preloadTextureChance;
+};
+
+}
+
+#endif