@felbrasil/dreamy 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +69 -2
- package/dist/api.d.ts +1 -0
- package/dist/api.js +2 -0
- package/dist/api.js.map +7 -0
- package/dist/chunks/chunk-72DMUKP3.js +1470 -0
- package/dist/chunks/chunk-72DMUKP3.js.map +7 -0
- package/dist/chunks/chunk-VZMBE5MV.js +5936 -0
- package/dist/chunks/chunk-VZMBE5MV.js.map +7 -0
- package/dist/chunks/chunk-ZU72KKME.js +8600 -0
- package/dist/chunks/chunk-ZU72KKME.js.map +7 -0
- package/dist/core.d.ts +1 -0
- package/dist/core.js +34 -0
- package/dist/core.js.map +7 -0
- package/dist/dreamy_evaluator.wasm +0 -0
- package/dist/evaluator.d.ts +1 -0
- package/dist/evaluator.js +52 -0
- package/dist/evaluator.js.map +7 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +7280 -0
- package/dist/index.js.map +7 -0
- package/dist/styles.css +1 -0
- package/dist/types/api/src/commands/command.d.ts +7 -0
- package/dist/types/api/src/commands/decal-commands.d.ts +35 -0
- package/dist/types/api/src/commands/palette-commands.d.ts +14 -0
- package/dist/types/api/src/commands/rig-commands.d.ts +229 -0
- package/dist/types/api/src/commands/scene-commands.d.ts +64 -0
- package/dist/types/api/src/commands/sculpt-commands.d.ts +111 -0
- package/dist/types/api/src/commands/stamp-spec.d.ts +3 -0
- package/dist/types/api/src/commands/target.d.ts +8 -0
- package/dist/types/api/src/creation-api.d.ts +52 -0
- package/dist/types/api/src/events/creation-event.d.ts +7 -0
- package/dist/types/api/src/events/decal-events.d.ts +20 -0
- package/dist/types/api/src/events/event-of.d.ts +6 -0
- package/dist/types/api/src/events/palette-events.d.ts +8 -0
- package/dist/types/api/src/events/rig-events.d.ts +161 -0
- package/dist/types/api/src/events/scene-events.d.ts +34 -0
- package/dist/types/api/src/events/sculpt-events.d.ts +53 -0
- package/dist/types/api/src/id.d.ts +1 -0
- package/dist/types/api/src/index.d.ts +31 -0
- package/dist/types/api/src/model/creation.d.ts +22 -0
- package/dist/types/api/src/model/decal.d.ts +48 -0
- package/dist/types/api/src/model/look.d.ts +56 -0
- package/dist/types/api/src/model/math.d.ts +18 -0
- package/dist/types/api/src/model/palette.d.ts +11 -0
- package/dist/types/api/src/model/rig.d.ts +125 -0
- package/dist/types/api/src/model/scene-object.d.ts +22 -0
- package/dist/types/api/src/model/sculpt.d.ts +13 -0
- package/dist/types/api/src/model/stamp.d.ts +53 -0
- package/dist/types/api/src/model/wing.d.ts +35 -0
- package/dist/types/api/src/ports/basic-ports.d.ts +7 -0
- package/dist/types/api/src/ports/evaluator.d.ts +62 -0
- package/dist/types/api/src/ports/persistence.d.ts +89 -0
- package/dist/types/api/src/ports/viewport.d.ts +125 -0
- package/dist/types/core/src/apply/body-part-added.d.ts +2 -0
- package/dist/types/core/src/apply/body-part-removed.d.ts +2 -0
- package/dist/types/core/src/apply/bone-removed.d.ts +3 -0
- package/dist/types/core/src/apply/bone-renamed.d.ts +2 -0
- package/dist/types/core/src/apply/bone-reparented.d.ts +2 -0
- package/dist/types/core/src/apply/bone-sizes-set.d.ts +3 -0
- package/dist/types/core/src/apply/bone-tags-set.d.ts +2 -0
- package/dist/types/core/src/apply/bone-transforms-set.d.ts +6 -0
- package/dist/types/core/src/apply/bones-added.d.ts +2 -0
- package/dist/types/core/src/apply/creature-generated.d.ts +3 -0
- package/dist/types/core/src/apply/decal-removed.d.ts +2 -0
- package/dist/types/core/src/apply/decals-added.d.ts +2 -0
- package/dist/types/core/src/apply/design-deleted.d.ts +2 -0
- package/dist/types/core/src/apply/design-saved.d.ts +2 -0
- package/dist/types/core/src/apply/flat-wings-set.d.ts +2 -0
- package/dist/types/core/src/apply/object-renamed.d.ts +2 -0
- package/dist/types/core/src/apply/object-reparented.d.ts +2 -0
- package/dist/types/core/src/apply/object-transforms-set.d.ts +2 -0
- package/dist/types/core/src/apply/objects-deleted.d.ts +2 -0
- package/dist/types/core/src/apply/objects-duplicated.d.ts +3 -0
- package/dist/types/core/src/apply/palette-color-set.d.ts +2 -0
- package/dist/types/core/src/apply/palette-reset.d.ts +2 -0
- package/dist/types/core/src/apply/part-grafted.d.ts +3 -0
- package/dist/types/core/src/apply/part-slot-swapped.d.ts +3 -0
- package/dist/types/core/src/apply/pivot-set.d.ts +2 -0
- package/dist/types/core/src/apply/pose-preset-applied.d.ts +3 -0
- package/dist/types/core/src/apply/pose-reset.d.ts +3 -0
- package/dist/types/core/src/apply/premade-applied.d.ts +3 -0
- package/dist/types/core/src/apply/region-blend-set.d.ts +3 -0
- package/dist/types/core/src/apply/rig-created.d.ts +2 -0
- package/dist/types/core/src/apply/rig-mirror-set.d.ts +2 -0
- package/dist/types/core/src/apply/rig-mode-set.d.ts +2 -0
- package/dist/types/core/src/apply/sculpt-created.d.ts +2 -0
- package/dist/types/core/src/apply/sculpt-look-set.d.ts +3 -0
- package/dist/types/core/src/apply/smear-group-set.d.ts +2 -0
- package/dist/types/core/src/apply/stamp-placements-set.d.ts +2 -0
- package/dist/types/core/src/apply/stamp-props-set.d.ts +2 -0
- package/dist/types/core/src/apply/stamps-added.d.ts +2 -0
- package/dist/types/core/src/apply/stamps-removed.d.ts +2 -0
- package/dist/types/core/src/apply/symmetry-set-for-all.d.ts +2 -0
- package/dist/types/core/src/atoms/check/check.d.ts +7 -0
- package/dist/types/core/src/atoms/decal/decal-limits.d.ts +6 -0
- package/dist/types/core/src/atoms/decal/decal-problem.d.ts +4 -0
- package/dist/types/core/src/atoms/decal/design-problem.d.ts +4 -0
- package/dist/types/core/src/atoms/look/catalogs.d.ts +9 -0
- package/dist/types/core/src/atoms/look/default-look.d.ts +4 -0
- package/dist/types/core/src/atoms/look/look-problem.d.ts +7 -0
- package/dist/types/core/src/atoms/look/merge-look.d.ts +3 -0
- package/dist/types/core/src/atoms/math/mat4.d.ts +14 -0
- package/dist/types/core/src/atoms/math/quat.d.ts +18 -0
- package/dist/types/core/src/atoms/math/transform.d.ts +7 -0
- package/dist/types/core/src/atoms/math/vec3.d.ts +18 -0
- package/dist/types/core/src/atoms/palette/default-palette.d.ts +4 -0
- package/dist/types/core/src/atoms/palette/is-color-ref.d.ts +2 -0
- package/dist/types/core/src/atoms/palette/poc-color-ref.d.ts +6 -0
- package/dist/types/core/src/atoms/rig/bone-matrices.d.ts +8 -0
- package/dist/types/core/src/atoms/rig/bone-region.d.ts +8 -0
- package/dist/types/core/src/atoms/rig/bone-role.d.ts +11 -0
- package/dist/types/core/src/atoms/rig/bone-size.d.ts +7 -0
- package/dist/types/core/src/atoms/rig/compose-local.d.ts +6 -0
- package/dist/types/core/src/atoms/rig/find-rig.d.ts +11 -0
- package/dist/types/core/src/atoms/rig/mirror-partner.d.ts +3 -0
- package/dist/types/core/src/atoms/rig/mirror-sculpt.d.ts +9 -0
- package/dist/types/core/src/atoms/rig/mirror-transform.d.ts +9 -0
- package/dist/types/core/src/atoms/rig/partner-target.d.ts +3 -0
- package/dist/types/core/src/atoms/rig/pose-presets.d.ts +11 -0
- package/dist/types/core/src/atoms/rig/pose-rule.d.ts +48 -0
- package/dist/types/core/src/atoms/rig/pose-template-rules.d.ts +8 -0
- package/dist/types/core/src/atoms/rig/rebase-pose.d.ts +6 -0
- package/dist/types/core/src/atoms/rig/resize-bones.d.ts +12 -0
- package/dist/types/core/src/atoms/rig/rig-extent.d.ts +3 -0
- package/dist/types/core/src/atoms/rig/side-from-name.d.ts +7 -0
- package/dist/types/core/src/atoms/rig/size-frame.d.ts +18 -0
- package/dist/types/core/src/atoms/rig/with-slot-parts.d.ts +9 -0
- package/dist/types/core/src/atoms/scene/copy-with-new-ids.d.ts +7 -0
- package/dist/types/core/src/atoms/scene/object-tree.d.ts +8 -0
- package/dist/types/core/src/atoms/scene/place-in-order.d.ts +7 -0
- package/dist/types/core/src/atoms/scene/unique-name.d.ts +4 -0
- package/dist/types/core/src/atoms/scene/world-matrix.d.ts +4 -0
- package/dist/types/core/src/atoms/sculpt/all-sculpts.d.ts +3 -0
- package/dist/types/core/src/atoms/sculpt/is-wing-target.d.ts +3 -0
- package/dist/types/core/src/atoms/sculpt/target-sculpt.d.ts +10 -0
- package/dist/types/core/src/atoms/sculpt/update-target.d.ts +8 -0
- package/dist/types/core/src/atoms/stamp/apply-stamp-props.d.ts +11 -0
- package/dist/types/core/src/atoms/stamp/clamp-symmetry.d.ts +11 -0
- package/dist/types/core/src/atoms/stamp/clean-props.d.ts +3 -0
- package/dist/types/core/src/atoms/stamp/emptied-groups.d.ts +3 -0
- package/dist/types/core/src/atoms/stamp/move-locked-groups.d.ts +12 -0
- package/dist/types/core/src/atoms/stamp/normalize-base.d.ts +6 -0
- package/dist/types/core/src/atoms/stamp/resolve-stamp-props.d.ts +14 -0
- package/dist/types/core/src/atoms/stamp/smear.d.ts +15 -0
- package/dist/types/core/src/atoms/stamp/stamp-problem.d.ts +7 -0
- package/dist/types/core/src/atoms/wing/wing-problem.d.ts +6 -0
- package/dist/types/core/src/create-creation-api.d.ts +12 -0
- package/dist/types/core/src/decide.d.ts +4 -0
- package/dist/types/core/src/empty-creation.d.ts +2 -0
- package/dist/types/core/src/fold.d.ts +6 -0
- package/dist/types/core/src/index.d.ts +9 -0
- package/dist/types/core/src/molecules/add-body-part.d.ts +8 -0
- package/dist/types/core/src/molecules/add-bone.d.ts +8 -0
- package/dist/types/core/src/molecules/add-decals.d.ts +4 -0
- package/dist/types/core/src/molecules/add-stamps.d.ts +8 -0
- package/dist/types/core/src/molecules/apply-pose-preset.d.ts +4 -0
- package/dist/types/core/src/molecules/apply-premade.d.ts +9 -0
- package/dist/types/core/src/molecules/auto-tag-sides.d.ts +4 -0
- package/dist/types/core/src/molecules/create-rig.d.ts +4 -0
- package/dist/types/core/src/molecules/create-sculpt.d.ts +4 -0
- package/dist/types/core/src/molecules/delete-design.d.ts +4 -0
- package/dist/types/core/src/molecules/delete-objects.d.ts +4 -0
- package/dist/types/core/src/molecules/duplicate-objects.d.ts +6 -0
- package/dist/types/core/src/molecules/generate-creature.d.ts +7 -0
- package/dist/types/core/src/molecules/graft-part.d.ts +4 -0
- package/dist/types/core/src/molecules/mirror-objects.d.ts +7 -0
- package/dist/types/core/src/molecules/molecule.d.ts +17 -0
- package/dist/types/core/src/molecules/remove-body-part.d.ts +3 -0
- package/dist/types/core/src/molecules/remove-bone.d.ts +4 -0
- package/dist/types/core/src/molecules/remove-decal.d.ts +3 -0
- package/dist/types/core/src/molecules/remove-smear-group.d.ts +4 -0
- package/dist/types/core/src/molecules/remove-stamps.d.ts +4 -0
- package/dist/types/core/src/molecules/rename-bone.d.ts +3 -0
- package/dist/types/core/src/molecules/rename-object.d.ts +3 -0
- package/dist/types/core/src/molecules/reparent-bone.d.ts +4 -0
- package/dist/types/core/src/molecules/reparent-object.d.ts +4 -0
- package/dist/types/core/src/molecules/reset-palette.d.ts +3 -0
- package/dist/types/core/src/molecules/reset-pose.d.ts +3 -0
- package/dist/types/core/src/molecules/save-design.d.ts +4 -0
- package/dist/types/core/src/molecules/set-bone-sizes.d.ts +8 -0
- package/dist/types/core/src/molecules/set-bone-tags.d.ts +4 -0
- package/dist/types/core/src/molecules/set-bone-transforms.d.ts +7 -0
- package/dist/types/core/src/molecules/set-flat-wings.d.ts +4 -0
- package/dist/types/core/src/molecules/set-object-transforms.d.ts +3 -0
- package/dist/types/core/src/molecules/set-palette-color.d.ts +3 -0
- package/dist/types/core/src/molecules/set-pivot.d.ts +3 -0
- package/dist/types/core/src/molecules/set-region-blend.d.ts +4 -0
- package/dist/types/core/src/molecules/set-rig-mirror.d.ts +3 -0
- package/dist/types/core/src/molecules/set-rig-mode.d.ts +3 -0
- package/dist/types/core/src/molecules/set-sculpt-look.d.ts +7 -0
- package/dist/types/core/src/molecules/set-smear-group.d.ts +4 -0
- package/dist/types/core/src/molecules/set-stamp-placements.d.ts +4 -0
- package/dist/types/core/src/molecules/set-stamp-props.d.ts +3 -0
- package/dist/types/core/src/molecules/set-symmetry-for-all.d.ts +4 -0
- package/dist/types/core/src/molecules/swap-part-slot.d.ts +7 -0
- package/dist/types/core/src/premades/ant-bake.d.ts +2 -0
- package/dist/types/core/src/premades/bake-authoring.d.ts +35 -0
- package/dist/types/core/src/premades/bake-types.d.ts +65 -0
- package/dist/types/core/src/premades/baked-part-for.d.ts +11 -0
- package/dist/types/core/src/premades/bee-bake.d.ts +2 -0
- package/dist/types/core/src/premades/bird-bake.d.ts +2 -0
- package/dist/types/core/src/premades/body-stamps-for-bone.d.ts +14 -0
- package/dist/types/core/src/premades/bone-tree.d.ts +15 -0
- package/dist/types/core/src/premades/build-premade-rig.d.ts +23 -0
- package/dist/types/core/src/premades/build-template.d.ts +6 -0
- package/dist/types/core/src/premades/centipede-bake.d.ts +2 -0
- package/dist/types/core/src/premades/coat-stamps.d.ts +3 -0
- package/dist/types/core/src/premades/crab-bake.d.ts +2 -0
- package/dist/types/core/src/premades/dragon-bake.d.ts +2 -0
- package/dist/types/core/src/premades/face-decals.d.ts +17 -0
- package/dist/types/core/src/premades/fish-bake.d.ts +2 -0
- package/dist/types/core/src/premades/fit-part-slot.d.ts +21 -0
- package/dist/types/core/src/premades/generate-creature.d.ts +21 -0
- package/dist/types/core/src/premades/gorilla-bake.d.ts +2 -0
- package/dist/types/core/src/premades/graft-slot.d.ts +34 -0
- package/dist/types/core/src/premades/humanoid-bake.d.ts +2 -0
- package/dist/types/core/src/premades/insect6-bake.d.ts +2 -0
- package/dist/types/core/src/premades/jellyfish-bake.d.ts +2 -0
- package/dist/types/core/src/premades/lizard-bake.d.ts +2 -0
- package/dist/types/core/src/premades/make-baked-part.d.ts +9 -0
- package/dist/types/core/src/premades/make-body-part.d.ts +9 -0
- package/dist/types/core/src/premades/make-flat-part.d.ts +13 -0
- package/dist/types/core/src/premades/part-context.d.ts +20 -0
- package/dist/types/core/src/premades/part-kits.d.ts +36 -0
- package/dist/types/core/src/premades/part-slots.d.ts +17 -0
- package/dist/types/core/src/premades/part-stamp.d.ts +13 -0
- package/dist/types/core/src/premades/part-styles.d.ts +44 -0
- package/dist/types/core/src/premades/premade-fit.d.ts +18 -0
- package/dist/types/core/src/premades/premade-infos.d.ts +3 -0
- package/dist/types/core/src/premades/reseat-attachments.d.ts +31 -0
- package/dist/types/core/src/premades/rig-builder.d.ts +51 -0
- package/dist/types/core/src/premades/rodent-bake.d.ts +2 -0
- package/dist/types/core/src/premades/scorpion-bake.d.ts +2 -0
- package/dist/types/core/src/premades/shark-bake.d.ts +2 -0
- package/dist/types/core/src/premades/sitter-bake.d.ts +3 -0
- package/dist/types/core/src/premades/skeleton-bakes.d.ts +4 -0
- package/dist/types/core/src/premades/snake-bake.d.ts +2 -0
- package/dist/types/core/src/premades/spider-bake.d.ts +2 -0
- package/dist/types/core/src/premades/stamps-box.d.ts +9 -0
- package/dist/types/core/src/premades/style-for-bone.d.ts +7 -0
- package/dist/types/core/src/premades/swap-slot.d.ts +13 -0
- package/dist/types/core/src/premades/template-catalog.d.ts +20 -0
- package/dist/types/core/src/premades/template-color.d.ts +9 -0
- package/dist/types/core/src/premades/turtle-bake.d.ts +2 -0
- package/dist/types/core/src/premades/variants/aquatic-variants.d.ts +16 -0
- package/dist/types/core/src/premades/variants/coat-variants.d.ts +7 -0
- package/dist/types/core/src/premades/variants/ear-variants.d.ts +8 -0
- package/dist/types/core/src/premades/variants/fantasy-more-variants.d.ts +3 -0
- package/dist/types/core/src/premades/variants/fantasy-variants.d.ts +17 -0
- package/dist/types/core/src/premades/variants/head-variants.d.ts +9 -0
- package/dist/types/core/src/premades/variants/horn-variants.d.ts +7 -0
- package/dist/types/core/src/premades/variants/index.d.ts +10 -0
- package/dist/types/core/src/premades/variants/land-variants.d.ts +3 -0
- package/dist/types/core/src/premades/variants/leg-variants.d.ts +7 -0
- package/dist/types/core/src/premades/variants/part-variant.d.ts +14 -0
- package/dist/types/core/src/premades/variants/tail-variants.d.ts +6 -0
- package/dist/types/core/src/premades/variants/variant-authoring.d.ts +29 -0
- package/dist/types/core/src/premades/whale-bake.d.ts +2 -0
- package/dist/types/core/src/premades/wing-defaults.d.ts +4 -0
- package/dist/types/core/src/premades/wing-frame.d.ts +10 -0
- package/dist/types/core/src/premades/wolf-bake.d.ts +2 -0
- package/dist/types/core/src/premades/worm-bake.d.ts +2 -0
- package/dist/types/evaluator/src/abi.d.ts +64 -0
- package/dist/types/evaluator/src/chunks.d.ts +53 -0
- package/dist/types/evaluator/src/index.d.ts +11 -0
- package/dist/types/evaluator/src/prep/colors.d.ts +11 -0
- package/dist/types/evaluator/src/prep/mat3.d.ts +13 -0
- package/dist/types/evaluator/src/prep/pack.d.ts +23 -0
- package/dist/types/evaluator/src/prep/props.d.ts +16 -0
- package/dist/types/evaluator/src/prep/symmetry.d.ts +23 -0
- package/dist/types/evaluator/src/reference/core.d.ts +3 -0
- package/dist/types/evaluator/src/reference/mesher.d.ts +22 -0
- package/dist/types/evaluator/src/reference/skin.d.ts +8 -0
- package/dist/types/evaluator/src/session.d.ts +21 -0
- package/dist/types/evaluator/src/wasm/core.d.ts +9 -0
- package/dist/types/evaluator/src/worker/client.d.ts +28 -0
- package/dist/types/evaluator/src/worker/host.d.ts +8 -0
- package/dist/types/evaluator/src/worker/protocol.d.ts +39 -0
- package/dist/types/evaluator/src/worker/spawn.d.ts +6 -0
- package/dist/types/evaluator/src/worker/worker-inline.d.ts +1 -0
- package/dist/types/evaluator/src/worker/worker.d.ts +1 -0
- package/dist/types/module/src/index.d.ts +2 -0
- package/dist/types/module/src/ui/atoms/action-button.d.ts +10 -0
- package/dist/types/module/src/ui/atoms/badge.d.ts +9 -0
- package/dist/types/module/src/ui/atoms/checkbox.d.ts +6 -0
- package/dist/types/module/src/ui/atoms/color-input.d.ts +10 -0
- package/dist/types/module/src/ui/atoms/hex-chip.d.ts +5 -0
- package/dist/types/module/src/ui/atoms/icon-button.d.ts +14 -0
- package/dist/types/module/src/ui/atoms/icon.d.ts +8 -0
- package/dist/types/module/src/ui/atoms/kbd.d.ts +4 -0
- package/dist/types/module/src/ui/atoms/match-button.d.ts +10 -0
- package/dist/types/module/src/ui/atoms/number-input.d.ts +11 -0
- package/dist/types/module/src/ui/atoms/pill-button.d.ts +11 -0
- package/dist/types/module/src/ui/atoms/range-input.d.ts +17 -0
- package/dist/types/module/src/ui/atoms/select-input.d.ts +12 -0
- package/dist/types/module/src/ui/atoms/separator.d.ts +2 -0
- package/dist/types/module/src/ui/atoms/side-button.d.ts +13 -0
- package/dist/types/module/src/ui/atoms/swatch.d.ts +13 -0
- package/dist/types/module/src/ui/atoms/tool-button.d.ts +22 -0
- package/dist/types/module/src/ui/hooks/editor-actions.d.ts +50 -0
- package/dist/types/module/src/ui/hooks/editor-context.d.ts +37 -0
- package/dist/types/module/src/ui/hooks/use-compact.d.ts +2 -0
- package/dist/types/module/src/ui/hooks/use-editor-controller.d.ts +17 -0
- package/dist/types/module/src/ui/hooks/use-keyboard.d.ts +11 -0
- package/dist/types/module/src/ui/lib/catalog.d.ts +76 -0
- package/dist/types/module/src/ui/lib/colors.d.ts +15 -0
- package/dist/types/module/src/ui/lib/decals.d.ts +6 -0
- package/dist/types/module/src/ui/lib/design-geometry.d.ts +60 -0
- package/dist/types/module/src/ui/lib/math.d.ts +18 -0
- package/dist/types/module/src/ui/lib/placement.d.ts +8 -0
- package/dist/types/module/src/ui/lib/scene.d.ts +51 -0
- package/dist/types/module/src/ui/lib/symmetry.d.ts +5 -0
- package/dist/types/module/src/ui/lib/targets.d.ts +28 -0
- package/dist/types/module/src/ui/lib/view-state.d.ts +74 -0
- package/dist/types/module/src/ui/molecules/axis-pill.d.ts +7 -0
- package/dist/types/module/src/ui/molecules/color-field.d.ts +14 -0
- package/dist/types/module/src/ui/molecules/count-stepper.d.ts +9 -0
- package/dist/types/module/src/ui/molecules/floating-panel.d.ts +26 -0
- package/dist/types/module/src/ui/molecules/help-row.d.ts +8 -0
- package/dist/types/module/src/ui/molecules/inline-edit.d.ts +9 -0
- package/dist/types/module/src/ui/molecules/list-row.d.ts +25 -0
- package/dist/types/module/src/ui/molecules/modal.d.ts +11 -0
- package/dist/types/module/src/ui/molecules/mode-pill.d.ts +7 -0
- package/dist/types/module/src/ui/molecules/scroll-row.d.ts +10 -0
- package/dist/types/module/src/ui/molecules/slider-row.d.ts +16 -0
- package/dist/types/module/src/ui/molecules/swatch-row.d.ts +11 -0
- package/dist/types/module/src/ui/molecules/tab-bar.d.ts +9 -0
- package/dist/types/module/src/ui/molecules/toolbar-pill.d.ts +7 -0
- package/dist/types/module/src/ui/molecules/toolbar.d.ts +10 -0
- package/dist/types/module/src/ui/molecules/vec3-field.d.ts +10 -0
- package/dist/types/module/src/ui/organisms/bone-panel.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/bone-size-sliders.d.ts +9 -0
- package/dist/types/module/src/ui/organisms/category-bar.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/decal-bar.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/decal-editor.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/fleck-style-tab.d.ts +7 -0
- package/dist/types/module/src/ui/organisms/git-sync-panel.d.ts +10 -0
- package/dist/types/module/src/ui/organisms/help-panel.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/material-tab.d.ts +3 -0
- package/dist/types/module/src/ui/organisms/object-list-panel.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/palette-panel.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/parts-tab.d.ts +26 -0
- package/dist/types/module/src/ui/organisms/pattern-tab.d.ts +3 -0
- package/dist/types/module/src/ui/organisms/pose-tab.d.ts +8 -0
- package/dist/types/module/src/ui/organisms/premade-picker.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/properties-panel.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/region-blends.d.ts +5 -0
- package/dist/types/module/src/ui/organisms/rendering-bar.d.ts +5 -0
- package/dist/types/module/src/ui/organisms/rig-bar.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/scenes-modal.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/select-hint.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/shape-list-panel.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/side-dock.d.ts +4 -0
- package/dist/types/module/src/ui/organisms/stamp-bar.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/stamp-props-panel.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/stamp-size-panel.d.ts +4 -0
- package/dist/types/module/src/ui/organisms/stats-badge.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/style-bar.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/symmetry-bar.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/toast.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/token-guide.d.ts +5 -0
- package/dist/types/module/src/ui/organisms/touch-mods.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/transform-bar.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/transform-tab.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/utilities-bar.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/viewport-host.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/voxel-panel.d.ts +2 -0
- package/dist/types/module/src/ui/organisms/wing-tab.d.ts +10 -0
- package/dist/types/module/src/ui/pages/editor-page.d.ts +9 -0
- package/dist/types/module/src/ui/templates/editor-shell.d.ts +2 -0
- package/dist/types/studio/src/browser-files.d.ts +3 -0
- package/dist/types/studio/src/clock.d.ts +2 -0
- package/dist/types/studio/src/creation-file.d.ts +21 -0
- package/dist/types/studio/src/git-remote.d.ts +36 -0
- package/dist/types/studio/src/git-sync.d.ts +33 -0
- package/dist/types/studio/src/ids.d.ts +3 -0
- package/dist/types/studio/src/index.d.ts +15 -0
- package/dist/types/studio/src/indexed-db-library.d.ts +2 -0
- package/dist/types/studio/src/library-persistence.d.ts +29 -0
- package/dist/types/studio/src/library-sync.d.ts +29 -0
- package/dist/types/studio/src/preferences.d.ts +9 -0
- package/dist/types/studio/src/seed.d.ts +3 -0
- package/dist/types/studio/src/studio.d.ts +17 -0
- package/dist/types/viewport/src/create-viewport.d.ts +10 -0
- package/dist/types/viewport/src/decals/builtin-art.d.ts +19 -0
- package/dist/types/viewport/src/decals/builtin-docs.d.ts +7 -0
- package/dist/types/viewport/src/decals/decal-atlas.d.ts +37 -0
- package/dist/types/viewport/src/decals/decal-catalog.d.ts +17 -0
- package/dist/types/viewport/src/decals/decal-glsl.d.ts +2 -0
- package/dist/types/viewport/src/decals/decal-limits.d.ts +11 -0
- package/dist/types/viewport/src/decals/decal-uniforms.d.ts +40 -0
- package/dist/types/viewport/src/decals/design-raster.d.ts +8 -0
- package/dist/types/viewport/src/decals/interior-thumbs.d.ts +6 -0
- package/dist/types/viewport/src/index.d.ts +1 -0
- package/dist/types/viewport/src/interaction/bone-tool.d.ts +13 -0
- package/dist/types/viewport/src/interaction/bones-visible.d.ts +7 -0
- package/dist/types/viewport/src/interaction/cursor.d.ts +3 -0
- package/dist/types/viewport/src/interaction/decal-tool.d.ts +18 -0
- package/dist/types/viewport/src/interaction/esc-hold.d.ts +13 -0
- package/dist/types/viewport/src/interaction/ghost-geometry.d.ts +6 -0
- package/dist/types/viewport/src/interaction/gizmo.d.ts +34 -0
- package/dist/types/viewport/src/interaction/interaction-context.d.ts +41 -0
- package/dist/types/viewport/src/interaction/marquee.d.ts +8 -0
- package/dist/types/viewport/src/interaction/pivot-helper.d.ts +13 -0
- package/dist/types/viewport/src/interaction/select-tool.d.ts +30 -0
- package/dist/types/viewport/src/interaction/selection-boxes.d.ts +11 -0
- package/dist/types/viewport/src/interaction/stamp-tool.d.ts +41 -0
- package/dist/types/viewport/src/interaction/stamp-wires.d.ts +18 -0
- package/dist/types/viewport/src/interaction/surface-hit.d.ts +14 -0
- package/dist/types/viewport/src/materials/fleck-material.d.ts +69 -0
- package/dist/types/viewport/src/materials/global-uniforms.d.ts +15 -0
- package/dist/types/viewport/src/materials/skin.d.ts +18 -0
- package/dist/types/viewport/src/materials/wing-material.d.ts +21 -0
- package/dist/types/viewport/src/math/colors.d.ts +29 -0
- package/dist/types/viewport/src/math/convert.d.ts +15 -0
- package/dist/types/viewport/src/math/decal-pose.d.ts +7 -0
- package/dist/types/viewport/src/math/lod.d.ts +16 -0
- package/dist/types/viewport/src/math/picking.d.ts +32 -0
- package/dist/types/viewport/src/math/pixel-palette.d.ts +15 -0
- package/dist/types/viewport/src/math/screen.d.ts +26 -0
- package/dist/types/viewport/src/math/skeleton-math.d.ts +32 -0
- package/dist/types/viewport/src/math/smear.d.ts +20 -0
- package/dist/types/viewport/src/math/symmetry.d.ts +21 -0
- package/dist/types/viewport/src/objects/default-look.d.ts +3 -0
- package/dist/types/viewport/src/objects/mesh-driver.d.ts +26 -0
- package/dist/types/viewport/src/objects/mesh-key.d.ts +8 -0
- package/dist/types/viewport/src/objects/rig-view.d.ts +31 -0
- package/dist/types/viewport/src/objects/scene-views.d.ts +53 -0
- package/dist/types/viewport/src/objects/sculpt-view.d.ts +66 -0
- package/dist/types/viewport/src/objects/view-context.d.ts +19 -0
- package/dist/types/viewport/src/objects/wing-view.d.ts +27 -0
- package/dist/types/viewport/src/rig/bone-viz.d.ts +13 -0
- package/dist/types/viewport/src/scene/camera-motion.d.ts +10 -0
- package/dist/types/viewport/src/scene/camera-sun.d.ts +3 -0
- package/dist/types/viewport/src/scene/environment.d.ts +3 -0
- package/dist/types/viewport/src/scene/frame-camera.d.ts +10 -0
- package/dist/types/viewport/src/scene/play-mode.d.ts +9 -0
- package/dist/types/viewport/src/scene/render-pipeline.d.ts +26 -0
- package/dist/types/viewport/src/scene/render-settings.d.ts +18 -0
- package/dist/types/viewport/src/scene/resolve-frag.d.ts +3 -0
- package/dist/types/viewport/src/scene/stage.d.ts +38 -0
- package/dist/types/viewport/src/scene/stress-test.d.ts +6 -0
- package/dist/types/viewport/src/wings/wing-mesh.d.ts +19 -0
- package/dist/types/viewport/src/wings/wing-outlines.d.ts +32 -0
- package/dist/types/viewport/src/wings/wing-pattern.d.ts +7 -0
- package/dist/viewport.d.ts +1 -0
- package/dist/viewport.js +8 -0
- package/dist/viewport.js.map +7 -0
- package/package.json +74 -4
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PaletteSlot, Rgb } from "../model/palette.js";
|
|
2
|
+
import type { EventOf } from "./event-of.js";
|
|
3
|
+
export type PaletteColorSet = EventOf<"PaletteColorSet", {
|
|
4
|
+
readonly slot: PaletteSlot;
|
|
5
|
+
readonly color: Rgb;
|
|
6
|
+
}>;
|
|
7
|
+
export type PaletteReset = EventOf<"PaletteReset", Record<string, never>>;
|
|
8
|
+
export type PaletteEvent = PaletteColorSet | PaletteReset;
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import type { Id } from "../id.js";
|
|
2
|
+
import type { Transform } from "../model/math.js";
|
|
3
|
+
import type { Bone, BodyPart, BodyRegion, BoneSize, GraftSlot, PartSlot, PosePreset, Rig, RigMode } from "../model/rig.js";
|
|
4
|
+
import type { RigObject } from "../model/scene-object.js";
|
|
5
|
+
import type { FlatWing } from "../model/wing.js";
|
|
6
|
+
import type { EventOf } from "./event-of.js";
|
|
7
|
+
export type RigCreated = EventOf<"RigCreated", {
|
|
8
|
+
readonly object: RigObject;
|
|
9
|
+
}>;
|
|
10
|
+
/**
|
|
11
|
+
* The full result of applying a premade (templates may change later; old logs keep what was made):
|
|
12
|
+
* a new rig object, or the replacement rig of an existing object.
|
|
13
|
+
*/
|
|
14
|
+
export type PremadeApplied = EventOf<"PremadeApplied", {
|
|
15
|
+
readonly kind: "new";
|
|
16
|
+
readonly object: RigObject;
|
|
17
|
+
} | {
|
|
18
|
+
readonly kind: "object";
|
|
19
|
+
readonly objectId: Id;
|
|
20
|
+
readonly rig: Rig;
|
|
21
|
+
}>;
|
|
22
|
+
/** The bone and, with mirror on, its partner. */
|
|
23
|
+
export type BonesAdded = EventOf<"BonesAdded", {
|
|
24
|
+
readonly rigId: Id;
|
|
25
|
+
readonly bones: readonly Bone[];
|
|
26
|
+
}>;
|
|
27
|
+
/** Children move to the removed bone's parent, keeping their bind and pose placement. */
|
|
28
|
+
export type BoneRemoved = EventOf<"BoneRemoved", {
|
|
29
|
+
readonly rigId: Id;
|
|
30
|
+
readonly boneId: Id;
|
|
31
|
+
}>;
|
|
32
|
+
export type BoneReparented = EventOf<"BoneReparented", {
|
|
33
|
+
readonly rigId: Id;
|
|
34
|
+
readonly boneId: Id;
|
|
35
|
+
readonly parentId: Id | null;
|
|
36
|
+
readonly bind: Transform;
|
|
37
|
+
readonly pose: Transform;
|
|
38
|
+
}>;
|
|
39
|
+
export type BoneRenamed = EventOf<"BoneRenamed", {
|
|
40
|
+
readonly rigId: Id;
|
|
41
|
+
readonly boneId: Id;
|
|
42
|
+
readonly name: string;
|
|
43
|
+
}>;
|
|
44
|
+
export type BoneTagsSet = EventOf<"BoneTagsSet", {
|
|
45
|
+
readonly rigId: Id;
|
|
46
|
+
readonly changes: readonly {
|
|
47
|
+
readonly boneId: Id;
|
|
48
|
+
readonly tags: readonly string[];
|
|
49
|
+
}[];
|
|
50
|
+
}>;
|
|
51
|
+
/**
|
|
52
|
+
* Resolved writes (mirror partners included) to the bind (rig mode) or the pose (pose mode). A pose write on a
|
|
53
|
+
* premade rig also keeps the result as its Custom pose and selects it.
|
|
54
|
+
*/
|
|
55
|
+
export type BoneTransformsSet = EventOf<"BoneTransformsSet", {
|
|
56
|
+
readonly rigId: Id;
|
|
57
|
+
readonly target: "bind" | "pose";
|
|
58
|
+
readonly changes: readonly {
|
|
59
|
+
readonly boneId: Id;
|
|
60
|
+
readonly transform: Transform;
|
|
61
|
+
}[];
|
|
62
|
+
}>;
|
|
63
|
+
/** Also selects the Front preset. */
|
|
64
|
+
export type PoseReset = EventOf<"PoseReset", {
|
|
65
|
+
readonly rigId: Id;
|
|
66
|
+
}>;
|
|
67
|
+
/** The resolved bone poses of a pose preset choice (rules may change later; old logs keep their poses). */
|
|
68
|
+
export type PosePresetApplied = EventOf<"PosePresetApplied", {
|
|
69
|
+
readonly rigId: Id;
|
|
70
|
+
readonly preset: PosePreset;
|
|
71
|
+
readonly changes: readonly {
|
|
72
|
+
readonly boneId: Id;
|
|
73
|
+
readonly transform: Transform;
|
|
74
|
+
}[];
|
|
75
|
+
}>;
|
|
76
|
+
export type RigModeSet = EventOf<"RigModeSet", {
|
|
77
|
+
readonly rigId: Id;
|
|
78
|
+
readonly mode: RigMode;
|
|
79
|
+
}>;
|
|
80
|
+
export type RigMirrorSet = EventOf<"RigMirrorSet", {
|
|
81
|
+
readonly rigId: Id;
|
|
82
|
+
readonly mirror: boolean;
|
|
83
|
+
}>;
|
|
84
|
+
/** Also sets the blend of every sculpt part in that region. */
|
|
85
|
+
export type RegionBlendSet = EventOf<"RegionBlendSet", {
|
|
86
|
+
readonly rigId: Id;
|
|
87
|
+
readonly region: BodyRegion;
|
|
88
|
+
readonly blend: number;
|
|
89
|
+
}>;
|
|
90
|
+
export type BodyPartAdded = EventOf<"BodyPartAdded", {
|
|
91
|
+
readonly rigId: Id;
|
|
92
|
+
readonly part: BodyPart;
|
|
93
|
+
}>;
|
|
94
|
+
export type BodyPartRemoved = EventOf<"BodyPartRemoved", {
|
|
95
|
+
readonly rigId: Id;
|
|
96
|
+
readonly boneId: Id;
|
|
97
|
+
}>;
|
|
98
|
+
export type FlatWingsSet = EventOf<"FlatWingsSet", {
|
|
99
|
+
readonly rigId: Id;
|
|
100
|
+
readonly changes: readonly {
|
|
101
|
+
readonly boneId: Id;
|
|
102
|
+
readonly wing: Partial<Omit<FlatWing, "frame">>;
|
|
103
|
+
}[];
|
|
104
|
+
}>;
|
|
105
|
+
/**
|
|
106
|
+
* Resolved bone sizes (mirror partners included), the child joints that moved with a length change, and the parts
|
|
107
|
+
* below them, carried along with their joints.
|
|
108
|
+
*/
|
|
109
|
+
export type BoneSizesSet = EventOf<"BoneSizesSet", {
|
|
110
|
+
readonly rigId: Id;
|
|
111
|
+
readonly sizes: readonly {
|
|
112
|
+
readonly boneId: Id;
|
|
113
|
+
readonly size: BoneSize;
|
|
114
|
+
}[];
|
|
115
|
+
readonly moved: readonly {
|
|
116
|
+
readonly boneId: Id;
|
|
117
|
+
readonly bind: Transform;
|
|
118
|
+
readonly pose: Transform;
|
|
119
|
+
}[];
|
|
120
|
+
readonly parts: readonly BodyPart[];
|
|
121
|
+
}>;
|
|
122
|
+
/**
|
|
123
|
+
* A slot's resolved parts: `parts` replace the parts of their bones, `removed` bones lose theirs. A new head also
|
|
124
|
+
* re-seats the chains on it (ears, horns, antennae…): their roots' new bind and pose are in `moved`. A kit that
|
|
125
|
+
* brings its own bones (a variant's trunk or ears) removes the slot's earlier ones (`removedBones`, with their
|
|
126
|
+
* parts) and adds its own (`bones`; their parts are in `parts`).
|
|
127
|
+
*/
|
|
128
|
+
export type PartSlotSwapped = EventOf<"PartSlotSwapped", {
|
|
129
|
+
readonly rigId: Id;
|
|
130
|
+
readonly slot: PartSlot;
|
|
131
|
+
readonly kit: string;
|
|
132
|
+
readonly parts: readonly BodyPart[];
|
|
133
|
+
readonly removed: readonly Id[];
|
|
134
|
+
readonly moved?: readonly {
|
|
135
|
+
readonly boneId: Id;
|
|
136
|
+
readonly bind: Transform;
|
|
137
|
+
readonly pose: Transform;
|
|
138
|
+
}[];
|
|
139
|
+
readonly bones?: readonly Bone[];
|
|
140
|
+
readonly removedBones?: readonly Id[];
|
|
141
|
+
}>;
|
|
142
|
+
/** A slot's grafted chains: `removed` bones (an earlier graft) go with their parts; `bones` and their `parts` are added. */
|
|
143
|
+
export type PartGrafted = EventOf<"PartGrafted", {
|
|
144
|
+
readonly rigId: Id;
|
|
145
|
+
readonly slot: GraftSlot;
|
|
146
|
+
readonly kit?: string;
|
|
147
|
+
readonly bones: readonly Bone[];
|
|
148
|
+
readonly parts: readonly BodyPart[];
|
|
149
|
+
readonly removed: readonly Id[];
|
|
150
|
+
}>;
|
|
151
|
+
/** The full result of generating a creature: a new rig object, or the regenerated rig of an existing object. */
|
|
152
|
+
export type CreatureGenerated = EventOf<"CreatureGenerated", {
|
|
153
|
+
readonly kind: "new";
|
|
154
|
+
readonly object: RigObject;
|
|
155
|
+
} | {
|
|
156
|
+
readonly kind: "rig";
|
|
157
|
+
readonly objectId: Id;
|
|
158
|
+
readonly rig: Rig;
|
|
159
|
+
readonly transform: Transform;
|
|
160
|
+
}>;
|
|
161
|
+
export type RigEvent = RigCreated | PremadeApplied | BonesAdded | BoneRemoved | BoneReparented | BoneRenamed | BoneTagsSet | BoneTransformsSet | PoseReset | PosePresetApplied | BoneSizesSet | PartSlotSwapped | PartGrafted | CreatureGenerated | RigModeSet | RigMirrorSet | RegionBlendSet | BodyPartAdded | BodyPartRemoved | FlatWingsSet;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Id } from "../id.js";
|
|
2
|
+
import type { Transform } from "../model/math.js";
|
|
3
|
+
import type { SceneObject, SculptObject } from "../model/scene-object.js";
|
|
4
|
+
import type { EventOf } from "./event-of.js";
|
|
5
|
+
export type SculptCreated = EventOf<"SculptCreated", {
|
|
6
|
+
readonly object: SculptObject;
|
|
7
|
+
}>;
|
|
8
|
+
/** The resolved set: every listed object and its whole subtree. */
|
|
9
|
+
export type ObjectsDeleted = EventOf<"ObjectsDeleted", {
|
|
10
|
+
readonly objectIds: readonly Id[];
|
|
11
|
+
}>;
|
|
12
|
+
export type ObjectRenamed = EventOf<"ObjectRenamed", {
|
|
13
|
+
readonly objectId: Id;
|
|
14
|
+
readonly name: string;
|
|
15
|
+
}>;
|
|
16
|
+
/** `transform` is the new local transform that keeps the object's world placement. */
|
|
17
|
+
export type ObjectReparented = EventOf<"ObjectReparented", {
|
|
18
|
+
readonly objectId: Id;
|
|
19
|
+
readonly parentId: Id | null;
|
|
20
|
+
readonly index: number;
|
|
21
|
+
readonly transform: Transform;
|
|
22
|
+
}>;
|
|
23
|
+
/** Gizmo drags, Properties edits and object mirroring. */
|
|
24
|
+
export type ObjectTransformsSet = EventOf<"ObjectTransformsSet", {
|
|
25
|
+
readonly changes: readonly {
|
|
26
|
+
readonly objectId: Id;
|
|
27
|
+
readonly transform: Transform;
|
|
28
|
+
}[];
|
|
29
|
+
}>;
|
|
30
|
+
/** Full copies with new ids, appended after the originals' subtrees. */
|
|
31
|
+
export type ObjectsDuplicated = EventOf<"ObjectsDuplicated", {
|
|
32
|
+
readonly objects: readonly SceneObject[];
|
|
33
|
+
}>;
|
|
34
|
+
export type SceneEvent = SculptCreated | ObjectsDeleted | ObjectRenamed | ObjectReparented | ObjectTransformsSet | ObjectsDuplicated;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { SculptLookPatch, StampPropsPatch } from "../commands/sculpt-commands.js";
|
|
2
|
+
import type { SculptTarget } from "../commands/target.js";
|
|
3
|
+
import type { Id } from "../id.js";
|
|
4
|
+
import type { Pivot } from "../model/look.js";
|
|
5
|
+
import type { Quaternion, Vec3 } from "../model/math.js";
|
|
6
|
+
import type { SmearGroup, Stamp, Symmetry } from "../model/stamp.js";
|
|
7
|
+
import type { EventOf } from "./event-of.js";
|
|
8
|
+
export type StampsAdded = EventOf<"StampsAdded", {
|
|
9
|
+
readonly target: SculptTarget;
|
|
10
|
+
readonly stamps: readonly Stamp[];
|
|
11
|
+
readonly smearGroup?: SmearGroup;
|
|
12
|
+
}>;
|
|
13
|
+
/** Includes the smear groups the removal left empty. */
|
|
14
|
+
export type StampsRemoved = EventOf<"StampsRemoved", {
|
|
15
|
+
readonly target: SculptTarget;
|
|
16
|
+
readonly stampIds: readonly Id[];
|
|
17
|
+
readonly smearGroupIds: readonly Id[];
|
|
18
|
+
}>;
|
|
19
|
+
export type StampPlacementsSet = EventOf<"StampPlacementsSet", {
|
|
20
|
+
readonly target: SculptTarget;
|
|
21
|
+
readonly changes: readonly {
|
|
22
|
+
readonly stampId: Id;
|
|
23
|
+
readonly position: Vec3;
|
|
24
|
+
readonly rotation: Quaternion;
|
|
25
|
+
readonly scale: Vec3;
|
|
26
|
+
}[];
|
|
27
|
+
}>;
|
|
28
|
+
export type StampPropsSet = EventOf<"StampPropsSet", {
|
|
29
|
+
readonly target: SculptTarget;
|
|
30
|
+
readonly stampIds: readonly Id[];
|
|
31
|
+
readonly props: StampPropsPatch;
|
|
32
|
+
}>;
|
|
33
|
+
export type SmearGroupSet = EventOf<"SmearGroupSet", {
|
|
34
|
+
readonly target: SculptTarget;
|
|
35
|
+
readonly groupId: Id;
|
|
36
|
+
readonly props: StampPropsPatch & {
|
|
37
|
+
readonly unlocked?: boolean;
|
|
38
|
+
readonly name?: string;
|
|
39
|
+
};
|
|
40
|
+
}>;
|
|
41
|
+
export type SculptLookSet = EventOf<"SculptLookSet", {
|
|
42
|
+
readonly targets: readonly SculptTarget[];
|
|
43
|
+
readonly look: SculptLookPatch;
|
|
44
|
+
}>;
|
|
45
|
+
export type PivotSet = EventOf<"PivotSet", {
|
|
46
|
+
readonly target: SculptTarget;
|
|
47
|
+
readonly pivot: Pivot;
|
|
48
|
+
}>;
|
|
49
|
+
export type SymmetrySetForAll = EventOf<"SymmetrySetForAll", {
|
|
50
|
+
readonly target: SculptTarget;
|
|
51
|
+
readonly symmetry: Symmetry | null;
|
|
52
|
+
}>;
|
|
53
|
+
export type SculptEvent = StampsAdded | StampsRemoved | StampPlacementsSet | StampPropsSet | SmearGroupSet | SculptLookSet | PivotSet | SymmetrySetForAll;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Id = string;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export type { Id } from "./id.js";
|
|
2
|
+
export type { Quaternion, Transform, Vec3 } from "./model/math.js";
|
|
3
|
+
export type { ColorRef, FixedColor, Palette, PaletteSlot, Rgb } from "./model/palette.js";
|
|
4
|
+
export type { MaterialOverrides, SmearGroup, Stamp, StampMode, StampShape, Symmetry, SymmetryAxis, } from "./model/stamp.js";
|
|
5
|
+
export type { FleckShape, FleckStyle, Material, Pattern, PatternKind, Pivot, SculptLook, } from "./model/look.js";
|
|
6
|
+
export type { BuiltinDecalCategory, Decal, DecalArt, Design, DesignPaint, DesignShape, } from "./model/decal.js";
|
|
7
|
+
export type { FlatWing, WingFrame, WingOutline, WingPatternStyle } from "./model/wing.js";
|
|
8
|
+
export type { Sculpt } from "./model/sculpt.js";
|
|
9
|
+
export type { BodyPart, BodyRegion, Bone, BoneSize, CreatureFamily, CreatureRecipe, CreatureTheme, GraftSlot, PartSlot, SizeGroup, PosePreset, PosePresetId, RegionBlends, Rig, RigMode } from "./model/rig.js";
|
|
10
|
+
export type { RigObject, SceneObject, SculptObject } from "./model/scene-object.js";
|
|
11
|
+
export type { Creation, CreationLog, LogFormat, SchemaVersion } from "./model/creation.js";
|
|
12
|
+
export type { SculptTarget } from "./commands/target.js";
|
|
13
|
+
export type { StampSpec } from "./commands/stamp-spec.js";
|
|
14
|
+
export type * from "./commands/scene-commands.js";
|
|
15
|
+
export type * from "./commands/sculpt-commands.js";
|
|
16
|
+
export type * from "./commands/decal-commands.js";
|
|
17
|
+
export type * from "./commands/palette-commands.js";
|
|
18
|
+
export type * from "./commands/rig-commands.js";
|
|
19
|
+
export type { Command } from "./commands/command.js";
|
|
20
|
+
export type { EventOf } from "./events/event-of.js";
|
|
21
|
+
export type * from "./events/scene-events.js";
|
|
22
|
+
export type * from "./events/sculpt-events.js";
|
|
23
|
+
export type * from "./events/decal-events.js";
|
|
24
|
+
export type * from "./events/palette-events.js";
|
|
25
|
+
export type * from "./events/rig-events.js";
|
|
26
|
+
export type { CreationEvent } from "./events/creation-event.js";
|
|
27
|
+
export type { CreationApi, DispatchResult, PartVariantInfo, PremadeInfo } from "./creation-api.js";
|
|
28
|
+
export type { Clock, IdGenerator } from "./ports/basic-ports.js";
|
|
29
|
+
export type { GitProvider, GitSettings, LibraryEntry, LibrarySync, Persistence, PreferencesStore, SyncStatus, SyncSummary, ViewPreferences, } from "./ports/persistence.js";
|
|
30
|
+
export type { Evaluator, MeshRequest, MeshResult, SkinRequest, SkinResult } from "./ports/evaluator.js";
|
|
31
|
+
export type { BoneTool, DecalBrush, DecalCatalogEntry, FrameOptions, Selection, StampBrush, Tool, ViewSession, Viewport, ViewportCallbacks, } from "./ports/viewport.js";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { CreationEvent } from "../events/creation-event.js";
|
|
2
|
+
import type { Design } from "./decal.js";
|
|
3
|
+
import type { Palette } from "./palette.js";
|
|
4
|
+
import type { SceneObject } from "./scene-object.js";
|
|
5
|
+
/** Marks logs of this model, so logs of the retired model (schemas 1–8) are rejected, not misread. */
|
|
6
|
+
export type LogFormat = "dreamy-studio";
|
|
7
|
+
export type SchemaVersion = 1;
|
|
8
|
+
/** The fold of the log. */
|
|
9
|
+
export type Creation = {
|
|
10
|
+
readonly format: LogFormat;
|
|
11
|
+
readonly schemaVersion: SchemaVersion;
|
|
12
|
+
readonly palette: Palette;
|
|
13
|
+
/** Every object, in scene order; children follow the order of this list under their parent. */
|
|
14
|
+
readonly objects: readonly SceneObject[];
|
|
15
|
+
readonly designs: readonly Design[];
|
|
16
|
+
};
|
|
17
|
+
/** The saved document. The undo cursor lives on the API instance, not here. */
|
|
18
|
+
export type CreationLog = {
|
|
19
|
+
readonly format: LogFormat;
|
|
20
|
+
readonly schemaVersion: SchemaVersion;
|
|
21
|
+
readonly events: readonly CreationEvent[];
|
|
22
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { Id } from "../id.js";
|
|
2
|
+
import type { Quaternion, Vec3 } from "./math.js";
|
|
3
|
+
import type { ColorRef } from "./palette.js";
|
|
4
|
+
export type BuiltinDecalCategory = "eye" | "mouth" | "mark" | "door" | "emoji" | "interior";
|
|
5
|
+
/** Which art a decal shows: a built-in by category and name, or one of the creation's designs. */
|
|
6
|
+
export type DecalArt = {
|
|
7
|
+
readonly kind: "builtin";
|
|
8
|
+
readonly category: BuiltinDecalCategory;
|
|
9
|
+
readonly name: string;
|
|
10
|
+
} | {
|
|
11
|
+
readonly kind: "design";
|
|
12
|
+
readonly designId: Id;
|
|
13
|
+
};
|
|
14
|
+
export type Decal = {
|
|
15
|
+
readonly id: Id;
|
|
16
|
+
readonly art: DecalArt;
|
|
17
|
+
/** In the owner's bind-pose local space; z of `rotation` is the surface normal. */
|
|
18
|
+
readonly position: Vec3;
|
|
19
|
+
readonly rotation: Quaternion;
|
|
20
|
+
readonly size: number;
|
|
21
|
+
readonly flip: boolean;
|
|
22
|
+
/** Used by tintable art only. */
|
|
23
|
+
readonly tint?: ColorRef;
|
|
24
|
+
readonly opacity: number;
|
|
25
|
+
/** Interior rooms: depth in decal sizes (0.5–2) and a layout seed. */
|
|
26
|
+
readonly depth?: number;
|
|
27
|
+
readonly seed?: number;
|
|
28
|
+
};
|
|
29
|
+
/** A paint color in a design: a palette reference, or a light / shadow modifier over what lies beneath. */
|
|
30
|
+
export type DesignPaint = ColorRef | "light" | "shadow" | "none";
|
|
31
|
+
export type DesignShape = {
|
|
32
|
+
/** SVG path data in a 128 × 128 space. */
|
|
33
|
+
readonly d: string;
|
|
34
|
+
readonly fill: DesignPaint;
|
|
35
|
+
readonly stroke: DesignPaint;
|
|
36
|
+
readonly width: number;
|
|
37
|
+
readonly cap: "butt" | "round" | "square";
|
|
38
|
+
readonly join: "miter" | "round" | "bevel";
|
|
39
|
+
readonly rule: "nonzero" | "evenodd";
|
|
40
|
+
/** A reflected copy of the previous shape, kept in step by the editor. */
|
|
41
|
+
readonly twin?: boolean;
|
|
42
|
+
};
|
|
43
|
+
/** A vector decal design owned by the creation. */
|
|
44
|
+
export type Design = {
|
|
45
|
+
readonly id: Id;
|
|
46
|
+
readonly name: string;
|
|
47
|
+
readonly shapes: readonly DesignShape[];
|
|
48
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { Quaternion, Vec3 } from "./math.js";
|
|
2
|
+
import type { ColorRef } from "./palette.js";
|
|
3
|
+
/** The POC's fleck shapes; the order is the shader's index. */
|
|
4
|
+
export type FleckShape = "pill" | "circle" | "square" | "diamond" | "triangle" | "hexagon" | "star" | "cross" | "ring" | "streak" | "leaf" | "sand" | "gravel" | "cement" | "grass" | "terrazzo" | "scales" | "plates" | "none";
|
|
5
|
+
export type FleckStyle = {
|
|
6
|
+
readonly shape: FleckShape;
|
|
7
|
+
/** 0.2–3. */
|
|
8
|
+
readonly size: number;
|
|
9
|
+
/** Per-fleck color / size jitter, 0–1. */
|
|
10
|
+
readonly variation: number;
|
|
11
|
+
/** Share of cells that get a fleck, 0.1–1. */
|
|
12
|
+
readonly coverage: number;
|
|
13
|
+
/** Grid order, 0–1. */
|
|
14
|
+
readonly regularity: number;
|
|
15
|
+
/** Fleck movement, 0–3. */
|
|
16
|
+
readonly boil: number;
|
|
17
|
+
/** Shading of the bed between flecks, 0–0.6. */
|
|
18
|
+
readonly foundationDarkness: number;
|
|
19
|
+
/** Fleck bump strength, 0–3. */
|
|
20
|
+
readonly normalStrength: number;
|
|
21
|
+
};
|
|
22
|
+
export type Material = {
|
|
23
|
+
readonly roughness: number;
|
|
24
|
+
readonly metalness: number;
|
|
25
|
+
/** 0–3. */
|
|
26
|
+
readonly glow: number;
|
|
27
|
+
/** 0–1, dithered. */
|
|
28
|
+
readonly opacity: number;
|
|
29
|
+
};
|
|
30
|
+
export type PatternKind = "none" | "stripes" | "tiger" | "leopard" | "cow" | "thunder" | "dots" | "scales" | "camouflage";
|
|
31
|
+
export type Pattern = {
|
|
32
|
+
readonly kind: PatternKind;
|
|
33
|
+
/** 0.2–5. */
|
|
34
|
+
readonly scale: number;
|
|
35
|
+
/** 0–1. */
|
|
36
|
+
readonly strength: number;
|
|
37
|
+
/** Degrees about x, y, z. */
|
|
38
|
+
readonly rotation: Vec3;
|
|
39
|
+
readonly color: ColorRef;
|
|
40
|
+
readonly color2: ColorRef;
|
|
41
|
+
};
|
|
42
|
+
/** The look shared by a sculpt's stamps unless a stamp overrides it. */
|
|
43
|
+
export type SculptLook = {
|
|
44
|
+
readonly color: ColorRef;
|
|
45
|
+
readonly foundationColor: ColorRef;
|
|
46
|
+
readonly fleck: FleckStyle;
|
|
47
|
+
readonly material: Material;
|
|
48
|
+
/** Default smooth-blend radius between stamps, 0–0.8. */
|
|
49
|
+
readonly blend: number;
|
|
50
|
+
readonly pattern: Pattern;
|
|
51
|
+
};
|
|
52
|
+
/** Kaleidoscope pivot in the sculpt's local space. */
|
|
53
|
+
export type Pivot = {
|
|
54
|
+
readonly position: Vec3;
|
|
55
|
+
readonly rotation: Quaternion;
|
|
56
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type Vec3 = {
|
|
2
|
+
readonly x: number;
|
|
3
|
+
readonly y: number;
|
|
4
|
+
readonly z: number;
|
|
5
|
+
};
|
|
6
|
+
/** Rotation quaternion (x, y, z, w). Identity is (0, 0, 0, 1). */
|
|
7
|
+
export type Quaternion = {
|
|
8
|
+
readonly x: number;
|
|
9
|
+
readonly y: number;
|
|
10
|
+
readonly z: number;
|
|
11
|
+
readonly w: number;
|
|
12
|
+
};
|
|
13
|
+
/** Position, rotation and per-axis scale, relative to a parent space. */
|
|
14
|
+
export type Transform = {
|
|
15
|
+
readonly position: Vec3;
|
|
16
|
+
readonly rotation: Quaternion;
|
|
17
|
+
readonly scale: Vec3;
|
|
18
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** The seven editable palette slots. */
|
|
2
|
+
export type PaletteSlot = "primary" | "secondary" | "detail" | "highlight" | "eye" | "pupil" | "custom";
|
|
3
|
+
/** Fixed colors: always available, never edited. */
|
|
4
|
+
export type FixedColor = "tongue" | "teeth" | "black";
|
|
5
|
+
/** Every stored color is a reference, never a raw value (constitution: slots, not RGB). */
|
|
6
|
+
export type ColorRef = PaletteSlot | FixedColor;
|
|
7
|
+
/** 0xRRGGBB. */
|
|
8
|
+
export type Rgb = number;
|
|
9
|
+
export type Palette = {
|
|
10
|
+
readonly [Slot in PaletteSlot]: Rgb;
|
|
11
|
+
};
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import type { Id } from "../id.js";
|
|
2
|
+
import type { Material } from "./look.js";
|
|
3
|
+
import type { Transform } from "./math.js";
|
|
4
|
+
import type { Sculpt } from "./sculpt.js";
|
|
5
|
+
import type { FlatWing } from "./wing.js";
|
|
6
|
+
/**
|
|
7
|
+
* A bone of a rig's skeleton (a tree, at most 64 bones).
|
|
8
|
+
* Tags carry the side (`side:L` / `side:R`), the mirror pairing key (`mirror:<key>`) and the role
|
|
9
|
+
* (`role:<role>`) that picks the generated body part's style.
|
|
10
|
+
*/
|
|
11
|
+
export type Bone = {
|
|
12
|
+
readonly id: Id;
|
|
13
|
+
readonly name: string;
|
|
14
|
+
/** Absent for a root bone. */
|
|
15
|
+
readonly parentId?: Id;
|
|
16
|
+
readonly tags: readonly string[];
|
|
17
|
+
/** Rest transform relative to the parent bone (or the rig). */
|
|
18
|
+
readonly bind: Transform;
|
|
19
|
+
/** Posed transform relative to the parent bone (or the rig). Equal to `bind` until posed. */
|
|
20
|
+
readonly pose: Transform;
|
|
21
|
+
/** Proportions (absent = 1, 1). `length` stretches the bone (its child joints sit that much farther) and its part
|
|
22
|
+
* along it; `thickness` scales its part across it. A head is never smaller than it was made (both ≥ 1). */
|
|
23
|
+
readonly size?: BoneSize;
|
|
24
|
+
};
|
|
25
|
+
export type BoneSize = {
|
|
26
|
+
readonly length: number;
|
|
27
|
+
readonly thickness: number;
|
|
28
|
+
};
|
|
29
|
+
/** Rig mode edits the bind pose; pose mode edits the pose. */
|
|
30
|
+
export type RigMode = "rig" | "pose";
|
|
31
|
+
export type BodyRegion = "torso" | "limb" | "wing" | "tail" | "head";
|
|
32
|
+
export type RegionBlends = {
|
|
33
|
+
readonly [Region in BodyRegion]: number;
|
|
34
|
+
};
|
|
35
|
+
/** A bone's body part: a sculpt in the rig's bind space, or a flat wing. Rigid to its bone. */
|
|
36
|
+
export type BodyPart = {
|
|
37
|
+
readonly boneId: Id;
|
|
38
|
+
readonly kind: "sculpt";
|
|
39
|
+
readonly sculpt: Sculpt;
|
|
40
|
+
} | {
|
|
41
|
+
readonly boneId: Id;
|
|
42
|
+
readonly kind: "wing";
|
|
43
|
+
readonly wing: FlatWing;
|
|
44
|
+
readonly material: Material;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* A premade pose: Front (rest), Howl, Menace, Shy, Hover (static flying; a leap without wings), Dive (attacking
|
|
48
|
+
* flying; a pounce without wings), Funny, or Custom (the rig's own hand-posed pose).
|
|
49
|
+
*/
|
|
50
|
+
export type PosePresetId = "front" | "howl" | "menace" | "shy" | "hover" | "dive" | "funny" | "custom";
|
|
51
|
+
/** The pose(s) a premade rig shows: `a`, or `a` blended toward `b` by `t` (0 = a, 1 = b). */
|
|
52
|
+
export type PosePreset = {
|
|
53
|
+
readonly a: PosePresetId;
|
|
54
|
+
readonly b?: PosePresetId;
|
|
55
|
+
readonly t: number;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* A swappable body-part slot of a premade rig: a chain of bones by role (head, ears, horns, tail, wings, legs, arms,
|
|
59
|
+
* antennae, fins, tentacles), or the coat (the skin's fleck, pattern and material).
|
|
60
|
+
*/
|
|
61
|
+
export type PartSlot = "head" | "ears" | "horns" | "tail" | "wings" | "legs" | "arms" | "antennae" | "fins" | "tentacles" | "coat";
|
|
62
|
+
/** The slots a premade rig can gain when its skeleton lacks them: new bone chains grafted with another premade's parts. */
|
|
63
|
+
export type GraftSlot = "wings" | "horns" | "tail";
|
|
64
|
+
/**
|
|
65
|
+
* Creature families: parts swap within a family unless the user asks for a chimera. The last five are made-up kinds
|
|
66
|
+
* of parts (mushrooms, leaves, stone and crystal, metal and circuits, fire, ice and slime): no premade belongs to
|
|
67
|
+
* them, so their parts come with Chimera.
|
|
68
|
+
*/
|
|
69
|
+
export type CreatureFamily = "mammal" | "reptile" | "bird" | "bug" | "aquatic" | "plant" | "fungus" | "mineral" | "machine" | "elemental";
|
|
70
|
+
/** A made-up kind a whole generated creature can be built from: its parts come from that family wherever it has one. */
|
|
71
|
+
export type CreatureTheme = Extract<CreatureFamily, "plant" | "fungus" | "mineral" | "machine" | "elemental">;
|
|
72
|
+
/** The proportion groups a generated creature varies (head, neck, torso, tail, front / hind legs, arms, ears…). */
|
|
73
|
+
export type SizeGroup = "head" | "neck" | "torso" | "tail" | "front-legs" | "hind-legs" | "arms" | "ears" | "horns" | "wings" | "antennae" | "fins" | "tentacles";
|
|
74
|
+
/**
|
|
75
|
+
* How a generated creature was made: its seed, base premade, the premade each slot's parts came from, the size of
|
|
76
|
+
* each proportion group, its eye and mouth art, whether families may mix (chimera) and how far sizes stray (variety).
|
|
77
|
+
*/
|
|
78
|
+
export type CreatureRecipe = {
|
|
79
|
+
readonly seed: number;
|
|
80
|
+
readonly base: string;
|
|
81
|
+
readonly chimera: boolean;
|
|
82
|
+
/** 0–1. */
|
|
83
|
+
readonly variety: number;
|
|
84
|
+
/** Per slot; a slot the base skeleton lacks was grafted from that premade. */
|
|
85
|
+
readonly kits: {
|
|
86
|
+
readonly [Slot in PartSlot]?: string;
|
|
87
|
+
};
|
|
88
|
+
/** A made-up kind the creature was built from (a robot, a plant…), when it was. */
|
|
89
|
+
readonly theme?: CreatureTheme;
|
|
90
|
+
readonly sizes: {
|
|
91
|
+
readonly [Group in SizeGroup]?: BoneSize;
|
|
92
|
+
};
|
|
93
|
+
readonly eyes?: string;
|
|
94
|
+
readonly mouth?: string;
|
|
95
|
+
};
|
|
96
|
+
export type Rig = {
|
|
97
|
+
readonly bones: readonly Bone[];
|
|
98
|
+
readonly mode: RigMode;
|
|
99
|
+
/** Mirror edits onto partner bones and parts. */
|
|
100
|
+
readonly mirror: boolean;
|
|
101
|
+
/** The mirror plane is x = mirrorX in the rig's space. */
|
|
102
|
+
readonly mirrorX: number;
|
|
103
|
+
readonly regionBlends: RegionBlends;
|
|
104
|
+
/** At most one part per bone. */
|
|
105
|
+
readonly parts: readonly BodyPart[];
|
|
106
|
+
/**
|
|
107
|
+
* The rig's own skinned body: a sculpt that a premade was applied to keeps its stamps here and
|
|
108
|
+
* deforms with auto weights. Sculpt commands with `{ objectId }` on a rig edit this body.
|
|
109
|
+
*/
|
|
110
|
+
readonly body?: Sculpt;
|
|
111
|
+
/** The premade it was made from, if any. */
|
|
112
|
+
readonly templateId?: string;
|
|
113
|
+
/** Premade rigs: the chosen pose preset(s) and blend. */
|
|
114
|
+
readonly posePreset?: PosePreset;
|
|
115
|
+
/** Premade rigs: the last hand-posed pose (bone id → pose transform), offered as the Custom preset. */
|
|
116
|
+
readonly customPose?: {
|
|
117
|
+
readonly [boneId: Id]: Transform;
|
|
118
|
+
};
|
|
119
|
+
/** Generated creatures: their recipe, to re-roll or keep parts of it. */
|
|
120
|
+
readonly recipe?: CreatureRecipe;
|
|
121
|
+
/** Premade rigs: the premade each swapped slot's parts came from (slots not listed are the rig's own). */
|
|
122
|
+
readonly slotKits?: {
|
|
123
|
+
readonly [Slot in PartSlot]?: string;
|
|
124
|
+
};
|
|
125
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Id } from "../id.js";
|
|
2
|
+
import type { Transform } from "./math.js";
|
|
3
|
+
import type { Rig } from "./rig.js";
|
|
4
|
+
import type { Sculpt } from "./sculpt.js";
|
|
5
|
+
type ObjectBase = {
|
|
6
|
+
readonly id: Id;
|
|
7
|
+
readonly name: string;
|
|
8
|
+
/** Absent: the object sits at the scene root. Otherwise it moves with that object. */
|
|
9
|
+
readonly parentId?: Id;
|
|
10
|
+
/** Relative to the parent. */
|
|
11
|
+
readonly transform: Transform;
|
|
12
|
+
};
|
|
13
|
+
export type SculptObject = ObjectBase & {
|
|
14
|
+
readonly kind: "sculpt";
|
|
15
|
+
readonly sculpt: Sculpt;
|
|
16
|
+
};
|
|
17
|
+
export type RigObject = ObjectBase & {
|
|
18
|
+
readonly kind: "rig";
|
|
19
|
+
readonly rig: Rig;
|
|
20
|
+
};
|
|
21
|
+
export type SceneObject = SculptObject | RigObject;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Decal } from "./decal.js";
|
|
2
|
+
import type { Pivot, SculptLook } from "./look.js";
|
|
3
|
+
import type { SmearGroup, Stamp } from "./stamp.js";
|
|
4
|
+
/** A voxel solid built from stamps: the body of a sculpt object or of a rig's body part. */
|
|
5
|
+
export type Sculpt = {
|
|
6
|
+
/** Never empty: the first stamp is the base solid. */
|
|
7
|
+
readonly stamps: readonly Stamp[];
|
|
8
|
+
readonly smearGroups: readonly SmearGroup[];
|
|
9
|
+
readonly look: SculptLook;
|
|
10
|
+
readonly pivot: Pivot;
|
|
11
|
+
/** At most 64, of which at most 8 interior rooms. */
|
|
12
|
+
readonly decals: readonly Decal[];
|
|
13
|
+
};
|