選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

66 行
1.7 KiB

  1. local MJDefine = MJFramework.MJImport("mj.luaScript.MJDefine")
  2. local MJMessage = MJFramework.MJImport("mj.luaScript.Protocol.MJMessage")
  3. local MJSound = MJFramework.MJImport("mj.luaScript.MJSound")
  4. local Mahjong3DHandCard = MJFramework.MJFrameworkClassImprot("mj.luaScript.Common.3d.Mahjong3DHandCard")
  5. local HandCard3D = class("HandCard3D", Mahjong3DHandCard)
  6. function HandCard3D:ctor(...)
  7. HandCard3D.super.ctor(self, ...)
  8. end
  9. --- HandCard3D:onAfterCreateHandcards 创建手牌之后的处理
  10. function HandCard3D:onAfterCreateHandcards()
  11. HandCard3D.super.onAfterCreateHandcards(self)
  12. end
  13. function HandCard3D:onAfterCreateOpenHandcards()
  14. HandCard3D.super.onAfterCreateOpenHandcards(self)
  15. end
  16. -- 重写排序,让听用牌放在最左边
  17. function HandCard3D:sortHandCards()
  18. -- 拆分
  19. local temp = {}
  20. local tCard = {}
  21. local nCard = {}
  22. local qCard = {}
  23. for i, v in ipairs(self._handCardNodes) do
  24. if v:getIsTingYongCard() then
  25. table.insert(tCard, v)
  26. elseif v:getIsDingQueCard() or (v:getMJColorType() == self.queType) then
  27. table.insert(qCard, v)
  28. else
  29. table.insert(nCard, v)
  30. end
  31. end
  32. -- 按牌值顺序排序
  33. local function sortFun(c1, c2)
  34. return c1:getValue() < c2:getValue()
  35. end
  36. table.sort(tCard, sortFun)
  37. table.sort(nCard, sortFun)
  38. table.sort(qCard, sortFun)
  39. -- 添加到大表temp里面
  40. for i, v in ipairs(tCard) do
  41. table.insert(temp, v)
  42. end
  43. for i, v in ipairs(nCard) do
  44. table.insert(temp, v)
  45. end
  46. for i, v in ipairs(qCard) do
  47. table.insert(temp, v)
  48. end
  49. self._handCardNodes = temp
  50. end
  51. return HandCard3D