VehicleViewController.ts 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import { Component, _decorator, v3, Collider, Layers, CapsuleCollider } from "cc";
  2. import { Vehicle } from "../Vehicle";
  3. import { MoveToComp } from "../../common/ecs/position/MoveTo";
  4. import { VehicleSitComp } from "../bll/VehicleCheck";
  5. import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
  6. import { Puppet } from "../../puppet/puppet";
  7. import { PuppetModelComp } from "../../puppet/model/PuppetModelComp";
  8. import { smc } from "../../common/SingletonModuleComp";
  9. const { ccclass, property } = _decorator;
  10. /** 车辆控制 */
  11. @ccclass('VehicleViewController')
  12. export class VehicleViewController extends Component {
  13. /** 角色对象 */
  14. vehicle: Vehicle = null!;
  15. onLoad() {
  16. const collider = this.node.getComponent(Collider);
  17. if (collider) {
  18. collider.on('onTriggerEnter', this.onTriggerEnter, this);
  19. }
  20. }
  21. onTriggerEnter(event, self) {
  22. const { otherCollider } = event
  23. // 确认触发事件的对象是玩家
  24. if (otherCollider.node.layer === Layers.Enum.PUPPET) {
  25. // this.vehicle.VehicleView.animator.playAnimation('opendoor',false); // 播放开门动画
  26. // this.vehicle.add(VehicleSitComp)
  27. // if (this.vehicle.VehicleModel.isFull)
  28. // this.vehicle.VehicleModel.ready = true
  29. this.createPuppet(this.vehicle)
  30. }
  31. }
  32. createPuppet(v: Vehicle) {
  33. const account = smc.initialize.account
  34. const puppet = ecs.getEntity<Puppet>(Puppet)
  35. const puppetModel = puppet.get(PuppetModelComp)
  36. puppetModel.color = v.VehicleModel.color
  37. puppet.load(this.node, v.VehicleModel.color, v.VehicleModel.sitPos[v.children.size],account.AccountModel.skin,true);
  38. this.vehicle.addChild(puppet)
  39. puppet.PuppetView.animator.toRight()
  40. puppet.PuppetView.animator.onScaleComplete = () => {
  41. // console.log("结果",!checkpoint.CheckpointModel.puppets.some(val => val.PuppetModel?.color === this.vehicle.VehicleModel.color))
  42. // console.log(checkpoint.CheckpointModel.puppets)
  43. if (v.children.size >= v.VehicleModel.capcity||!account.checkpoint.CheckpointModel.puppets.some(val => val.PuppetModel?.color === this.vehicle.VehicleModel.color))
  44. this.vehicle.VehicleModel.ready = true
  45. }
  46. puppet.PuppetView.animator.scale()
  47. }
  48. onDestroy() {
  49. }
  50. }