66 bool canUndo() const noexcept {
return transactions_.canUndo(); }
68 bool canRedo() const noexcept {
return transactions_.canRedo(); }
70 std::uint64_t
revision() const noexcept {
return target_.revision(); }
74 std::uint32_t
seed() const noexcept {
return seed_; }
76 float spacing() const noexcept {
return spacing_; }
83 int layerCount()
const {
return static_cast<int>(target_.layers().size()); }
85 std::string layerId(
int index)
const;
87 std::string layerName(
int index)
const;
89 float layerDensity(
int index)
const;
91 int layerPriority(
int index)
const;
93 bool isLayerSelected(
int index)
const;
96 int assetCount()
const;
98 std::string assetId(
int index)
const;
100 std::string assetRef(
int index)
const;
102 float assetWeight(
int index)
const;
104 bool isAssetSelected(
int index)
const;
107 int exclusionCount()
const {
return static_cast<int>(target_.exclusions().size()); }
109 std::string exclusionAsset(
int index)
const;
112 int pointCount()
const {
return static_cast<int>(points_.size()); }
114 float pointX(
int index)
const;
116 float pointZ(
int index)
const;
118 std::string pointAsset(
int index)
const;
121 struct PreviewPoint {
139 [[nodiscard]] biome_editing::Result<void> commit(
140 biome_editing::Result<biome_editing::DomainOperation>
operation, std::string
label);
141 [[nodiscard]] biome_editing::Result<void> refreshPreview();
142 void seedPreviewDocument();
143 editor::SelectionSnapshot selection()
const;
145 const biome_editing::BiomeLayerValue* selectedLayer()
const;
147 const biome_editing::BiomeAssetValue* assetAt(
int index)
const;
149 biome_editing::BiomeDocumentTarget target_;
150 editor::LocalWorldAuthority authority_;
151 editor::LocalTransactionBackend transactions_;
152 procgen::SpatialData forestDomain_;
153 procgen::SpatialData clearingDomain_;
154 SpatialResolver resolver_;
155 biome_editing::BiomeDocumentRuntime runtime_;
156 std::vector<PreviewPoint> points_;
157 std::string selectedId_ =
"forest";
158 std::string selectedType_ =
"biome.layer";
159 std::uint64_t txSequence_ = 0;
160 std::uint64_t previewRevision_ = 0;
161 std::uint32_t seed_ = 42;
162 float spacing_ = 2.0f;