KubeJS Nature's Aura

KubeJS Nature's Aura

KubeJS 与自然灵气的整合

工具

为 Nature's Aura 添加配方支持、自定义灵气缓存物品、结构查找物品,以及自定义或修改维度的灵气类型。

示例: 添加配方:在 server_scripts 中

ServerEvents.recipes((event) => {
    const { naturesaura } = event.recipes

    // Natural Altar(输出,输入,灵气-可选,时间-可选,催化剂-可选)
    naturesaura.altar('bedrock', 'stone')
    naturesaura.altar('bedrock', 'stone', 5000)
    naturesaura.altar('bedrock', 'stone', 5000, 60)
    naturesaura.altar('bedrock', 'stone', 5000, 60, 'naturesaura:conversion_catalyst')

    // Altar of Birthing(实体,输入,灵气-可选,时间-可选)
    naturesaura.animal_spawner('creeper', ['gunpowder', 'green_dye'])
    naturesaura.animal_spawner('creeper', ['gunpowder', 'green_dye'], 10000)
    naturesaura.animal_spawner('creeper', ['gunpowder', 'green_dye'], 10000, 120)

    // Offering Table(输出,输入,起始物品)
    naturesaura.offering('diamond', 'coal', 'bedrock')

    // Tree Ritual(输出,输入,树苗-可选,时间-可选)
    naturesaura.tree_ritual('nether_star', ['blaze_powder', 'obsidian', 'diamond'])
    naturesaura.tree_ritual('nether_star', ['blaze_powder', 'obsidian', 'diamond'], 'oak_sapling')
    naturesaura.tree_ritual('nether_star', ['blaze_powder', 'obsidian', 'diamond'], 'oak_sapling', 200)
})

注册物品:在 startup_scripts 中

NaturesAuraEvents.init((event) => {
    // 自定义灵气类型(灵气类型,维度,灵气颜色,优先级-可选)
    event.custom('kubejs:aether', 'aether:the_aether', 0xb0c4de)

    // 修改维度的灵气类型(维度,灵气类型)
    event.modify('minecraft:overworld', 'kubejs:aether')
})

自定义或修改维度的灵气类型:在 startup_scripts 中

StartupEvents.registry('item', (event) => {
   // 自定义灵气缓存(可储存灵气的物品)
   event.create('custom_aura_cache', 'naturesaura:aura_cache').setMaxAura(10000)

   // 类似末影之眼的自定义物品(查找指定范围的结构)
   event
       .create('custom_structure_finder', 'naturesaura:structure_finder')
       .setStructure('minecraft:village_plains')
       .setColor(0xba2800)
       .setRadius(2048)
})

其他功能:

BlockEvents.rightClicked((event) => {
    const { block, item, level } = event
 
    AuraBlock.getStoredAura(block.entity)
    AuraBlock.drainAura(block.entity, 100000, false)
    AuraBlock.storeAura(block.entity, 100000, false)
 
    AuraItem.getStoredAura(item)
    AuraItem.drainAura(item, 100000, false)
    AuraItem.storeAura(item.entity, 100000, false)
 
    AuraChunk.getAuraInArea(level, block.pos, 16)
    AuraChunk.drainAura(level, block.pos, 100000)
    AuraChunk.storeAura(level, block.pos, 100000)
})