AccountInit.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. let data =
  19. {
  20. lv: 1,
  21. }
  22. const localData = oops.storage.get("account")
  23. if (localData) {
  24. data.lv = Number(localData)
  25. }
  26. this.createLevel(e, data);
  27. e.remove(AccountInitComp);
  28. }
  29. /** 创建关卡对象(自定义逻辑) */
  30. private createLevel(e: Account, data: any) {
  31. const level = ecs.getEntity<Checkpoint>(Checkpoint);
  32. // 关卡等级数据
  33. level.upgrade(data.lv);
  34. e.checkpoint = level;
  35. e.addChild(level)
  36. }
  37. /** 设置本地存储的用户标识 */
  38. private setLocalStorage(level: number) {
  39. oops.storage.set("account", level);
  40. }
  41. }