feat(vagrant): v0.18.0 — Stone-Age round-out (stone_hammer+knap-gate, chop_tree, break_branch, sharpen_stick) in content pack
This commit is contained in:
@@ -8,11 +8,18 @@ callback, foot-body-orientation ("tactical twist"), scale-deformation walk
|
|||||||
cycle, and inheritance-decoupled foot sprites. End-to-end inventory pickup/drop
|
cycle, and inheritance-decoupled foot sprites. End-to-end inventory pickup/drop
|
||||||
demo: pick up a rock into a backpack container, drop it back into the world.
|
demo: pick up a rock into a backpack container, drop it back into the world.
|
||||||
|
|
||||||
**Version:** 0.17.0
|
**Version:** 0.18.0
|
||||||
**Module-ID:** vagrant-skeleton
|
**Module-ID:** vagrant-skeleton
|
||||||
**Requires:** lib-core.input >=0.4.0, lib-core.camera >=0.3.0, lib-core.render >=0.2.0, lib-core.maps >=0.1.2, lib-core.puppet >=0.4.4, lib-core.interaction >=0.1.0, lib-core.composition >=0.3.0, lib-core.actor >=0.1.0, lib-core.inventory-list >=0.1.0, lib-core.panel >=0.2.0, lib-core.inventory-list-display >=0.1.0, lib-core.notify >=0.1.0, lib-core.notify-display >=0.1.0, lib-core.world-overlay >=0.1.0, lib-core.crafting >=0.3.0, lib-core.crafting-display >=0.2.0, lib-asset.prototype-subterrain >=0.2.0, lib-asset.prototype-tc-basics >=0.1.0
|
**Requires:** lib-core.input >=0.4.0, lib-core.camera >=0.3.0, lib-core.render >=0.2.0, lib-core.maps >=0.1.2, lib-core.puppet >=0.4.4, lib-core.interaction >=0.1.0, lib-core.composition >=0.3.0, lib-core.actor >=0.1.0, lib-core.inventory-list >=0.1.0, lib-core.panel >=0.2.0, lib-core.inventory-list-display >=0.1.0, lib-core.notify >=0.1.0, lib-core.notify-display >=0.1.0, lib-core.world-overlay >=0.1.0, lib-core.crafting >=0.3.0, lib-core.crafting-display >=0.2.0, lib-asset.prototype-subterrain >=0.2.0, lib-asset.prototype-tc-basics >=0.1.0
|
||||||
**Tags:** test-chamber, puppet, walking-sim, interaction
|
**Tags:** test-chamber, puppet, walking-sim, interaction
|
||||||
|
|
||||||
|
> **v0.18.0:** Stone-Age round-out (content pack) — `craft_stone_hammer`
|
||||||
|
> (rock+stick+cordage → hammering tool), which now **gates `knap_sharp_stone`**
|
||||||
|
> (was bare-handed); `chop_tree` (tree + chopping axe → 2 logs, closing the
|
||||||
|
> axe→log→plank loop); `break_branch` (branch → 2 sticks, multi-output);
|
||||||
|
> `sharpen_stick` (stick + cutting → sharpened_stick). Tool-gating verified
|
||||||
|
> (knap/chop fail without the right affordance).
|
||||||
|
>
|
||||||
> **v0.17.0:** **T1-modder content packs.** Stone-Age items + recipes + world-
|
> **v0.17.0:** **T1-modder content packs.** Stone-Age items + recipes + world-
|
||||||
> spawns moved OUT of `init.lua` into `content/stone_age.lua` — pure declarative
|
> spawns moved OUT of `init.lua` into `content/stone_age.lua` — pure declarative
|
||||||
> data (`c.T{}` item, `c.R{}` recipe, `c.S{}` spawn), loaded via a content facade
|
> data (`c.T{}` item, `c.R{}` recipe, `c.S{}` spawn), loaded via a content facade
|
||||||
|
|||||||
@@ -54,6 +54,29 @@ return function(c)
|
|||||||
material = { stone = 0.6, wood = 0.3, fiber = 0.1 },
|
material = { stone = 0.6, wood = 0.3, fiber = 0.1 },
|
||||||
affordance = { chopping = true }, atlas = "tc", uv = "spade" }
|
affordance = { chopping = true }, atlas = "tc", uv = "spade" }
|
||||||
|
|
||||||
|
-- World-gathered (round-out)
|
||||||
|
c.T{ id = "branch", name = "Branch",
|
||||||
|
desc = "A long springy branch. Snap it into sticks.",
|
||||||
|
weight = 1.5, vol = 0.006, material = { wood = 1.0 },
|
||||||
|
atlas = "tc", uv = "log_pile1", scale = 0.85 }
|
||||||
|
|
||||||
|
c.T{ id = "tree", name = "Tree",
|
||||||
|
desc = "A standing tree. Chop it down for logs.",
|
||||||
|
weight = 400, vol = 1.0, material = { wood = 1.0 },
|
||||||
|
atlas = "tc", uv = "log_pile1", scale = 1.6 }
|
||||||
|
|
||||||
|
-- Crafted tools
|
||||||
|
c.T{ id = "stone_hammer", name = "Stone Hammer",
|
||||||
|
desc = "A stone lashed to a haft. Pounds and knaps.",
|
||||||
|
weight = 1.5, vol = 0.001,
|
||||||
|
material = { stone = 0.6, wood = 0.3, fiber = 0.1 },
|
||||||
|
affordance = { hammering = true }, atlas = "tc", uv = "spade" }
|
||||||
|
|
||||||
|
c.T{ id = "sharpened_stick", name = "Sharpened Stick",
|
||||||
|
desc = "A stick whittled to a point. A crude spear.",
|
||||||
|
weight = 0.3, vol = 0.0005, material = { wood = 1.0 },
|
||||||
|
affordance = { piercing = true }, atlas = "tc", uv = "log_pile1", scale = 0.9 }
|
||||||
|
|
||||||
-- ---- recipes -----------------------------------------------------
|
-- ---- recipes -----------------------------------------------------
|
||||||
-- saw_planks: input matched by MATERIAL (mostly wood AND heavy), a light
|
-- saw_planks: input matched by MATERIAL (mostly wood AND heavy), a light
|
||||||
-- plank fails weight>5. Needs a cutting TOOL (not consumed). ×4 output.
|
-- plank fails weight>5. Needs a cutting TOOL (not consumed). ×4 output.
|
||||||
@@ -66,9 +89,10 @@ return function(c)
|
|||||||
|
|
||||||
c.R{ id = "knap_sharp_stone",
|
c.R{ id = "knap_sharp_stone",
|
||||||
inputs = { { template = "rock", count = 1 } },
|
inputs = { { template = "rock", count = 1 } },
|
||||||
|
tools = { { match = { ["affordance.hammering"] = true } } },
|
||||||
outputs = { { template = "sharp_stone", count = 1 } },
|
outputs = { { template = "sharp_stone", count = 1 } },
|
||||||
name = "Knap Sharp Stone",
|
name = "Knap Sharp Stone",
|
||||||
description = "Strike a rock to flake off a sharp-edged stone." }
|
description = "Strike a rock with a hammerstone to flake off a sharp edge." }
|
||||||
|
|
||||||
c.R{ id = "twist_cordage",
|
c.R{ id = "twist_cordage",
|
||||||
inputs = { { template = "plant_fiber", count = 3 } },
|
inputs = { { template = "plant_fiber", count = 3 } },
|
||||||
@@ -86,10 +110,44 @@ return function(c)
|
|||||||
name = "Haft Stone Axe",
|
name = "Haft Stone Axe",
|
||||||
description = "Bind a sharp stone to a stick with cordage." }
|
description = "Bind a sharp stone to a stick with cordage." }
|
||||||
|
|
||||||
|
-- Round-out recipes
|
||||||
|
c.R{ id = "craft_stone_hammer",
|
||||||
|
inputs = {
|
||||||
|
{ template = "rock", count = 1 },
|
||||||
|
{ template = "stick", count = 1 },
|
||||||
|
{ template = "cordage", count = 1 },
|
||||||
|
},
|
||||||
|
outputs = { { template = "stone_hammer", count = 1 } },
|
||||||
|
name = "Haft Stone Hammer",
|
||||||
|
description = "Lash a stone to a stick for a pounding tool (enables knapping)." }
|
||||||
|
|
||||||
|
c.R{ id = "break_branch",
|
||||||
|
inputs = { { template = "branch", count = 1 } },
|
||||||
|
outputs = { { template = "stick", count = 2 } }, -- multi-output from one branch
|
||||||
|
name = "Break Branch",
|
||||||
|
description = "Snap a branch over your knee into two sticks." }
|
||||||
|
|
||||||
|
c.R{ id = "chop_tree",
|
||||||
|
inputs = { { template = "tree", count = 1 } },
|
||||||
|
tools = { { match = { ["affordance.chopping"] = true } } },
|
||||||
|
outputs = { { template = "log", count = 2 } }, -- closes the loop: axe -> logs -> planks
|
||||||
|
name = "Chop Tree",
|
||||||
|
description = "Fell a tree with a chopping edge — yields two logs." }
|
||||||
|
|
||||||
|
c.R{ id = "sharpen_stick",
|
||||||
|
inputs = { { template = "stick", count = 1 } },
|
||||||
|
tools = { { match = { ["affordance.cutting"] = true } } },
|
||||||
|
outputs = { { template = "sharpened_stick", count = 1 } },
|
||||||
|
name = "Sharpen Stick",
|
||||||
|
description = "Whittle a stick to a point with a cutting edge." }
|
||||||
|
|
||||||
-- ---- world spawns (backpack sits at 350,400) ---------------------
|
-- ---- world spawns (backpack sits at 350,400) ---------------------
|
||||||
c.S{ template = "log", x = 110, y = 400 }
|
c.S{ template = "log", x = 110, y = 400 }
|
||||||
c.S{ template = "sharp_stone", x = 110, y = 330 }
|
c.S{ template = "sharp_stone", x = 110, y = 330 }
|
||||||
for i = 1, 3 do
|
for i = 1, 3 do
|
||||||
c.S{ template = "plant_fiber", x = 50, y = 300 + (i - 1) * 28 }
|
c.S{ template = "plant_fiber", x = 50, y = 300 + (i - 1) * 28 }
|
||||||
end
|
end
|
||||||
|
c.S{ template = "branch", x = 50, y = 250 }
|
||||||
|
c.S{ template = "branch", x = 85, y = 250 }
|
||||||
|
c.S{ template = "tree", x = 200, y = 190 }
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"id": "vagrant-skeleton",
|
"id": "vagrant-skeleton",
|
||||||
"version": "0.17.0",
|
"version": "0.18.0",
|
||||||
"kind": "module",
|
"kind": "module",
|
||||||
"api": "^0.1",
|
"api": "^0.1",
|
||||||
"ci_frames": 60,
|
"ci_frames": 60,
|
||||||
|
|||||||
Reference in New Issue
Block a user