fix tilt settings
This commit is contained in:
@@ -63,14 +63,15 @@ export function AppProvider({ children }: { children: ReactNode }) {
|
|||||||
|
|
||||||
const { dmID } = gameData;
|
const { dmID } = gameData;
|
||||||
const isDM = !!dmID;
|
const isDM = !!dmID;
|
||||||
|
const settings = { ...gameData.settings, ...localSettings };
|
||||||
|
|
||||||
const appInterface = {
|
const appInterface = {
|
||||||
gameData,
|
gameData,
|
||||||
isDM,
|
isDM,
|
||||||
noGame,
|
noGame,
|
||||||
selectCardIndex,
|
selectCardIndex,
|
||||||
settings: { ...gameData.settings, ...localSettings },
|
settings,
|
||||||
tilts: reduceTilts(gameData, localTilt),
|
tilts: reduceTilts(gameData, localTilt, settings),
|
||||||
emitFlip,
|
emitFlip,
|
||||||
emitSettings,
|
emitSettings,
|
||||||
emitRedraw,
|
emitRedraw,
|
||||||
|
|||||||
@@ -73,8 +73,6 @@ export default function TiltCard({
|
|||||||
}, thirtyFPS);
|
}, thirtyFPS);
|
||||||
|
|
||||||
const handleTouchMove = throttle((e: React.TouchEvent) => {
|
const handleTouchMove = throttle((e: React.TouchEvent) => {
|
||||||
e.stopPropagation();
|
|
||||||
|
|
||||||
const card = cardRef.current;
|
const card = cardRef.current;
|
||||||
const touch = e.touches[0];
|
const touch = e.touches[0];
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { log, validTilt } from '@/tools';
|
import { validTilt } from '@/tools';
|
||||||
import { GameUpdate, Tilt } from '@/types';
|
import { GameUpdate, Settings, Tilt } from '@/types';
|
||||||
|
|
||||||
const combineTilts = (tilts: Tilt[]) =>
|
const combineTilts = (tilts: Tilt[]) =>
|
||||||
tilts.reduce(
|
tilts.reduce(
|
||||||
@@ -13,13 +13,15 @@ const combineTilts = (tilts: Tilt[]) =>
|
|||||||
{ pX: 0, pY: 0, rX: 0, rY: 0, count: 0 },
|
{ pX: 0, pY: 0, rX: 0, rY: 0, count: 0 },
|
||||||
);
|
);
|
||||||
|
|
||||||
export function reduceTilts(gameData: GameUpdate, localTilt: Tilt[]): Tilt[] {
|
export function reduceTilts(
|
||||||
|
gameData: GameUpdate,
|
||||||
|
localTilt: Tilt[],
|
||||||
|
{ tilt, remoteTilt }: Settings,
|
||||||
|
): Tilt[] {
|
||||||
const remoteTilts = gameData.tilts;
|
const remoteTilts = gameData.tilts;
|
||||||
const tiltEnabled = gameData.settings.tilt;
|
|
||||||
const remoteTiltEnabled = gameData.settings.remoteTilt;
|
|
||||||
|
|
||||||
if (!tiltEnabled) return [];
|
if (!tilt) return [];
|
||||||
if (!remoteTiltEnabled) return Array.from({ length: 5 }, (_, i) => localTilt[i]);
|
if (!remoteTilt) return localTilt;
|
||||||
|
|
||||||
return Array.from({ length: 5 }, (_, i) => (localTilt[i] ? [localTilt[i]] : []))
|
return Array.from({ length: 5 }, (_, i) => (localTilt[i] ? [localTilt[i]] : []))
|
||||||
.map((cardTilts, cardIndex) => [...remoteTilts[cardIndex], ...cardTilts])
|
.map((cardTilts, cardIndex) => [...remoteTilts[cardIndex], ...cardTilts])
|
||||||
|
|||||||
@@ -1,4 +1,9 @@
|
|||||||
import { Tilt } from '@/types';
|
import { Tilt } from '@/types';
|
||||||
|
|
||||||
export const validTilt = ({ percentX, percentY, rotateX, rotateY }: Tilt) =>
|
export const validTilt = (tilt: Tilt) => {
|
||||||
percentX >= 0 && percentY >= 0 && !!rotateX && !!rotateY;
|
if (!tilt) return false;
|
||||||
|
|
||||||
|
const { percentX, percentY, rotateX, rotateY } = tilt;
|
||||||
|
|
||||||
|
return percentX >= 0 && percentY >= 0 && !!rotateX && !!rotateY;
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user