2024-07-31 09:29:33 -05:00
|
|
|
import {createContext, useCallback, useContext} from 'react';
|
2024-06-22 23:32:57 -05:00
|
|
|
|
2024-06-27 05:44:34 -05:00
|
|
|
import {usePacket} from './client.js';
|
|
|
|
|
2024-06-22 23:32:57 -05:00
|
|
|
const context = createContext();
|
|
|
|
|
|
|
|
export default context;
|
|
|
|
|
|
|
|
export function useEcs() {
|
|
|
|
return useContext(context);
|
|
|
|
}
|
2024-06-27 05:44:34 -05:00
|
|
|
|
2024-07-31 09:29:33 -05:00
|
|
|
export function useEcsTick(fn) {
|
2024-07-03 11:17:36 -05:00
|
|
|
const [ecs] = useEcs();
|
2024-07-31 09:29:33 -05:00
|
|
|
const memo = useCallback((payload) => {
|
|
|
|
if (!ecs) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
fn(payload, ecs);
|
|
|
|
}, [ecs, fn]);
|
|
|
|
usePacket(':Ecs', memo);
|
2024-06-27 05:44:34 -05:00
|
|
|
}
|