KubeJS + CC: Tweaked

Quick rating

Community listing page, reviews here may not be monitored by the author.

KubeJS + CC: Tweaked

By Wolfieboy09Owner

No reviews yet

KubeJS + CC: Tweaked for Forge

Mod Loaders
Minecraft

About

Description

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

Suggestion? Bug report? Go here: https://github.com/wolfieboy09/KubeJS-CC-Tweaked/issues/ (I will see it a lot faster then CurseForge comments)

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"
        })
})

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 \

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"
        })
})