4 downloads 272 views May 16, 2024
profile

KubeJS + CC: Tweaked by NullPointerException

Updated May 16, 2024
project thumbnail

Credits go to Amygdaloideae (Prunoideae on GitHub). Original mod here
\ Big thanks to richie3366 for helping to make the port work!
\ Mod icon made by FooterMan16

Go to Modrinth for a better experience!

supported versions required sides

Available on both Curseforge and Modrinth

CurseForge: CurseForge Downloads
\ Modrinth: Modrinth Downloads

Adds support for KubeJS to add peripherals to any block.

GO VISIT THE WIKI HERE! All things are there!

Example of methods you could add to furnaces:

// priority: 0
// The following code was last updated: April 30th 2024

// Visit the wiki for more info - https://kubejs.com/
ComputerCraftEvents.peripheral(event => {
    // First Param: peripheral type
    // Second Param: What block it goes to
    // Note: you can use regex for the second param
    
    event.registerPeripheral("furnace", "minecraft:furnace")
        // This limits the method to 1 call/tick,
        // as the method is scheduled on main thread.
        // The main thread is synced with the block
        .mainThreadMethod("burnTime", (container, direction, arguments) => {
            // This custom method returns the current
            // remaining burntime the furnace has.
            return container.entityData.getInt("BurnTime")
        })
        .mainThreadMethod("cookingProgress", (container) => {
            // This custom method returns the percentage
            // of the current cooking process going on.
            // A progress of 0 returned during two consecutive
            // ticks means that there is no cooking happening.
            let data = container.entityData
            let cookTime = data.getInt('CookTime')
            let cookTimeTotal = data.getInt('CookTimeTotal')
            if (!cookTimeTotal) return 0;
            return (cookTime / cookTimeTotal) * 100
        })


        // This has no limit on calling
        // however, the method can't access most of the in-world data.
        // For example, it couldn't access the NBT of a tile entity
        .method("say_hi", (container, direction, arguments) => {
            container.up.set("diamond_block")
            return "hi, here's your diamond block"
        })
})
comments
You can login with Discord to leave comments and reply to others!
There are no comments yet