MySave.ts 964 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { _decorator, Component, Node } from 'cc';
  2. import { saveProp, saveRoot, SaveUtil } from '../myUtil/saveCompoent/export';
  3. const { ccclass, property } = _decorator;
  4. type Constructor<T = unknown> = new (...args: any[]) => T
  5. const saveCompoent = {
  6. player: "player",
  7. Update: "Update",
  8. Item: "Item",
  9. stage: "stage",
  10. } as const;
  11. class MySave extends SaveUtil {
  12. getCompent<T>(param: new (...args: any[]) => T): T {
  13. return this.getCompentByClass(param)
  14. }
  15. getCompentByName(name: keyof SaveCompoent) {
  16. return super.getCompentByName(name)
  17. }
  18. getCompentKey(): string[] {
  19. return Object.keys(saveCompoent).map(it => saveCompoent[it])
  20. }
  21. }
  22. type SaveCompoent = typeof saveCompoent
  23. function compoentInter(componentName?: keyof SaveCompoent, customize: boolean = false) {
  24. return saveRoot(saveCompoent[componentName], customize)
  25. }
  26. export {
  27. MySave,
  28. saveProp,
  29. compoentInter as saveRoot,
  30. }