diff options
Diffstat (limited to 'renderer/src/tee.rs')
-rw-r--r-- | renderer/src/tee.rs | 36 |
1 files changed, 28 insertions, 8 deletions
diff --git a/renderer/src/tee.rs b/renderer/src/tee.rs index 8e8e3ba..4d9d945 100644 --- a/renderer/src/tee.rs +++ b/renderer/src/tee.rs @@ -11,6 +11,8 @@ const TEE_REND_RADIUS: f32 = 32.0; const TEE_EYE_ROTATION_RADIUS: f32 = 8.0; const TEE_EYE_SIZE: f32 = 12.0; const TEE_EYE_DISTANCE: f32 = 8.0; +const TEE_FOOT_SIZE: f32 = 14.0; +const TEE_EYE_OFFSET_Y: f32 = -2.0; pub struct TeeRenderer { skins: BTreeMap<String, Image>, @@ -61,6 +63,24 @@ impl TeeRenderer { y: tee.y as f32, }; + { + canvas.save(); + + canvas.draw_image_rect( + &skin_texture, + Some((&SKIN_FOOT, SrcRectConstraint::Strict)), + Rect { + top: -TEE_FOOT_SIZE + TEE_REND_RADIUS * 0.5, + left: -TEE_FOOT_SIZE * 2.0 - TEE_FOOT_SIZE * 0.5, + right: TEE_FOOT_SIZE * 2.0 - TEE_FOOT_SIZE * 0.5, + bottom: TEE_FOOT_SIZE + TEE_REND_RADIUS * 0.5, + }, + &tee_paint, + ); + + canvas.restore(); + } + canvas.draw_image_rect( &skin_texture, Some((&SKIN_BODY_SHADOW, SrcRectConstraint::Strict)), @@ -96,10 +116,10 @@ impl TeeRenderer { &skin_texture, Some((&SKIN_EYE_NORMAL, SrcRectConstraint::Strict)), Rect { - top: -TEE_EYE_SIZE, + top: -TEE_EYE_SIZE + TEE_EYE_OFFSET_Y, left: -TEE_EYE_SIZE - TEE_EYE_DISTANCE / 2.0, right: TEE_EYE_SIZE - TEE_EYE_DISTANCE / 2.0, - bottom: TEE_EYE_SIZE, + bottom: TEE_EYE_SIZE + TEE_EYE_OFFSET_Y, }, &tee_paint, ); @@ -110,10 +130,10 @@ impl TeeRenderer { &skin_texture, Some((&SKIN_EYE_NORMAL, SrcRectConstraint::Strict)), Rect { - top: -TEE_EYE_SIZE, + top: -TEE_EYE_SIZE + TEE_EYE_OFFSET_Y, left: -TEE_EYE_SIZE - TEE_EYE_DISTANCE / 2.0, right: TEE_EYE_SIZE - TEE_EYE_DISTANCE / 2.0, - bottom: TEE_EYE_SIZE, + bottom: TEE_EYE_SIZE + TEE_EYE_OFFSET_Y, }, &tee_paint, ); @@ -129,10 +149,10 @@ impl TeeRenderer { &skin_texture, Some((&SKIN_FOOT, SrcRectConstraint::Strict)), Rect { - top: -TEE_EYE_SIZE, - left: -TEE_EYE_SIZE - TEE_EYE_DISTANCE / 2.0, - right: TEE_EYE_SIZE - TEE_EYE_DISTANCE / 2.0, - bottom: TEE_EYE_SIZE, + top: -TEE_FOOT_SIZE + TEE_REND_RADIUS * 0.5, + left: -TEE_FOOT_SIZE * 2.0 + TEE_FOOT_SIZE * 0.5, + right: TEE_FOOT_SIZE * 2.0 + TEE_FOOT_SIZE * 0.5, + bottom: TEE_FOOT_SIZE + TEE_REND_RADIUS * 0.5, }, &tee_paint, ); |