import { FC, useEffect, useState } from 'react'; import { LocalizeText, WiredFurniType } from '../../../../api'; import { Text } from '../../../../common'; import { useWired } from '../../../../hooks'; import { WiredDirectionIcon, WIRED_DIRECTION_GRID } from '../WiredDirectionIcon'; import { WiredSourcesSelector } from '../WiredSourcesSelector'; import { WiredConditionBaseView } from './WiredConditionBaseView'; const toggleDirection = (mask: number, direction: number, checked: boolean) => { if(checked) return (mask | (1 << direction)); return (mask & ~(1 << direction)); }; export const WiredConditionActorDirView: FC<{}> = () => { const { trigger = null, setIntParams = null } = useWired(); const [ directionMask, setDirectionMask ] = useState(0); const [ userSource, setUserSource ] = useState(0); const [ quantifier, setQuantifier ] = useState(0); const [ showAdvanced, setShowAdvanced ] = useState(false); useEffect(() => { if(!trigger) return; const nextDirectionMask = trigger.intData.length > 0 ? trigger.intData[0] : 0; const nextUserSource = trigger.intData.length > 1 ? trigger.intData[1] : 0; const nextQuantifier = trigger.intData.length > 2 ? trigger.intData[2] : 0; setDirectionMask(nextDirectionMask); setUserSource(nextUserSource); setQuantifier((nextQuantifier === 1) ? 1 : 0); setShowAdvanced(nextUserSource !== 0 || nextQuantifier !== 0); }, [ trigger ]); const save = () => { setIntParams([ directionMask, userSource, quantifier ]); }; return ( { showAdvanced && <>
{ LocalizeText('wiredfurni.params.quantifier_selection') } { [ 0, 1 ].map(value => { return ( ); }) }
} }>
{ LocalizeText('wiredfurni.params.direction_selection') }
{ WIRED_DIRECTION_GRID.flatMap((row, rowIndex) => row.map((direction, columnIndex) => { if(direction === null) { return
; } const checked = ((directionMask & (1 << direction)) !== 0); return ( ); })) }
); };