123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- import { _decorator, Component, Node } from 'cc';
- import { PinAction } from './PinAction';
- import { EmptyHoleAction } from './EmptyHoleAction';
- const { ccclass, property } = _decorator;
- @ccclass('LayerEmptyAction')
- export class LayerEmptyAction extends Component {
- start() {
- }
- update(deltaTime: number) {
- }
- public get_pin_by_color(color_id: number, pin_arr: PinAction[]) {
- this.node.children.forEach(empty_hole => {
- empty_hole.getComponent(EmptyHoleAction)?.get_pin_arr_by_color_id(color_id, pin_arr);
- });
- }
- public get_pin_arr(arr: PinAction[] = null): PinAction[] {
- // let arr:PinAction[] = [];
- if (!arr) {
- arr = [];
- }
- for (let i = this.node.children.length - 1; i >= 0; i--) {
- let empty_hole = this.node.children[i];
- let empty_hole_action = empty_hole.getComponent(EmptyHoleAction);
- if (empty_hole_action) {
- empty_hole_action.get_pin_arr(arr);
- }
- }
- return arr;
- }
- public put_pin(pin: PinAction) {
- for (let i = this.node.children.length - 1; i >= 0; i--) {
- let empty_hole_action = this.node.children[i].getComponent(EmptyHoleAction);
- if (empty_hole_action?.can_able_put()) {
- if (empty_hole_action?.put_pin(pin)) {
- //放入成功,结束
- break;
- }
- }
- }
- }
- //true = 满了
- public is_pin_full(): boolean {
- let ret = true;
- for (let i = 0; i < this.node.children.length; i++) {
- let empty_hole = this.node.children[i];
- let empty_hole_action = empty_hole.getComponent(EmptyHoleAction);
- if (!empty_hole_action) {
- continue;
- }
- if (empty_hole_action?.can_able_put()) {
- //还可以放入,结束了
- ret = false;
- break;
- }
- }
- return ret;
- }
- //check 获取上锁的个数
- get_unlock_num(): number {
- let num = 0;
- for (let i = this.node.children.length - 1; i >= 0; i--) {
- // console.log("unlock_empty_hole i:",i);
- let empty_hole = this.node.children[i];
- let empty_hole_action = empty_hole.getComponent(EmptyHoleAction);
- if (empty_hole_action?.isLocked) {
- num++
- }
- }
- return num;
- }
- // public get_pin_arr(arr:PinAction[] = null): PinAction[] {
- unlock_empty_hole() {
- for (let i = this.node.children.length - 1; i >= 0; i--) {
- // console.log("unlock_empty_hole i:",i);
- let empty_hole = this.node.children[i];
- let empty_hole_action = empty_hole.getComponent(EmptyHoleAction);
- if (empty_hole_action?.isLocked) {
- empty_hole_action.unlock_hole(null);
- break;
- }
- }
- }
- /**
- *
- */
- public init_empty() {
- this.node.children.forEach(empty_hole => {
- empty_hole.getComponent(EmptyHoleAction)?.init_empty_hole();
- });
- }
- }
|