Wildlife and nature: animals, beehives, bushes, flowers, rocks, logs
Deploy web Studio / deploy (push) Successful in 1m5s
Deploy web Studio / deploy (push) Successful in 1m5s
New stdlib module wildlife.rhai: - Animals (new palette category): Deer (stag with antlers, does, fawns), Wild boar, Fox, Elephant (bull with tusks, cow, calf), Rabbits. Low-poly solids from faces (loft, tube), parts drawn back to front by depth, faces edged in their own shade (class beast). Herds scatter round a spot, each animal its own sprite facing about the object's rotation. Grazing animals switch between two head poses (iso-pose2 groups), elephants curl their trunks, rabbits hop. - Birds and Butterflies as flocks: swim() takes a shape (bird, fly, bee); wings flap out of step. Fish output unchanged. - Beehives on stands with supers, lids, entrances and bees flying round; Bush (round, flowering, berries); Flowers (bed in rows or meadow); Rocks; Log or stump. g-meadow and g-soil ground materials. - polyline() takes 3D points as documented (antlers). Theme colours for dark and light, viewer CSS for poses, flapping, hopping. examples/country: elephants in a paddock with a cut corner, deer at a forest edge, boar, fox, rabbits, an apiary by a meadow, a pond, a lane, fence and hedgerow at angles; Country demo in the web Studio and deploy. MCP guidance, README, SCRIPTING, ROADMAP. Tests: Rust 78, Studio 122; existing examples draw the same (only the embedded theme CSS grew).
This commit is contained in:
1 parent
96d472625f
commit
e840d36000
22 files changed
+1211
-16
No files matched your search
+7
-1
@@ -83,7 +83,7 @@ Each phase ends with tests, a Studio/viewer check in Edge, commit and push.
|
||||
8. Waypoint animation: a person or car moving along a path of waypoints
|
||||
9. ~~Build your own house~~ (done, see above)
|
||||
10. ~~Diagonal streets, walls, fences, hedges~~ (done, see below)
|
||||
11. Wildlife and nature: deer, bushes, beehives and more
|
||||
11. ~~Wildlife and nature: deer, bushes, beehives and more~~ (done, see below)
|
||||
|
||||
Done since: the middle mouse button only moves the camera; fences and site walls join like house
|
||||
walls (`line_joint`); fence designs (mesh, wood, bars, half stone, cobble, brick with pillars);
|
||||
@@ -132,6 +132,12 @@ against everything on either side. Studio: runs and drags keep to x or y or go d
|
||||
(Ctrl: any angle), a road run turning 45° gets a 45° curve, Rotation takes any angle. The
|
||||
streets demo has a diagonal lane.
|
||||
|
||||
Wildlife and nature (`wildlife.rhai`): Deer, Wild boar, Fox, Elephant, Rabbits as low-poly solids
|
||||
(`loft`, `tube`, parts drawn back to front), herds scattered round a spot, two head poses taking
|
||||
turns while grazing, rabbits hopping; Birds and Butterflies as flocks (`swim` shapes, wings flapping
|
||||
out of step); Beehives with bees, Bush, Flowers (bed or meadow), Rocks, Log / stump.
|
||||
`examples/country`, Country demo in the web Studio.
|
||||
|
||||
## Phase 2: richer editing
|
||||
|
||||
- [x] Interior prefabs (see Build your own house); a building `rooms` prop is still open
|
||||
|
||||
+23
-2
@@ -88,11 +88,11 @@ shaded automatically by face direction.
|
||||
| `flat(poly or polys, z, cls[, id])` | flat polygon(s); later ones cut holes |
|
||||
| `open(a, b, [[u0, u1, z0, z1], …], cls[, id])` | windows / doors on the face a→b (outward normal on the right) |
|
||||
| `lines(segs, z, cls)`, `disc(cx, cy, z, r, cls[, id])` | markings |
|
||||
| `polyline(lines, z, cls)` | open lines through plan points at height z (or 3D points): a dashed line stays one dash run round a curve |
|
||||
| `polyline(lines, z, cls)` | open lines through plan points at height z, or 3D points `[x, y, z]` (antlers): a dashed line stays one dash run round a curve |
|
||||
| `circle(x, y, z, r_px, cls[, dx, dy])`, `stem(x, y, z0, z1, w_px, cls)` | screen-space details (crowns, poles) |
|
||||
| `person(x, y, z[, cls])`, `sit(x, y, z, cls)`, `head(x, y, z, r)`, `led(x, y, z[, cls])` | figures |
|
||||
| `puffs(x, y, z[, kind[, n, dur]])`, `fan(x, y, z, r)` | animated steam / smoke / fans |
|
||||
| `swim(x, y, z, [#{ rx, ry, dur, delay, cw, len, cls }, ...])` | fish going round ellipses (radii rx, ry along the object's axes) about (x, y) on the plane at z, one round per `dur` s, clockwise when `cw`; `cls` koi / koiw / koig (the pond) |
|
||||
| `swim(x, y, z, [#{ rx, ry, dur, delay, cw, len, cls[, shape] }, ...])` | fish going round ellipses (radii rx, ry along the object's axes) about (x, y) on the plane at z, one round per `dur` s, clockwise when `cw`; `cls` koi / koiw / koig (the pond); `shape` "bird" (wings `len` across, flapping), "fly" (a butterfly) or "bee" makes it a flock |
|
||||
| `seq([[x, y, \|q\| …], …])` | items drawn back to front by their anchor |
|
||||
| `group(cls[, css], \|q\| …)`, `begin(cls[, css])` … `end()` | `<g>` around parts (animation) |
|
||||
| `ext(x, y, z)`, `ext_box(…)` | widen the sort box |
|
||||
@@ -145,6 +145,27 @@ orders them, the one on the viewer's side going later. A long diagonal wall
|
||||
therefore sorts right against everything on either side of it, and mitred
|
||||
pieces against each other.
|
||||
|
||||
## Animals
|
||||
|
||||
`wildlife.rhai` draws animals as low-poly solids from faces. `s.loft(spine,
|
||||
rs, n, [side, cap0, cap1])` sweeps an n-sided ring (radius r, or `[across,
|
||||
up]`) along 3D points, keeping its turn round bends; `s.tube(a, b, ra, rb, n,
|
||||
mat)` is a loft of two rings. `face` shades each face by its direction and
|
||||
leaves out the ones turned away, so a solid needs no sorting of its own
|
||||
faces; separate parts (legs, body, neck, head, antlers) are drawn back to
|
||||
front by `draw_parts`, which sorts them by the depth of their anchors in the
|
||||
view (`depth(x, y) + z`). The class `beast` edges each face in its own shade
|
||||
instead of the dark outline, so a body reads as one surface.
|
||||
|
||||
`animal_parts(kind, sub)` returns `#{ body, up, down }` for an animal facing
|
||||
+x: the parts that stay and two head poses. With grazing on, the poses sit in
|
||||
two groups `iso-a iso-pose2 iso-pose0` and `iso-a iso-pose2` that take turns
|
||||
(the CSS shows the first unanimated); each animal starts at its own point of
|
||||
the cycle. `herd(o, kind, mix, graze)` scatters `n` animals in a sunflower
|
||||
spread within `r` of the object, each facing its rotation give or take 70°,
|
||||
each its own sprite. Flocks of birds, butterflies and bees use `swim` with a
|
||||
`shape`.
|
||||
|
||||
## Production lines
|
||||
|
||||
`producer`, `conveyor` and `robot_arm` (stdlib/industry.rhai) work together
|
||||
|
||||
Reference in new issue
Block a user