summaryrefslogtreecommitdiff
path: root/src/sim/cell_sim/overlay.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/sim/cell_sim/overlay.rs')
-rw-r--r--src/sim/cell_sim/overlay.rs50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/sim/cell_sim/overlay.rs b/src/sim/cell_sim/overlay.rs
new file mode 100644
index 0000000..ee494ae
--- /dev/null
+++ b/src/sim/cell_sim/overlay.rs
@@ -0,0 +1,50 @@
+use crate::{Config, Input, sim::cell_sim::world::World};
+
+pub fn create_compute_combined_overlay_offset(
+ world: &World,
+ config: &Config,
+ input: &Input,
+) -> impl Fn(i32, i32) -> (u8, u8, u8, u8) {
+ puffin::profile_function!();
+ // TODO fix this move?
+ move |pixel_x: i32, pixel_y: i32| {
+ // could allow negative offsets too
+ let mut offset: (u8, u8, u8, u8) = (0x00, 0x00, 0x00, 0x00);
+
+ // // bounds
+ // // left
+ // let xl = -((board.get_game_width() / 2 + 1) as i32);
+ // // right
+ // let xu = (board.get_game_width() / 2 + 1) as i32;
+ // // bottom
+ // let yl = -((board.get_game_height() / 2 + 1) as i32);
+ // // top
+ // let yu = (board.get_game_height() / 2 + 1) as i32;
+
+ // if ((pixel_x == xl || pixel_x == xu) && (pixel_y <= yu && pixel_y >= yl))
+ // || (pixel_y == yl || pixel_y == yu) && (pixel_x <= xu && pixel_x >= xl)
+ // {
+ // offset.0 = offset.0.saturating_add(0xFF);
+ // offset.1 = offset.1.saturating_add(0xFF);
+ // offset.2 = offset.2.saturating_add(0xFF);
+ // }
+
+ // // grid
+ // if pixel_x % 30 == 0 || pixel_y % 30 == 0 {
+ // offset.0 = offset.0.saturating_add(0x10);
+ // offset.1 = offset.1.saturating_add(0x10);
+ // offset.2 = offset.2.saturating_add(0x10);
+ // }
+
+ // // brush/selection
+ // if input.last_mouse_pos_on_board.is_some_and(|p| {
+ // ((pixel_x - p.0).pow(2) + (pixel_y - p.1).pow(2)) < (config.brush_radius as i32).pow(2)
+ // }) {
+ // offset.0 = offset.0.saturating_add(0x82);
+ // offset.1 = offset.1.saturating_add(0xA1);
+ // offset.2 = offset.2.saturating_add(0xAD);
+ // }
+
+ return offset;
+ }
+}