Water.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { _decorator, BoxCollider2D, Button, CircleCollider2D, Collider2D, Color, Component, Enum, find, Node, NodeEventType, Sprite } from 'cc';
  2. import { WaterColorHex, WaterColors } from '../TakeGobletGlobalInstance';
  3. const { ccclass, property, executeInEditMode } = _decorator;
  4. @ccclass('Water')
  5. @executeInEditMode
  6. export class Water extends Component {
  7. private _color: WaterColors = WaterColors.Blue;
  8. @property({ type: Enum(WaterColors) })
  9. get color() {
  10. return this._color;
  11. }
  12. set color(value: WaterColors) {
  13. this._color = value;
  14. this.updateColor();
  15. }
  16. @property(Sprite)
  17. private sprite: Sprite = null!;
  18. @property(Node)
  19. private mark: Node = null!;
  20. get markActive() {
  21. return this.mark.active;
  22. }
  23. private updateColor() {
  24. if (this.sprite) {
  25. this.sprite.color = new Color(WaterColorHex[this._color]);
  26. }
  27. }
  28. start() {
  29. this.updateColor();
  30. }
  31. initColor(color: WaterColors) {
  32. this._color = color;
  33. this.updateColor();
  34. }
  35. setMark(mark: boolean) {
  36. this.mark.active = mark;
  37. }
  38. }