aboutsummaryrefslogtreecommitdiff
path: root/renderer
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-10-13 14:59:55 +0200
committermetamuffin <metamuffin@disroot.org>2022-10-13 14:59:55 +0200
commit1247f46149cbb3a21590573fdcef23e920d0addc (patch)
tree7d784499f48ea533d1fa7fb3e91df23fa14f2c6f /renderer
parente3a4790893b5d5f9cf8fbc44ececd65711d572cb (diff)
downloadtwclient-1247f46149cbb3a21590573fdcef23e920d0addc.tar
twclient-1247f46149cbb3a21590573fdcef23e920d0addc.tar.bz2
twclient-1247f46149cbb3a21590573fdcef23e920d0addc.tar.zst
Diffstat (limited to 'renderer')
-rw-r--r--renderer/Cargo.toml4
-rw-r--r--renderer/src/main.rs14
-rw-r--r--renderer/src/tee.rs36
3 files changed, 39 insertions, 15 deletions
diff --git a/renderer/Cargo.toml b/renderer/Cargo.toml
index 6ec23ca..d78190d 100644
--- a/renderer/Cargo.toml
+++ b/renderer/Cargo.toml
@@ -9,8 +9,8 @@ authors = [
license = "AGPL-3.0-only"
[dependencies]
-twclient = { path = "../client" }
-skia-safe = { version = "0.50.0", features = ["gl", "wayland"] }
+twclient = { path = "../client", features = ["gamenet_ddnet_0_6"]}
+skia-safe = { version = "0.52.0", features = ["gl", "wayland"] }
glutin = "0.28.0"
gl = "0.14.0"
log = "0.4.17"
diff --git a/renderer/src/main.rs b/renderer/src/main.rs
index af01021..186b773 100644
--- a/renderer/src/main.rs
+++ b/renderer/src/main.rs
@@ -138,6 +138,11 @@ fn main() {
env.windowed_context.window().request_redraw();
}
Event::WindowEvent { event, .. } => match event {
+ WindowEvent::MouseInput { button, state, .. } => match state {
+ ElementState::Pressed => renderer.input.fire = 1,
+ ElementState::Released => renderer.input.fire = 0,
+ },
+ WindowEvent::CursorMoved { position, .. } => {}
WindowEvent::Resized(physical_size) => {
env.surface =
create_surface(&env.windowed_context, &fb_info, &mut env.gr_context);
@@ -182,11 +187,6 @@ fn main() {
}
_ => (),
}
- renderer
- .client_interface
- .send
- .send(ClientMesgIn::Input(renderer.input))
- .unwrap();
}
}
}
@@ -216,6 +216,10 @@ pub struct Renderer {
impl Renderer {
pub fn tick(&mut self) {
+ self.client_interface
+ .send
+ .send(ClientMesgIn::Input(self.input))
+ .unwrap();
for m in self.client_interface.receive.try_iter() {
self.world.update(&m);
match m {
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,
);