KubeJS Nature's Aura

KubeJS Nature's Aura

84.9k Downloads

Adds support for Nature's Aura recipes, custom aura cache item, structure finder item, and custom or modify the aura type of dimension.

Examples:
In server_scripts:

ServerEvents.recipes((event) => {
    const { altar, animal_spawner, offering, tree_ritual } = event.recipes.naturesaura

    // Natural Altar (output,input,aura-optional,time-optional, catalyst-optional)
    altar('bedrock', 'stone')
    altar('bedrock', 'stone', 5000)
    altar('bedrock', 'stone', 5000, 60)
    altar('bedrock', 'stone', 5000, 60, 'naturesaura:conversion_catalyst')

    // Altar of Birthing (entity,input,aura-optional,time-optional)
    animal_spawner('creeper', ['gunpowder', 'green_dye'])
    animal_spawner('creeper', ['gunpowder', 'green_dye'], 10000)
    animal_spawner('creeper', ['gunpowder', 'green_dye'], 10000, 120)

    // Offering Table (output,input,start-item)
    offering('diamond', 'coal', 'bedrock')

    // Tree Ritual(output,input,sapling-optional, time-optional)
    tree_ritual('nether_star', ['blaze_powder', 'obsidian', 'diamond'])
    tree_ritual('nether_star', ['blaze_powder', 'obsidian', 'diamond'], 'oak_sapling')
    tree_ritual('nether_star', ['blaze_powder', 'obsidian', 'diamond'], 'oak_sapling', 200)
})

In startup_script:

NaturesAuraEvents.init((event) => {
    // custom aura type (aura type, dimension, aura colour, priority-optional)
    event.custom('kubejs:aether', 'aether:the_aether', 0xb0c4de)

    // modify the aura type of the dimension (dimension, aura type)
    event.modify('minecraft:overworld', 'kubejs:aether')
})
StartupEvents.registry('item', (event) => {
    // custom aura cache (items that can store aura)
    event.create('custom_aura_cache', 'naturesaura:aura_cache').setMaxAura(10000)

    // custom item similar to the Eye of Ender (find the specified range of structure)
    event
        .create('custom_structure_finder', 'naturesaura:structure_finder')
        .setStructure('minecraft:village_plains')
        .setColor(0xba2800)
        .setRadius(2048)
})
Other features:
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)
})