template/packages-user/data-state/src/index.ts

54 lines
1.6 KiB
TypeScript

import { FaceDirection, loading } from '@user/data-base';
import { isNil } from 'lodash-es';
import { ICoreState } from './types';
import { state } from './ins';
function createCoreState(state: ICoreState) {
//#region 图块部分
const data = Object.entries(core.maps.blocksInfo);
for (const [key, block] of data) {
const num = Number(key);
state.idNumberMap.set(block.id, num);
state.numberIdMap.set(num, block.id);
}
for (const [key, block] of data) {
if (!block.faceIds) continue;
const { down, up, left, right } = block.faceIds;
const downNum = state.idNumberMap.get(down);
if (downNum !== Number(key)) continue;
const upNum = state.idNumberMap.get(up);
const leftNum = state.idNumberMap.get(left);
const rightNum = state.idNumberMap.get(right);
state.roleFace.malloc(downNum, FaceDirection.Down);
if (!isNil(upNum)) {
state.roleFace.bind(upNum, downNum, FaceDirection.Up);
}
if (!isNil(leftNum)) {
state.roleFace.bind(leftNum, downNum, FaceDirection.Left);
}
if (!isNil(rightNum)) {
state.roleFace.bind(rightNum, downNum, FaceDirection.Right);
}
}
//#endregion
}
export function create() {
loading.once('loaded', () => {
// 加载后初始化全局状态
createCoreState(state);
});
}
export * from './enemy';
export * from './hero';
export * from './legacy';
export * from './core';
export * from './ins';
export * from './shared';
export * from './types';