| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
- import { SingletonModuleComp, smc } from "../../common/SingletonModuleComp";
- import { Puppet } from "../../puppet/puppet";
- import { PuppetViewComp } from "../../puppet/view/PuppetViewComp";
- import { Checkpoint } from "../Checkpoint";
- import { CheckpointModelComp } from "../model/CheckpointModel";
- /**
- * 清空格子
- */
- @ecs.register('ClearCellOperation')
- export class ClearCellOperationComp extends ecs.Comp {
- reset() {
- }
- }
- export class ClearCellOperationSystem extends ecs.ComblockSystem implements ecs.IEntityEnterSystem {
- filter(): ecs.IMatcher {
- return ecs.allOf(CheckpointModelComp, ClearCellOperationComp);
- }
- entityEnter(e: Checkpoint): void {
- const vehicles = e.CheckpointModel.vehicles
- e.CheckpointModel.stations.forEach(val => {
- const findVehicle = vehicles.find(vehicle=>{
- return !vehicle.VehicleModel.isFull&&val.StationModel.puppet&&vehicle.VehicleModel.color === val.StationModel.puppet.PuppetModel.color
- })
- if (findVehicle) {
- // console.log('找到合适的车')
- findVehicle.VehicleModel.useSit += 1
- val.StationModel.puppet.PuppetView.animator.onRunComplete = () => {
- findVehicle.VehicleView.createPuppet()
- e.removeChild(val.StationModel.puppet)
- val.StationModel.puppet.destroy()
- val.StationModel.puppet = null
- e.CheckpointModel.peopleCount-=1
- }
- val.StationModel.puppet.PuppetView.animator.moveToTarget(findVehicle.VehicleView.node.position.clone())
- }
- })
- e.remove(ClearCellOperationComp)
- }
- }
|