CheckpointPathTrigger.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
  2. import { SingletonModuleComp, smc } from "../../common/SingletonModuleComp";
  3. import { PathFindComp, PathFindTriggerComponent } from "../../common/ecs/path/PathFind";
  4. import { Puppet } from "../../puppet/puppet";
  5. import { PuppetViewComp } from "../../puppet/view/PuppetViewComp";
  6. import { Checkpoint } from "../Checkpoint";
  7. import { CheckpointModelComp } from "../model/CheckpointModel";
  8. /**
  9. * 换肤
  10. */
  11. @ecs.register('CheckpointPathTrigger')
  12. export class CheckpointPathTriggerComp extends ecs.Comp {
  13. reset() {
  14. }
  15. }
  16. export class CheckpointPathTriggerSystem extends ecs.ComblockSystem implements ecs.IEntityEnterSystem {
  17. filter(): ecs.IMatcher {
  18. return ecs.allOf(CheckpointModelComp, CheckpointPathTriggerComp);
  19. }
  20. entityEnter(e: Checkpoint): void {
  21. const puppets = e.CheckpointModel.puppets
  22. puppets.forEach(val => {
  23. const pathComp = val.get(PathFindComp)
  24. if(pathComp){
  25. val.add(PathFindTriggerComponent)
  26. }
  27. })
  28. e.remove(CheckpointPathTriggerComp)
  29. }
  30. }