This commit is contained in:
Shiroyasha 2025-09-14 21:22:24 +03:00
commit a956daf8e2
Signed by: shiroyashik
GPG key ID: E4953D3940D7860A
2351 changed files with 163047 additions and 0 deletions

View file

@ -0,0 +1,199 @@
/**
* Greenhouse multiblock
*/
ServerEvents.recipes(event => {
/* Machine Recipe */
event.shaped("gtceu:greenhouse", [
"LWL",
"ASA",
"WRW"
], {
L: "minecraft:redstone_lamp",
A: "#gtceu:circuits/mv",
W: "gtceu:copper_single_cable",
S: "gtceu:solid_machine_casing",
R: "gtceu:lv_fluid_regulator"
}).id("kubejs:shaped/greenhouse")
/* Greenhouse Recipes */
function boost(input, factor) {
let boosted = [];
input.forEach(element => {
let item = Item.of(element);
let curCount = item.getCount() * factor;
let type = item.getId();
while (curCount > item.maxStackSize) {
boosted.push(Item.of(type, item.maxStackSize));
curCount -= item.maxStackSize;
}
if (curCount > 0) boosted.push(Item.of(type, curCount));
})
return boosted;
}
/**
* @param {string} mod Input item mod name
* @param {string} input Input item identifier
* @param {number} duration Recipe duration
* @param {string[]} output Base recipe output
* @param {number} inputFeedbackAmount How many input items to add to output
*/
function Greenhouse(mod, input, duration, output, inputFeedbackAmount) {
// Create new boosted output item array
let boostedOutputs = boost(output, 2)
// Push sapling/seed inputs (unboosted) onto output arrays
if (inputFeedbackAmount > 0) {
output.push(Item.of(`${mod}:${input}`, inputFeedbackAmount));
boostedOutputs.push(Item.of(`${mod}:${input}`, inputFeedbackAmount));
}
event.recipes.gtceu.greenhouse(`kubejs:${input}`)
.circuit(1)
.notConsumable(InputItem.of(Item.of(`${mod}:${input}`)))
.inputFluids(Fluid.of("minecraft:water", 24000))
.itemOutputs(output)
.duration(duration)
.EUt(80)
event.recipes.gtceu.greenhouse(`kubejs:${input}_boosted`)
.circuit(2)
.notConsumable(InputItem.of(Item.of(`${mod}:${input}`)))
.itemInputs("1x gtceu:fertilizer")
.inputFluids(Fluid.of("minecraft:water", 16000))
.itemOutputs(boostedOutputs)
.duration(duration / 2)
.EUt(80)
}
// //// Trees //////
Greenhouse("gtceu", "rubber_sapling", 1280, ["32x gtceu:rubber_log", "8x gtceu:sticky_resin"], 4)
Greenhouse("minecraft", "oak_sapling", 1280, ["64x minecraft:oak_log"], 4)
Greenhouse("minecraft", "dark_oak_sapling", 1280, ["64x minecraft:dark_oak_log"], 4)
Greenhouse("minecraft", "spruce_sapling", 1280, ["64x minecraft:spruce_log"], 4)
Greenhouse("minecraft", "birch_sapling", 1280, ["64x minecraft:birch_log"], 4)
Greenhouse("minecraft", "acacia_sapling", 1280, ["64x minecraft:acacia_log"], 4)
Greenhouse("minecraft", "jungle_sapling", 1280, ["64x minecraft:jungle_log"], 4)
Greenhouse("minecraft", "azalea", 1280, ["64x minecraft:oak_log"], 4)
Greenhouse("minecraft", "flowering_azalea", 1280, ["64x minecraft:oak_log"], 4)
Greenhouse("minecraft", "cherry_sapling", 1280, ["64x minecraft:cherry_log"], 4)
Greenhouse("minecraft", "mangrove_propagule", 1280, ["64x minecraft:mangrove_log"], 4)
Greenhouse("minecraft", "chorus_flower", 1280, ["32x minecraft:chorus_fruit"], 4)
Greenhouse("minecraft", "warped_fungus", 1280, ["64x minecraft:warped_stem", "32x minecraft:warped_wart_block", "16x minecraft:shroomlight"], 4)
Greenhouse("minecraft", "crimson_fungus", 1280, ["64x minecraft:crimson_stem", "32x minecraft:nether_wart_block", "16x minecraft:shroomlight"], 4)
Greenhouse("thermal", "rubberwood_sapling", 1280, ["64x thermal:rubberwood_log"], 4)
// //// Crops //////
Greenhouse("minecraft", "sugar_cane", 640, ["32x minecraft:sugar_cane"], 0)
// TODO: Increase water requirement for Kelp
Greenhouse("minecraft", "kelp", 640, ["32x minecraft:kelp"], 0)
Greenhouse("minecraft", "bamboo", 640, ["48x minecraft:bamboo"], 0)
Greenhouse("minecraft", "cactus", 640, ["32x minecraft:cactus"], 0)
Greenhouse("minecraft", "wheat_seeds", 640, ["32x minecraft:wheat"], 0)
Greenhouse("minecraft", "carrot", 640, ["32x minecraft:carrot"], 0)
Greenhouse("minecraft", "potato", 640, ["32x minecraft:potato"], 0)
Greenhouse("minecraft", "beetroot_seeds", 640, ["32x minecraft:beetroot"], 0)
Greenhouse("minecraft", "sweet_berries", 640, ["32x minecraft:sweet_berries"], 0)
Greenhouse("minecraft", "glow_berries", 640, ["32x minecraft:glow_berries"], 0)
Greenhouse("minecraft", "cocoa_beans", 640, ["32x minecraft:cocoa_beans"], 0)
Greenhouse("minecraft", "sea_pickle", 640, ["32x minecraft:sea_pickle"], 0)
Greenhouse("minecraft", "melon_seeds", 640, ["16x minecraft:melon"], 0)
Greenhouse("minecraft", "pumpkin_seeds", 640, ["16x minecraft:pumpkin"], 0)
Greenhouse("minecraft", "nether_wart", 640, ["16x minecraft:nether_wart"], 0)
Greenhouse("minecraft", "red_mushroom", 640, ["16x minecraft:red_mushroom"], 0)
Greenhouse("minecraft", "brown_mushroom", 640, ["16x minecraft:brown_mushroom"], 0)
// //// Flowers & Cosmetic Blocks //////
let flowers = [
"wither_rose",
"cornflower",
"sunflower",
"peony",
"red_tulip",
"poppy",
"rose_bush",
"blue_orchid",
"orange_tulip",
"dandelion",
"pink_tulip",
"pink_petals",
"allium",
"lilac",
"lily_of_the_valley",
"oxeye_daisy",
"azure_bluet",
"white_tulip",
"pitcher_plant",
"lily_pad",
"weeping_vines",
"twisting_vines",
"vine",
"moss_block",
"glow_lichen",
"tube_coral_fan",
"brain_coral_fan",
"bubble_coral_fan",
"fire_coral_fan",
"horn_coral_fan"
]
flowers.forEach(flower => {
Greenhouse("minecraft", flower, 640, [Item.of(flower, 48)], 0);
})
// Torchflowers are grown from seeds
Greenhouse("minecraft", "torchflower_seeds", 640, [Item.of("torchflower", 48)], 0);
// A way to get grass blocks
event.recipes.gtceu.greenhouse("kubejs:grass_block")
.circuit(1)
.notConsumable(InputItem.of(Item.of("minecraft:grass_block")))
.itemInputs("64x dirt")
.inputFluids(Fluid.of("minecraft:water", 24000))
.itemOutputs("64x grass_block")
.duration(640)
.EUt(80)
})
ServerEvents.recipes(event => {
event.custom({
type: "thermal:insolator",
"ingredient": {
"item": "gtceu:rubber_sapling"
},
"result": [
{
"item": "gtceu:rubber_log",
"chance": 6.0
},
{
"item": "gtceu:sticky_resin",
"chance": 1.25
},
{
"item": "gtceu:rubber_sapling",
"chance": 1.1
}
],
"energy_mod": 3.0,
"water_mod": 3.0
}).id("kubejs:thermal/insolator/rubber_sapling")
event.custom({
type: "thermal:insolator",
"ingredient": {
"item": "minecraft:pink_petals",
},
"result": [
{
"item": "minecraft:pink_petals",
"chance": 2.0
}
],
"energy_mod": 1.0,
"water_mod": 1.0
}).id("kubejs:thermal/insolator/pink_petals")
})