2023-06-20 04:33:09 +00:00
|
|
|
#ifndef STAR_WORLD_CLIENT_DATA_HPP
|
|
|
|
#define STAR_WORLD_CLIENT_DATA_HPP
|
|
|
|
|
|
|
|
#include "StarImage.hpp"
|
|
|
|
#include "StarWorldTiles.hpp"
|
|
|
|
#include "StarEntityRenderingTypes.hpp"
|
|
|
|
#include "StarSkyRenderData.hpp"
|
|
|
|
#include "StarParallax.hpp"
|
|
|
|
#include "StarParticle.hpp"
|
|
|
|
#include "StarWeatherTypes.hpp"
|
|
|
|
#include "StarEntity.hpp"
|
2023-06-29 00:11:19 +00:00
|
|
|
#include "StarThread.hpp"
|
2023-06-20 04:33:09 +00:00
|
|
|
|
|
|
|
namespace Star {
|
|
|
|
|
|
|
|
struct EntityDrawables {
|
|
|
|
EntityHighlightEffect highlightEffect;
|
|
|
|
Map<EntityRenderLayer, List<Drawable>> layers;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct WorldRenderData {
|
|
|
|
void clear();
|
|
|
|
|
|
|
|
WorldGeometry geometry;
|
|
|
|
|
|
|
|
Vec2I tileMinPosition;
|
|
|
|
RenderTileArray tiles;
|
|
|
|
Vec2I lightMinPosition;
|
|
|
|
Image lightMap;
|
2023-06-29 00:11:19 +00:00
|
|
|
Image tileLightMap;
|
2023-06-20 04:33:09 +00:00
|
|
|
|
|
|
|
List<EntityDrawables> entityDrawables;
|
2023-07-03 08:31:12 +00:00
|
|
|
List<Particle> const* particles;
|
2023-06-20 04:33:09 +00:00
|
|
|
|
|
|
|
List<OverheadBar> overheadBars;
|
|
|
|
List<Drawable> nametags;
|
|
|
|
|
|
|
|
List<Drawable> backgroundOverlays;
|
|
|
|
List<Drawable> foregroundOverlays;
|
|
|
|
|
|
|
|
List<ParallaxLayer> parallaxLayers;
|
|
|
|
|
|
|
|
SkyRenderData skyRenderData;
|
|
|
|
|
|
|
|
bool isFullbright = false;
|
|
|
|
float dimLevel = 0.0f;
|
|
|
|
Vec3B dimColor;
|
|
|
|
};
|
|
|
|
|
|
|
|
inline void WorldRenderData::clear() {
|
2023-07-03 08:31:12 +00:00
|
|
|
tiles.resize({0, 0}); // keep reserved
|
2023-06-20 04:33:09 +00:00
|
|
|
|
|
|
|
entityDrawables.clear();
|
2023-07-03 08:31:12 +00:00
|
|
|
particles = nullptr;
|
2023-06-20 04:33:09 +00:00
|
|
|
overheadBars.clear();
|
|
|
|
nametags.clear();
|
|
|
|
backgroundOverlays.clear();
|
|
|
|
foregroundOverlays.clear();
|
|
|
|
parallaxLayers.clear();
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|