Uses for every material (clay jar, bedroll, pelt rug, fang necklace, bear cloak, pemmican, bait), Q to drop, K/M bag rows on 1-8, help pages; protocol 14
This commit is contained in:
@@ -115,6 +115,12 @@ static func build(key: String) -> ArrayMesh:
|
||||
"bear_hide": m = _pelt(BEAR_FUR)
|
||||
"bear_fat": m = _pebble(271, Color(0.92, 0.86, 0.68), Vector3(0.1, 0.06, 0.08), 0.1)
|
||||
"fur_rug": m = _rug()
|
||||
"pelt_rug": m = _rug(WOLF_FUR, 0.85)
|
||||
"bear_cloak": m = _cloak(BEAR_FUR)
|
||||
"clay_jar": m = _jar()
|
||||
"bedroll": m = _bedroll()
|
||||
"fang_necklace": m = _necklace()
|
||||
"pemmican": m = _pebble(331, Color(0.42, 0.24, 0.16), Vector3(0.1, 0.05, 0.07), 0.15)
|
||||
"barrow_key": m = _barrow_key()
|
||||
"rotten_food": m = _pebble(321, Color(0.33, 0.3, 0.16), Vector3(0.11, 0.06, 0.1), 0.45)
|
||||
"salt": m = _salt()
|
||||
@@ -999,19 +1005,58 @@ static func _fang() -> ArrayMesh:
|
||||
const BEAR_FUR := Color(0.36, 0.24, 0.15)
|
||||
|
||||
## A bearskin laid flat: body, four splayed legs and the head toward -Z.
|
||||
static func _rug() -> ArrayMesh:
|
||||
## A skin rug with its head at -Z: the bear's (fur_rug), or wolves' a bit smaller.
|
||||
static func _rug(fur: Color = BEAR_FUR, k: float = 1.0) -> ArrayMesh:
|
||||
var st := P._begin()
|
||||
var r := _rng(273)
|
||||
_box(st, Vector3(0, 0.015, 0.1), Vector3(1.0, 0.03, 1.5), BEAR_FUR)
|
||||
_box(st, Vector3(0, 0.02, 0.1), Vector3(0.8, 0.03, 1.3), P._mul(BEAR_FUR, 1.12))
|
||||
_box(st, Vector3(0, 0.015, 0.1) * k, Vector3(1.0, 0.03 / k, 1.5) * k, fur)
|
||||
_box(st, Vector3(0, 0.02, 0.1) * k, Vector3(0.8, 0.03 / k, 1.3) * k, P._mul(fur, 1.12))
|
||||
for sx in [-1.0, 1.0]:
|
||||
for sz in [-0.45, 0.6]:
|
||||
_box(st, Vector3(sx * 0.62, 0.012, sz), Vector3(0.42, 0.024, 0.24), _board(r, BEAR_FUR), Basis(Vector3.UP, sx * (0.5 if sz < 0 else -0.5)))
|
||||
_box(st, Vector3(0, 0.05, -0.85), Vector3(0.38, 0.1, 0.34), P._mul(BEAR_FUR, 0.95))
|
||||
_box(st, Vector3(0, 0.045, -1.06), Vector3(0.18, 0.08, 0.14), Color(0.58, 0.45, 0.32))
|
||||
_box(st, Vector3(sx * 0.62, 0.012, sz) * k, Vector3(0.42, 0.024 / k, 0.24) * k, _board(r, fur), Basis(Vector3.UP, sx * (0.5 if sz < 0 else -0.5)))
|
||||
_box(st, Vector3(0, 0.05, -0.85) * k, Vector3(0.38, 0.1, 0.34) * k, P._mul(fur, 0.95))
|
||||
_box(st, Vector3(0, 0.045, -1.06) * k, Vector3(0.18, 0.08, 0.14) * k, Color(0.58, 0.45, 0.32))
|
||||
for sx in [-0.14, 0.14]:
|
||||
_box(st, Vector3(sx, 0.11, -0.8), Vector3(0.08, 0.05, 0.05), P._mul(BEAR_FUR, 0.8))
|
||||
_box(st, Vector3(0, 0.02, 0.92), Vector3(0.12, 0.03, 0.12), BEAR_FUR)
|
||||
_box(st, Vector3(sx, 0.11, -0.8) * k, Vector3(0.08, 0.05, 0.05) * k, P._mul(fur, 0.8))
|
||||
_box(st, Vector3(0, 0.02, 0.92) * k, Vector3(0.12, 0.03, 0.12) * k, fur)
|
||||
return P._commit(st)
|
||||
|
||||
## A fired clay jar with a wooden lid, about knee high.
|
||||
static func _jar() -> ArrayMesh:
|
||||
var st := P._begin()
|
||||
var r := _rng(337)
|
||||
P._cylinder(st, Vector3(0, 0.0, 0), Vector3(0, 0.12, 0), 0.16, 0.26, 10, P._mul(CLAY_FIRED, 0.92), r, -1.0, CLAY_FIRED)
|
||||
P._cylinder(st, Vector3(0, 0.12, 0), Vector3(0, 0.42, 0), 0.26, 0.24, 10, CLAY_FIRED, r)
|
||||
P._cylinder(st, Vector3(0, 0.42, 0), Vector3(0, 0.52, 0), 0.24, 0.16, 10, P._mul(CLAY_FIRED, 1.06), r)
|
||||
P._cylinder(st, Vector3(0, 0.52, 0), Vector3(0, 0.56, 0), 0.17, 0.17, 10, P._mul(CLAY_FIRED, 0.85), r)
|
||||
P._cylinder(st, Vector3(0, 0.56, 0), Vector3(0, 0.6, 0), 0.19, 0.17, 10, PLANK_DARK, r, -1.0, PLANK) # lid
|
||||
_box(st, Vector3(0, 0.63, 0), Vector3(0.08, 0.04, 0.05), PLANK_DARK)
|
||||
return P._commit(st)
|
||||
|
||||
## A hide bedroll: a flat mat with its rolled-up end and a feather pillow.
|
||||
static func _bedroll() -> ArrayMesh:
|
||||
var st := P._begin()
|
||||
var r := _rng(347)
|
||||
_box(st, Vector3(0, 0.03, 0.15), Vector3(0.8, 0.06, 1.6), HIDE)
|
||||
_box(st, Vector3(0, 0.065, 0.2), Vector3(0.66, 0.02, 1.35), P._mul(HIDE, 1.12))
|
||||
P._cylinder(st, Vector3(-0.4, 0.13, 0.95), Vector3(0.4, 0.13, 0.95), 0.12, 0.12, 8, _board(r, HIDE), r, -1.0, P._mul(HIDE, 0.8))
|
||||
_box(st, Vector3(0, 0.1, -0.5), Vector3(0.5, 0.09, 0.28), FEATHER)
|
||||
for sx in [-0.25, 0.25]:
|
||||
_box(st, Vector3(sx, 0.18, 0.95), Vector3(0.04, 0.26, 0.04), BINDING)
|
||||
return P._commit(st)
|
||||
|
||||
## A cord with five fangs hanging from a dark scrap of pelt.
|
||||
static func _necklace() -> ArrayMesh:
|
||||
var st := P._begin()
|
||||
var r := _rng(353)
|
||||
for i in range(12):
|
||||
var a := TAU * i / 12.0
|
||||
var b := TAU * (i + 1) / 12.0
|
||||
P._cylinder(st, Vector3(cos(a) * 0.12, 0.01, sin(a) * 0.1), Vector3(cos(b) * 0.12, 0.01, sin(b) * 0.1), 0.006, 0.006, 4, BINDING, r)
|
||||
_box(st, Vector3(0, 0.015, 0.1), Vector3(0.09, 0.02, 0.05), ALPHA_FUR)
|
||||
for i in range(5):
|
||||
var x := (i - 2) * 0.035
|
||||
P._cylinder(st, Vector3(x, 0.012, 0.12), Vector3(x * 1.2, 0.012, 0.19 - absf(i - 2) * 0.012), 0.012, 0.002, 5, Color(0.88, 0.82, 0.62), r)
|
||||
return P._commit(st)
|
||||
|
||||
# --- P3 the barrow --------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user