当前位置: 首页>>代码示例>>Golang>>正文


Golang gamerules.BlockInstance类代码示例

本文整理汇总了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
		}
	}
}
开发者ID:nictuku,项目名称:chunkymonkey,代码行数:32,代码来源:chunk.go

示例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
}
开发者ID:huwenshu,项目名称:chunkymonkey,代码行数:28,代码来源:chunk.go


注:本文中的chunkymonkey/gamerules.BlockInstance类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。