AccountInit.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { v3 } from "cc";
  2. import { oops } from "../../../../../extensions/oops-plugin-framework/assets/core/Oops";
  3. import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
  4. import { Checkpoint } from "../../checkpoint/Checkpoint";
  5. import { Account } from "../Account";
  6. import { AccountModelComp } from "../model/AccountModelComp";
  7. /** 请求玩家游戏数据 */
  8. @ecs.register('AccountInit')
  9. export class AccountInitComp extends ecs.Comp {
  10. reset() { }
  11. }
  12. /** 请求玩家游戏数据 */
  13. export class AccountInitSystem extends ecs.ComblockSystem implements ecs.IEntityEnterSystem {
  14. filter(): ecs.IMatcher {
  15. return ecs.allOf(AccountInitComp, AccountModelComp);
  16. }
  17. entityEnter(e: Account): void {
  18. const data =
  19. {
  20. lv: 1,
  21. }
  22. this.createLevel(e, data);
  23. e.remove(AccountInitComp);
  24. }
  25. /** 创建关卡对象(自定义逻辑) */
  26. private createLevel(e: Account, data: any) {
  27. const level = ecs.getEntity<Checkpoint>(Checkpoint);
  28. // 关卡等级数据
  29. level.upgrade(data.lv);
  30. // 关卡数据
  31. level.CheckpointModel.vmAdd();
  32. // 关卡等级数据
  33. level.CheckpointModelLevel.vmAdd();
  34. // 添加关卡到场景
  35. level.load(oops.game.root, v3(0, 0, 0));
  36. e.checkpoint = level;
  37. e.addChild(level)
  38. }
  39. /** 设置本地存储的用户标识 */
  40. private setLocalStorage(level: number) {
  41. oops.storage.set("account", level);
  42. }
  43. }