GameWinnerPlayerItem.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import { _decorator, Color, Component, Label, Node, Sprite, Widget } from 'cc';
  2. import { IGamePlayer } from '../../module_basic/shared/protocols/public/game/GameTypeDef';
  3. import { UserMgr } from '../../module_basic/scripts/UserMgr';
  4. import { ModuleDef } from '../../scripts/ModuleDef';
  5. import { GenderIcon } from '../scripts/GenderIcon';
  6. import { IUserData } from '../shared/types/RoomData';
  7. import { SpriteUtils } from '../scripts/SpriteUtils';
  8. const { ccclass, property } = _decorator;
  9. const tempColor = new Color();
  10. @ccclass('GameWinnerPlayerItem')
  11. export class GameWinnerPlayerItem extends Component {
  12. @property(Sprite) bg:Sprite;
  13. @property(Node) emptySkin:Node;
  14. @property(Sprite) sprSkin:Sprite;
  15. @property(Sprite) sprHeadIcon:Sprite;
  16. @property(Label) lblUserName:Label;
  17. @property(Label) lblRoleName:Label;
  18. @property(GenderIcon) gender:GenderIcon;
  19. async setPlayer(player:IGamePlayer,user:IUserData){
  20. this.lblUserName.string = user.name;
  21. SpriteUtils.setUserIcon(this.sprHeadIcon, user.visualId);
  22. this.lblRoleName.string = player.roleName;
  23. this.emptySkin.active = true;
  24. Color.fromUint32(tempColor, player.color | 0xff000000);
  25. this.bg.color = new Color(player.color);
  26. SpriteUtils.setTeamSkin(this.sprSkin, player.teamId);
  27. this.gender.setGender(user?.gender);
  28. this.lblUserName.updateRenderData(true);
  29. this.lblUserName.node.children.forEach(v=>{
  30. v.getComponent(Widget).updateAlignment();
  31. });
  32. }
  33. }