From 9fb640c4e0c6463ab4a3b3d7e1ab2fef6ae476ac Mon Sep 17 00:00:00 2001 From: Vijfhoek Date: Fri, 4 Jun 2021 02:38:51 +0200 Subject: [PATCH] Replace a very ugly float comparison with integer logic --- src/state/hud_state.rs | 4 ++-- src/world/quad.rs | 31 ++++++++++++++++++------------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/state/hud_state.rs b/src/state/hud_state.rs index 33f5d1c..d3fe888 100644 --- a/src/state/hud_state.rs +++ b/src/state/hud_state.rs @@ -287,8 +287,8 @@ impl HudState { pub const HUD_VERTICES: [HudVertex; 12] = [ // Crosshair HudVertex { position: [UI_SCALE_X * -8.0, UI_SCALE_Y * 8.0], texture_coordinates: [240.0 / 256.0, 0.0 / 256.0] }, - HudVertex { position: [UI_SCALE_X * 8.0, UI_SCALE_Y * 8.0], texture_coordinates: [256.0 / 256.0, 0.0 / 256.0] }, - HudVertex { position: [UI_SCALE_X * 8.0, UI_SCALE_Y * -8.0], texture_coordinates: [256.0 / 256.0, 16.0 / 256.0] }, + HudVertex { position: [UI_SCALE_X * 8.0, UI_SCALE_Y * 8.0], texture_coordinates: [ 1.0, 0.0 / 256.0] }, + HudVertex { position: [UI_SCALE_X * 8.0, UI_SCALE_Y * -8.0], texture_coordinates: [ 1.0, 16.0 / 256.0] }, HudVertex { position: [UI_SCALE_X * -8.0, UI_SCALE_Y * -8.0], texture_coordinates: [240.0 / 256.0, 16.0 / 256.0] }, // Hotbar diff --git a/src/world/quad.rs b/src/world/quad.rs index 88c719c..899450b 100644 --- a/src/world/quad.rs +++ b/src/world/quad.rs @@ -66,11 +66,11 @@ impl Quad { let mut current_index = start_index; let mut vertices = Vec::new(); let mut indices = Vec::new(); - let highlighted: [f32; 3] = self.highlighted_normal.cast().unwrap().into(); if self.visible_faces & FACE_LEFT == FACE_LEFT { - let normal = [-1.0, 0.0, 0.0]; - let highlighted = (normal == highlighted) as i32; + let normal = Vector3::new(-1, 0, 0); + let highlighted = (self.highlighted_normal == normal) as i32; + let normal = normal.cast().unwrap().into(); vertices.extend(&[ BlockVertex { position: [x, y, z ], texture_coordinates: [dz, 1.0], texture_id: t.0 as i32, normal, highlighted }, BlockVertex { position: [x, y, z + dz], texture_coordinates: [0.0, 1.0], texture_id: t.0 as i32, normal, highlighted }, @@ -85,8 +85,9 @@ impl Quad { } if self.visible_faces & FACE_RIGHT == FACE_RIGHT { - let normal = [1.0, 0.0, 0.0]; - let highlighted = (normal == highlighted) as i32; + let normal = Vector3::new(1, 0, 0); + let highlighted = (self.highlighted_normal == normal) as i32; + let normal = normal.cast().unwrap().into(); vertices.extend(&[ BlockVertex { position: [x + dx, y, z ], texture_coordinates: [0.0, 1.0], texture_id: t.1 as i32, normal, highlighted }, BlockVertex { position: [x + dx, y, z + dz], texture_coordinates: [dz, 1.0], texture_id: t.1 as i32, normal, highlighted }, @@ -101,8 +102,9 @@ impl Quad { } if self.visible_faces & FACE_BACK == FACE_BACK { - let normal = [0.0, 0.0, -1.0]; - let highlighted = (normal == highlighted) as i32; + let normal = Vector3::new(0, 0, -1); + let highlighted = (self.highlighted_normal == normal) as i32; + let normal = normal.cast().unwrap().into(); vertices.extend(&[ BlockVertex { position: [x, y, z], texture_coordinates: [dx, 1.0], texture_id: t.2 as i32, normal, highlighted }, BlockVertex { position: [x, y + dy, z], texture_coordinates: [dx, 0.0], texture_id: t.2 as i32, normal, highlighted }, @@ -117,8 +119,9 @@ impl Quad { } if self.visible_faces & FACE_FRONT == FACE_FRONT { - let normal = [0.0, 0.0, 1.0]; - let highlighted = (normal == highlighted) as i32; + let normal = Vector3::new(0, 0, 1); + let highlighted = (self.highlighted_normal == normal) as i32; + let normal = normal.cast().unwrap().into(); vertices.extend(&[ BlockVertex { position: [x, y, z + dz], texture_coordinates: [0.0, 1.0], texture_id: t.3 as i32, normal, highlighted }, BlockVertex { position: [x, y + dy, z + dz], texture_coordinates: [0.0, 0.0], texture_id: t.3 as i32, normal, highlighted }, @@ -133,8 +136,9 @@ impl Quad { } if self.visible_faces & FACE_BOTTOM == FACE_BOTTOM { - let normal = [0.0, -1.0, 0.0]; - let highlighted = (normal == highlighted) as i32; + let normal = Vector3::new(0, -1, 0); + let highlighted = (self.highlighted_normal == normal) as i32; + let normal = normal.cast().unwrap().into(); vertices.extend(&[ BlockVertex { position: [x, y, z ], texture_coordinates: [dx, 0.0], texture_id: t.4 as i32, normal, highlighted }, BlockVertex { position: [x, y, z + dz], texture_coordinates: [dx, dz ], texture_id: t.4 as i32, normal, highlighted }, @@ -149,8 +153,9 @@ impl Quad { } if self.visible_faces & FACE_TOP == FACE_TOP { - let normal = [0.0, 1.0, 0.0]; - let highlighted = (normal == highlighted) as i32; + let normal = Vector3::new(0, 1, 0); + let highlighted = (self.highlighted_normal == normal) as i32; + let normal = normal.cast().unwrap().into(); vertices.extend(&[ BlockVertex { position: [x, y + dy, z ], texture_coordinates: [0.0, 0.0], texture_id: t.5 as i32, normal, highlighted }, BlockVertex { position: [x, y + dy, z + dz], texture_coordinates: [0.0, dz ], texture_id: t.5 as i32, normal, highlighted },