|
|
126957e59f
|
Add utilities for sampling terrain foliage masks
|
2026-05-02 04:10:20 +02:00 |
|
|
|
f1bd573ea1
|
Add utilities for managing and sampling terrain foliage masks
|
2026-05-02 04:10:02 +02:00 |
|
|
|
3fff634981
|
Implement utilities for terrain foliage mask management
|
2026-05-02 04:09:48 +02:00 |
|
|
|
def955b49a
|
Add function to create flat foliage mask values for terrain
|
2026-05-02 04:09:30 +02:00 |
|
|
|
6c734d377a
|
Add validation and normalization for foliage layer IDs
|
2026-05-02 04:09:23 +02:00 |
|
|
|
2747665558
|
Add foliage mask support to terrain structure
|
2026-05-02 04:09:15 +02:00 |
|
|
|
81766b7566
|
feat(test): Add unit tests for foliage layer commands
|
2026-05-02 04:04:51 +02:00 |
|
|
|
d8d7877411
|
Filter bundled foliage prototypes and update UI styling
|
2026-05-02 04:03:29 +02:00 |
|
|
|
d4cb89839d
|
Feat: Add comprehensive UI controls for foliage management (layers, prototypes, and scatter settings)
|
2026-05-02 04:03:15 +02:00 |
|
|
|
0ed339892a
|
Define numeric inputs and create drafts for foliage layers
|
2026-05-02 04:02:20 +02:00 |
|
|
|
fec11884b1
|
Add sorted list of foliage prototypes
|
2026-05-02 04:01:57 +02:00 |
|
|
|
2884ecc1e5
|
Feat: Implement comprehensive foliage layer management features (creation, renaming, deletion, and property updates)
|
2026-05-02 04:01:46 +02:00 |
|
|
|
db52c7fa5e
|
Manage foliage layer selection and draft state
|
2026-05-02 04:01:11 +02:00 |
|
|
|
886a21aa9b
|
Implement state and logic for managing foliage layers
|
2026-05-02 04:01:00 +02:00 |
|
|
|
ba67e22b47
|
Add utilities for handling, validating, and formatting foliage layer and prototype data
|
2026-05-02 04:00:52 +02:00 |
|
|
|
68e4a0e00c
|
Add foliage layer management commands and types
|
2026-05-02 04:00:25 +02:00 |
|
|
|
c9adcd9cd3
|
Feat: Implement foliage layer management commands (create, delete, update)
|
2026-05-02 04:00:18 +02:00 |
|
|
|
796760c00a
|
Add validation for foliage prototypes in scene documents
|
2026-05-02 03:51:31 +02:00 |
|
|
|
4a3774a729
|
Update local draft storage serialization tests to include foliage layers
|
2026-05-02 03:51:31 +02:00 |
|
|
|
f2eb126037
|
Test: Ensure foliage prototypes are cleaned up when deleting a project asset
|
2026-05-02 03:50:14 +02:00 |
|
|
|
1c0cc6540e
|
Add serialization tests for foliage migration and bundled prototypes
|
2026-05-02 03:50:00 +02:00 |
|
|
|
d96cd1b859
|
Update serialization tests for new scene versions and foliage support
|
2026-05-02 03:50:00 +02:00 |
|
|
|
af7ae7d210
|
auto-git:
[change] tests/serialization/scene-document-json.test.ts
|
2026-05-02 03:49:30 +02:00 |
|
|
|
cdf5158819
|
auto-git:
[change] tests/domain/create-empty-scene-document.test.ts
|
2026-05-02 03:49:30 +02:00 |
|
|
|
304d3ccec1
|
auto-git:
[add] tests/domain/foliage.test.ts
|
2026-05-02 03:49:30 +02:00 |
|
|
|
49d98656a6
|
auto-git:
[add] tests/domain/bundled-foliage.test.ts
|
2026-05-02 03:49:30 +02:00 |
|
|
|
5c2bc9bd94
|
Support foliage layers in project scene creation and validate layer enabled status
|
2026-05-02 03:48:07 +02:00 |
|
|
|
af1f05d46e
|
Improve asset deletion to clean up references to removed foliage prototypes
|
2026-05-02 03:47:58 +02:00 |
|
|
|
14d6ed11bd
|
Update resource validation and diagnostics filtering for foliage prototypes
|
2026-05-02 03:47:58 +02:00 |
|
|
|
e559174bd9
|
auto-git:
[change] src/document/scene-document-validation.ts
|
2026-05-02 03:46:33 +02:00 |
|
|
|
92107465aa
|
auto-git:
[change] src/document/scene-document-validation.ts
|
2026-05-02 03:46:21 +02:00 |
|
|
|
b22bb72884
|
auto-git:
[change] src/document/scene-document-validation.ts
|
2026-05-02 03:43:58 +02:00 |
|
|
|
232c1591a8
|
auto-git:
[change] src/document/migrate-scene-document.ts
|
2026-05-02 03:43:58 +02:00 |
|
|
|
be5e219adb
|
auto-git:
[change] src/document/migrate-scene-document.ts
|
2026-05-02 03:43:58 +02:00 |
|
|
|
25c0ce78ec
|
auto-git:
[change] src/document/migrate-scene-document.ts
|
2026-05-02 03:43:58 +02:00 |
|
|
|
7944524fcc
|
auto-git:
[change] src/document/migrate-scene-document.ts
|
2026-05-02 03:43:01 +02:00 |
|
|
|
9cb8633e8e
|
auto-git:
[change] src/document/migrate-scene-document.ts
|
2026-05-02 03:42:49 +02:00 |
|
|
|
26620ab9a2
|
auto-git:
[change] src/document/migrate-scene-document.ts
|
2026-05-02 03:42:01 +02:00 |
|
|
|
70ae4db6ea
|
auto-git:
[change] src/document/scene-document.ts
|
2026-05-02 03:41:52 +02:00 |
|
|
|
3001ed1ff1
|
auto-git:
[add] src/foliage/bundled-foliage-manifest.ts
|
2026-05-02 03:41:52 +02:00 |
|
|
|
ee64bc3401
|
auto-git:
[add] src/foliage/bundled-foliage.ts
|
2026-05-02 03:41:20 +02:00 |
|
|
|
0c92f4f4cc
|
auto-git:
[add] src/foliage/foliage.ts
|
2026-05-02 03:40:13 +02:00 |
|
|
|
db6db35596
|
auto-git:
[add] public/foliage/Grass/BlueFescue/BlueFescue_LOD0.glb
[add] public/foliage/Grass/BlueFescue/BlueFescue_LOD1.glb
[add] public/foliage/Grass/BlueFescue/BlueFescue_LOD2.glb
[add] public/foliage/Grass/BlueFescue/BlueFescue_LOD3.glb
[add] public/foliage/Grass/BroadBlade/BroadBlade_LOD0.glb
[add] public/foliage/Grass/BroadBlade/BroadBlade_LOD1.glb
[add] public/foliage/Grass/BroadBlade/BroadBlade_LOD2.glb
[add] public/foliage/Grass/BroadBlade/BroadBlade_LOD3.glb
[add] public/foliage/Grass/DryTuft/DryTuft_LOD0.glb
[add] public/foliage/Grass/DryTuft/DryTuft_LOD1.glb
[add] public/foliage/Grass/DryTuft/DryTuft_LOD2.glb
[add] public/foliage/Grass/DryTuft/DryTuft_LOD3.glb
[add] public/foliage/Grass/Foxtail/Foxtail_LOD0.glb
[add] public/foliage/Grass/Foxtail/Foxtail_LOD1.glb
[add] public/foliage/Grass/Foxtail/Foxtail_LOD2.glb
[add] public/foliage/Grass/Foxtail/Foxtail_LOD3.glb
[add] public/foliage/Grass/MarshReed/MarshReed_LOD0.glb
[add] public/foliage/Grass/MarshReed/MarshReed_LOD1.glb
[add] public/foliage/Grass/MarshReed/MarshReed_LOD2.glb
[add] public/foliage/Grass/MarshReed/MarshReed_LOD3.glb
[add] public/foliage/Grass/MeadowSoft/MeadowSoft_LOD0.glb
[add] public/foliage/Grass/MeadowSoft/MeadowSoft_LOD1.glb
[add] public/foliage/Grass/MeadowSoft/MeadowSoft_LOD2.glb
[add] public/foliage/Grass/MeadowSoft/MeadowSoft_LOD3.glb
[add] public/foliage/Grass/SparseField/SparseField_LOD0.glb
[add] public/foliage/Grass/SparseField/SparseField_LOD1.glb
[add] public/foliage/Grass/SparseField/SparseField_LOD2.glb
[add] public/foliage/Grass/SparseField/SparseField_LOD3.glb
[add] public/foliage/Grass/Windswept/Windswept_LOD0.glb
[add] public/foliage/Grass/Windswept/Windswept_LOD1.glb
[add] public/foliage/Grass/Windswept/Windswept_LOD2.glb
[add] public/foliage/Grass/Windswept/Windswept_LOD3.glb
[add] public/foliage/GrassDry/BrittleGrassClump/BrittleGrassClump_LOD0.glb
[add] public/foliage/GrassDry/BrittleGrassClump/BrittleGrassClump_LOD1.glb
[add] public/foliage/GrassDry/BrittleGrassClump/BrittleGrassClump_LOD2.glb
[add] public/foliage/GrassDry/BrittleGrassClump/BrittleGrassClump_LOD3.glb
[add] public/foliage/GrassDry/BrokenHayPile/BrokenHayPile_LOD0.glb
[add] public/foliage/GrassDry/BrokenHayPile/BrokenHayPile_LOD1.glb
[add] public/foliage/GrassDry/BrokenHayPile/BrokenHayPile_LOD2.glb
[add] public/foliage/GrassDry/BrokenHayPile/BrokenHayPile_LOD3.glb
[add] public/foliage/GrassDry/CutStubblePatch/CutStubblePatch_LOD0.glb
[add] public/foliage/GrassDry/CutStubblePatch/CutStubblePatch_LOD1.glb
[add] public/foliage/GrassDry/CutStubblePatch/CutStubblePatch_LOD2.glb
[add] public/foliage/GrassDry/CutStubblePatch/CutStubblePatch_LOD3.glb
[add] public/foliage/GrassDry/DryTuftFan/DryTuftFan_LOD0.glb
[add] public/foliage/GrassDry/DryTuftFan/DryTuftFan_LOD1.glb
[add] public/foliage/GrassDry/DryTuftFan/DryTuftFan_LOD2.glb
[add] public/foliage/GrassDry/DryTuftFan/DryTuftFan_LOD3.glb
[add] public/foliage/GrassDry/GoldenSparseGrass/GoldenSparseGrass_LOD0.glb
[add] public/foliage/GrassDry/GoldenSparseGrass/GoldenSparseGrass_LOD1.glb
[add] public/foliage/GrassDry/GoldenSparseGrass/GoldenSparseGrass_LOD2.glb
[add] public/foliage/GrassDry/GoldenSparseGrass/GoldenSparseGrass_LOD3.glb
[add] public/foliage/GrassDry/MownClippings/MownClippings_LOD0.glb
[add] public/foliage/GrassDry/MownClippings/MownClippings_LOD1.glb
[add] public/foliage/GrassDry/MownClippings/MownClippings_LOD2.glb
[add] public/foliage/GrassDry/MownClippings/MownClippings_LOD3.glb
[add] public/foliage/GrassDry/StrawLitterMat/StrawLitterMat_LOD0.glb
[add] public/foliage/GrassDry/StrawLitterMat/StrawLitterMat_LOD1.glb
[add] public/foliage/GrassDry/StrawLitterMat/StrawLitterMat_LOD2.glb
[add] public/foliage/GrassDry/StrawLitterMat/StrawLitterMat_LOD3.glb
[add] public/foliage/GrassDry/WheatStubbleRow/WheatStubbleRow_LOD0.glb
[add] public/foliage/GrassDry/WheatStubbleRow/WheatStubbleRow_LOD1.glb
[add] public/foliage/GrassDry/WheatStubbleRow/WheatStubbleRow_LOD2.glb
[add] public/foliage/GrassDry/WheatStubbleRow/WheatStubbleRow_LOD3.glb
[add] public/foliage/GrassTall/BentWildGrass/BentWildGrass_LOD0.glb
[add] public/foliage/GrassTall/BentWildGrass/BentWildGrass_LOD1.glb
[add] public/foliage/GrassTall/BentWildGrass/BentWildGrass_LOD2.glb
[add] public/foliage/GrassTall/BentWildGrass/BentWildGrass_LOD3.glb
[add] public/foliage/GrassTall/DryPrairieClump/DryPrairieClump_LOD0.glb
[add] public/foliage/GrassTall/DryPrairieClump/DryPrairieClump_LOD1.glb
[add] public/foliage/GrassTall/DryPrairieClump/DryPrairieClump_LOD2.glb
[add] public/foliage/GrassTall/DryPrairieClump/DryPrairieClump_LOD3.glb
[add] public/foliage/GrassTall/FeatherGrassClump/FeatherGrassClump_LOD0.glb
[add] public/foliage/GrassTall/FeatherGrassClump/FeatherGrassClump_LOD1.glb
[add] public/foliage/GrassTall/FeatherGrassClump/FeatherGrassClump_LOD2.glb
[add] public/foliage/GrassTall/FeatherGrassClump/FeatherGrassClump_LOD3.glb
[add] public/foliage/GrassTall/ReedGrassClump/ReedGrassClump_LOD0.glb
[add] public/foliage/GrassTall/ReedGrassClump/ReedGrassClump_LOD1.glb
[add] public/foliage/GrassTall/ReedGrassClump/ReedGrassClump_LOD2.glb
[add] public/foliage/GrassTall/ReedGrassClump/ReedGrassClump_LOD3.glb
[add] public/foliage/GrassTall/SeedStemClump/SeedStemClump_LOD0.glb
[add] public/foliage/GrassTall/SeedStemClump/SeedStemClump_LOD1.glb
[add] public/foliage/GrassTall/SeedStemClump/SeedStemClump_LOD2.glb
[add] public/foliage/GrassTall/SeedStemClump/SeedStemClump_LOD3.glb
[add] public/foliage/GrassTall/TallMeadowClump/TallMeadowClump_LOD0.glb
[add] public/foliage/GrassTall/TallMeadowClump/TallMeadowClump_LOD1.glb
[add] public/foliage/GrassTall/TallMeadowClump/TallMeadowClump_LOD2.glb
[add] public/foliage/GrassTall/TallMeadowClump/TallMeadowClump_LOD3.glb
[add] public/foliage/GrassTall/TuftedRushClump/TuftedRushClump_LOD0.glb
[add] public/foliage/GrassTall/TuftedRushClump/TuftedRushClump_LOD1.glb
[add] public/foliage/GrassTall/TuftedRushClump/TuftedRushClump_LOD2.glb
[add] public/foliage/GrassTall/TuftedRushClump/TuftedRushClump_LOD3.glb
[add] public/foliage/GrassTall/WildOatClump/WildOatClump_LOD0.glb
[add] public/foliage/GrassTall/WildOatClump/WildOatClump_LOD1.glb
[add] public/foliage/GrassTall/WildOatClump/WildOatClump_LOD2.glb
[add] public/foliage/GrassTall/WildOatClump/WildOatClump_LOD3.glb
[add] public/foliage/Weed/CloverPatch/CloverPatch_LOD0.glb
[add] public/foliage/Weed/CloverPatch/CloverPatch_LOD1.glb
[add] public/foliage/Weed/CloverPatch/CloverPatch_LOD2.glb
[add] public/foliage/Weed/CloverPatch/CloverPatch_LOD3.glb
[add] public/foliage/Weed/DandelionRosette/DandelionRosette_LOD0.glb
[add] public/foliage/Weed/DandelionRosette/DandelionRosette_LOD1.glb
[add] public/foliage/Weed/DandelionRosette/DandelionRosette_LOD2.glb
[add] public/foliage/Weed/DandelionRosette/DandelionRosette_LOD3.glb
[add] public/foliage/Weed/DockWeed/DockWeed_LOD0.glb
[add] public/foliage/Weed/DockWeed/DockWeed_LOD1.glb
[add] public/foliage/Weed/DockWeed/DockWeed_LOD2.glb
[add] public/foliage/Weed/DockWeed/DockWeed_LOD3.glb
[add] public/foliage/Weed/GroundIvy/GroundIvy_LOD0.glb
[add] public/foliage/Weed/GroundIvy/GroundIvy_LOD1.glb
[add] public/foliage/Weed/GroundIvy/GroundIvy_LOD2.glb
[add] public/foliage/Weed/GroundIvy/GroundIvy_LOD3.glb
[add] public/foliage/Weed/NettlePatch/NettlePatch_LOD0.glb
[add] public/foliage/Weed/NettlePatch/NettlePatch_LOD1.glb
[add] public/foliage/Weed/NettlePatch/NettlePatch_LOD2.glb
[add] public/foliage/Weed/NettlePatch/NettlePatch_LOD3.glb
[add] public/foliage/Weed/PlantainCluster/PlantainCluster_LOD0.glb
[add] public/foliage/Weed/PlantainCluster/PlantainCluster_LOD1.glb
[add] public/foliage/Weed/PlantainCluster/PlantainCluster_LOD2.glb
[add] public/foliage/Weed/PlantainCluster/PlantainCluster_LOD3.glb
[add] public/foliage/Weed/RagweedSprig/RagweedSprig_LOD0.glb
[add] public/foliage/Weed/RagweedSprig/RagweedSprig_LOD1.glb
[add] public/foliage/Weed/RagweedSprig/RagweedSprig_LOD2.glb
[add] public/foliage/Weed/RagweedSprig/RagweedSprig_LOD3.glb
[add] public/foliage/Weed/ThistleRosette/ThistleRosette_LOD0.glb
[add] public/foliage/Weed/ThistleRosette/ThistleRosette_LOD1.glb
[add] public/foliage/Weed/ThistleRosette/ThistleRosette_LOD2.glb
[add] public/foliage/Weed/ThistleRosette/ThistleRosette_LOD3.glb
[add] public/foliage/WheatUnderstory/BroadPlantainPatch/BroadPlantainPatch_LOD0.glb
[add] public/foliage/WheatUnderstory/BroadPlantainPatch/BroadPlantainPatch_LOD1.glb
[add] public/foliage/WheatUnderstory/BroadPlantainPatch/BroadPlantainPatch_LOD2.glb
[add] public/foliage/WheatUnderstory/BroadPlantainPatch/BroadPlantainPatch_LOD3.glb
[add] public/foliage/WheatUnderstory/ChickweedMat/ChickweedMat_LOD0.glb
[add] public/foliage/WheatUnderstory/ChickweedMat/ChickweedMat_LOD1.glb
[add] public/foliage/WheatUnderstory/ChickweedMat/ChickweedMat_LOD2.glb
[add] public/foliage/WheatUnderstory/ChickweedMat/ChickweedMat_LOD3.glb
[add] public/foliage/WheatUnderstory/FieldWeedSprig/FieldWeedSprig_LOD0.glb
[add] public/foliage/WheatUnderstory/FieldWeedSprig/FieldWeedSprig_LOD1.glb
[add] public/foliage/WheatUnderstory/FieldWeedSprig/FieldWeedSprig_LOD2.glb
[add] public/foliage/WheatUnderstory/FieldWeedSprig/FieldWeedSprig_LOD3.glb
[add] public/foliage/WheatUnderstory/RedCloverTuft/RedCloverTuft_LOD0.glb
[add] public/foliage/WheatUnderstory/RedCloverTuft/RedCloverTuft_LOD1.glb
[add] public/foliage/WheatUnderstory/RedCloverTuft/RedCloverTuft_LOD2.glb
[add] public/foliage/WheatUnderstory/RedCloverTuft/RedCloverTuft_LOD3.glb
[add] public/foliage/WheatUnderstory/RibwortPlantain/RibwortPlantain_LOD0.glb
[add] public/foliage/WheatUnderstory/RibwortPlantain/RibwortPlantain_LOD1.glb
[add] public/foliage/WheatUnderstory/RibwortPlantain/RibwortPlantain_LOD2.glb
[add] public/foliage/WheatUnderstory/RibwortPlantain/RibwortPlantain_LOD3.glb
[add] public/foliage/WheatUnderstory/TinyBlueFlowerClump/TinyBlueFlowerClump_LOD0.glb
[add] public/foliage/WheatUnderstory/TinyBlueFlowerClump/TinyBlueFlowerClump_LOD1.glb
[add] public/foliage/WheatUnderstory/TinyBlueFlowerClump/TinyBlueFlowerClump_LOD2.glb
[add] public/foliage/WheatUnderstory/TinyBlueFlowerClump/TinyBlueFlowerClump_LOD3.glb
[add] public/foliage/WheatUnderstory/TinyDaisyClump/TinyDaisyClump_LOD0.glb
[add] public/foliage/WheatUnderstory/TinyDaisyClump/TinyDaisyClump_LOD1.glb
[add] public/foliage/WheatUnderstory/TinyDaisyClump/TinyDaisyClump_LOD2.glb
[add] public/foliage/WheatUnderstory/TinyDaisyClump/TinyDaisyClump_LOD3.glb
[add] public/foliage/WheatUnderstory/WhiteCloverPatch/WhiteCloverPatch_LOD0.glb
[add] public/foliage/WheatUnderstory/WhiteCloverPatch/WhiteCloverPatch_LOD1.glb
[add] public/foliage/WheatUnderstory/WhiteCloverPatch/WhiteCloverPatch_LOD2.glb
[add] public/foliage/WheatUnderstory/WhiteCloverPatch/WhiteCloverPatch_LOD3.glb
|
2026-05-02 03:38:28 +02:00 |
|
|
|
905ea1ccfe
|
auto-git:
[change] src/app/App.tsx
|
2026-05-01 22:11:33 +02:00 |
|
|
|
c6f12d91d4
|
auto-git:
[change] src/viewport-three/viewport-host.ts
|
2026-05-01 22:08:17 +02:00 |
|
|
|
6361c72dfe
|
auto-git:
[change] tests/serialization/editor-draft-storage.test.ts
|
2026-05-01 18:55:45 +02:00 |
|
|
|
b53564423d
|
auto-git:
[change] tests/serialization/editor-draft-storage.test.ts
|
2026-05-01 18:54:09 +02:00 |
|
|
|
0558ddfaed
|
auto-git:
[add] tests/serialization/editor-draft-storage.test.ts
|
2026-05-01 18:54:09 +02:00 |
|
|
|
99a7f05f4f
|
auto-git:
[add] tests/unit/editor-autosave.test.ts
|
2026-05-01 18:54:08 +02:00 |
|
|
|
d38c9b9941
|
auto-git:
[unlink] tests/unit/editor-autosave.test.ts
|
2026-05-01 18:52:44 +02:00 |
|