| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- import { Component, _decorator, v3, Collider, Layers, CapsuleCollider } from "cc";
- import { Vehicle } from "../Vehicle";
- import { MoveToComp } from "../../common/ecs/position/MoveTo";
- import { VehicleSitComp } from "../bll/VehicleCheck";
- import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
- import { Puppet } from "../../puppet/puppet";
- import { PuppetModelComp } from "../../puppet/model/PuppetModelComp";
- import { smc } from "../../common/SingletonModuleComp";
- import { PuppetAnimatorType } from "../../puppet/model/PuppetEnum";
- const { ccclass, property } = _decorator;
- /** 车辆控制 */
- @ccclass('VehicleViewController')
- export class VehicleViewController extends Component {
- /** 角色对象 */
- vehicle: Vehicle = null!;
- onLoad() {
- const collider = this.node.getComponent(Collider);
- if (collider) {
- collider.on('onTriggerEnter', this.onTriggerEnter, this);
- }
- }
- onTriggerEnter(event, self) {
- const { otherCollider } = event
- // 确认触发事件的对象是玩家
- if (otherCollider.node.layer === Layers.Enum.PUPPET) {
- this.vehicle.VehicleView.animator.playAnimation('opendoor',false); // 播放开门动画
- // this.vehicle.add(VehicleSitComp)
- // if (this.vehicle.VehicleModel.isFull)
- // this.vehicle.VehicleModel.ready = true
- this.createPuppet(this.vehicle)
- }
- }
- createPuppet(v: Vehicle) {
- const account = smc.initialize.account
- const puppet = ecs.getEntity<Puppet>(Puppet)
- const puppetModel = puppet.get(PuppetModelComp)
- puppetModel.color = v.VehicleModel.color
- puppetModel.withColider = false
- puppet.load(this.node, v.VehicleModel.color, v.VehicleModel.sitPos[v.children.size],account.AccountModel.skin);
- this.vehicle.addChild(puppet)
- puppet.PuppetView.animator.toRight()
- puppet.PuppetView.animator.playAni(PuppetAnimatorType.Sit)
- puppet.PuppetView.animator.onScaleComplete = () => {
- // console.log("结果",!checkpoint.CheckpointModel.puppets.some(val => val.PuppetModel?.color === this.vehicle.VehicleModel.color))
- // console.log(checkpoint.CheckpointModel.puppets)
- if (v.children.size >= v.VehicleModel.capcity||!account.checkpoint.CheckpointModel.puppets.some(val => val.PuppetModel?.color === this.vehicle.VehicleModel.color))
- this.vehicle.VehicleModel.ready = true
- }
- puppet.PuppetView.animator.scale()
- }
- onDestroy() {
- }
- }
|