func endClickDiscovery(t touch.Event, u *uistate.UIState) { pressed := unpressButtons(u) for _, button := range pressed { if button == u.Buttons["newGame"] { gameStartData, logName := sync.CreateLogSyncgroup(u) settingsName := sync.CreateSettingsSyncgroup(u) if logName != "" && settingsName != "" { sync.LogSettingsName(settingsName, u) u.ScanChan <- true u.ScanChan = nil u.SGChan = make(chan bool) go sync.Advertise(logName, settingsName, gameStartData, u.SGChan, u.Ctx) view.LoadArrangeView(u) } } else { for _, b := range u.Buttons { if button == b { s := strings.Split(b.GetInfo(), "|") logAddr := s[0] creator, _ := strconv.ParseBool(s[1]) fmt.Println("TRYING TO JOIN:", logAddr) success := sync.JoinLogSyncgroup(logAddr, creator, u) if success { sgName := sync.CreateSettingsSyncgroup(u) if sgName != "" { sync.LogSettingsName(sgName, u) } u.ScanChan <- true u.ScanChan = nil view.LoadArrangeView(u) } else { fmt.Println("Failed to join") } } } } } }
func onPaint(glctx gl.Context, sz size.Event, u *uistate.UIState) { if u.CurView == uistate.None { u.ScanChan = make(chan bool) go sync.ScanForSG(u.Ctx, u.ScanChan, u) view.LoadDiscoveryView(u) } glctx.ClearColor(1, 1, 1, 1) glctx.Clear(gl.COLOR_BUFFER_BIT) now := clock.Time(time.Since(u.StartTime) * 60 / time.Second) u.Eng.Render(u.Scene, now, sz) if u.Debug { fps.Draw(sz) } }
func endClickArrange(t touch.Event, u *uistate.UIState) { pressed := unpressButtons(u) for _, b := range pressed { if b == u.Buttons["exit"] { if u.SGChan != nil { u.SGChan <- true u.SGChan = nil } u.IsOwner = false u.DiscGroups = make(map[string]*uistate.DiscStruct) u.ScanChan = make(chan bool) go sync.ScanForSG(u.Ctx, u.ScanChan, u) view.LoadDiscoveryView(u) } else if b == u.Buttons["start"] { if u.CurTable.AllReadyForNewRound() { successStart := sync.LogGameStart(u) for !successStart { successStart = sync.LogGameStart(u) } newHands := u.CurTable.Deal() successDeal := sync.LogDeal(u, u.CurPlayerIndex, newHands) for !successDeal { successDeal = sync.LogDeal(u, u.CurPlayerIndex, newHands) } } } else { for key, button := range u.Buttons { if b == button && (u.CurPlayerIndex < 0 || u.Debug) { if key == "joinTable" { u.CurPlayerIndex = 4 sync.LogPlayerNum(u) } else { playerNum := strings.Split(key, "-")[1] u.CurPlayerIndex, _ = strconv.Atoi(playerNum) sync.LogPlayerNum(u) } } } } } }