aboutsummaryrefslogtreecommitdiff
path: root/src/lib/components/sensor.svelte
blob: 94587058024a4f1b728c42aedd70d2afdd0b158a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<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>