108 lines
2.9 KiB
TypeScript
108 lines
2.9 KiB
TypeScript
import { JsonAsset } from 'cc';
|
|
import { _decorator, Component, Node } from 'cc';
|
|
import { UmLog } from '../../../cc-common/cc-util/UmLog';
|
|
import { resources } from 'cc';
|
|
import { error } from 'cc';
|
|
import { UmUtil } from '../../../cc-common/cc-util/UmUtil';
|
|
import { GameDefine } from '../config/GameDefine';
|
|
const { ccclass, property } = _decorator;
|
|
|
|
@ccclass('MapDataConfig')
|
|
export class MapDataConfig extends Component {
|
|
@property(JsonAsset) mapSagaDataAsset: JsonAsset = null!;
|
|
|
|
no_key = "no";
|
|
totalRow = 18;
|
|
// public sagaWaveInfo: SagaInfo[] = [{ id: 0, start: 1, end: 20 }, { id: 1, start: 21, end: 40 }, { id: 2, start: 41, end: 60 }, { id: 3, start: 61, end: 80 }];
|
|
|
|
protected onLoad(): void {
|
|
}
|
|
|
|
loadMapByName(mapName: string = "F1", callback) {
|
|
if (GameDefine.MAP_F_DEBUG.length > 0)
|
|
mapName = GameDefine.MAP_F_DEBUG;
|
|
|
|
var path = `map_json/${mapName}`;
|
|
resources.load(path, JsonAsset, (err: any, jsonAsset) => {
|
|
if (err || err?.length > 0)
|
|
callback?.(null);
|
|
else
|
|
callback?.(this.loadMap(jsonAsset));
|
|
});
|
|
}
|
|
|
|
loadMap(jsonAsset: JsonAsset): ObjectConfigPoint[] {
|
|
var mapConfigPoints: ObjectConfigPoint[] = new Array();
|
|
this.totalRow = jsonAsset.json.length;
|
|
for (let i = 0; i < this.totalRow; i++) {
|
|
var dataConfig = jsonAsset.json[i];
|
|
var keys = Object.keys(dataConfig);
|
|
for (var key of keys)
|
|
{
|
|
// UmLog.log("loadMap => ", i, " | key = ", key);
|
|
var column = Number(UmUtil.removeAllNonDigit(key));
|
|
if (Number.isNaN(column) || key.toLowerCase() == this.no_key)
|
|
continue;
|
|
|
|
// UmLog.log("convert result => ", column, i, dataConfig[key]);
|
|
|
|
var objectPoint: ObjectConfigPoint = {
|
|
objectNo: dataConfig[key],
|
|
column: column,
|
|
row: i
|
|
};
|
|
|
|
mapConfigPoints.push(objectPoint);
|
|
}
|
|
}
|
|
|
|
// UmLog.log("loadMap => DONE | ", mapConfigPoints.length);
|
|
return mapConfigPoints;
|
|
}
|
|
|
|
public getMapSagaInfoByNoId(noId: number): MapSagaInfo {
|
|
var result: MapSagaInfo[];
|
|
result = JSON.parse(JSON.stringify(this.mapSagaDataAsset.json));
|
|
return result[noId - 1];
|
|
}
|
|
|
|
}
|
|
|
|
export interface MapConfigInfo {
|
|
no: string;
|
|
c0: number;
|
|
c1: number;
|
|
c2: number;
|
|
c3: number;
|
|
c4: number;
|
|
c5: number;
|
|
c6: number;
|
|
c7: number;
|
|
c8: number;
|
|
c9: number;
|
|
c10: number;
|
|
c11: number;
|
|
c12: number;
|
|
c13: number;
|
|
c14: number;
|
|
c15: number;
|
|
c16: number;
|
|
c17: number;
|
|
}
|
|
|
|
export interface ObjectConfigPoint {
|
|
objectNo: number
|
|
column: number;
|
|
row: number;
|
|
|
|
}
|
|
|
|
export interface MapSagaInfo {
|
|
no: number
|
|
map: number;
|
|
start_level: number;
|
|
end_level: number
|
|
}
|
|
|
|
|