]> git.r.bdr.sh - rbdr/canvas/blobdiff - src/lib/components/sensor.svelte
Update project, improve sensor/render logic
[rbdr/canvas] / src / lib / components / sensor.svelte
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..b6d38d83cfefeecb176a36741f24fc27ddcca0f9 100644 (file)
@@ -0,0 +1,34 @@
+<script>
+  import { browser } from '$app/environment';
+  import { maxSize } from '$lib/config';
+  import { modulo } from '$lib/math';
+  import { canvas } from '$lib/stores/canvas';
+  import { sensor } from '$lib/stores/widgets';
+
+  const kSensorSize = 2;
+
+  let left;
+  let right;
+  let top;
+  let bottom;
+
+  let timer;
+  const fetchItems = function fetchItems( left, top, right, bottom ) {
+    clearTimeout(timer);
+               timer = setTimeout(() => {
+      sensor.set({ left, top, right, bottom });
+               }, 50);
+  }
+
+  $: {
+    if (browser) {
+      left = modulo($canvas.x - window.screen.width * kSensorSize, maxSize);
+      top = modulo($canvas.y - window.screen.height * kSensorSize, maxSize);
+      right = left + 2 * window.screen.width * kSensorSize;
+      bottom = top + 2 * window.screen.height * kSensorSize;
+
+      fetchItems(left, top, right, bottom);
+    }
+  }
+
+</script>