🪺 Adds multible generic components

This commit is contained in:
Rune Harlyk
2023-07-18 17:54:22 +02:00
parent 39588c04fd
commit 57d671bac7
7 changed files with 48 additions and 28 deletions
+17 -23
View File
@@ -3,20 +3,15 @@
import { onMount } from 'svelte';
import { throttler } from '../lib/throttle';
import { socket } from '../lib/socket';
import { emulateModel, input, outControllerData } from '../lib/store';
let throttle = new throttler();
let left: nipplejs.JoystickManager;
let right: nipplejs.JoystickManager;
let throttle_timing = 50;
let throttle_timing = 40;
let left_vector = { x: 0, y: 0 };
let right_vector = { x: 0, y: 0 };
let height = 45; // 0 to 50
let speed = 0;
let mode = 'rest'; // 'rest' | 'stand' | 'stand+' | 'walk'
let stream_rotation = 0;
let temp = 0;
let data = new Uint8Array(6);
@@ -30,12 +25,12 @@
});
left.on('move', (evt, data) => {
left_vector = data.vector;
input.update(o => {o.left = data.vector; return o;})
throttle.throttle(updateData, throttle_timing);
});
left.on('end', (evt, data) => {
left_vector = { x: 0, y: 0 };
input.update(o => {o.left = { x: 0, y: 0 }; return o;})
throttle.throttle(updateData, throttle_timing);
});
@@ -48,35 +43,34 @@
});
right.on('move', (evt, data) => {
right_vector = data.vector;
input.update(o => {o.right = data.vector; return o;})
throttle.throttle(updateData, throttle_timing);
});
right.on('end', (evt, data) => {
right_vector = { x: 0, y: 0 };
input.update(o => {o.right = { x: 0, y: 0 }; return o;})
throttle.throttle(updateData, throttle_timing);
});
});
const updateData = () => {
data[0] = left_vector.x * 128 + 128;
data[1] = left_vector.y * 128 + 128;
data[2] = right_vector.x * 128 + 128;
data[3] = right_vector.y * 128 + 128;
data[4] = height;
data[5] = speed;
data[6] = 0;
data[0] = 0;
data[1] = $input.left.x * 127 + 128;
data[2] = $input.left.y * 127 + 128;
data[3] = $input.right.x * 127 + 128;
data[4] = $input.right.y * 127 + 128;
data[5] = $input.height;
data[6] = $input.speed;
$socket.send(data);
outControllerData.set(data)
if(!$emulateModel) $socket.send(data);
};
const lerp = (start: number, end: number, amt: number) => {
return (1 - amt) * start + amt * end;
};
</script>
<div class="absolute top-0 left-0 w-screen h-screen">
<div class="absolute top-0 left-0 h-full w-full flex portrait:hidden z-10">
<div class="absolute top-0 left-0 h-full w-full flex portrait:hidden">
<div id="left" class="flex w-60 items-center justify-end" />
<div class="flex-1" />
<div id="right" class="flex w-60 items-center" />