Added mod files

This commit is contained in:
Jacob Vinding
2025-12-26 21:38:55 +01:00
parent 64c4d60c47
commit c4ad0f3e2e
5039 changed files with 894558 additions and 0 deletions
@@ -0,0 +1,4 @@
// priority: 999
Platform.mods.kubejs.name = "CABIN"
Platform.mods.mbd2.name = "CABIN"
@@ -0,0 +1,22 @@
StartupEvents.modifyCreativeTab("create:base", event => {
event.addAfter("create:brass_ingot", ["create:chromatic_compound", "create:refined_radiance", "create:shadow_steel"])
})
StartupEvents.modifyCreativeTab("minecraft:tools_and_utilities", event => {
event.addAfter("minecraft:recovery_compass", "minecraft:bundle")
event.add("cb_microblock:stone_saw")
event.add("cb_microblock:iron_saw")
event.add("cb_microblock:diamond_saw")
})
StartupEvents.modifyCreativeTab("minecraft:ingredients", event => {
event.addAfter("minecraft:stick", ["cb_microblock:stone_rod"])
})
// Does not work
// StartupEvents.modifyCreativeTab("cb_microblock:microblocks", event => {
// event.remove({ mod: "cb_microblock"})
// event.removeDisplay({ mod: "cb_microblock"})
// event.removeSearch({ mod: "cb_microblock"})
// })
@@ -0,0 +1,385 @@
// priority: 0
const BlockStateProperties = Java.loadClass("net.minecraft.world.level.block.state.properties.BlockStateProperties");
// Textures must use the 'cabin' namespace to avoid a bug involving kubejs loading textures from resource packs.
// Textures must also be stored in a resource pack since the kubejs assets folder cannot be overridden using resource packs for whatever reason
StartupEvents.registry("item", event => {
event.create("alchemical_laser").parentModel("cabin:item/alchemical_laser").displayName("Alchemical Laser (Ponder Entry)").unstackable()
let types = ["Certus", "Fluix"]
types.forEach(e => {
let id = e.toLowerCase()
event.create(id + "_crystal_seed").texture("cabin:item/crystal_seed_" + id).displayName(e + " Quartz Seed")
event.create("growing_" + id + "_seed","create:sequenced_assembly").texture("cabin:item/crystal_seed_" + id).displayName(e + " Quartz Seed")
event.create("tiny_" + id + "_crystal").texture("cabin:item/crystal_seed_" + id + "2").displayName("Tiny " + e + " Quartz Crystal")
event.create("growing_tiny_" + id + "_crystal","create:sequenced_assembly").texture("cabin:item/crystal_seed_" + id + "2").displayName("Tiny " + e + " Quartz Crystal")
event.create("small_" + id + "_crystal").texture("cabin:item/crystal_seed_" + id + "3").displayName("Small " + e + " Quartz Crystal")
event.create("growing_small_" + id + "_crystal","create:sequenced_assembly").texture("cabin:item/crystal_seed_" + id + "3").displayName("Small " + e + " Quartz Crystal")
});
let processors = ["Calculation", "Logic", "Engineering"]
processors.forEach(name => {
let e = name.toLowerCase()
event.create("incomplete_" + e + "_processor","create:sequenced_assembly").texture("cabin:item/incomplete_" + e + "_processor").displayName("Incomplete " + name + " Processor")
})
event.create("incomplete_flight_anchor","create:sequenced_assembly").modelJson({parent: "minecraft:block/beacon"}).displayName("Incomplete Flight Anchor")
event.create("incomplete_gravity_normalizer","create:sequenced_assembly").modelJson({parent: "ad_astra:block/gravity_normalizer"}).displayName("Incomplete Gravity Normalizer")
let number = (name) => {
let id = name.toLowerCase()
event.create(id).texture("cabin:item/" + id).glow(true).displayName(name)
}
number("Zero")
number("One")
number("Two")
number("Three")
number("Four")
number("Five")
number("Six")
number("Seven")
number("Eight")
number("Nine")
number("Plus")
number("Minus")
number("Multiply")
number("Divide")
let mechanism = (name, rarity) => {
let id = name.toLowerCase()
event.create(id + "_mechanism").texture("cabin:item/" + id + "_mechanism").displayName(name + " Mechanism").rarity(rarity ? rarity : "common")
event.create("incomplete_" + id + "_mechanism","create:sequenced_assembly").texture("cabin:item/incomplete_" + id + "_mechanism").displayName("Incomplete " + name + " Mechanism")
}
event.create("radiant_coil").glow(true).texture("cabin:item/radiant_coil").displayName("Radiant Induction Coil")
event.create("radiant_sheet").glow(true).texture("cabin:item/radiant_sheet").displayName("Radiant Sheet")
mechanism("Kinetic")
mechanism("Sealed")
mechanism("Reinforced")
mechanism("Infernal", "uncommon")
mechanism("Logistic", "uncommon")
mechanism("Inductive", "uncommon")
mechanism("Abstruse", "rare")
mechanism("Calculation", "rare")
let slime_types = ["Earth", "Sky", "Ender"]
let slime_colours = [0x8FDB84, 0x00F9DE, 0xAC2EFC]
for (let i = 0; i < slime_types.length; i++) {
let name = slime_types[i]
let id = name.toLowerCase()
event.create(`${id}_slimy_fern_leaf`)
.color(0, slime_colours[i])
.texture("cabin:item/slimy_fern_leaf")
.displayName("Slimy Fern Leaf")
event.create(`${id}_slime_fern_paste`)
.color(0, slime_colours[i])
.texture("cabin:item/ground_slimy_fern")
.displayName("Slimy Fern Blend")
}
// Misc / Integration
event.create("pipe_module_utility").texture("cabin:item/pipe_module_utility").displayName("Utility Pipe Module")
event.create("pipe_module_tier_1").texture("cabin:item/pipe_module_tier_1").displayName("Brass Pipe Module")
event.create("pipe_module_tier_2").texture("cabin:item/pipe_module_tier_2").displayName("Invar Pipe Module")
event.create("pipe_module_tier_3").texture("cabin:item/pipe_module_tier_3").displayName("Enderium Pipe Module")
event.create("circuit_scrap").texture("cabin:item/circuit_scrap").displayName("Circuit Scrap")
// event.create('charged_calculator').texture("cabin:item/charged_calculator").displayName('Calculator').maxDamage(64)
event.create("missingno").texture("cabin:item/missingno").displayName("∄")
event.create("zinc_dust").texture("cabin:item/zinc_dust").displayName("Zinc Dust").tag("forge:dusts/zinc").tag("forge:dusts")
// event.create('creosote_pellet').texture("cabin:item/creosote_pellet").displayName('Creosote Pellet')
event.create("sand_ball").texture("cabin:item/sand_ball").displayName("Ball of Sand").unstackable()
event.create("rough_sand").texture("cabin:item/rough_sand").displayName("Sand Chunks")
event.create("purified_sand").texture("cabin:item/purified_sand").displayName("Purified Sand")
event.create("silicon_compound").texture("cabin:item/silicon_compound").displayName("Silicon Compound")
event.create("incomplete_coke_chunk","create:sequenced_assembly").texture("cabin:item/incomplete_coke_chunk").displayName("Cut Coke")
event.create("coke_chunk").texture("cabin:item/coke_chunk").displayName("Coke Chunks")
// event.create('smoke_mote').texture("cabin:item/smoke_mote").displayName('Tiny Smoke Cloud')
event.create("matter_plastics").texture("cabin:item/matter_plastics").displayName("Matter Plastics")
event.create("nickel_compound").texture("cabin:item/nickel_compound").displayName("Nickel Compound").unstackable()
event.create("invar_compound","create:sequenced_assembly").texture("cabin:item/invar_compound").displayName("Unprocessed Invar Ingot")
event.create("dye_entangled_singularity").texture("cabin:item/dye_entangled_singularity").unstackable().displayName("Chromatic Singularity")
event.create("strainer_filter").texture("waterstrainer:items/strainer_survivalist").displayName("Strainer Filter").maxDamage(384)
event.create("chromatic_resonator").texture("cabin:item/chromatic_resonator").displayName("Chromatic Resonator").maxDamage(512)
event.create("flash_drive").texture("cabin:item/boot_medium").displayName("Flash Drive").maxDamage(512)
event.create("thermal_cast").texture("cabin:item/thermal_cast").displayName("Thermal Cast").unstackable()
event.create("three_cast").texture("cabin:item/three_cast").displayName("Integer Cast (3)").unstackable()
event.create("eight_cast").texture("cabin:item/eight_cast").displayName("Integer Cast (8)").unstackable()
event.create("plus_cast").texture("cabin:item/plus_cast").displayName("Operator Cast (+)").unstackable()
event.create("minus_cast").texture("cabin:item/minus_cast").displayName("Operator Cast (-)").unstackable()
event.create("multiply_cast").texture("cabin:item/multiply_cast").displayName("Operator Cast (x)").unstackable()
event.create("divide_cast").texture("cabin:item/divide_cast").displayName("Operator Cast (/)").unstackable()
event.create("attachment_base").texture("cabin:item/attachment_base").displayName("Attachment Base")
event.create("silver_coin").texture("cabin:item/silver_coin").displayName("Silver Coin Stack Icon")
event.create("gold_coin").texture("cabin:item/gold_coin").displayName("Gold Coin Stack Icon")
event.create("mystic_pottery_sherd").texture("cabin:item/mystic_pottery_sherd").displayName("Mystic Pottery Sherd").tag("minecraft:decorated_pot_ingredients").tag("minecraft:decorated_pot_sherds")
event.create("cozy_pottery_sherd").texture("cabin:item/cozy_pottery_sherd").displayName("Cozy Pottery Sherd").tag("minecraft:decorated_pot_ingredients").tag("minecraft:decorated_pot_sherds")
event.create("circuit_pottery_sherd").texture("cabin:item/circuit_pottery_sherd").displayName("Circuit Pottery Sherd").tag("minecraft:decorated_pot_ingredients").tag("minecraft:decorated_pot_sherds")
})
StartupEvents.registry("block", event => {
event.create("trial_copper_block").model("minecraft:block/copper_block").soundType("metal").tagBlock("mineable/pickaxe").tagBlock("needs_stone_tool").requiresTool(true).hardness(3.0).resistance(6.0)
event.create("trial_cut_copper").model("minecraft:block/cut_copper").soundType("metal").tagBlock("mineable/pickaxe").tagBlock("needs_stone_tool").requiresTool(true).hardness(3.0).resistance(6.0)
event.create("trial_chiseled_copper").model("trials:block/chiseled_copper").soundType("metal").tagBlock("mineable/pickaxe").tagBlock("needs_stone_tool").requiresTool(true).hardness(3.0).resistance(6.0)
event.create("trial_copper_grate").model("trials:block/copper_grate").soundType("metal").tagBlock("mineable/pickaxe").tagBlock("needs_stone_tool").requiresTool(true).hardness(3.0).resistance(6.0).notSolid().waterlogged()
event.create("trial_cut_copper_stairs", "stairs").textureAll("minecraft:block/cut_copper").soundType("metal").tagBlock("mineable/pickaxe").tagBlock("needs_stone_tool").requiresTool(true).hardness(3.0).resistance(6.0)
event.create("trial_cut_copper_slab", "slab").textureAll("minecraft:block/cut_copper").soundType("metal").tagBlock("mineable/pickaxe").tagBlock("needs_stone_tool").requiresTool(true).hardness(3.0).resistance(6.0)
event.create("trial_oxidized_copper").model("minecraft:block/oxidized_copper").soundType("metal").tagBlock("mineable/pickaxe").tagBlock("needs_stone_tool").requiresTool(true).hardness(3.0).resistance(6.0)
event.create("trial_oxidized_cut_copper").model("minecraft:block/oxidized_cut_copper").soundType("metal").tagBlock("mineable/pickaxe").tagBlock("needs_stone_tool").requiresTool(true).hardness(3.0).resistance(6.0)
event.create("trial_chiseled_copper_oxidized").model("trials:block/chiseled_copper_oxidized").soundType("metal").tagBlock("mineable/pickaxe").tagBlock("needs_stone_tool").requiresTool(true).hardness(3.0).resistance(6.0)
event.create("trial_copper_grate_oxidized").model("trials:block/copper_grate_oxidized").soundType("metal").tagBlock("mineable/pickaxe").tagBlock("needs_stone_tool").requiresTool(true).hardness(3.0).resistance(6.0).notSolid().waterlogged()
event.create("trial_oxidized_cut_copper_stairs", "stairs").textureAll("minecraft:block/oxidized_cut_copper").soundType("metal").tagBlock("mineable/pickaxe").tagBlock("needs_stone_tool").requiresTool(true).hardness(3.0).resistance(6.0)
event.create("trial_oxidized_cut_copper_slab", "slab").textureAll("minecraft:block/oxidized_cut_copper").soundType("metal").tagBlock("mineable/pickaxe").tagBlock("needs_stone_tool").requiresTool(true).hardness(3.0).resistance(6.0)
event.create("enderium_casing").model("cabin:block/enderium_casing").soundType("metal").tagBlock("mineable/pickaxe").tagBlock("create:wrench_pickup").requiresTool(true).hardness(4.0).displayName("Ender Casing")
event.create("lead_casing").textureAll("cabin:block/lead_casing").soundType("metal").tagBlock("mineable/pickaxe").tagBlock("create:wrench_pickup").requiresTool(true).hardness(3.0).displayName("Lead Casing")
event.create("zinc_casing").textureAll("cabin:block/zinc_casing").soundType("metal").tagBlock("mineable/pickaxe").tagBlock("create:wrench_pickup").requiresTool(true).hardness(3.0).displayName("Zinc Casing")
event.create("invar_casing").textureAll("cabin:block/invar_casing").soundType("metal").tagBlock("mineable/pickaxe").tagBlock("create:wrench_pickup").requiresTool(true).hardness(3.0).displayName("Invar Casing")
event.create("fluix_casing").textureAll("cabin:block/fluix_casing").soundType("metal").tagBlock("mineable/pickaxe").tagBlock("create:wrench_pickup").requiresTool(true).hardness(3.0).displayName("Fluix Casing")
event.create("computation_matrix").model("cabin:block/computation_matrix").soundType("lantern").hardness(0.1).displayName("Computation Matrix").fullBlock(false).notSolid().box(1,1,1,15,15,15).waterlogged().opaque(false).lightLevel(7).renderType("translucent")
.item(i=>{i.rarity("uncommon")})
// event.create("ponder_laser_lamp").model("cabin:block/ponder_laser_lamp").notSolid().renderType("translucent").displayName("Laser Lamp (For Ponder)")
// event.create("ponder_laser_lamp_on").model("cabin:block/ponder_laser_lamp_on").notSolid().lightLevel(15).renderType("translucent").displayName("Laser Lamp (For Ponder)")
event.create("navigation_computer", "cardinal").model("cabin:block/navigation_computer").soundType("metal").tagBlock("mineable/pickaxe").hardness(3.0).requiresTool(true).displayName("Navigation Computer")
event.create("lander_deployer", "cardinal").model("cabin:block/lander_deployer").soundType("metal").tagBlock("mineable/pickaxe").hardness(3.0).requiresTool(true).displayName("Lander Deployer")
let machine = (name, layer) => {
let id = name.toLowerCase()
return event.create(id + "_machine", "cardinal")
.model("cabin:block/" + id + "_machine")
.soundType("lantern")
.hardness(3.0)
.tagBlock("mineable/pickaxe")
.requiresTool(true)
.displayName(name + " Machine")
.notSolid()
.renderType(layer)
.redstoneConductor(false)
.tagBlock("create:wrench_pickup")
.defaultState(blockState =>{
blockState.set(BlockStateProperties.HORIZONTAL_FACING, "south")
})
}
machine("Andesite", "solid").tagBlock("mineable/axe").box(0, 0, 3, 16, 16, 16).box(3, 14, 3, 13, 18, 17)
machine("Brass", "translucent").tagBlock("mineable/axe").box(0, 0, 0, 16, 4, 16).box(0, 0, 3, 16, 10, 13).box(8, 3, 4, 16, 16, 16).box(1, 10, 5, 7, 21, 11)
machine("Copper", "cutout").tagBlock("mineable/axe").box(0, 0, 0, 16, 4, 16).box(1.9, 2, -2, 14.9, 10, 10).box(6, 4, 6, 16, 20, 16).box(0, 4, 6, 10, 24, 16)
machine("Gold", "solid").tagBlock("mineable/axe").box(0, 0, 0, 16, 3, 16).box(0, 3, 0, 12, 16, 8).box(0, 3, 8, 10, 14, 16).box(12, 3, 1, 16, 10, 16)
machine("Lead", "cutout").box(0, 0, 1, 16, 2, 15).box(1, 2, 7, 14, 14, 15).box(0, 2, 0, 7, 9, 12).box(10, 0, 8, 16, 11, 16).box(7.5, 14, 8.5, 12.5, 21, 13.5)
machine("Zinc", "cutout")
machine("Enderium", "cutout")
let pot = function (name) {
let id = name.toLowerCase().split(" ").join("_")
return event.create(id, "cardinal")
.model(`cabin:block/${id}`)
.notSolid()
.renderType("translucent")
.displayName(name)
.hardness(0)
.material("COLOR_ORANGE") // Set a material (affects the sounds and some properties)
.soundType("glass")
.waterlogged()
}
pot("Treasure Pot").box(4, 0, 4, 12, 10, 12)
pot("Tall Treasure Pot").box(5, 0, 5, 11, 12, 11)
pot("Small Treasure Pot").box(5, 0, 5, 11, 8, 11)
pot("Small Quartz Treasure Pot").box(5, 0, 5, 11, 8, 11)
pot("Tall Quartz Treasure Pot").box(5, 0, 5, 11, 12, 11)
let alchemyBlockBase = (c1, c2, id, name, model) => {
let block = event.create(id)
.soundType("glass")
.color(0, c1)
.color(1, c2)
.hardness(0.1)
.model(model)
.displayName(name)
.renderType("cutout")
.material("glass")
.waterlogged()
block.item(e => e
.color(0, c1)
.color(1, c2)
)
return block
}
let substrateblock = (c1, c2, id, name, model) => {
return alchemyBlockBase(c1, c2, id, name, model).box(.25, 0, .25, .75, 14.0 / 16.0, .75, false)
}
let acceleratorBlock = (c1, id, name, model) => {
return alchemyBlockBase(c1, 0, id, name, model).box(.125, 0, .125, .875, 10.0 / 16.0, .875, false)
}
for (let i = 0; i < 15; i++)
substrateblock(0x394867, 0x14274E, `failed_alchemy_${i}`, "Mundane Alchemic Blend", "cabin:block/mundane_substrate")
global.substrates = []
global.substrate_mapping = {}
let current_category = []
let category_index = 0
let substrate_index = 0
let category = () => {
global.substrates.push(current_category)
current_category = []
category_index++
substrate_index = 0
}
let createSubstrate = (c1, c2, id, name, model, ingredient, outputItem) => {
global.substrate_mapping[id] = {
category: category_index,
index: substrate_index,
name: name.replace(" Reagent", "").replace(" Catalyst", "")
}
current_category.push({
id: `kubejs:substrate_${id}`,
ingredient: ingredient,
outputItem: outputItem
})
let substrate = substrateblock(c1, c2, `substrate_${id}`, name, "cabin:block/" + model)
substrate_index++
return substrate
}
let reagent = (c1, c2, id, prefix, ingredient, outputItem) => {
return createSubstrate(c1, c2, id, `${prefix} Reagent`, "substrate", ingredient, outputItem)
}
let catalyst = (c1, c2, id, prefix, ingredient) => {
let substrate = createSubstrate(c1, c2, id, `${prefix} Catalyst`, "catalyst", ingredient)
substrate.item(item=>{item.rarity("uncommon")})
return substrate
}
reagent(0x5F5F5F, 0x8E8E8E, "andesite", "Andesite", "minecraft:andesite")
reagent(0x7F7F7F, 0xD4D4D4, "diorite", "Diorite", "minecraft:diorite")
reagent(0x563A2F, 0x9A6C5B, "granite", "Granite", "minecraft:granite")
reagent(0x585858, 0x646363, "cobblestone", "Stone", "minecraft:cobblestone")
reagent(0x32333D, 0x5C5C5C, "basalt", "Basalt", "minecraft:basalt")
reagent(0x6B5D4F, 0x7D6B5A, "scoria", "Scoria", "create:scoria")
category()
reagent(0xD30000, 0xB80F0A, "red", "Crimson", ["minecraft:rose_bush", "minecraft:poppy", "minecraft:red_tulip"], "minecraft:red_dye")
reagent(0xFC6600, 0xb1560f, "orange", "Orange", ["minecraft:orange_tulip", "biomesoplenty:burning_blossom", "minecraft:pumpkin"], "minecraft:orange_dye")
reagent(0xFFF200, 0xdba520, "yellow", "Goldenrod", ["biomesoplenty:goldenrod", "minecraft:sunflower", "minecraft:dandelion"], "minecraft:yellow_dye")
reagent(0x9dc183, 0x708238, "green", "Olive", ["minecraft:fern", "minecraft:cactus", "biomesoplenty:watergrass"], "minecraft:green_dye")
reagent(0x57a0d2, 0x0080fe, "blue", "Azure", ["biomesoplenty:blue_hydrangea", "minecraft:cornflower", "minecraft:blue_orchid"], "minecraft:light_blue_dye")
reagent(0xb200ed, 0xff66cc, "magenta", "Fuchsia", ["minecraft:lilac", "minecraft:allium", "minecraft:pink_tulip"], "minecraft:magenta_dye")
category()
reagent(0xAC3B00, 0xD5AC26, "blaze", "Blazing", "minecraft:blaze_powder")
reagent(0x4F7E48, 0x8AD480, "slime", "Slime", "minecraft:slime_ball")
reagent(0x5B151A, 0xBC3E49, "nether", "Nether", "minecraft:nether_wart")
reagent(0x05030A, 0x36234C, "obsidian", "Obsidian", "#forge:dusts/obsidian", "create:powdered_obsidian")
reagent(0x535353, 0x717171, "gunpowder", "Gunpowder", "minecraft:gunpowder")
reagent(0x529680, 0xA2CFC0, "prismarine", "Aquatic", "minecraft:prismarine_shard")
category()
reagent(0x8F5CCB, 0xBE8EF4, "fluix", "Fluix", "ae2:fluix_dust", "ae2:fluix_dust")
reagent(0x27A9BB, 0x2CC7C9, "apatite", "Apatite", "#forge:dusts/apatite", "thermal:apatite_dust")
reagent(0xC7A94A, 0xEEF071, "sulfur", "Sulfuric", "#forge:dusts/sulfur", "thermal:sulfur_dust")
reagent(0x735A65, 0xB8AFAF, "niter", "Nitric", "#forge:dusts/niter", "thermal:niter_dust")
reagent(0x91C5FC, 0xA7CBCF, "certus", "Certus Quartz", "#forge:dusts/certus_quartz", "ae2:certus_quartz_dust")
reagent(0xB19E8F, 0xE7E2DB, "quartz", "Nether Quartz", "#forge:dusts/quartz", "thermal:quartz_dust")
category()
reagent(0x616A60, 0xD0D2C5, "zinc", "Zinc", "#forge:dusts/zinc", "kubejs:zinc_dust")
reagent(0xDD7E5D, 0xFCEFBA, "copper", "Copper", "#forge:dusts/copper", "thermal:copper_dust")
reagent(0xA6A6A6, 0xD5D5D5, "iron", "Iron", "#forge:dusts/iron", "thermal:iron_dust")
reagent(0x977756, 0xE4D196, "nickel", "Nickel", "#forge:dusts/nickel", "thermal:nickel_dust")
reagent(0x232456, 0x7C95A4, "lead", "Lead", "#forge:dusts/lead", "thermal:lead_dust")
reagent(0xD99413, 0xFAF25E, "gold", "Gold", "#forge:dusts/gold", "thermal:gold_dust")
category()
reagent(0xFC7781, 0xFCCED0, "cinnabar", "Cinnabar", "#forge:gems/cinnabar", "thermal:cinnabar")
reagent(0x335DC1, 0x7395E7, "lapis", "Lapis Lazuli", "#forge:dusts/lapis", "thermal:lapis_dust")
reagent(0x246BE9, 0x76C6FC, "sapphire", "Sapphire", "#forge:dusts/sapphire", "thermal:sapphire_dust")
reagent(0x00A82B, 0xADFACB, "emerald", "Emerald", "#forge:dusts/emerald", "thermal:emerald_dust")
reagent(0x9D0A33, 0xFB7B71, "ruby", "Ruby", "#forge:dusts/ruby", "thermal:ruby_dust")
reagent(0x20C3B3, 0xD2FCF3, "diamond", "Diamond", "#forge:dusts/diamond", "thermal:diamond_dust")
category()
catalyst(0x506D84, 0x889EAF, "igneous", "Igneous")
catalyst(0xB5CDA3, 0xC9E4C5, "herbal", "Herbal")
catalyst(0x9F5F80, 0xFF8474, "volatile", "Volatile")
catalyst(0xFFB037, 0xFFE268, "crystal", "Crystalline")
catalyst(0x232457, 0x7D97A6, "metal", "Metallurgic")
catalyst(0x3EDBF0, 0xC0FEFC, "gem", "Gemstone")
category()
substrateblock(0xb200ed, 0xff66cc, "substrate_chaos", "Chaos Catalyst", "cabin:block/chaos_catalyst")
.item(item => item.rarity("rare"))
substrateblock(0x474449, 0x967DA0, "substrate_silicon", "Silicon Reagent", "cabin:block/substrate")
.item(item => item.rarity("rare"))
substrateblock(0x9FADB4, 0xBECCD2, "substrate_silver", "Silver Reagent", "cabin:block/substrate")
.item(item=>item.rarity("rare"))
acceleratorBlock(0xFFBC5E, "accellerator_glowstone", "Glowstone Accelerator", "cabin:block/accellerator")
acceleratorBlock(0xAA0F01, "accellerator_redstone", "Redstone Accelerator", "cabin:block/accellerator")
})
StartupEvents.registry("fluid", event => {
let colors = [0xCBE827, 0xAEE827, 0x68E827, 0x27E86E, 0x27E8B1, 0x27DEE8, 0x27B5E8, 0x2798E8, 0x2778E8, 0x2748E8]
event.create("raw_logic").displayName("Liquified Logic (Unprocessed)").stillTexture("cabin:fluid/number_still").flowingTexture("cabin:fluid/number_flow").color(0xE7FFCB)
for (let i = 0; i < 10; i++)
event.create("number_" + i).displayName(`Liquified Logic (${i})`).stillTexture("cabin:fluid/number_still").flowingTexture("cabin:fluid/number_flow").color(colors[i])
event.create("matrix").displayName("Liquified Computation Matrix").stillTexture("cabin:fluid/matrix_still").flowingTexture("cabin:fluid/matrix_flow").bucketColor(colors[0])
event.create("fine_sand").displayName("Fine Sand").stillTexture("cabin:fluid/fine_sand_still").flowingTexture("cabin:fluid/fine_sand_flow").bucketColor(0xE3DBB0)
event.create("crude_oil").displayName("Crude Oil").stillTexture("thermal:block/fluids/crude_oil_still").flowingTexture("thermal:block/fluids/crude_oil_flow").bucketColor(0x222118)
event.create("volatile_sky_solution").displayName("Volatile Sky Solution").stillTexture("tconstruct:fluid/molten/compat_alloy/refined_obsidian/still").flowingTexture("tconstruct:fluid/molten/compat_alloy/refined_obsidian/flowing").color(0x8feebf).bucketColor(0x1A1123)
event.create("chromatic_waste").displayName("Chromatic Waste").stillTexture("tconstruct:fluid/molten/compat_alloy/enderium/still").flowingTexture("tconstruct:fluid/molten/compat_alloy/enderium/flowing").color(0x0B3E36)
event.create("liquid_pulp").displayName("Liquid Pulp").stillTexture("tconstruct:fluid/molten/compat_alloy/pewter/still").flowingTexture("tconstruct:fluid/molten/compat_alloy/pewter/still").color(0xb4a498)
// event.create('liquid_smoke').displayName(`Liquid Smoke`).stillTexture('advancedrocketry:blocks/fluid/oxygen_still').flowingTexture('advancedrocketry:blocks/fluid/oxygen_flow').bucketColor(0xEBEBEB)
})
ItemEvents.modification(event => {
let colors = ["red", "yellow", "green", "blue", "magenta", "black"]
colors.forEach(element => {
event.modify("ae2:" + element + "_paint_ball", item => {
item.maxStackSize = 1
})
});
event.modify("projectred_core:screwdriver", item => {
item.maxDamage = 512
})
})
StartupEvents.registry("potion", (event) => {
let createCustomPotion = (name, effect, duration, long_duration, strong_duration) => {
event.create(name).effect(
effect,
20 * duration,
0
)
event.create("long_" + name).effect(
effect,
20 * long_duration,
0
)
if (strong_duration != undefined)
event.create("strong_" + name).effect(
effect,
20 * strong_duration,
1
)
}
createCustomPotion("haste", "minecraft:haste", 180, 480, 90)
})
@@ -0,0 +1,8 @@
if(Platform.isLoaded("moreminecarts")) {
BlockEvents.modification(event => {
// vitric cactus takes a long time to break. So we shorten its breaking time
event.modify("moreminecarts:glass_cactus", block => {
block.destroySpeed = 0.4
})
})
}
@@ -0,0 +1,9 @@
if (Platform.isLoaded("trials")) {
MoreJSEvents.registerPotionBrewing((event) => {
// Potion recipes are not shown in jei by default for some reason
event.addPotionBrewing("trials:breeze_rod", "minecraft:awkward", "trials:winded");
event.addPotionBrewing("minecraft:stone", "minecraft:awkward", "trials:infested");
event.addPotionBrewing("minecraft:cobweb", "minecraft:awkward", "trials:weave");
event.addPotionBrewing("minecraft:slime_block", "minecraft:awkward", "trials:ooze");
})
}
@@ -0,0 +1,8 @@
// Morejs is installed to add this recipe
MoreJSEvents.registerPotionBrewing((event) => {
event.addPotionBrewing("thermal:blitz_powder", "minecraft:awkward", "minecraft:slow_falling");
event.removeByPotion(null, "minecraft:phantom_membrane", null);
event.addPotionBrewing("minecraft:glow_berries", "minecraft:awkward", "kubejs:haste");
event.addPotionBrewing("minecraft:redstone", "kubejs:haste", "kubejs:long_haste");
event.addPotionBrewing("minecraft:glowstone_dust", "kubejs:haste", "kubejs:strong_haste");
})
@@ -0,0 +1,8 @@
const RecipeSchema = Java.loadClass("dev.latvian.mods.kubejs.recipe.schema.RecipeSchema");
StartupEvents.recipeSchemaRegistry(event => {
// Kubejs Thermal does some weird stuff that makes it impossible to create certain thermal recipes (like arboreal extractor recipes)
// We can stop kubejs thermal from mangling with tree extractor recipes by overwriting the tree extractor recipe schema with a blank one
event.register("thermal:tree_extractor", new RecipeSchema());
});
@@ -0,0 +1,8 @@
// Crafts and Additions
if (Platform.isLoaded("createaddition")) {
// Sequence assembly items
StartupEvents.registry("item", e => {
e.create("incomplete_connector", "create:sequenced_assembly").texture("createaddition:item/connector").displayName("Incomplete Small Connector")
e.create("incomplete_large_connector", "create:sequenced_assembly").texture("createaddition:item/large_connector").displayName("Incomplete Large Connector")
})
}
@@ -0,0 +1,6 @@
// Create Encased
if (Platform.isLoaded("createcasing")) {
StartupEvents.registry("item", e => {
// e.create('createcasing:processing_chorium', 'create:sequenced_assembly')
})
}
+530
View File
@@ -0,0 +1,530 @@
// priority: 0
StartupEvents.registry("item", event => {
global.trades = []
global.professions = []
global.transactions = []
let profession = (name, c1, c2, transactions) => {
let id = name.toLowerCase().replace("'", "").split(" ").join("_")
global.professions.push(id)
global.transactions[id] = transactions
event.create(`profession_card_${id}`)
.color(1, c1)
.color(2, c2)
.parentModel("cabin:item/profession_card")
.texture("cabin:item/profession_card_0")
.displayName(`Profession: ${name}`)
.unstackable()
}
let trade = (name, c1, c2, transactions, custom) => {
let id = name.toLowerCase().replace("'", "").split(" ").join("_")
global.trades.push(id)
global.transactions[id] = transactions
event.create(`trade_card_${id}`)
.color(1, c1)
.color(2, c2)
.parentModel("cabin:item/trade_card")
.texture("cabin:item/trade_card_0")
.displayName((custom ? "" : "Import: ") + name)
.unstackable()
}
let S = (x) => `${x || 1}x thermal:silver_coin`
let G = (x) => `${x || 1}x thermal:gold_coin`
profession("Farming", 0xFFCC29, 0x81B214, [
{ in: "farmersdelight:carrot_crate", out: S(1) },
{ in: "farmersdelight:potato_crate", out: S(1) },
{ in: "farmersdelight:beetroot_crate", out: S(1) },
{ in: "farmersdelight:cabbage_crate", out: S(1) },
{ in: "farmersdelight:tomato_crate", out: S(1) },
{ in: "farmersdelight:onion_crate", out: S(1) },
{ in: "farmersdelight:rice_bag", out: S(1) },
{ in: "32x farmersdelight:canvas", out: S(1) },
{ in: "thermal:apple_block", out: S(1) },
{ in: "8x minecraft:sweet_berries", out: S(1) },
{ in: "16x minecraft:cocoa_beans", out: S(1) },
{ in: "8x minecraft:honey_bottle", out: S(1) },
{ in: "4x minecraft:honeycomb", out: S(1) },
{ in: "16x minecraft:dandelion", out: S(1) },
{ in: "16x minecraft:poppy", out: S(1) },
{ in: "16x minecraft:oxeye_daisy", out: S(1) },
{ in: "8x minecraft:bread", out: S(1) },
{ in: "8x minecraft:brown_mushroom", out: S(1) },
{ in: "8x minecraft:red_mushroom", out: S(1) },
{ in: "8x biomesoplenty:toadstool", out: S(1) },
{ in: "64x minecraft:kelp", out: S(1) },
{ in: "9x minecraft:pumpkin", out: S(1) },
{ in: "16x #minecraft:wool", out: S(1) },
{ in: "3x minecraft:melon", out: S(1) }
])
profession("Carpentry", 0xD0AF84, 0x966C3B, [
{ in: "64x minecraft:oak_log", out: S(1) },
{ in: "64x minecraft:spruce_log", out: S(1) },
{ in: "64x minecraft:birch_log", out: S(2) },
{ in: "64x minecraft:jungle_log", out: S(1) },
{ in: "64x minecraft:acacia_log", out: S(2) },
{ in: "64x minecraft:dark_oak_log", out: S(1) },
{ in: "64x minecraft:mangrove_log", out: S(2) },
{ in: "64x minecraft:cherry_log", out: S(2) },
{ in: "64x minecraft:crimson_stem", out: S(4) },
{ in: "64x minecraft:warped_stem", out: S(4) },
{ in: "64x biomesoplenty:fir_log", out: S(1) },
{ in: "64x biomesoplenty:pine_log", out: S(1) },
{ in: "64x biomesoplenty:maple_log", out: S(1) },
{ in: "64x biomesoplenty:redwood_log", out: S(1) },
{ in: "64x biomesoplenty:mahogany_log", out: S(3) },
{ in: "64x biomesoplenty:jacaranda_log", out: S(3) },
{ in: "64x biomesoplenty:palm_log", out: S(3) },
{ in: "64x biomesoplenty:willow_log", out: S(3) },
{ in: "64x biomesoplenty:dead_log", out: S(1) },
{ in: "64x biomesoplenty:magic_log", out: S(3) },
{ in: "64x biomesoplenty:umbran_log", out: S(1) },
{ in: "64x biomesoplenty:hellbark_log", out: S(5) },
// { in: "64x biomesoplenty:empyreal_log", out: S(2) }, // From BoP's unused end biomes
{ in: "64x quark:azalea_log", out: S(2) },
{ in: "64x quark:blossom_log", out: S(2) },
{ in: "64x tconstruct:greenheart_log", out: S(2) },
{ in: "64x tconstruct:skyroot_log", out: S(2) },
{ in: "64x tconstruct:bloodshroom_log", out: S(2) },
{ in: "64x tconstruct:enderbark_log", out: S(2) }
])
profession("Mining", 0x1C1124, 0x88FFF7, [
{ in: "16x create:crushed_raw_iron", out: S(8) },
{ in: "16x create:crushed_raw_copper", out: S(8) },
{ in: "16x create:crushed_raw_zinc", out: S(8) },
{ in: "16x create:crushed_raw_gold", out: S(10) },
{ in: "16x create:crushed_raw_nickel", out: S(12) },
{ in: "16x create:crushed_raw_lead", out: S(12) },
{ in: "64x minecraft:andesite", out: S(1) },
{ in: "64x minecraft:granite", out: S(1) },
{ in: "64x minecraft:diorite", out: S(1) },
{ in: "64x minecraft:sandstone", out: S(1) },
{ in: "64x create:limestone", out: S(1) },
{ in: "64x create:scoria", out: S(1) },
{ in: "8x thermal:cinnabar", out: S(6) },
{ in: "16x thermal:sulfur", out: S(6) },
{ in: "16x thermal:niter", out: S(6) },
{ in: "16x minecraft:lapis_lazuli", out: S(6) },
{ in: "16x thermal:apatite", out: S(4) },
{ in: "1x thermal:sapphire", out: S(10) },
{ in: "1x thermal:ruby", out: S(10) },
{ in: "1x minecraft:diamond", out: S(14) },
{ in: "16x minecraft:coal", out: S(2) },
])
profession("Masonry", 0x5E6F64, 0xBA7967, [
{ in: "64x supplementaries:checker_block", out: S(4) },
{ in: "64x architects_palette:basalt_tiles", out: S(6) },
{ in: "64x tconstruct:seared_bricks", out: S(10) },
{ in: "64x architects_palette:sunmetal_block", out: S(8) },
{ in: "64x architects_palette:osseous_bricks", out: S(6) },
{ in: "64x architects_palette:packed_ice_pillar", out: S(8) },
{ in: "64x architects_palette:flint_tiles", out: S(4) },
{ in: "64x architects_palette:abyssaline", out: S(12) },
{ in: "64x architects_palette:gilded_sandstone", out: S(10) },
{ in: "64x minecraft:bricks", out: S(6) },
{ in: "64x minecraft:mud_bricks", out: S(12) },
{ in: "64x architects_palette:olivestone_bricks", out: S(4) },
{ in: "64x minecraft:quartz_bricks", out: S(18) },
{ in: "64x architects_palette:algal_bricks", out: S(6) },
{ in: "64x tconstruct:blazewood", out: S(10) },
{ in: "64x create:ornate_iron_window", out: S(10) },
{ in: "64x minecraft:mossy_cobblestone", out: S(6) },
{ in: "64x #forge:glazed_terracotta", out: S(6) },
{ in: "64x supplementaries:daub_brace", out: S(8) }
])
profession("Hunting", 0x393E46, 0xCF0000, [
{ in: "reliquary:slime_pearl", out: S(6) },
{ in: "reliquary:catalyzing_gland", out: S(10) },
{ in: "reliquary:witch_hat", out: S(15) },
{ in: "reliquary:squid_beak", out: S(3) },
{ in: "reliquary:withered_rib", out: S(15) },
{ in: "reliquary:rib_bone", out: S(5) },
{ in: "reliquary:zombie_heart", out: S(5) },
{ in: "reliquary:chelicerae", out: S(5) },
{ in: "reliquary:bat_wing", out: S(10) },
{ in: "reliquary:frozen_core", out: S(4) },
{ in: "reliquary:nebulous_heart", out: S(5) },
{ in: "reliquary:molten_core", out: S(5) },
{ in: "reliquary:eye_of_the_storm", out: S(12) },
{ in: "minecraft:rabbit_foot", out: S(8) },
{ in: "minecraft:nether_star", out: G(1) },
{ in: "minecraft:dragon_breath", out: S(1) },
{ in: "minecraft:ghast_tear", out: S(10) },
{ in: "minecraft:dragon_egg", out: G(2) },
{ in: "reliquary:guardian_spike", out: S(6) }
])
profession("Cooking", 0xD8B384, 0xF7DAD9, [
{ in: "16x create:bar_of_chocolate", out: S(4) },
{ in: "16x create:honeyed_apple", out: S(4) },
{ in: "16x create:builders_tea", out: S(4) },
{ in: "16x farmersdelight:hot_cocoa", out: S(5) },
{ in: "8x farmersdelight:tomato_sauce", out: S(3) },
{ in: "16x farmersdelight:apple_pie_slice", out: S(3) },
{ in: "16x farmersdelight:chocolate_pie_slice", out: S(4) },
{ in: "17x farmersdelight:sweet_berry_cheesecake_slice", out: S(3) },
{ in: "14x #kubejs:cake_slices", out: S(3) },
{ in: "64x farmersdelight:sweet_berry_cookie", out: S(2) },
{ in: "64x farmersdelight:honey_cookie", out: S(2) },
{ in: "64x minecraft:cookie", out: S(2) },
{ in: "16x farmersdelight:melon_popsicle", out: S(7) },
{ in: "16x farmersdelight:fruit_salad", out: S(7) },
{ in: "16x farmersdelight:mixed_salad", out: S(9) },
{ in: "16x farmersdelight:nether_salad", out: S(5) },
{ in: "16x farmersdelight:barbecue_stick", out: S(6) },
{ in: "16x farmersdelight:egg_sandwich", out: S(5) },
{ in: "16x farmersdelight:chicken_sandwich", out: S(9) },
{ in: "16x farmersdelight:bacon_sandwich", out: S(9) },
{ in: "16x farmersdelight:hamburger", out: S(11) },
{ in: "16x farmersdelight:mutton_wrap", out: S(10) },
{ in: "16x farmersdelight:dumplings", out: S(7) },
{ in: "16x farmersdelight:stuffed_potato", out: S(6) },
{ in: "16x farmersdelight:cabbage_rolls", out: S(5) },
{ in: "16x farmersdelight:beef_stew", out: S(8) },
{ in: "16x farmersdelight:chicken_soup", out: S(9) },
{ in: "16x minecraft:rabbit_stew", out: S(10) },
{ in: "16x minecraft:beetroot_soup", out: S(7) },
{ in: "16x minecraft:pumpkin_pie", out: S(6) },
{ in: "16x farmersdelight:vegetable_soup", out: S(9) },
{ in: "32x supplementaries:pancake", out: S(4) },
{ in: "16x farmersdelight:fish_stew", out: S(9) },
{ in: "16x farmersdelight:fried_rice", out: S(8) },
{ in: "16x farmersdelight:pumpkin_soup", out: S(12) },
{ in: "16x farmersdelight:baked_cod_stew", out: S(9) },
{ in: "16x farmersdelight:noodle_soup", out: S(9) },
{ in: "16x farmersdelight:pasta_with_meatballs", out: S(10) },
{ in: "16x farmersdelight:pasta_with_mutton_chop", out: S(10) },
{ in: "16x farmersdelight:roasted_mutton_chops", out: S(9) },
{ in: "16x farmersdelight:vegetable_noodles", out: S(10) },
{ in: "16x farmersdelight:steak_and_potatoes", out: S(9) },
{ in: "16x farmersdelight:ratatouille", out: S(9) },
{ in: "16x farmersdelight:squid_ink_pasta", out: S(11) },
{ in: "16x farmersdelight:roast_chicken", out: S(7) },
{ in: "16x farmersdelight:stuffed_pumpkin", out: S(9) },
{ in: "16x farmersdelight:honey_glazed_ham", out: S(7) },
{ in: "16x farmersdelight:shepherds_pie", out: S(7) },
{ in: "16x aquaculture:sushi", out: S(3) },
{ in: "16x create:sweet_roll", out: S(4) }
])
let quota = 8
profession("Fishing", 0x9DDFD3, 0xDBF6E9, [
{ in: `${quota}x minecraft:cod`, out: S(1) },
{ in: `${quota}x minecraft:salmon`, out: S(1) },
{ in: `${quota}x minecraft:pufferfish`, out: S(1) },
{ in: `${quota}x minecraft:tropical_fish`, out: S(1) },
{ in: `${quota}x aquaculture:atlantic_herring`, out: S(3) },
{ in: `${quota}x aquaculture:synodontis`, out: S(3) },
{ in: `${quota}x aquaculture:bluegill`, out: S(3) },
{ in: `${quota}x aquaculture:perch`, out: S(3) },
{ in: `${quota}x aquaculture:tambaqui`, out: S(3) },
{ in: `${quota}x aquaculture:minnow`, out: S(4) },
{ in: `${quota}x aquaculture:blackfish`, out: S(4) },
{ in: `${quota}x aquaculture:pink_salmon`, out: S(5) },
{ in: `${quota}x aquaculture:brown_trout`, out: S(5) },
{ in: `${quota}x aquaculture:carp`, out: S(5) },
{ in: `${quota}x aquaculture:pollock`, out: S(5) },
{ in: `${quota}x aquaculture:smallmouth_bass`, out: S(5) },
{ in: `${quota}x aquaculture:boulti`, out: S(5) },
{ in: `${quota}x aquaculture:red_shrooma`, out: S(5) },
{ in: `${quota}x aquaculture:brown_shrooma`, out: S(5) },
{ in: `${quota}x aquaculture:gar`, out: S(7) },
{ in: `${quota}x aquaculture:rainbow_trout`, out: S(7) },
{ in: `${quota}x aquaculture:bayad`, out: S(7) },
{ in: `${quota}x aquaculture:piranha`, out: S(7) },
{ in: `${quota}x aquaculture:jellyfish`, out: S(7) },
{ in: `${quota}x aquaculture:red_grouper`, out: S(7) },
{ in: `${quota}x aquaculture:atlantic_cod`, out: S(7) },
{ in: `${quota}x aquaculture:muskellunge`, out: S(8) },
{ in: `${quota}x aquaculture:pacific_halibut`, out: S(8) },
{ in: `${quota}x aquaculture:atlantic_halibut`, out: S(8) },
{ in: `${quota}x aquaculture:catfish`, out: S(10) },
{ in: `${quota}x aquaculture:capitaine`, out: S(10) },
{ in: `${quota}x aquaculture:tuna`, out: S(10) },
{ in: `${quota}x aquaculture:arapaima`, out: S(10) },
{ in: `${quota}x aquaculture:arrau_turtle`, out: S(10) },
{ in: `${quota}x aquaculture:box_turtle`, out: S(10) },
{ in: `${quota}x aquaculture:starshell_turtle`, out: S(10) },
{ in: `${quota}x aquaculture:goldfish`, out: S(10) },
{ in: "5x aquaculture:neptunium_ingot", out: S(16) }
])
profession("Smithing", 0xFFC93C, 0xFF7A00, [
{ in: "minecraft:iron_boots", out: S(2) },
{ in: "minecraft:iron_leggings", out: S(4) },
{ in: "minecraft:iron_chestplate", out: S(4) },
{ in: "tconstruct:ingot_cast", out: S(2) },
{ in: "tconstruct:pick_head_cast", out: S(3) },
{ in: "tconstruct:gem_cast", out: S(4) },
{ in: "minecraft:iron_helmet", out: S(3) },
{ in: "minecraft:golden_boots", out: S(4) },
{ in: "minecraft:golden_leggings", out: S(7) },
{ in: "minecraft:golden_chestplate", out: S(8) },
{ in: "minecraft:golden_helmet", out: S(5) },
{ in: "minecraft:golden_apple", out: S(10) },
{ in: "32x minecraft:arrow", out: S(3) },
{ in: "minecraft:iron_sword", out: S(1) },
{ in: "minecraft:golden_sword", out: S(2) }
])
trade("Exchange Currencies", 0xEBA83A, 0xF4F4F4, [
{ in: G(1), out: S(64) },
{ in: S(64), out: G(1) }
], true)
let DATAGEN_QUESTS = false
let data = []
let group_max_width = []
let current_group_max_width = 0
let simulate = DATAGEN_QUESTS
let entry_cost = 10
let row = 0
let col = 0
let group = 0
let next_group = () => {
group++
if (simulate)
group_max_width.push(current_group_max_width)
current_group_max_width = 0
col = 0
row++
}
let simple = (name, item, coin, unit, c1, c2) => {
if (!simulate)
trade(name, c1, c2, [{ in: unit(coin), out: item }])
if (!DATAGEN_QUESTS)
return
current_group_max_width = Math.min(8, current_group_max_width + 1)
if (simulate)
return
let silver = unit == S
let split = item.split("x")
let amount = split[0]
let id = split.splice(1).join("x").replace(" ", "")
let card_id = "kubejs:trade_card_" + name.toLowerCase().replace("'", "").split(" ").join("_")
if (col > 7) {
col = 0
row++
}
let x = col - (group_max_width[group] - 1) / 2
let y = row + group / 2
col++
let template = `
{
can_repeat: true
title: "${amount}x ${name}"
icon: "${id}"
disable_toast: true
x: ${x}d
y: ${y}d
shape: "hexagon"
subtitle: "${coin} ${silver ? "Silver" : "Gold"}"
tasks: [{
type: "item"
item: "thermal:silver_coin"
icon: { id: "thermal:silver_coin", Count: ${entry_cost}b }
count: ${entry_cost}L
}]
rewards: [
{
type: "item"
item: "${card_id}"
}
]
}`
data.push(template)
}
while (true) {
group = 0
row = 0
entry_cost = 10
simple("Dirt", "16x minecraft:dirt", 2, S, 0x513825, 0xA87954)
simple("Sand", "16x minecraft:sand", 4, S, 0xC2B289, 0xD8D6B9)
simple("Gravel", "16x minecraft:gravel", 2, S, 0x686160, 0xA19393)
simple("Clay", "16x minecraft:clay", 6, S, 0x878B95, 0x8E939D)
simple("Ice", "16x minecraft:ice", 16, S, 0x7E99CF, 0xABB8D0)
simple("Blackstone", "16x minecraft:blackstone", 12, S, 0x140E0F, 0x2D2831)
simple("Grout", "16x tconstruct:grout", 12, S, 0x70737F, 0xAEB0B5)
simple("Cobblestone", "16x minecraft:cobblestone", 1, S, 0x585858, 0x646363)
simple("Granite", "16x minecraft:granite", 3, S, 0x563A2F, 0x9A6C5B)
simple("Diorite", "16x minecraft:diorite", 3, S, 0x7F7F7F, 0xD4D4D4)
simple("Andesite", "16x minecraft:andesite", 3, S, 0x5F5F5F, 0x8E8E8E)
simple("Deepslate", "16x minecraft:deepslate", 12, S, 0x140E0F, 0x2D2831)
simple("Limestone", "16x create:limestone", 3, S, 0xA7A89E, 0xC0C2BA)
simple("Scoria", "16x create:scoria", 3, S, 0x2A130C, 0x553427)
simple("Obsidian", "1x minecraft:obsidian", 8, S, 0x05030A, 0x36234C)
simple("Cobbled Deepslate", "8x minecraft:cobbled_deepslate", 1, S, 0x4A4A4F, 0x737373)
simple("Honeycomb Block", "16x minecraft:honeycomb_block", 2, S, 0xFCE17D, 0xE58A08)
next_group()
entry_cost = 10
simple("Dead Log", "16x biomesoplenty:dead_log", 2, S, 0x3D362D, 0x7A756D)
simple("Oak Log", "16x minecraft:oak_log", 4, S, 0x735932, 0xA88756)
simple("Birch Log", "16x minecraft:birch_log", 4, S, 0xD6D6D2, 0xC4B079)
simple("Spruce Log", "16x minecraft:spruce_log", 4, S, 0x523E21, 0x6F522F)
simple("Jungle Log", "16x minecraft:jungle_log", 4, S, 0x5A501D, 0x9B6E4C)
simple("Acacia Log", "16x minecraft:acacia_log", 4, S, 0x4F4B42, 0x9E552E)
simple("Dark Oak Log", "16x minecraft:dark_oak_log", 4, S, 0x2C1B0D, 0x422B15)
simple("Crimson Stem", "16x minecraft:crimson_stem", 8, S, 0x442332, 0x7A3852)
simple("Warped Stem", "16x minecraft:warped_stem", 8, S, 0x3E1E2D, 0x347776)
simple("Cherry Log", "16x minecraft:cherry_log", 8, S, 0xd6b8ad, 0x3a222c)
next_group()
entry_cost = 10
simple("Iron Ingot", "8x minecraft:iron_ingot", 16, S, 0xA6A6A6, 0xD5D5D5)
simple("Zinc Ingot", "8x create:zinc_ingot", 16, S, 0x616A60, 0xD0D2C5)
simple("Copper Ingot", "8x minecraft:copper_ingot", 16, S, 0xDD7E5D, 0xFCEFBA)
simple("Nickel Ingot", "8x thermal:nickel_ingot", 32, S, 0x977756, 0xE4D196)
simple("Lead Ingot", "8x thermal:lead_ingot", 32, S, 0x232456, 0x7C95A4)
simple("Gold Ingot", "8x minecraft:gold_ingot", 48, S, 0xD99413, 0xFAF25E)
simple("Andesite Alloy", "16x create:andesite_alloy", 8, S, 0x505050, 0x878787)
simple("Brass Ingot", "8x create:brass_ingot", 48, S, 0x6F3C2D, 0xFCF085)
simple("Invar Ingot", "4x thermal:invar_ingot", 64, S, 0x406D6C, 0xC3CAC1)
entry_cost = 10
simple("Coal", "16x minecraft:coal", 4, S, 0x1C1C1E, 0x383D45)
simple("Flint", "16x minecraft:flint", 4, S, 0x3C3B3B, 0xA6A6A6)
simple("Cinnabar", "4x thermal:cinnabar", 16, S, 0xFC7781, 0xFCCED0)
simple("Redstone Dust", "16x minecraft:redstone", 8, S, 0xA80F01, 0xFC7781)
simple("Diamond", "1x minecraft:diamond", 1, G, 0x20C3B3, 0xD2FCF3)
simple("Lapis Lazuli", "8x minecraft:lapis_lazuli", 32, S, 0x335DC1, 0x7395E7)
simple("Emerald", "1x minecraft:emerald", 1, G, 0x00A82B, 0xADFACB)
simple("Amethyst", "8x minecraft:amethyst_shard", 32, S, 0xBC96AA, 0x523A7E)
simple("Sulfur", "4x thermal:sulfur", 8, S, 0xC7A94A, 0xEEF071)
simple("Apatite", "4x thermal:apatite", 8, S, 0x27A9BB, 0x2CC7C9)
simple("Niter", "4x thermal:niter", 8, S, 0x735A65, 0xB8AFAF)
simple("Nether Quartz", "8x minecraft:quartz", 24, S, 0xB19E8F, 0xE7E2DB)
simple("Certus Quartz", "8x ae2:certus_quartz_crystal", 24, S, 0x91C5FC, 0xA7CBCF)
simple("Fluix Quartz", "8x ae2:fluix_crystal", 32, S, 0x8F5CCB, 0xFC7ED4)
simple("Cured Rubber", "6x thermal:cured_rubber", 16, S, 0x3D363C, 0x594F55)
simple("Bitumen", "1x thermal:bitumen", 8, S, 0x0B0909, 0x0B0909)
next_group()
entry_cost = 10
simple("Scaffolding", "16x minecraft:scaffolding", 2, S, 0x7F5F41, 0xDDC683)
simple("Wool", "1x minecraft:white_wool", 8, S, 0xBEC4C5, 0xE4E4E4)
simple("Sponge", "1x minecraft:sponge", 16, S, 0x8F8234, 0xCDCF4A)
simple("Cobweb", "1x minecraft:cobweb", 16, S, 0xC2CCCF, 0xFCFCFC)
row += 4
next_group()
entry_cost = 10
simple("Rice", "1x farmersdelight:rice_bag", 4, S, 0x9F7653, 0xCEC6BC)
simple("Straw", "32x farmersdelight:straw", 8, S, 0x623A17, 0x966537)
simple("Glowshroom", "4x biomesoplenty:glowshroom", 9, S, 0x2C65C9, 0x83A7B7)
simple("Bramble", "4x biomesoplenty:bramble", 9, S, 0x8C3122, 0xECCDBC)
simple("Barley", "4x biomesoplenty:barley", 4, S, 0xB78B44, 0xD8BC64)
simple("Watergrass", "4x biomesoplenty:watergrass", 4, S, 0x43763D, 0x538B51)
simple("Reed", "4x biomesoplenty:reed", 5, S, 0x7B4E35, 0xB2855C)
simple("Clover Petal", "4x biomesoplenty:huge_clover_petal", 10, S, 0x5B8A4F, 0x6FA960)
simple("Spanish Moss", "4x biomesoplenty:spanish_moss", 7, S, 0x395B2A, 0xA2C790)
simple("Willow Vine", "4x biomesoplenty:willow_vine", 7, S, 0x265F0D, 0x317B10)
simple("Cattail", "4x biomesoplenty:cattail", 4, S, 0x186B2B, 0x845738)
simple("Sugar Cane", "4x minecraft:sugar_cane", 3, S, 0x688546, 0xC5FC85)
simple("Kelp", "8x minecraft:kelp", 3, S, 0x5B8131, 0x58A92F)
simple("Bamboo", "8x minecraft:bamboo", 5, S, 0x4F7416, 0x88AC5F)
simple("Sweet Berries", "8x minecraft:sweet_berries", 11, S, 0x27613F, 0xA30700)
simple("Glow Berries", "8x minecraft:glow_berries", 11, S, 0xB7A74F, 0x909223)
simple("Vines", "4x minecraft:vine", 7, S, 0x183D08, 0x317B10)
simple("Glow Lichen", "4x minecraft:glow_lichen", 4, S, 0x515D58, 0x729083)
simple("Moss Block", "1x minecraft:moss_block", 8, S, 0x4D5B23, 0x6F902C)
simple("Glowing Moss Block", "1x biomesoplenty:glowing_moss_block", 12, S, 0x144B6A, 0x153044)
simple("Tree Fertilizer", "1x create:tree_fertilizer", 6, S, 0xCF8469, 0x71933A)
simple("Sculk", "1x minecraft:sculk", 6, S, 0x073b60, 0xb2d39)
simple("Pink Petals", "8x minecraft:pink_petals", 3, S, 0xFF69B4, 0xFFC0CB)
simple("Big Dripleaf", "4x minecraft:big_dripleaf", 3, S, 0x228B22, 0x32CD32)
next_group()
entry_cost = 10
simple("Daub", "16x supplementaries:daub", 5, S, 0xBFBAAA, 0xCBC8B6)
simple("Clear Glass", "16x tconstruct:clear_glass", 4, S, 0xA9C3CF, 0xE8E8E8)
simple("Copper Shingles", "16x create:copper_shingles", 3, S, 0xB5654B, 0xE4BB79)
simple("Shale", "16x quark:shale", 3, S, 0x4b6468, 0x263234)
simple("Myalite", "16x quark:myalite", 3, S, 0x3a1b5c, 0x622e9a)
simple("Jasper", "16x quark:jasper", 3, S, 0x65382f, 0x482821)
simple("Algal Bricks", "32x architects_palette:algal_bricks", 6, S, 0x292926, 0x3D4D48)
simple("Olivestone Bricks", "32x architects_palette:olivestone_bricks", 8, S, 0x3A3C2E, 0x57553E)
simple("Sunmetal", "32x architects_palette:sunmetal_block", 8, S, 0x603E38, 0xB48764)
simple("Plating Block", "32x architects_palette:plating_block", 8, S, 0x222225, 0x39383C)
simple("Twisted Planks", "32x architects_palette:twisted_planks", 8, S, 0x5E5259, 0x72616B)
simple("Osseous Bricks", "32x architects_palette:osseous_bricks", 8, S, 0x9D976F, 0xD3D0BF)
simple("Seared Stone", "16x tconstruct:seared_stone", 32, S, 0x393734, 0x59534F)
simple("Scorched Stone", "16x tconstruct:scorched_stone", 32, S, 0x382C25, 0x4C3F37)
simple("Lantern", "1x minecraft:lantern", 1, S, 0x484F64, 0xF6C765)
simple("Soul Lantern", "1x minecraft:soul_lantern", 1, S, 0x1c8c94, 0x333343)
next_group()
entry_cost = 10
simple("Slime Ball", "4x minecraft:slime_ball", 24, S, 0x4F7E48, 0x8AD480)
simple("String", "4x minecraft:string", 5, S, 0x2E4446, 0xD8D8D8)
simple("Feather", "4x minecraft:feather", 6, S, 0xD0D0D0, 0xFCFCFC)
simple("Gunpowder", "4x minecraft:gunpowder", 7, S, 0x535353, 0x717171)
simple("Leather", "4x minecraft:leather", 8, S, 0x873A25, 0xC45B34)
simple("Ink Sac", "4x minecraft:ink_sac", 8, S, 0x493F49, 0x786470)
simple("Glow Ink Sac", "2x minecraft:glow_ink_sac", 8, S, 0x29807E, 0x5AB488)
simple("Experience", "1x minecraft:experience_bottle", 8, S, 0x689AC7, 0xFFF2FF)
simple("Shulker Shell", "1x minecraft:shulker_shell", 2, G, 0x6B476A, 0x956895)
simple("Spider Eye", "4x minecraft:spider_eye", 10, S, 0x64062A, 0xC25E6A)
simple("Ender Pearl", "1x minecraft:ender_pearl", 48, S, 0x0B4C41, 0x2BCBAF)
simple("Rotten Flesh", "4x minecraft:rotten_flesh", 3, S, 0xB24320, 0x695C18)
simple("Blaze Rod", "1x minecraft:blaze_rod", 20, S, 0xAC3B00, 0xD5AC26)
simple("Bone", "4x minecraft:bone", 8, S, 0xC9C4A3, 0xC9C4A3)
simple("Prismarine Shard", "4x minecraft:prismarine_shard", 16, S, 0x2F6355, 0x8FC0AA)
simple("Prismarine Crystals", "4x minecraft:prismarine_crystals", 24, S, 0x71A296, 0xDCE6D9)
entry_cost = 10
simple("Witch Hat", "1x reliquary:witch_hat", 1, G, 0x424242, 0x568125)
simple("Zombie heart", "1x reliquary:zombie_heart", 32, S, 0x532B38, 0x8D584A)
simple("Squid Beak", "1x reliquary:squid_beak", 32, S, 0x00613B, 0x5BCDA1)
simple("Rib Bone", "1x reliquary:rib_bone", 32, S, 0xDFDDCE, 0xFAF9E9)
simple("Catalyzing Gland", "1x reliquary:catalyzing_gland", 48, S, 0x268E23, 0x63CA52)
simple("Chelicerae", "1x reliquary:chelicerae", 32, S, 0x251721, 0x4D0C3B)
simple("Slime Pearl", "1x reliquary:slime_pearl", 48, S, 0x1B9D33, 0x84F58E)
simple("Bat Wing", "1x reliquary:bat_wing", 2, G, 0x464646, 0x6D6D6D)
simple("Withered Rib", "1x reliquary:withered_rib", 2, G, 0x2A2E2E, 0x434949)
simple("Molten Core", "1x reliquary:molten_core", 48, S, 0xED7102, 0xFAFC58)
simple("Eye of the Storm", "1x reliquary:eye_of_the_storm", 2, G, 0xFCD607, 0x96FC52)
simple("Frozen Core", "1x reliquary:frozen_core", 48, S, 0x008DC2, 0x7571FB)
simple("Nebulous Heart", "1x reliquary:nebulous_heart", 1, G, 0x6200A0, 0xE500C3)
simple("Guardian Spike", "1x reliquary:guardian_spike", 1, G, 0x7F4215, 0xE29964)
simple("Breeze Rod", "1x trials:breeze_rod", 24, S, 0x44557B, 0x96899E)
simple("Blaze Cake", "1x create:blaze_cake", 16, S, 0x834141, 0xFCE083)
next_group()
if (!DATAGEN_QUESTS)
break
if (!simulate)
break
simulate = false
}
if (DATAGEN_QUESTS) {
console.log("QUEST PASTER:")
console.log(data.join(""))
console.log(":QUEST PASTER END")
}
})