frm_mine.go 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // package frm_mine -- фрейм шахты
  2. package frm_mine
  3. import (
  4. "time"
  5. . "gitp78su.ipnodns.ru/svi/kern"
  6. . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
  7. tk "modernc.org/tk9.0"
  8. . "wartank/app/lev0/types"
  9. // "wartank/desktop/win_add_bot"
  10. // "wartank/desktop/win_main/frm_status"
  11. )
  12. type FrmMine struct {
  13. ctx IKernelCtx
  14. лблУровень *tk.TLabelWidget
  15. лблРабота *tk.TLabelWidget
  16. }
  17. func NewFrmMine(frmStateBot *tk.TFrameWidget) *FrmMine {
  18. sf := &FrmMine{
  19. ctx: GetKernelCtx(),
  20. }
  21. frmMine := frmStateBot.TFrame((tk.Border(1)), tk.Relief(tk.SUNKEN))
  22. tk.Pack(frmMine, tk.Side(tk.LEFT), tk.Fill(tk.FILL_Y))
  23. лблПараметрыШахта := frmMine.Label(tk.Txt("Шахта"),
  24. tk.Background("#888"),
  25. tk.Border(1),
  26. tk.Relief(tk.GROOVE),
  27. )
  28. tk.Pack(лблПараметрыШахта, tk.Side(tk.TOP), tk.Fill(tk.FILL_X))
  29. sf.лблУровень = frmMine.TLabel(tk.Txt("Уровень"),
  30. tk.Border(1),
  31. tk.Relief(tk.GROOVE),
  32. )
  33. tk.Pack(sf.лблУровень, tk.Side(tk.TOP), tk.Fill(tk.FILL_X))
  34. sf.лблРабота = frmMine.TLabel(tk.Txt("Работа"),
  35. tk.Border(1),
  36. tk.Relief(tk.GROOVE),
  37. )
  38. tk.Pack(sf.лблРабота, tk.Side(tk.TOP), tk.Fill(tk.FILL_X))
  39. sf.update()
  40. return sf
  41. }
  42. func (sf *FrmMine) update() {
  43. select {
  44. case <-sf.ctx.Ctx().Done():
  45. return
  46. default:
  47. farm := sf.ctx.Get("ботоФерма").Val().(ИБотоФерма)
  48. lstBot := farm.ListBot()
  49. if len(lstBot) > 0 {
  50. bot := lstBot[0]
  51. ботСеть := bot.КонтБот()
  52. шахта := ботСеть.Get("шахта").Val().(ИАренаШахта)
  53. { // Стата if[ns]
  54. стрУровень := шахта.Уровень().ЗначСтр()
  55. sf.лблУровень.Configure(tk.Txt("Уровень: " + стрУровень))
  56. стрРабота := шахта.ПродуктСейчас().ЗначСтр()
  57. sf.лблРабота.Configure(tk.Txt("Работа: " + стрРабота))
  58. // стрВремяОстат := bank.ВремяОстат().String()
  59. // sf.лблВремяОстат.Configure(tk.Txt("Работа: " + стрВремяОстат))
  60. // стрСереброБот := bank.СереброБот().ЗначСтр()
  61. // sf.лблСереброБот.Configure(tk.Txt("СереброБот: " + стрСереброБот))
  62. }
  63. }
  64. }
  65. tk.TclAfter(time.Millisecond*250, sf.update)
  66. }