P3 alpha: wolf moon every 7th night, the alpha breaks wooden doors, iron-banded door, broken-door repair, alpha pelt and cloak (protocol 7)
This commit is contained in:
@@ -106,6 +106,12 @@ static func build(key: String) -> ArrayMesh:
|
||||
"palisade": m = _palisade()
|
||||
"palisade_gate": m = _palisade_gate(true)
|
||||
"palisade_gate_frame": m = _palisade_gate(false)
|
||||
"iron_door": m = _iron_door(true)
|
||||
"iron_door_frame": m = _door(false)
|
||||
"iron_door_panel": m = _iron_door(false)
|
||||
"alpha_pelt": m = _pelt(ALPHA_FUR)
|
||||
"alpha_cloak": m = _cloak(ALPHA_FUR)
|
||||
"wolf_fang": m = _fang()
|
||||
"berry_bush": m = _berry_bush(true)
|
||||
"berry_bush_bare": m = _berry_bush(false)
|
||||
_:
|
||||
@@ -937,3 +943,39 @@ static func _palisade_gate(with_panel: bool) -> ArrayMesh:
|
||||
if with_panel:
|
||||
_door_panel_into(st, Vector3(-0.54, 0, 0))
|
||||
return P._commit(st)
|
||||
|
||||
# --- P3 the alpha ------------------------------------------------------------------
|
||||
|
||||
const ALPHA_FUR := Color(0.17, 0.16, 0.17)
|
||||
|
||||
## Iron-banded door: the wooden leaf with three iron straps and studs.
|
||||
## `in_frame` = the closed door in a wood frame (icon and ghost); otherwise
|
||||
## just the leaf, hinge at the origin.
|
||||
static func _iron_door(in_frame: bool) -> ArrayMesh:
|
||||
var st := P._begin()
|
||||
var o := Vector3.ZERO
|
||||
if in_frame:
|
||||
var r := _rng(79)
|
||||
for side in [-1.0, 1.0]:
|
||||
_wall_body(st, r, side * 0.55 if side > 0 else -0.84, 0.84 if side > 0 else -0.55, 0.1, 1.9)
|
||||
_box(st, Vector3(side * 0.92, 1.0, 0), Vector3(0.16, 2.0, 0.2), BEAM)
|
||||
_box(st, Vector3(side * 0.6, 0.95, 0), Vector3(0.1, 1.9, 0.2), BEAM)
|
||||
_box(st, Vector3(0, 1.95, 0), Vector3(1.68, 0.1, 0.2), BEAM)
|
||||
o = Vector3(-0.54, 0, 0)
|
||||
var rr := _rng(251)
|
||||
for i in range(4):
|
||||
_box(st, o + Vector3(0.135 + 0.27 * i, 0.95, 0), Vector3(0.26, 1.86, 0.08), _board(rr, PLANK_DARK))
|
||||
for y in [0.3, 0.95, 1.6]:
|
||||
for z in [0.05, -0.05]:
|
||||
_box(st, o + Vector3(0.54, y, z), Vector3(1.04, 0.1, 0.02), IRON)
|
||||
for i in range(4):
|
||||
_box(st, o + Vector3(0.14 + 0.27 * i, y, z * 1.4), Vector3(0.03, 0.03, 0.02), IRON_BRIGHT)
|
||||
_box(st, o + Vector3(0.95, 1.0, 0.08), Vector3(0.06, 0.16, 0.05), IRON_BRIGHT)
|
||||
_box(st, o + Vector3(0.95, 1.0, -0.08), Vector3(0.06, 0.16, 0.05), IRON_BRIGHT)
|
||||
return P._commit(st)
|
||||
|
||||
static func _fang() -> ArrayMesh:
|
||||
var st := P._begin()
|
||||
var r := _rng(253)
|
||||
P._cylinder(st, Vector3(0, 0.02, 0), Vector3(0.02, 0.02, -0.12), 0.022, 0.003, 6, Color(0.88, 0.82, 0.62), r, -1.0, Color(0.6, 0.45, 0.35))
|
||||
return P._commit(st)
|
||||
|
||||
Reference in New Issue
Block a user