12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import { _decorator, Component, Enum, Node } from 'cc';
- import { CupHeight, WaterColors } from '../TakeGobletGlobalInstance';
- import { Water } from './Water';
- const { ccclass, property } = _decorator;
- @ccclass('TempCup')
- export class TempCup extends Component {
- @property({ type: Enum(CupHeight), displayName: '杯高度' })
- cupHeight: CupHeight = CupHeight.One
- @property(Node)
- waters: Node = null!; //水节点
- private _currentColor: WaterColors = WaterColors.Blue;
- private _isFull: boolean = false;
- get isFull(): boolean {
- return this._isFull;
- }
- get currentColor(): WaterColors {
- return this._currentColor;
- }
- start() {
- }
- update(deltaTime: number) {
- }
- fill(color: WaterColors) {
- if (this._isFull) return;
- const waterNode = this.waters.children[0];
- if (waterNode) {
- const water = waterNode.getComponent(Water)!;
- water.color = color;
- waterNode.active = true;
- this._currentColor = color;
- this._isFull = true;
- }
- }
- reset() {
- this.waters.children[0].active = false;
- this._isFull = false;
- console.log('暂存杯已重置');
- }
- public getColors(): WaterColors[] {
- return this.waters.children
- .filter(node => node.active)
- .map(node => node.getComponent(Water)!.color);
- }
- public getActiveWaters(): Water[] {
- return this.waters.children
- .filter(node => node.active)
- .map(node => node.getComponent(Water)!);
- }
- public isEmpty(): boolean {
- return this.waters.children.every(node => !node.active);
- }
- }
|