當前位置: 首頁>>代碼示例>>Golang>>正文


Golang BlockInstance.BlockLoc方法代碼示例

本文整理匯總了Golang中chunkymonkey/gamerules.BlockInstance.BlockLoc方法的典型用法代碼示例。如果您正苦於以下問題:Golang BlockInstance.BlockLoc方法的具體用法?Golang BlockInstance.BlockLoc怎麽用?Golang BlockInstance.BlockLoc使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在chunkymonkey/gamerules.BlockInstance的用法示例。


在下文中一共展示了BlockInstance.BlockLoc方法的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.BlockLoc方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。