Enhance support of screens

This commit is contained in:
Tnze
2021-07-04 12:38:24 +08:00
parent ebc44e7c8b
commit 7cfe5145d2
6 changed files with 148 additions and 63 deletions

View File

@ -20,6 +20,7 @@ import (
var address = flag.String("address", "127.0.0.1", "The server address")
var client *bot.Client
var player *basic.Player
var screenManager *screen.Manager
func main() {
flag.Parse()
@ -32,7 +33,11 @@ func main() {
Disconnect: onDisconnect,
Death: onDeath,
}.Attach(client)
_ = screen.NewManager(client)
screenManager = screen.NewManager(client, screen.EventsListener{
Open: nil,
SetSlot: onScreenSlotChange,
Close: nil,
})
//Login
err := client.JoinServer(*address)
@ -84,6 +89,18 @@ func onChatMsg(c chat.Message, _ byte, _ uuid.UUID) error {
return nil
}
func onScreenSlotChange(id, index int) error {
if id == -2 {
log.Printf("Slot change: inventory: %v", screenManager.Inventory.Slots[index])
} else if id == -1 && index == -1 {
log.Printf("Slot change: cursor: %v", screenManager.Cursor)
} else {
container := screenManager.Screens[id]
log.Printf("Slot change: Screen[%d].Slot[%d]: %T", id, index, container)
}
return nil
}
type DisconnectErr struct {
Reason chat.Message
}