本文整理汇总了Golang中hearts/img/uistate.UIState.IsOwner方法的典型用法代码示例。如果您正苦于以下问题:Golang UIState.IsOwner方法的具体用法?Golang UIState.IsOwner怎么用?Golang UIState.IsOwner使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类hearts/img/uistate.UIState
的用法示例。
在下文中一共展示了UIState.IsOwner方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: CreateLogSyncgroup
// Creates a new gamelog syncgroup
func CreateLogSyncgroup(u *uistate.UIState) (string, string) {
fmt.Println("Creating Log Syncgroup")
u.IsOwner = true
// Generate random gameID information to advertise this game
gameID := rand.Intn(1000000)
u.GameID = gameID
gameMap := make(map[string]interface{})
gameMap["type"] = "Hearts"
gameMap["playerNumber"] = 0
gameMap["gameID"] = gameID
gameMap["ownerID"] = util.UserID
value, err := json.Marshal(gameMap)
if err != nil {
fmt.Println("WE HAVE A HUGE PROBLEM:", err)
}
// Create gamelog syncgroup
logSGName := fmt.Sprintf("%s/croupier/%s/%%%%sync/gaming-%d", util.MountPoint, util.SBName, gameID)
allAccess := access.AccessList{In: []security.BlessingPattern{"..."}}
permissions := access.Permissions{
"Admin": allAccess,
"Write": allAccess,
"Read": allAccess,
"Resolve": allAccess,
"Debug": allAccess,
}
logPref := wire.TableRow{util.LogName, fmt.Sprintf("%d", u.GameID)}
logPrefs := []wire.TableRow{logPref}
tables := []string{util.MountPoint + "/croupier"}
logSpec := wire.SyncgroupSpec{
Description: "croupier syncgroup",
Perms: permissions,
Prefixes: logPrefs,
MountTables: tables,
IsPrivate: false,
}
myInfoCreator := wire.SyncgroupMemberInfo{8, true}
app := u.Service.App(util.AppName)
db := app.Database(util.DbName, nil)
logSG := db.Syncgroup(logSGName)
err = logSG.Create(u.Ctx, logSpec, myInfoCreator)
if err != nil {
fmt.Println("SYNCGROUP CREATE ERROR: ", err)
fmt.Println("JOINING INSTEAD...")
_, err2 := logSG.Join(u.Ctx, myInfoCreator)
if err2 != nil {
fmt.Println("SYNCGROUP JOIN ERROR: ", err2)
return string(value), ""
} else {
return string(value), logSGName
}
} else {
fmt.Println("Syncgroup created")
if logSGName != u.LogSG {
ResetGame(logSGName, true, u)
}
return string(value), logSGName
}
}
示例2: JoinLogSyncgroup
// Joins gamelog syncgroup
func JoinLogSyncgroup(logName string, creator bool, u *uistate.UIState) bool {
fmt.Println("Joining gamelog syncgroup")
u.IsOwner = creator
app := u.Service.App(util.AppName)
db := app.Database(util.DbName, nil)
logSg := db.Syncgroup(logName)
myInfoJoiner := wire.SyncgroupMemberInfo{8, creator}
_, err := logSg.Join(u.Ctx, myInfoJoiner)
if err != nil {
fmt.Println("SYNCGROUP JOIN ERROR: ", err)
return false
} else {
fmt.Println("Syncgroup joined")
if u.LogSG != logName {
ResetGame(logName, creator, u)
}
return true
}
}
示例3: endClickArrange
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)
}
}
}
}
}
}