本文整理匯總了Golang中chunkymonkey/gamerules.BlockInstance.Chunk方法的典型用法代碼示例。如果您正苦於以下問題:Golang BlockInstance.Chunk方法的具體用法?Golang BlockInstance.Chunk怎麽用?Golang BlockInstance.Chunk使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類chunkymonkey/gamerules.BlockInstance
的用法示例。
在下文中一共展示了BlockInstance.Chunk方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: blockTick
// blockTick runs any blocks that need to do something each tick.
func (chunk *Chunk) blockTick() {
if len(chunk.activeBlocks) == 0 && len(chunk.newActiveBlocks) == 0 {
return
}
for blockIndex := range chunk.newActiveBlocks {
chunk.activeBlocks[blockIndex] = true
chunk.newActiveBlocks[blockIndex] = false, false
}
var ok bool
var blockInstance gamerules.BlockInstance
blockInstance.Chunk = chunk
for blockIndex := range chunk.activeBlocks {
blockInstance.BlockType, blockInstance.Data, ok = chunk.blockTypeAndData(blockIndex)
if !ok {
// Invalid block.
chunk.activeBlocks[blockIndex] = false, false
}
blockInstance.SubLoc = blockIndex.ToSubChunkXyz()
blockInstance.Index = blockIndex
blockInstance.BlockLoc = *chunk.loc.ToBlockXyz(&blockInstance.SubLoc)
if !blockInstance.BlockType.Aspect.Tick(&blockInstance) {
// Block now inactive. Remove this block from the active list.
chunk.activeBlocks[blockIndex] = false, false
}
}
}
示例2: blockTickAll
// blockTickAll runs a "Tick" for all blocks within the chunk
func (chunk *Chunk) blockTickAll() {
var ok bool
var blockInstance gamerules.BlockInstance
blockInstance.Chunk = chunk
var blockIndex BlockIndex
max := BlockIndex(len(chunk.blocks))
for blockIndex = 0; blockIndex < max; blockIndex++ {
blockInstance.BlockType, blockInstance.Data, ok = chunk.blockTypeAndData(blockIndex)
if ok {
blockInstance.SubLoc = blockIndex.ToSubChunkXyz()
blockInstance.Index = blockIndex
blockInstance.BlockLoc = *chunk.loc.ToBlockXyz(&blockInstance.SubLoc)
if blockInstance.BlockType.Aspect.Tick(&blockInstance) {
// Block now active, so re-queue this
chunk.activeBlocks[blockIndex] = true, true
} else {
// Block now inactive. Remove this block from the active list.
chunk.activeBlocks[blockIndex] = false, false
}
}
}
chunk.storeDirty = true
}