ClearCellOperation.ts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
  2. import { SingletonModuleComp, smc } from "../../common/SingletonModuleComp";
  3. import { Puppet } from "../../puppet/puppet";
  4. import { PuppetViewComp } from "../../puppet/view/PuppetViewComp";
  5. import { Checkpoint } from "../Checkpoint";
  6. import { CheckpointModelComp } from "../model/CheckpointModel";
  7. /**
  8. * 清空格子
  9. */
  10. @ecs.register('ClearCellOperation')
  11. export class ClearCellOperationComp extends ecs.Comp {
  12. reset() {
  13. }
  14. }
  15. export class ClearCellOperationSystem extends ecs.ComblockSystem implements ecs.IEntityEnterSystem {
  16. filter(): ecs.IMatcher {
  17. return ecs.allOf(CheckpointModelComp, ClearCellOperationComp);
  18. }
  19. entityEnter(e: Checkpoint): void {
  20. const vehicles = e.CheckpointModel.vehicles
  21. e.CheckpointModel.stations.forEach(val => {
  22. const findVehicle = vehicles.find(vehicle=>{
  23. return !vehicle.VehicleModel.isFull&&val.StationModel.puppet&&vehicle.VehicleModel.color === val.StationModel.puppet.PuppetModel.color
  24. })
  25. if (findVehicle) {
  26. // console.log('找到合适的车')
  27. findVehicle.VehicleModel.useSit += 1
  28. val.StationModel.puppet.PuppetView.animator.onRunComplete = () => {
  29. findVehicle.VehicleView.createPuppet()
  30. e.removeChild(val.StationModel.puppet)
  31. val.StationModel.puppet.destroy()
  32. val.StationModel.puppet = null
  33. e.CheckpointModel.peopleCount-=1
  34. }
  35. val.StationModel.puppet.PuppetView.animator.moveToTarget(findVehicle.VehicleView.node.position.clone())
  36. }
  37. })
  38. e.remove(ClearCellOperationComp)
  39. }
  40. }