pub struct NpcSkin {
pub texture_id: String,
pub model: SkinModel,
pub hidden_layers: Vec<SkinLayer>,
}Expand description
A mannequin NPC’s player-model skin (DSL v0.4). The skin PNG is sourced from
the campaign dir’s skins/<texture_id>.png and ships in the per-delve resource
pack at assets/delvewright/textures/npc/<campaign_id>/<texture_id>.png, which
is what the mannequin’s profile.texture resolves to. The delve’s own
directory is stamped on at emission (crate::l10n::namespace_skin_textures)
— a client merges every applied pack’s textures into ONE space, so two delves
that both cast a keeper would otherwise wear each other’s faces. Nothing a
creator writes or names on disk carries it.
Fields§
§texture_id: StringSkin id: the PNG basename under skins/, and the last segment of the
resource-pack texture path (a bare kebab token; validated by DW0190).
model: SkinModelPlayer model. Required (spec-0009): an omitted model renders slim, so a wide skin on a slim model is distorted — the compiler always emits it.
The overlay layers this mannequin does not draw (spec-0097 §5). A
mannequin draws all seven of the player model’s second-layer parts unless
told otherwise, and the skin’s paint on a hidden part is not shown. Absent
or empty draws every layer and emits nothing; otherwise the list is
emitted as the mannequin’s own hidden_layers field, in this order. A
layer named twice is DW0980.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for NpcSkin
impl<'de> Deserialize<'de> for NpcSkin
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for NpcSkin
impl JsonSchema for NpcSkin
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read more