本文整理汇总了Golang中github.com/huin/chunkymonkey/gamerules.IPlayerClient.NotifyChunkLoad方法的典型用法代码示例。如果您正苦于以下问题:Golang IPlayerClient.NotifyChunkLoad方法的具体用法?Golang IPlayerClient.NotifyChunkLoad怎么用?Golang IPlayerClient.NotifyChunkLoad使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/huin/chunkymonkey/gamerules.IPlayerClient
的用法示例。
在下文中一共展示了IPlayerClient.NotifyChunkLoad方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: reqSubscribeChunk
func (chunk *Chunk) reqSubscribeChunk(entityId EntityId, player gamerules.IPlayerClient, notify bool) {
if _, ok := chunk.subscribers[entityId]; ok {
// Already subscribed.
return
}
chunk.subscribers[entityId] = player
buf := new(bytes.Buffer)
proto.WritePreChunk(buf, &chunk.loc, ChunkInit)
player.TransmitPacket(buf.Bytes())
player.TransmitPacket(chunk.chunkPacket())
if notify {
player.NotifyChunkLoad()
}
// Send spawns packets for all entities in the chunk.
if len(chunk.entities) > 0 {
buf := new(bytes.Buffer)
for _, e := range chunk.entities {
e.SendSpawn(buf)
}
player.TransmitPacket(buf.Bytes())
}
// Spawn existing players for new player.
if len(chunk.playersData) > 0 {
playersPacket := new(bytes.Buffer)
for _, existing := range chunk.playersData {
if existing.entityId != entityId {
existing.sendSpawn(playersPacket)
}
}
player.TransmitPacket(playersPacket.Bytes())
}
}