From 50a553b24d9a4a8ffeb51b933754313241741740 Mon Sep 17 00:00:00 2001 From: "azykov@mail.ru" Date: Wed, 3 Jun 2026 18:42:39 +0300 Subject: [PATCH] wolf head origin shift --- src/model/objectPrefabs/wolf.ts | 78 ++++++++++++++++----------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/src/model/objectPrefabs/wolf.ts b/src/model/objectPrefabs/wolf.ts index 7ffffc3..f3caa7f 100644 --- a/src/model/objectPrefabs/wolf.ts +++ b/src/model/objectPrefabs/wolf.ts @@ -11,52 +11,52 @@ function v(x: number, y: number, z: number, color: string): Voxel { return { typeId: 'stone', position: [x, y, z], color }; } -// Wolf faces +Z (nose at Z=6). Head spans 7×7×7. +// Wolf faces +Z (nose at Z=3). Head spans X:-3..3, Y:0..5, Z:-3..3. export const wolf: Voxel[] = [ - // ── Back of skull Z=0 ─────────────────────────────────────────── - v(2,3,0,G), v(3,3,0,G), v(4,3,0,G), - v(2,4,0,G), v(3,4,0,G), v(4,4,0,G), - v(2,5,0,G), v(3,5,0,G), v(4,5,0,G), + // ── Back of skull Z=-3 ────────────────────────────────────────────── + v(-1,2,-3,G), v(0,2,-3,G), v(1,2,-3,G), + v(-1,3,-3,G), v(0,3,-3,G), v(1,3,-3,G), + v(-1,4,-3,G), v(0,4,-3,G), v(1,4,-3,G), - // ── Skull Z=1 ─────────────────────────────────────────────────── - v(1,3,1,G), v(2,3,1,G), v(3,3,1,G), v(4,3,1,G), v(5,3,1,G), - v(1,4,1,G), v(2,4,1,G), v(3,4,1,G), v(4,4,1,G), v(5,4,1,G), - v(1,5,1,G), v(2,5,1,G), v(3,5,1,G), v(4,5,1,G), v(5,5,1,G), - v(2,6,1,G), v(3,6,1,G), v(4,6,1,G), + // ── Skull Z=-2 ────────────────────────────────────────────────────── + v(-2,2,-2,G), v(-1,2,-2,G), v(0,2,-2,G), v(1,2,-2,G), v(2,2,-2,G), + v(-2,3,-2,G), v(-1,3,-2,G), v(0,3,-2,G), v(1,3,-2,G), v(2,3,-2,G), + v(-2,4,-2,G), v(-1,4,-2,G), v(0,4,-2,G), v(1,4,-2,G), v(2,4,-2,G), + v(-1,5,-2,G), v(0,5,-2,G), v(1,5,-2,G), - // ── Skull + ear bases Z=2 ─────────────────────────────────────── - v(1,3,2,G), v(2,3,2,G), v(3,3,2,G), v(4,3,2,G), v(5,3,2,G), - v(1,4,2,G), v(2,4,2,G), v(3,4,2,G), v(4,4,2,G), v(5,4,2,G), - v(0,5,2,G), v(1,5,2,G), v(2,5,2,G), v(3,5,2,G), v(4,5,2,G), v(5,5,2,G), v(6,5,2,G), - v(1,6,2,G), v(2,6,2,G), v(3,6,2,G), v(4,6,2,G), v(5,6,2,G), - v(0,6,2,D), v(6,6,2,D), + // ── Skull + ear bases Z=-1 ─────────────────────────────────────────── + v(-2,2,-1,G), v(-1,2,-1,G), v(0,2,-1,G), v(1,2,-1,G), v(2,2,-1,G), + v(-2,3,-1,G), v(-1,3,-1,G), v(0,3,-1,G), v(1,3,-1,G), v(2,3,-1,G), + v(-3,4,-1,G), v(-2,4,-1,G), v(-1,4,-1,G), v(0,4,-1,G), v(1,4,-1,G), v(2,4,-1,G), v(3,4,-1,G), + v(-2,5,-1,G), v(-1,5,-1,G), v(0,5,-1,G), v(1,5,-1,G), v(2,5,-1,G), + v(-3,5,-1,D), v(3,5,-1,D), - // ── Face + ears Z=3 ───────────────────────────────────────────── - v(1,3,3,L), v(2,3,3,L), v(3,3,3,L), v(4,3,3,L), v(5,3,3,L), - v(1,4,3,G), v(2,4,3,G), v(3,4,3,G), v(4,4,3,G), v(5,4,3,G), + // ── Face + ears Z=0 ────────────────────────────────────────────────── + v(-2,2,0,L), v(-1,2,0,L), v(0,2,0,L), v(1,2,0,L), v(2,2,0,L), + v(-2,3,0,G), v(-1,3,0,G), v(0,3,0,G), v(1,3,0,G), v(2,3,0,G), // ears: dark outer, pink inner - v(0,5,3,D), v(1,5,3,P), v(2,5,3,G), v(3,5,3,G), v(4,5,3,G), v(5,5,3,P), v(6,5,3,D), - v(0,6,3,D), v(1,6,3,P), v(2,6,3,G), v(3,6,3,G), v(4,6,3,G), v(5,6,3,P), v(6,6,3,D), + v(-3,4,0,D), v(-2,4,0,P), v(-1,4,0,G), v(0,4,0,G), v(1,4,0,G), v(2,4,0,P), v(3,4,0,D), + v(-3,5,0,D), v(-2,5,0,P), v(-1,5,0,G), v(0,5,0,G), v(1,5,0,G), v(2,5,0,P), v(3,5,0,D), // snout start - v(2,1,3,L), v(3,1,3,L), v(4,1,3,L), - v(2,2,3,L), v(3,2,3,L), v(4,2,3,L), + v(-1,0,0,L), v(0,0,0,L), v(1,0,0,L), + v(-1,1,0,L), v(0,1,0,L), v(1,1,0,L), - // ── Face + amber eyes + snout Z=4 ─────────────────────────────── - v(1,3,4,L), v(2,3,4,L), v(3,3,4,L), v(4,3,4,L), v(5,3,4,L), - v(1,4,4,G), v(2,4,4,E), v(3,4,4,G), v(4,4,4,E), v(5,4,4,G), - v(1,5,4,G), v(2,5,4,G), v(3,5,4,G), v(4,5,4,G), v(5,5,4,G), - v(2,1,4,L), v(3,1,4,L), v(4,1,4,L), - v(2,2,4,L), v(3,2,4,L), v(4,2,4,L), + // ── Face + amber eyes + snout Z=1 ──────────────────────────────────── + v(-2,2,1,L), v(-1,2,1,L), v(0,2,1,L), v(1,2,1,L), v(2,2,1,L), + v(-2,3,1,G), v(-1,3,1,E), v(0,3,1,G), v(1,3,1,E), v(2,3,1,G), + v(-2,4,1,G), v(-1,4,1,G), v(0,4,1,G), v(1,4,1,G), v(2,4,1,G), + v(-1,0,1,L), v(0,0,1,L), v(1,0,1,L), + v(-1,1,1,L), v(0,1,1,L), v(1,1,1,L), - // ── Front face + pupils + snout Z=5 ───────────────────────────── - v(1,3,5,L), v(2,3,5,L), v(3,3,5,L), v(4,3,5,L), v(5,3,5,L), - v(1,4,5,G), v(2,4,5,N), v(3,4,5,G), v(4,4,5,N), v(5,4,5,G), - v(1,5,5,G), v(2,5,5,G), v(3,5,5,G), v(4,5,5,G), v(5,5,5,G), - v(2,1,5,L), v(3,1,5,L), v(4,1,5,L), - v(2,2,5,L), v(3,2,5,L), v(4,2,5,L), + // ── Front face + pupils + snout Z=2 ────────────────────────────────── + v(-2,2,2,L), v(-1,2,2,L), v(0,2,2,L), v(1,2,2,L), v(2,2,2,L), + v(-2,3,2,G), v(-1,3,2,N), v(0,3,2,G), v(1,3,2,N), v(2,3,2,G), + v(-2,4,2,G), v(-1,4,2,G), v(0,4,2,G), v(1,4,2,G), v(2,4,2,G), + v(-1,0,2,L), v(0,0,2,L), v(1,0,2,L), + v(-1,1,2,L), v(0,1,2,L), v(1,1,2,L), - // ── Snout tip + nose Z=6 ──────────────────────────────────────── - v(2,2,6,L), v(3,2,6,L), v(4,2,6,L), - v(2,1,6,L), v(3,1,6,L), v(4,1,6,L), - v(2,3,6,N), v(3,3,6,N), v(4,3,6,N), // nose + // ── Snout tip + nose Z=3 ───────────────────────────────────────────── + v(-1,1,3,L), v(0,1,3,L), v(1,1,3,L), + v(-1,0,3,L), v(0,0,3,L), v(1,0,3,L), + v(-1,2,3,N), v(0,2,3,N), v(1,2,3,N), // nose ];