import { _decorator, Color, Component, Node } from 'cc'; import { ColorModel } from '../../util/JsonModel/ColorModel'; const { ccclass, property } = _decorator; export class WaterData { private static ColorMap = new Map static clear() { WaterData.ColorMap.clear() } static getWaterByColorId(colorId: number, isHide = false) { let color = ColorModel.getById(colorId) let water = new WaterData(color,isHide) return water } private _color: ColorModel isHide: boolean static hideColor = new Color(50, 50, 50) get color() { return this._color } get id() { return this.color.Id } get buttomColor(): Color { if (this.isHide) { return WaterData.hideColor } return this.getColor(this.color.buttomColor) } get topColor(): Color { if (this.isHide) { return WaterData.hideColor } return this.getColor(this.color.topColor) } private getColor(colorStr: string) { let color = WaterData.ColorMap.get(colorStr) if (!color) { color = new Color(colorStr) WaterData.ColorMap.set(colorStr, color) } return color } constructor(color: ColorModel, isHide: boolean = false) { this._color = color this.isHide = isHide } }