WaterData.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { _decorator, Color, Component, Node } from 'cc';
  2. import { ColorModel } from '../../util/JsonModel/ColorModel';
  3. const { ccclass, property } = _decorator;
  4. export class WaterData {
  5. private static ColorMap = new Map<string, Color>
  6. static clear() {
  7. WaterData.ColorMap.clear()
  8. }
  9. static getWaterByColorId(colorId: number, isHide = false) {
  10. let color = ColorModel.getById(colorId)
  11. let water = new WaterData(color,isHide)
  12. return water
  13. }
  14. private _color: ColorModel
  15. isHide: boolean
  16. static hideColor = new Color(50, 50, 50)
  17. get color() {
  18. return this._color
  19. }
  20. get id() {
  21. return this.color.Id
  22. }
  23. get buttomColor(): Color {
  24. if (this.isHide) {
  25. return WaterData.hideColor
  26. }
  27. return this.getColor(this.color.buttomColor)
  28. }
  29. get topColor(): Color {
  30. if (this.isHide) {
  31. return WaterData.hideColor
  32. }
  33. return this.getColor(this.color.topColor)
  34. }
  35. private getColor(colorStr: string) {
  36. let color = WaterData.ColorMap.get(colorStr)
  37. if (!color) {
  38. color = new Color(colorStr)
  39. WaterData.ColorMap.set(colorStr, color)
  40. }
  41. return color
  42. }
  43. constructor(color: ColorModel, isHide: boolean = false) {
  44. this._color = color
  45. this.isHide = isHide
  46. }
  47. }