Wildlife and nature: animals, beehives, bushes, flowers, rocks, logs
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:
grabowski committed 2026-10-25 13:57:23 +07:00
1 parent 96d472625f
commit e840d36000
22 files changed
+1211 -16

No files matched your search

+117
View File
@@ -272,6 +272,45 @@ mach3 = "#5b6370"
mach4 = "#b8692b"
robot = "#e07a1f"
robotb = "#3a3f48"
# wildlife and garden
deer = "#8a5a32"
deerl = "#d6c4a6"
nose = "#2a2420"
antler = "#c9b48e"
boar = "#5a4b42"
bristle = "#2c2622"
fox = "#c45f25"
foxw = "#e9e1d4"
foxd = "#3a2a22"
rabbit = "#8a7a66"
eleph = "#6f6b69"
elephe = "#625e5c"
tusk = "#e9e2d0"
birdd = "#0b0d10"
birdw = "#e8e6e0"
bee = "#e7b416"
flyo = "#f08a24"
flyb = "#4f86d9"
flyw = "#f2efe6"
flyy = "#f5d33f"
hive1 = "#e6e1d3"
hive2 = "#e2b84f"
hive3 = "#7aa3c4"
hive4 = "#86b07f"
hivelid = "#9aa1a8"
hivedoor = "#1d1a17"
bush = "#2f6a3a"
berry = "#b8303a"
flr = "#d8434a"
fly = "#e8c33a"
flw = "#ece8de"
flp = "#8a5bc4"
flk = "#e27aa5"
leafy = "#2d5e30"
soil = "#4a3828"
meadow = "#2f5a2e"
bark = "#5a3f28"
woodend = "#cfae7c"
# streets: sidewalk paving, kerb stone faces, roundabout apron
walk = "#555c6b"
kerbf = "#7d8494"
@@ -542,6 +581,44 @@ mach3 = "#8a93a1"
mach4 = "#e08a43"
robot = "#f08c2b"
robotb = "#5a616d"
deer = "#a8703f"
deerl = "#ecdfc8"
nose = "#3a302a"
antler = "#d8c39c"
boar = "#5e5048"
bristle = "#3a322c"
fox = "#d9732f"
foxw = "#f4efe6"
foxd = "#4a3428"
rabbit = "#a08d76"
eleph = "#8a8582"
elephe = "#7b7673"
tusk = "#f3eee0"
birdd = "#343a44"
birdw = "#f6f4ee"
bee = "#f0c02a"
flyo = "#f59536"
flyb = "#5b93e6"
flyw = "#fbf8f0"
flyy = "#f7dc52"
hive1 = "#f1ece0"
hive2 = "#ecc561"
hive3 = "#8fb6d6"
hive4 = "#97c290"
hivelid = "#b6bcc2"
hivedoor = "#2a2520"
bush = "#4f9a48"
berry = "#d03e48"
flr = "#e45a5f"
fly = "#f1d04e"
flw = "#fbf9f3"
flp = "#9b6fd6"
flk = "#ee93b8"
leafy = "#4a8a40"
soil = "#7a5a42"
meadow = "#78ab55"
bark = "#6e4e32"
woodend = "#ddbf8e"
walk = "#d9d6cf"
kerbf = "#a5a9b1"
apron = "#b9ad98"
@@ -556,6 +633,29 @@ g-conc = "conc"
g-pad = "pad"
g-path = "path"
g-walk = "walk"
deer = "deer"
deerl = "deerl"
nose = "nose"
boar = "boar"
fox = "fox"
foxw = "foxw"
foxd = "foxd"
rabbit = "rabbit"
eleph = "eleph"
elephe = "elephe"
tusk = "tusk"
hive1 = "hive1"
hive2 = "hive2"
hive3 = "hive3"
hive4 = "hive4"
hivelid = "hivelid"
hivedoor = "hivedoor"
bush = "bush"
rock = "rock"
bark = "bark"
woodend = "woodend"
g-soil = "soil"
g-meadow = "meadow"
g-apron = "apron"
plinth = "plinth"
wall = "wall"
@@ -818,6 +918,23 @@ f-conc = "conc"
".iso-svg .iso-win" = "fill: var(--iso-win); stroke: none"
".iso-svg .iso-school" = "pointer-events: none"
".iso-svg .iso-swimbox" = "fill: none; stroke: none"
".iso-svg .iso-antler" = "fill: none; stroke: var(--iso-antler); stroke-width: .35; stroke-linecap: round; stroke-linejoin: round"
".iso-svg .iso-bristle" = "fill: none; stroke: var(--iso-bristle); stroke-width: .5; stroke-linecap: round"
".iso-svg .iso-bird, .iso-svg .iso-wing" = "stroke: none"
".iso-svg .iso-birdd" = "fill: var(--iso-birdd)"
".iso-svg .iso-birdw" = "fill: var(--iso-birdw)"
".iso-svg .iso-bee" = "fill: var(--iso-bee); stroke: none"
".iso-svg .iso-flyo" = "fill: var(--iso-flyo)"
".iso-svg .iso-flyb" = "fill: var(--iso-flyb)"
".iso-svg .iso-flyw" = "fill: var(--iso-flyw)"
".iso-svg .iso-flyy" = "fill: var(--iso-flyy)"
".iso-svg .iso-berry" = "fill: var(--iso-berry); stroke: none"
".iso-svg .iso-flr" = "fill: var(--iso-flr); stroke: none"
".iso-svg .iso-fly" = "fill: var(--iso-fly); stroke: none"
".iso-svg .iso-flw" = "fill: var(--iso-flw); stroke: none"
".iso-svg .iso-flp" = "fill: var(--iso-flp); stroke: none"
".iso-svg .iso-flk" = "fill: var(--iso-flk); stroke: none"
".iso-svg .iso-leafy" = "fill: var(--iso-leafy); stroke: none"
".iso-svg .iso-kerbf" = "fill: var(--iso-kerbf); stroke: none"
".iso-svg .iso-lane" = "fill: none; stroke: var(--iso-dash); stroke-width: .6; stroke-dasharray: 4 6"
".iso-svg .iso-giveway" = "fill: none; stroke: var(--iso-dash); stroke-width: .9; stroke-dasharray: 2 2"