本文整理汇总了Golang中chunkymonkey/gamerules.BlockInstance类的典型用法代码示例。如果您正苦于以下问题:Golang BlockInstance类的具体用法?Golang BlockInstance怎么用?Golang BlockInstance使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了BlockInstance类的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
}