| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- 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('FullVehicleOperation')
- export class FullVehicleOperationComp extends ecs.Comp {
- reset() {
- }
- }
- export class FullVehicleOperationSystem extends ecs.ComblockSystem implements ecs.IEntityEnterSystem {
- filter(): ecs.IMatcher {
- return ecs.allOf(CheckpointModelComp, FullVehicleOperationComp);
- }
- entityEnter(e: Checkpoint): void {
- const curVehicleModel = e.CheckpointModel.curVehicle.VehicleModel
- const needCount = curVehicleModel.capcity - curVehicleModel.useSit
- const color = curVehicleModel.color
- const puppets = e.CheckpointModel.puppets
- let count = 0
- for (let index = 0; index < puppets.length; index++) {
- const element = puppets[index];
- if(element.PuppetModel.color===color){
- count+=1
- element.PuppetView.animator.onRunComplete = () => {
- e.CheckpointModel.curVehicle.VehicleView.createPuppet()
- e.removeChild(element)
- element.destroy()
- e.CheckpointModel.peopleCount-=1
- }
- const cell = e.CheckpointModel.cells
- cell[element.PuppetModel.x][element.PuppetModel.y] = null
- e.CheckpointModel.curVehicle.VehicleModel.useSit += 1
- element.PuppetView.animator.moveToTarget(e.CheckpointModel.curVehicle.VehicleView.node.position.clone())
- }
- if(count>=needCount){
- break
- }
- }
- e.remove(FullVehicleOperationComp)
- }
- }
|