KubeJS Mystical Agriculture

KubeJS Mystical Agriculture

Mod

KubeJS addon which adds support for all Mystical Agriculture recipe types and for creating mob souls and crops. No mystical customization needed

Client and server EconomyFoodLibraryMagic MobsTechnologyWorld Generation

366 downloads
3 followers
Created5 months ago
Updated5 months ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

KubeJS Mystical Agriculture

the project has 2 goals, substitute mystical customization and add support for all mystical agriculture recipe types.

with this project you can add awakening recipes, enchanter recipes, infusion recipes, seed reprocessor recipes, soul extraction recipes and soulium spawner recipes.

this mod has startup events for crops and mob soul types allowing access to the respective registry, this means you can add crops and mob souls.

Adding Recipes

ServerEvents.recipes(event => {
const {awakening,enchanter,infusion,reprocessor,soul_extraction,soulium_spawner} = event.recipes.mysticalagriculture;

    // awakening
    awakening(
        "minecraft:gold_ingot", // result
        "minecraft:iron_ingot", // item in the middle
        [
            Item.of("minecraft:yellow_dye",40), // may contain count
            Item.of("minecraft:yellow_dye",40),
            Item.of("minecraft:yellow_dye",40),
            Item.of("minecraft:yellow_dye",40)
        ], // items in essence vessels 
        [
            "#minecraft;flowers",
            "#minecraft;flowers",
            "#minecraft;flowers",
            "#minecraft;flowers",
        ] // items in pedestal
    );
    // enchanter
    enchanter(
        "minecraft:sharpness", //result enchantment which will be produced
        [
            Item.of("minecraft:flint",3),
            Item.of("minecraft:iron_ingot",2)
        ] // array of 1-2 items may contain count
    );
    // infusion
    infusion(
        "minecraft:emerald", // result
        "minecraft:diamond", // item in middle
        [
            Item.of("minecraft:green_dye",4) // count is unwrapped into multiple items
        ] // items in pedestals
    );
    // reprocessor
    reprocessor(
        "minecraft:iron_ingot", // result
        "minecraft:compass" // input item
    );
    // soul extractor
    // constructor 1
    soul_extraction(
        {
            type:"mysticalagriculture:blaze", 
            souls:30
        }, // mob souls
        "minecraft:magma_cream" // input item
    );
    // constructor 2
    soul_extraction(
        "mysticalagriculture:zombie", // mob soul type
        0.5, //souls count
        "minecraft:diamond" // input item
    );
    // soulium spawner
    soulium_spawner(
        [
            { 
                entity:"minecraft:zombie",
                weight:100
            },
            {
                entity:"minecraft:iron_golem",
                // weight if not defined will be 1
            }
        ], // entities
        [
            Item.of("minecraft:emerald",4) // may contain count
        ] // input items
    );
});

Adding Crops

in startup_scripts

MysticalAgricultureStartupEvents.crop(event => {
    // here you can access the crop registry as event.registry
    /* methods 
    void register(Crop crop);
    void registerTier(CropTier tier);
    void registerType(CropType type);
    List<Crop> getCrops();
    Crop getCropById(ResourceLocation id);
    Crop getCropByName(String name);
    List<CropTier> getTiers();
    CropTier getTierById(ResourceLocation id);
    List<CropType> getTypes();
    CropType getTypeById(ResourceLocation id);
    */
    // note that you can't unregister a crop but you can disable them
    // to register a crop you need a Crop object
    const kubium = new Crop(
        "kubejs:kubium", // id of crop
        "mysticalagriculture:5", // crop tier id or object
        "mysticalagriculture:resource", // crop type id or object
        new CropTextures(
            "mysticalagriculture:block/flower_ingot",// flower texture
            "mysticalagriculture:item/essence_ingot" // essence texture
            // you may also set a texture for the seed by passing an extra argument
        ), // textures
        "#forge:ingots/kubium" // ingredient, note that this is a custom object used by mystical agriculture so it must be either a tag or item 
    );
    const red = new Crop(
        "kubejs:red",
        CropTier.ONE,
        CropType.RESOURCE,
        CropTextures.DUST_CROP_TEXTURES,
        16711680,// color in decimal
        "minecraft:red_dye"
    );
    // after creating crops register them
    event.register(kubium);
    red.setDisplayName(Text.ofString("RED").red());
    event.register(red);
});

Project matrix room:https://matrix.to/#/!JWjgXbzJNbNspnvzKJ:matrix.org?via=matrix.org


Project members

eldritch-cookie

Member


Technical information

Client side
required
Server side
required
Project ID