pub enum Climbable {
Ladder {
facing: Face,
},
Vine {
faces: [bool; 4],
},
Growing(GrowingVine),
Scaffolding,
}Expand description
What holds a climbable where it is — the rule each kind’s
canSurvive states in the pinned jar. A climbable whose rule fails is
removed by the game at the next shape update it receives, so a model that
credits it credits a climb that is not there.
Variants§
Ladder
ladder[facing=F]. Cited, LadderBlock.canSurvive: the block at
pos.relative(F.getOpposite()) answers isFaceSturdy(…, F) — the ladder
hangs on the face of the block behind it. Its collision box is a
3/16-thick panel against that face (Block.boxZ(16, 13, 16) rotated to
the facing), so a body centred in the cell is clear of it.
Vine
vine, with the horizontal faces its state sets. Cited,
VineBlock.canSupportAtFace: a face is held when the neighbour across
it is a full face to MultifaceBlock.canAttachTo (its support shape’s
face, or its collision shape’s), or when the vine above carries the same
face. The up face is not counted as a hold here (spec-0099 §3.2).
Fields
faces: [bool; 4]The horizontal faces the state sets, in Face::HORIZONTAL order.
Growing(GrowingVine)
A growing plant’s head or body. Cited, GrowingPlantBlock.canSurvive:
the block it grows from — pos.relative(growth.getOpposite()) — is the
same plant, or answers isFaceSturdy(…, growth).
Scaffolding
scaffolding: in the tag, and not modelled as a climb (spec-0099
§3.3) — the nav model reads it as the full cube its stable shape is.