This commit is contained in:
Aria 2025-03-21 22:23:30 +11:00
commit 9c94d113d3
Signed by untrusted user who does not match committer: aria
GPG key ID: 19AB7AA462B8AB3B
10260 changed files with 1237388 additions and 0 deletions

62
source/game/StarBiome.hpp Normal file
View file

@ -0,0 +1,62 @@
#ifndef STAR_BIOME_HPP
#define STAR_BIOME_HPP
#include "StarBiomePlacement.hpp"
#include "StarSpawner.hpp"
namespace Star {
STAR_STRUCT(AmbientNoisesDescription);
STAR_CLASS(Parallax);
STAR_STRUCT(BiomePlaceables);
STAR_STRUCT(Biome);
struct BiomePlaceables {
BiomePlaceables();
explicit BiomePlaceables(Json const& json);
Json toJson() const;
// If any of the item distributions contain trees, this returns the first
// tree type.
Maybe<TreeVariant> firstTreeType() const;
ModId grassMod;
float grassModDensity;
ModId ceilingGrassMod;
float ceilingGrassModDensity;
List<BiomeItemDistribution> itemDistributions;
};
struct Biome {
Biome();
explicit Biome(Json const& store);
Json toJson() const;
String baseName;
String description;
MaterialId mainBlock;
List<MaterialId> subBlocks;
// Pairs the ore type with the commonality multiplier.
List<pair<ModId, float>> ores;
float hueShift;
MaterialHue materialHueShift;
BiomePlaceables surfacePlaceables;
BiomePlaceables undergroundPlaceables;
SpawnProfile spawnProfile;
ParallaxPtr parallax;
AmbientNoisesDescriptionPtr ambientNoises;
AmbientNoisesDescriptionPtr musicTrack;
};
}
#endif