Initial commit
This commit is contained in:
54
kubejs/server_scripts/grist.js
Executable file
54
kubejs/server_scripts/grist.js
Executable file
@ -0,0 +1,54 @@
|
||||
ServerEvents.recipes(event => {
|
||||
// The four elements of malloc
|
||||
// Farming - Plants, foods, cooking, etc
|
||||
// Build - Placing blocks, destroying blocks, processing ores
|
||||
// Energetic - Energy production, redstone, mechanisms, pistons
|
||||
// Magnetic - enchanting, magic items, etc
|
||||
|
||||
// Grist groups
|
||||
// Primordeal - used in nearly all tier'd recipes
|
||||
// Farming - For organics, fertilizer, usage in insolator, hoe/scythe parts for silentgear?
|
||||
// Build - For creating building gadgets, construction paste, modular routers, darkutilities parts...? usage in pulverizer?
|
||||
// Energetic - Power production, redstone gadgets, anything that needs RF
|
||||
// Intelligent - Enchanting, magic items, teleportation, item storage, automation
|
||||
// Universal - combination of all top tiers from all groups, works like all other types in machines, recipes, etc
|
||||
|
||||
/*
|
||||
Progression recipes
|
||||
Primordeal grist - just a combination of each of the four elements
|
||||
|
||||
Side story lines / mod exploration lines:
|
||||
Exploration:
|
||||
Transportation: waystones, summoning horses, immersive aircraft, warp plates, tempad, warp scrolls, warp stone
|
||||
Dog training: vanilla dog achievement, treats, dog training achievement, beds, collars, healing, armors
|
||||
Survival: heartstones, scaling health, sleeping bags, caupona portable jar + aspics, auto-feeding backpack
|
||||
Exploration: bounty boards, visiting dungeons galore, biomes, finding shack achievement, finding tablets, tablet table, visiting biomes, collecting items and achievements
|
||||
Tools and equipment: apotheosis, exposure, silent gear tools + armor, flux drill, flux saw, backpacks, chalk, ...?
|
||||
Combat: attack dummy, silent gear weapons, attack ars runes, gateway orbs, spawners, apotheosis bosses
|
||||
Base building:
|
||||
Aesthetics: comforts, chimneys, chipped, chisel, furniture
|
||||
Infrastructure: sophisticated storage, refined storage, elevators, mighty mail, chimes, cooking for blockheads, caupona spas
|
||||
Base building: chimes, iron furnaces, cooking for blockheads
|
||||
Fine Dining: neopolitan, Croptopia, Sushi Go Crafting, Farmer's Delight, Caupona, Vinery, brewery, bakery, candelight, teas, sandwich mod
|
||||
Creative mode: angel ring, ...?
|
||||
Achievements: killed xxx zombies, visited all alex's biomes, looted xxx chests, visited every dungeon, 8x compressed blocks, grist tiers, spice of life achievements
|
||||
*/
|
||||
|
||||
/*event.custom({
|
||||
type: "apotheosis:enchanting",
|
||||
input: {
|
||||
item: "kubejs:unstable_grist_capacitor"
|
||||
},
|
||||
requirements: {
|
||||
eterna: 40,
|
||||
quanta: 15,
|
||||
arcana: 60
|
||||
},
|
||||
max_requirements: {
|
||||
eterna: -1,
|
||||
quanta: 25,
|
||||
arcana: -1
|
||||
},
|
||||
result: Item.of('kubejs:grist_energetic_improved').toJson()
|
||||
});*/
|
||||
});
|
140
kubejs/server_scripts/grist/agricultural.js
Executable file
140
kubejs/server_scripts/grist/agricultural.js
Executable file
@ -0,0 +1,140 @@
|
||||
ServerEvents.recipes(event => {
|
||||
/*
|
||||
Agricultural grist
|
||||
none -> basic: plant some wheat, make dough, cook with veggies and meat -> unlock early mob farming, botany pots, kitchen parts
|
||||
basic grist comes from flour + primordeal grist + veggies cooked in a pot with a block of basic primordeal
|
||||
after you get basic grist, you can smelt basic grist with dough..?
|
||||
basic grist comes from basic grist + block of primordeal + dough + yeast
|
||||
your first basic grist comes from chutney + primordeal + meat + dough + yeast
|
||||
chutney comes from primordeal grist + sugar + fruit + caupona vinegar + chives
|
||||
*/
|
||||
event.custom({
|
||||
type: 'farmersdelight:cooking',
|
||||
cookingtime: 400,
|
||||
experience: 5.0,
|
||||
ingredients: [
|
||||
{item: 'kubejs:grist_primordeal_basic_block'},
|
||||
{item: 'minecraft:sugar'},
|
||||
{item: 'caupona:vinegar_spice_jar'},
|
||||
{tag: 'forge:fruits'},
|
||||
{tag: 'forge:fruits'},
|
||||
{item: 'caupona:chives_spice_jar'},
|
||||
],
|
||||
result: {item: 'kubejs:grist_chutney'}
|
||||
});
|
||||
event.custom({
|
||||
type: 'farmersdelight:cooking',
|
||||
cookingtime: 600,
|
||||
experience: 1.0,
|
||||
ingredients: [
|
||||
{item: 'kubejs:grist_primordeal_basic_block'},
|
||||
{item: 'kubejs:grist_chutney'},
|
||||
{tag: 'forge:foods/meat/cooked'},
|
||||
{tag: 'forge:doughs'},
|
||||
{item: 'bakery:yeast'}
|
||||
],
|
||||
result: {item: 'kubejs:grist_agricultural_basic', count: 2}
|
||||
});
|
||||
event.custom({
|
||||
type: 'farmersdelight:cooking',
|
||||
cookingtime: 200,
|
||||
experience: 2.0,
|
||||
ingredients: [
|
||||
{item: 'kubejs:grist_primordeal_basic_block'},
|
||||
{tag: 'kubejs:grist/agricultural/basic'},
|
||||
{tag: 'forge:doughs'},
|
||||
{item: 'bakery:yeast'}
|
||||
],
|
||||
result: {item: 'kubejs:grist_agricultural_basic', count: 2}
|
||||
});
|
||||
|
||||
/*
|
||||
improved grist comes from cooking improved grist with primordeal and dough
|
||||
your first improved grist comes from cooking grist treat with grist chutney and improved primordeal block
|
||||
grist treats come from coating collectorsreap gummies in grist spice
|
||||
grist spice blend comes from grist morsels + asafoeteda + basic grist resting in a dolum
|
||||
grist morsels come from dissolving complicated dishes in the dissolution chamber
|
||||
*/
|
||||
event.custom({
|
||||
type: 'farmersdelight:cooking',
|
||||
cookingtime: 500,
|
||||
experience: 1.0,
|
||||
ingredients: [
|
||||
{item: 'kubejs:grist_primordeal_improved_block'},
|
||||
{tag: 'kubejs:grist/agricultural/improved'},
|
||||
{item: 'kubejs:grist_primordeal_improved_block'},
|
||||
{tag: 'kubejs:grist/agricultural/improved'},
|
||||
],
|
||||
result: {item: 'kubejs:grist_agricultural_improved', count: 4}
|
||||
});
|
||||
event.custom({
|
||||
type: 'farmersdelight:cooking',
|
||||
cookingtime: 500,
|
||||
experience: 1.0,
|
||||
ingredients: [
|
||||
{item: 'kubejs:grist_primordeal_basic_block'},
|
||||
{item: 'kubejs:grist_treats'},
|
||||
{item: 'kubejs:grist_treats'},
|
||||
{item: 'kubejs:grist_treats'},
|
||||
{item: 'kubejs:grist_chutney'},
|
||||
{item: 'kubejs:grist_chutney'},
|
||||
],
|
||||
result: {item: 'kubejs:grist_agricultural_improved'}
|
||||
});
|
||||
event.shaped('kubejs:grist_treats', [
|
||||
'AAA',
|
||||
'ABA',
|
||||
'AAA'
|
||||
], {
|
||||
'A': 'kubejs:spiced_grist_blend',
|
||||
'B': 'croptopia:lemon_coconut_bar'
|
||||
});
|
||||
event.custom({
|
||||
type: 'caupona:dolium',
|
||||
amount: 1000,
|
||||
density: 0.0,
|
||||
items: [
|
||||
{item: {item: 'kubejs:grist_morsels'}, count:2},
|
||||
{item: {item: 'kubejs:grist_agricultural_basic_block'}, count:3},
|
||||
{item: {item: 'caupona:asafoetida'}, count:1}
|
||||
],
|
||||
fluid: "kubejs:grist_primordeal_improved_fluid",
|
||||
keepInfo: false,
|
||||
output: {
|
||||
type: 'forge:nbt',
|
||||
count: 1,
|
||||
item: 'kubejs:spiced_grist_blend'
|
||||
}
|
||||
});
|
||||
event.custom({
|
||||
type: "industrialforegoing:dissolution_chamber",
|
||||
input: [
|
||||
{tag: 'forge:blts'},
|
||||
{item: 'kubejs:grist_primordeal_improved'},
|
||||
{tag: 'forge:apple_pies'},
|
||||
{tag: 'forge:fruit_smoothies'},
|
||||
{tag: 'forge:cheeseburgers'},
|
||||
{item: 'caupona:okroshka'},
|
||||
{item: 'candlelight:pasta_bolognese'},
|
||||
{item: 'collectorsreap:prawn_po_boy'},
|
||||
],
|
||||
inputFluid: "{Amount:5000,FluidName:\"kubejs:grist_agricultural_basic_fluid\"}",
|
||||
output: {
|
||||
count: 1,
|
||||
item: 'kubejs:grist_morsels'
|
||||
},
|
||||
processingTime: 3000
|
||||
});
|
||||
|
||||
/*
|
||||
radiant grist should require:
|
||||
more advanced rituals with harder to grab mobs
|
||||
cooking some pink slime ingots
|
||||
processing liquid meat
|
||||
processing some of the vinery fluids
|
||||
all of the vinery wines in the dissolution chamber
|
||||
fish?
|
||||
890101 HNN predictions
|
||||
emeralds, because villagers?
|
||||
*/
|
||||
});
|
143
kubejs/server_scripts/grist/build.js
Executable file
143
kubejs/server_scripts/grist/build.js
Executable file
@ -0,0 +1,143 @@
|
||||
ServerEvents.recipes(event => {
|
||||
/*
|
||||
Build grist
|
||||
none -> basic: create a pulverizer, grind sand into grist -> make basic tier of machines and tools (pulverizer, redstone furnace, alloy smelter, )
|
||||
basic grist only comes from pulverizing sand into grist, or you get 4x from pulverizing improved grist
|
||||
pulverizer would require a tin gear which requires four tin ingots plus either one build grist or diamond in the center
|
||||
basic -> improved: create cobble to gravel to sand to grist generator (with basic power + basic automation) -> overcome the cost of newer machines, world building gadgets, automate food production
|
||||
full machine would require some pipes automation (intelligent), power (energetic), and food to harvest the materials (agricultural)
|
||||
all machines required would need gears made from one build grist in the center
|
||||
machines: pulverizier, sequential crafter...?
|
||||
after you get improved, you can make the gear die and make gears without grist
|
||||
3x improved grist can also come from alloy smelting cobblestone, gravel, sand in the right quantities
|
||||
*/
|
||||
|
||||
/*
|
||||
2x Basic build grist comes from smelting build grist with primordeal
|
||||
Your first build grist comes from smelting refined aggregate
|
||||
refined aggregate comes from pulverizing reduced aggregate, which comes from coarse aggregate
|
||||
coarse aggregate comes from combining sand, clay, gravel, primordeal with an ore hammer
|
||||
*/
|
||||
event.recipes.thermal.smelter(
|
||||
'2x kubejs:grist_build_basic',
|
||||
['#kubejs:grist/build/basic', 'kubejs:grist_primordeal_basic_block']
|
||||
);
|
||||
event.smelting('kubejs:grist_build_basic', 'kubejs:refined_grist_aggregate');
|
||||
event.recipes.shapeless(
|
||||
'kubejs:coarse_grist_aggregate', [
|
||||
|
||||
'3x #forge:sand',
|
||||
'minecraft:clay_ball',
|
||||
'3x #forge:gravel',
|
||||
'#alltheores:ore_hammers',
|
||||
'kubejs:grist_primordeal_basic_block'
|
||||
]);
|
||||
event.recipes.shapeless(
|
||||
'kubejs:reduced_grist_aggregate', [
|
||||
'#alltheores:ore_hammers',
|
||||
'minecraft:granite',
|
||||
'kubejs:grist_primordeal_basic',
|
||||
'6x kubejs:coarse_grist_aggregate'
|
||||
]);
|
||||
event.recipes.shapeless(
|
||||
'2x kubejs:refined_grist_aggregate', [
|
||||
'#alltheores:ore_hammers',
|
||||
'kubejs:grist_primordeal_basic',
|
||||
'5x kubejs:reduced_grist_aggregate'
|
||||
]);
|
||||
|
||||
event.custom(
|
||||
{
|
||||
type: "thermal:pulverizer",
|
||||
ingredients: [
|
||||
{item: "kubejs:coarse_grist_aggregate"},
|
||||
],
|
||||
result: [
|
||||
{
|
||||
item: "kubejs:reduced_grist_aggregate",
|
||||
chance: 0.9
|
||||
},
|
||||
{
|
||||
item: "kubejs:refined_grist_aggregate",
|
||||
chance: 0.1
|
||||
}
|
||||
]
|
||||
}
|
||||
);
|
||||
|
||||
event.custom(
|
||||
{
|
||||
type: "thermal:pulverizer",
|
||||
ingredients: [
|
||||
{item: "kubejs:reduced_grist_aggregate"},
|
||||
],
|
||||
result: [
|
||||
{
|
||||
item: "kubejs:reduced_grist_aggregate",
|
||||
chance: 0.3
|
||||
},
|
||||
{
|
||||
item: "kubejs:refined_grist_aggregate",
|
||||
chance: 0.5
|
||||
}
|
||||
]
|
||||
}
|
||||
);
|
||||
|
||||
/*
|
||||
improved grist comes from crystalizing clay + improved + primordeal liquid
|
||||
your first improved comes from crystalizing 32 reinforced grist ingots with improved primordeal liquid
|
||||
grist ingots come from 9 grist nuggets in a servo press
|
||||
reinforced grist nuggets come from grist blend in a centrifugal separator
|
||||
grist blend comes from basic + improved primordeal block + sulfur in induction smelter
|
||||
*/
|
||||
event.recipes.thermal.crystallizer(
|
||||
'4x kubejs:grist_build_improved',
|
||||
['4x minecraft:clay', '2x #kubejs:grist/build/improved', Fluid.of('kubejs:grist_primordeal_improved_fluid', 4500)]
|
||||
);
|
||||
event.recipes.thermal.crystallizer(
|
||||
'kubejs:grist_build_improved',
|
||||
['32x kubejs:reinforced_grist_ingot', Fluid.of('kubejs:grist_primordeal_improved_fluid', 4000)]
|
||||
);
|
||||
|
||||
event.custom({
|
||||
type: "thermal:press",
|
||||
ingredients: [
|
||||
{ item: 'kubejs:reinforced_grist_nugget', count: 9 },
|
||||
{ item: "thermal:press_packing_3x3_die" }
|
||||
],
|
||||
result: [{item: 'kubejs:reinforced_grist_ingot'}]
|
||||
});
|
||||
|
||||
event.custom({
|
||||
type: "thermal:centrifuge",
|
||||
ingredients: [
|
||||
{ item: 'kubejs:reinforced_grist_blend' },
|
||||
],
|
||||
result: [{item: 'kubejs:reinforced_grist_nugget', chance: 0.3}]
|
||||
});
|
||||
|
||||
event.recipes.thermal.smelter(
|
||||
'kubejs:reinforced_grist_blend',
|
||||
['32x #kubejs:grist/build/basic', '3x kubejs:grist_primordeal_improved_block', '2x #forge:dusts/sulfur']
|
||||
);
|
||||
|
||||
/*
|
||||
improved -> radiant: process ores with power generation, new machines, and tool enchants into smelting up grist alloys -> near creative mode world shaping tools, crafting any block
|
||||
three grades of grist alloy ingots: tempered, perfect, and flawed
|
||||
radiant grist requires energizing a block of tempered alloy
|
||||
|
||||
block of tempered alloy comes from 9 tempered ingots
|
||||
tempered ingot comes from 9 tempered nuggets + grist paste in a smelter
|
||||
tempered nuggets come from centrifuing a filled crucible
|
||||
filled crucibles come from chilling a hot filled crucible
|
||||
hot filled crucibles come from energizing tempered nuggets with 1x lumium, 1x signalum, 1x improved build block, 1x crucible
|
||||
|
||||
perfect alloy comes from smelting perfect alloy nuggets with intelligent catalysts + advanced powder power powder (gemium?)
|
||||
perfect alloy nugget comes from solidifying 1000mb of liquid alloy in blast chiller with ingot mold
|
||||
100mb liquid alloy comes from melting one flawed ingot
|
||||
|
||||
flawed ingots come from energizing 9 flawed nuggets with tremendous power
|
||||
flawed nuggets come from ars enchanting with 8x advanced powders around 1x improved build
|
||||
*/
|
||||
});
|
107
kubejs/server_scripts/grist/energetic.js
Executable file
107
kubejs/server_scripts/grist/energetic.js
Executable file
@ -0,0 +1,107 @@
|
||||
ServerEvents.recipes(event => {
|
||||
/*
|
||||
Energetic grist
|
||||
none -> basic: plant some trees, make charcoal, collect copper + lapis, visit the nether, make basic solar power and fluxducts
|
||||
powah solar panels require dielectric paste
|
||||
starter solar panel should generate enough power to smelt 3 stacks of logs in parallel, plus basic storage grid
|
||||
dielectric paste requires hammer + energetic grist + primordeal + redstone dust + clay
|
||||
energetic grist comes from smelting gristy paste, or blast chilling improved energetic grist
|
||||
gristy paste is block of primordeal basic grist block wrapped in redstone block + copper blocks
|
||||
basic -> improved: build up basic energizer, dump a ton of energy into things -> mid game energy generation
|
||||
++blazing crystals require blaze powder plus either infused grist capacitors or improved grist
|
||||
infused grist capcitors are infused in the ars infuser from activated grist capacitors
|
||||
activated grist capacitors come from crystalzing destabilized grist into basic powah capacitors
|
||||
destabilized grist comes from magma crucible with inert grist nuggets, 5mb each
|
||||
inert grist nuggets come from energizing storage parts? + glass + phyto-gro
|
||||
|
||||
build grist provides the huge quantity of sand neeed for glass
|
||||
agricultural grist provides the phyto-gro and source
|
||||
intelligent grist provides the storage parts
|
||||
improved -> radiant: build first niotic tier power generator -> unlock end game power
|
||||
niotic crystal requires either radiant grist or ..?
|
||||
..? requires
|
||||
*/
|
||||
/*
|
||||
energetic grist comes from energizing energetic + primordeal
|
||||
your first energetic comes from smelting grist paste
|
||||
grist paste comes from redstone, obsidian, and primordeal grist
|
||||
*/
|
||||
event.smelting('kubejs:grist_energetic_basic', 'kubejs:grist_paste');
|
||||
event.shaped('18x kubejs:grist_paste', [
|
||||
'ADA',
|
||||
'BCB',
|
||||
'AAA'
|
||||
], {
|
||||
'A': 'minecraft:redstone',
|
||||
'B': '#forge:storage_blocks/copper',
|
||||
'C': 'kubejs:grist_primordeal_basic_block',
|
||||
'D': '#alltheores:ore_hammers'
|
||||
});
|
||||
event.recipes.powah.energizing(
|
||||
['kubejs:grist_primordeal_basic_block', '#kubejs:grist/energetic/basic'],
|
||||
'2x kubejs:grist_energetic_basic',
|
||||
3000
|
||||
);
|
||||
|
||||
/*
|
||||
improved comes from energizing improved grist with primordeal
|
||||
your first improved comes from apotheosis infusing an unstable grist capacitor
|
||||
unstable capacitors come from filling an infused capacitor with improved liquid
|
||||
infused grist capcitors are infused in the ars infuser from activated grist capacitors
|
||||
activated grist capacitors come from crystalzing destabilized grist into basic powah capacitors
|
||||
destabilized grist comes from magma crucible with inert grist nuggets, 5mb each
|
||||
inert grist nuggets come from energizing storage parts? + glass + phyto-gro
|
||||
|
||||
blazing crystals require blaze powder plus either infused grist capacitors or improved grist
|
||||
*/
|
||||
event.recipes.powah.energizing([
|
||||
'kubejs:grist_energetic_improved',
|
||||
'kubejs:grist_energetic_improved',
|
||||
'kubejs:grist_primordeal_improved_block',
|
||||
'kubejs:grist_primordeal_improved_block',
|
||||
], '4x kubejs:grist_energetic_improved',
|
||||
20000
|
||||
);
|
||||
event.recipes.powah.energizing([
|
||||
'#forge:glass',
|
||||
'thermal:phytogrow',
|
||||
'#forge:dusts/redstone',
|
||||
'thermal:rf_coil',
|
||||
global.nuggetItem('steel'),
|
||||
'powah:dielectric_paste'
|
||||
], 'kubejs:inert_grist_nugget', 50000)
|
||||
|
||||
event.recipes.thermal.crucible(
|
||||
Fluid.of('kubejs:destabilized_grist', 15),
|
||||
'kubejs:inert_grist_nugget'
|
||||
);
|
||||
|
||||
event.recipes.thermal.crystallizer(
|
||||
'kubejs:activated_grist_capacitor',
|
||||
['powah:capacitor_hardened', Fluid.of('kubejs:destabilized_grist', 1750)]
|
||||
);
|
||||
event.recipes.ars_nouveau.imbuement(
|
||||
'kubejs:activated_grist_capacitor',
|
||||
'kubejs:infused_grist_capacitor',
|
||||
3000,
|
||||
[]
|
||||
);
|
||||
event.recipes.thermal.bottler(
|
||||
Item.of('kubejs:unstable_grist_capacitor'),
|
||||
[Fluid.of('kubejs:destabilized_grist', 1250),
|
||||
Item.of('kubejs:infused_grist_capacitor')]
|
||||
);
|
||||
event.recipes.powah.energizing([
|
||||
'kubejs:unstable_grist_capacitor',
|
||||
'kubejs:unstable_grist_capacitor',
|
||||
'kubejs:unstable_grist_capacitor',
|
||||
'kubejs:unstable_grist_capacitor',
|
||||
'kubejs:unstable_grist_capacitor',
|
||||
], 'kubejs:grist_energetic_improved',
|
||||
50000
|
||||
);
|
||||
|
||||
/*
|
||||
radiant comes from niotic crystals?
|
||||
*/
|
||||
});
|
170
kubejs/server_scripts/grist/intelligent.js
Executable file
170
kubejs/server_scripts/grist/intelligent.js
Executable file
@ -0,0 +1,170 @@
|
||||
ServerEvents.recipes(event => {
|
||||
/*
|
||||
Intelligent grist
|
||||
none -> basic: dig up lapis, hunt down zombies, build an ars infuser, infuse some primordeal grist -> unlock rf grid + external storage, basic pipes
|
||||
intelligent grist comes from infusing primordeal grist block with intelligent grist
|
||||
to make the infuser, you need intelligent grist
|
||||
your first intelligent grist can come from smelting insightful tincture
|
||||
insightful tincture comes from cooking insightful blend via farmersdelight with a bucket of liquid primordeal grist and zombie flesh
|
||||
insightful blend comes from combining sacred flesh, lapis, basic grist with an ore hammer
|
||||
sacred flesh comes from primordeal grist, rotten flesh, gold dust
|
||||
*/
|
||||
//event.smelting('kubejs:grist_intelligent_basic', 'kubejs:insightful_tincture');
|
||||
event.shapeless('kubejs:insightful_blend', [
|
||||
'2x minecraft:rotten_flesh',
|
||||
global.dustItem('lapis', 2),
|
||||
'kubejs:grist_primordeal_basic',
|
||||
'#alltheores:ore_hammers'
|
||||
]);
|
||||
|
||||
event.custom({
|
||||
type: "apotheosis:enchanting",
|
||||
input: {
|
||||
item: "kubejs:insightful_tincture"
|
||||
},
|
||||
requirements: {
|
||||
eterna: 10,
|
||||
quanta: 0,
|
||||
arcana: 0
|
||||
},
|
||||
max_requirements: {
|
||||
eterna: -1,
|
||||
quanta: 25,
|
||||
arcana: -1
|
||||
},
|
||||
result: Item.of('kubejs:grist_intelligent_basic', 9).toJson()
|
||||
});
|
||||
|
||||
event.shaped('kubejs:sacred_flesh', [
|
||||
'CAC',
|
||||
'ABA',
|
||||
'CAC'
|
||||
], {
|
||||
'A': 'kubejs:grist_primordeal_basic',
|
||||
'B': 'minecraft:rotten_flesh',
|
||||
'C': global.dustItem('gold')
|
||||
});
|
||||
/*event.custom({
|
||||
type: 'farmersdelight:cooking',
|
||||
cookingtime: 400,
|
||||
experience: 5.0,
|
||||
ingredients: [
|
||||
{item: 'kubejs:grist_primordeal_basic_block'},
|
||||
{item: 'kubejs:sacred_flesh'},
|
||||
{item: 'kubejs:sacred_flesh'},
|
||||
{item: 'kubejs:insightful_blend'},
|
||||
{item: 'kubejs:insightful_blend'},
|
||||
{item: 'kubejs:insightful_blend'}
|
||||
],
|
||||
result: {item: 'kubejs:insightful_tincture', count: 2}
|
||||
});*/
|
||||
event.shapeless('2x kubejs:insightful_tincture', [
|
||||
'kubejs:grist_primordeal_basic_block',
|
||||
'2x kubejs:sacred_flesh',
|
||||
'2x kubejs:insightful_blend'
|
||||
]);
|
||||
event.shapeless('2x kubejs:insightful_tincture', [
|
||||
'kubejs:grist_primordeal_basic_block',
|
||||
'#kubejs:grist/intelligent/basic',
|
||||
'#alltheores:ore_hammers'
|
||||
]);
|
||||
|
||||
event.recipes.ars_nouveau.imbuement(
|
||||
'kubejs:grist_primordeal_basic_block',
|
||||
'kubejs:grist_intelligent_basic',
|
||||
900,
|
||||
['kubejs:grist_intelligent_basic']
|
||||
);
|
||||
|
||||
/*event.custom({
|
||||
type: "thermal:press",
|
||||
ingredients: [
|
||||
{ item: 'kubejs:grist_primordeal_basic_block' },
|
||||
{ tag: "kubejs:grist/intelligent/basic" }
|
||||
],
|
||||
result: [{item: 'kubejs:insightful_tincture', count: 2}]
|
||||
});*/
|
||||
|
||||
/*event.recipes.ars_nouveau.imbuement(
|
||||
'kubejs:grist_intelligent_basic',
|
||||
'kubejs:insightful_blend',
|
||||
900,
|
||||
[]
|
||||
);*/
|
||||
|
||||
/*
|
||||
Improved grist should probably come from the enchanting apparatus
|
||||
Improve grist comes from infusing priordeal improved with intelligent improved
|
||||
first improved grist comes from a summoning ritual with sapient focus + each ars elemental lesser focus
|
||||
sapient focus comes from apotheosis infusion with intelligent focus
|
||||
intelligent focus comes from summoning ritual with imbued source gems with cognitive alloy
|
||||
imbued source gems come source gems imbued with 8 intelligent catalysts
|
||||
catalysts come from source gems crystalized with basic intelligent fluid and sacred flesh
|
||||
*/
|
||||
event.recipes.summoningrituals.altar("kubejs:grist_primordeal_improved")
|
||||
.itemOutput(Item.of('kubejs:grist_intelligent_improved', 4))
|
||||
.input(Item.of('kubejs:grist_primordeal_improved_block', 2))
|
||||
.input(Item.of('kubejs:grist_intelligent_improved', 2))
|
||||
.blockBelow('ars_nouveau:arcane_core');
|
||||
|
||||
event.recipes.summoningrituals.altar("kubejs:sapient_focus")
|
||||
.itemOutput('kubejs:grist_intelligent_improved')
|
||||
.input('ars_elemental:lesser_fire_focus')
|
||||
.input('ars_elemental:lesser_water_focus')
|
||||
.input('ars_elemental:lesser_air_focus')
|
||||
.input('ars_elemental:lesser_earth_focus')
|
||||
.sacrifice('pig', 3)
|
||||
.weather('rain')
|
||||
.dayTime('night')
|
||||
.blockBelow('ars_nouveau:arcane_core');
|
||||
|
||||
event.custom({
|
||||
type: "apotheosis:enchanting",
|
||||
input: {
|
||||
item: "kubejs:intelligent_focus"
|
||||
},
|
||||
requirements: {
|
||||
eterna: 40,
|
||||
quanta: 15,
|
||||
arcana: 60
|
||||
},
|
||||
max_requirements: {
|
||||
eterna: -1,
|
||||
quanta: 25,
|
||||
arcana: -1
|
||||
},
|
||||
result: Item.of('kubejs:sapient_focus').toJson()
|
||||
});
|
||||
|
||||
event.recipes.summoningrituals.altar('kubejs:grist_primordeal_improved')
|
||||
.itemOutput('kubejs:intelligent_focus')
|
||||
.input(Item.of('kubejs:imbued_source_gem', 8))
|
||||
.input(Item.of('experienceobelisk:cognitive_alloy_block', 3))
|
||||
.sacrifice('sheep', 6)
|
||||
.blockBelow('ars_nouveau:arcane_core');
|
||||
|
||||
event.recipes.ars_nouveau.imbuement(
|
||||
'ars_nouveau:source_gem',
|
||||
'kubejs:imbued_source_gem',
|
||||
15000,
|
||||
[
|
||||
'kubejs:intelligent_catalyst',
|
||||
'kubejs:intelligent_catalyst',
|
||||
'kubejs:intelligent_catalyst',
|
||||
'kubejs:intelligent_catalyst',
|
||||
'kubejs:intelligent_catalyst',
|
||||
'kubejs:intelligent_catalyst',
|
||||
'kubejs:intelligent_catalyst',
|
||||
'kubejs:intelligent_catalyst',
|
||||
]
|
||||
);
|
||||
|
||||
event.recipes.thermal.crystallizer(
|
||||
'kubejs:intelligent_catalyst',
|
||||
['4x ars_nouveau:source_gem', '16x kubejs:sacred_flesh', Fluid.of('kubejs:grist_intelligent_basic_fluid', 3000)]
|
||||
);
|
||||
|
||||
/*
|
||||
Radiant comes from the intelligent processors..? elemental mark of mastery?
|
||||
*/
|
||||
});
|
121
kubejs/server_scripts/grist/primordeal.js
Executable file
121
kubejs/server_scripts/grist/primordeal.js
Executable file
@ -0,0 +1,121 @@
|
||||
ServerEvents.recipes(event => {
|
||||
// All grist starts from cobblestone
|
||||
event.shaped('2x kubejs:grist_primordeal_basic', [
|
||||
'AAA',
|
||||
'ABA',
|
||||
'AAA'
|
||||
], {
|
||||
'A': '#forge:cobblestone',
|
||||
'B': '#forge:gravel'
|
||||
});
|
||||
event.shaped('2x kubejs:grist_primordeal_basic_block', [
|
||||
'AAA',
|
||||
'ABA',
|
||||
'AAA'
|
||||
], {
|
||||
'A': '#forge:cobblestone',
|
||||
'B': 'kubejs:grist_essence'
|
||||
});
|
||||
// Conversions between fluids and items
|
||||
global.Grist.forEach(grist => {
|
||||
let id = grist.id();
|
||||
let fluidID = grist.fluid().id();
|
||||
let blockID = grist.block().id();
|
||||
event.recipes.thermal.crucible(Fluid.of(fluidID, 250), id);
|
||||
event.recipes.thermal.chiller(id, Fluid.of(fluidID, 250));
|
||||
|
||||
// convert between block and normal item
|
||||
event.shapeless(blockID, [`9x ${id}`]);
|
||||
event.shapeless(`9x ${id}`, [blockID]);
|
||||
|
||||
event.custom({
|
||||
type: "industrialforegoing:dissolution_chamber",
|
||||
input: [],
|
||||
inputFluid: `{Amount:250,FluidName:\"${fluidID}\"}`,
|
||||
output: {
|
||||
count: 1,
|
||||
item: id
|
||||
},
|
||||
"processingTime": 50
|
||||
});
|
||||
event.custom({
|
||||
type: "industrialforegoing:dissolution_chamber",
|
||||
input: [
|
||||
{item: id}
|
||||
],
|
||||
inputFluid: `{Amount:250,FluidName:\"minecraft:water\"}`,
|
||||
output: {
|
||||
count: 0,
|
||||
item: 'minecraft:air'
|
||||
},
|
||||
outputFluid: `{Amount:250,FluidName:\"${fluidID}\"}`,
|
||||
processingTime: 50
|
||||
});
|
||||
});
|
||||
|
||||
// Progression along primordeals and universals
|
||||
let _ = [{from: 'basic', to: 'improved'}, {from: 'improved', to: 'radiant'}].forEach(upgrade => {
|
||||
// Primordeal progression requires one from each element of the lower tier
|
||||
event.shaped(`kubejs:grist_primordeal_${upgrade.to}`, [
|
||||
'A B',
|
||||
' E ',
|
||||
'C D'
|
||||
], {
|
||||
'A': `kubejs:grist_agricultural_${upgrade.from}`,
|
||||
'B': `kubejs:grist_build_${upgrade.from}`,
|
||||
'C': `kubejs:grist_energetic_${upgrade.from}`,
|
||||
'D': `kubejs:grist_intelligent_${upgrade.from}`,
|
||||
'E': `kubejs:grist_primordeal_${upgrade.from}`,
|
||||
});
|
||||
|
||||
// After you've unlocked the next tier, you can use the elements of this tier plus one lower primordeal to make more primordeal
|
||||
event.shaped(`8x kubejs:grist_primordeal_${upgrade.to}_block`, [
|
||||
'AAB',
|
||||
'CEB',
|
||||
'CDD'
|
||||
], {
|
||||
'A': `kubejs:grist_agricultural_${upgrade.to}`,
|
||||
'B': `kubejs:grist_build_${upgrade.to}`,
|
||||
'C': `kubejs:grist_energetic_${upgrade.to}`,
|
||||
'D': `kubejs:grist_intelligent_${upgrade.to}`,
|
||||
'E': `kubejs:grist_primordeal_${upgrade.from}`,
|
||||
});
|
||||
|
||||
// Universal grist is cobble surrounded by lower tier universal and primordeal
|
||||
event.shaped(`kubejs:grist_universal_${upgrade.to}`, [
|
||||
'ABA',
|
||||
'BCB',
|
||||
'ABA'
|
||||
], {
|
||||
'A': `kubejs:grist_universal_${upgrade.from}`,
|
||||
'B': `kubejs:grist_primordeal_${upgrade.from}`,
|
||||
'C': '#forge:cobblestone'
|
||||
});
|
||||
})
|
||||
|
||||
// Basic primordeal gets a special case..
|
||||
event.shaped(`4x kubejs:grist_primordeal_basic_block`, [
|
||||
'AAB',
|
||||
'CEB',
|
||||
'CDD'
|
||||
], {
|
||||
'A': `kubejs:grist_agricultural_basic`,
|
||||
'B': `kubejs:grist_build_basic`,
|
||||
'C': `kubejs:grist_energetic_basic`,
|
||||
'D': `kubejs:grist_intelligent_basic`,
|
||||
'E': '#forge:cobblestone',
|
||||
});
|
||||
|
||||
// Finally, start creative-tier grist
|
||||
event.shaped('kubejs:grist_universal_basic', [
|
||||
'A B',
|
||||
' E ',
|
||||
'C D'
|
||||
], {
|
||||
'A': '#kubejs:grist/agricultural/radiant',
|
||||
'B': '#kubejs:grist/build/radiant',
|
||||
'C': '#kubejs:grist/energetic/radiant',
|
||||
'D': '#kubejs:grist/intelligent/radiant',
|
||||
'E': '#kubejs:grist/primordeal/radiant'
|
||||
})
|
||||
});
|
23
kubejs/server_scripts/grist/tags.js
Executable file
23
kubejs/server_scripts/grist/tags.js
Executable file
@ -0,0 +1,23 @@
|
||||
|
||||
ServerEvents.tags('item', event => {
|
||||
global.Grist.forEach(grist => {
|
||||
grist.tags().forEach(tagName => {
|
||||
event.add(tagName, grist.id());
|
||||
});
|
||||
});
|
||||
/*global.GRIST_ELEMENTS.forEach(element => {
|
||||
global.GRIST_TIERS.forEach(tier => {
|
||||
event.add(`kubejs:grist/${element}/${tier}`, `kubejs:grist_${element}_${tier}`)
|
||||
event.add(`kubejs:grist/${element}`, `kubejs:grist_${element}_${tier}`)
|
||||
event.add(`kubejs:grist/${element}/${tier}`, `kubejs:grist_universal_${tier}`)
|
||||
event.add('kubejs:grist', `kubejs:grist_${element}_${tier}`)
|
||||
})
|
||||
})
|
||||
|
||||
global.GRIST_PRIMITIVES.forEach(element => {
|
||||
global.GRIST_TIERS.forEach(tier => {
|
||||
event.add(`kubejs:grist/${element}/${tier}`, `kubejs:grist_${element}_${tier}`)
|
||||
event.add('kubejs:grist', `kubejs:grist_${element}_${tier}`)
|
||||
})
|
||||
})*/
|
||||
});
|
44
kubejs/server_scripts/init.js
Executable file
44
kubejs/server_scripts/init.js
Executable file
@ -0,0 +1,44 @@
|
||||
// priority: 0
|
||||
|
||||
global.metalForm = (metal, tag, form, qty) => {
|
||||
if (qty == undefined) {
|
||||
qty = 1;
|
||||
}
|
||||
let itemType = AlmostUnified.getPreferredItemForTag(`forge:${tag}/${metal}`);
|
||||
if (itemType.id == 'minecraft:air') {
|
||||
console.log(`metals: ${metal} ${form} has unknown tag forge:${tag}/${metal}?`)
|
||||
let ret = Item.of(`alltheores:${metal}_${form}`);
|
||||
if (ret.id == "minecraft:air") {
|
||||
return Item.of(`thermal:${metal}_${form}`);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
console.log(`metals: forge:${tag}/${metal} found`);
|
||||
return itemType;
|
||||
}
|
||||
|
||||
global.dustItem = (material, qty) => {
|
||||
return global.metalForm(material, 'dusts', 'dust', qty);
|
||||
}
|
||||
|
||||
global.ingotItem = (material, qty) => {
|
||||
return global.metalForm(material, 'ingots', 'ingot', qty);
|
||||
}
|
||||
|
||||
global.gearItem = (material, qty) => {
|
||||
return global.metalForm(material, 'gears', 'gear', qty);
|
||||
}
|
||||
|
||||
global.nuggetItem = (material, qty) => {
|
||||
return global.metalForm(material, 'nuggets', 'nugget', qty);
|
||||
}
|
||||
|
||||
global.replaceInputs = (evt, filter, replaceMap) => {
|
||||
replaceMap.forEach(mapped => {
|
||||
evt.replaceInput(
|
||||
filter,
|
||||
mapped[0],
|
||||
mapped[1]
|
||||
);
|
||||
})
|
||||
}
|
0
kubejs/server_scripts/malloc-balance.js
Executable file
0
kubejs/server_scripts/malloc-balance.js
Executable file
225
kubejs/server_scripts/ore-processing.js
Executable file
225
kubejs/server_scripts/ore-processing.js
Executable file
@ -0,0 +1,225 @@
|
||||
ServerEvents.recipes(event => {
|
||||
// Metal tiers:
|
||||
// Copper, iron, tin, nickel, gold, zinc, brass, invar, bronze - Pre-basic build tier, the only ores that don't require a pulverizer or smelter to process
|
||||
// silver, platinum, lead, iridum, osmium - Gated behind the pulverizer
|
||||
// lumium, enderium, electrum, signalum, steel - Alloys are gated behind the smelter as well
|
||||
// uranium - requires basic energetic grist to energize into ingots
|
||||
|
||||
// Gear tiers:
|
||||
// copper, iron, tin, nickel, zinc, brass, bronze - Pre-gear die tier
|
||||
// invar, bronze, brass - the only alloys you can make without grist
|
||||
// constantan - requires 1 build grist to make the dust alloy
|
||||
// invar, gold, silver, electrum, signalum, lead, steel - Gated behind gear die
|
||||
// lumium, enderium, other alloys - Gated behind heavy duty gear die
|
||||
|
||||
let metalForm = (metal, tag, form) => {
|
||||
let itemType = AlmostUnified.getPreferredItemForTag(`forge:${tag}/${metal}`);
|
||||
if (itemType.id == 'minecraft:air') {
|
||||
console.log(`metals: ${metal} ${form} has unknown tag forge:${tag}/${metal}?`)
|
||||
let ret = Item.of(`alltheores:${metal}_${form}`);
|
||||
if (ret.id == "minecraft:air") {
|
||||
return Item.of(`thermal:${metal}_${form}`);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
console.log(`metals: forge:${tag}/${metal} found`);
|
||||
return itemType;
|
||||
}
|
||||
|
||||
event.shapeless('thermal:quartz_dust', ['8x minecraft:granite', '#alltheores:ore_hammers']);
|
||||
event.shapeless('thermal:quartz_dust', ['minecraft:quartz', '#alltheores:ore_hammers']);
|
||||
|
||||
// All metals can be processed in the pulverizer, make plates in the press, and make gears with the die
|
||||
{
|
||||
let _ = ['copper', 'rose_gold', 'aluminum', 'constantan', 'iron', 'tin', 'nickel', 'gold', 'zinc', 'brass', 'invar', 'bronze', 'silver', 'platinum', 'lead', 'iridium', 'osmium', 'lumium', 'enderium', 'electrum', 'signalum', 'steel', 'uranium'].forEach(metal => {
|
||||
console.log(`Setting up ${metal} processing...`);
|
||||
|
||||
let gearType = metalForm(metal, 'gears', 'gear');
|
||||
let dustType = metalForm(metal, 'dusts', 'dust');
|
||||
let plateType = metalForm(metal, 'plates', 'plate');
|
||||
let ingotType = metalForm(metal, 'ingots', 'ingot');
|
||||
let rawType = metalForm(metal, 'raw_materials', 'ore');
|
||||
let blockType = metalForm(`raw_${metal}`, 'storage_blocks', 'block');
|
||||
|
||||
event.remove({output: gearType});
|
||||
event.remove({output: plateType});
|
||||
|
||||
event.remove({input: `#forge:ores/${metal}`});
|
||||
event.remove({input: `#forge:raw_materials/${metal}`});
|
||||
|
||||
// By default, you can't make any blends in the crafting table.
|
||||
event.remove({output: dustType, type: 'minecraft:crafting'});
|
||||
event.remove({output: ingotType, input: 'minecraft:fire_charge'});
|
||||
|
||||
event.remove({id: `alltheores:${metal}_dust_from_alloy_blending`});
|
||||
|
||||
console.log(`crushing ${rawType.toJson()} ${dustType.toJson()}`);
|
||||
if (rawType.id != "minecraft:air") {
|
||||
event.custom({
|
||||
type: "thermal:pulverizer",
|
||||
ingredients: [
|
||||
{tag: `forge:raw_materials/${metal}`}
|
||||
],
|
||||
result: [
|
||||
{item: dustType.id, chance: 1.05},
|
||||
{item: dustType.id, chance: 0.25}
|
||||
],
|
||||
experience: 0.5
|
||||
});
|
||||
}
|
||||
|
||||
if (blockType.id != "minecraft:air") {
|
||||
event.custom({
|
||||
type: "thermal:pulverizer",
|
||||
ingredients: [
|
||||
{tag: `forge:storage_blocks/raw_${metal}`}
|
||||
],
|
||||
result: [
|
||||
{item: dustType.id, chance: 1.05 * 9},
|
||||
{item: dustType.id, chance: 0.25 * 9}
|
||||
],
|
||||
experience: 0.5
|
||||
});
|
||||
}
|
||||
|
||||
// 1 dust = 1 ingot
|
||||
event.custom({
|
||||
type: "thermal:pulverizer",
|
||||
ingredients: [
|
||||
ingotType.toJson()
|
||||
],
|
||||
result: [
|
||||
dustType.toJson()
|
||||
],
|
||||
});
|
||||
|
||||
// 4 ingots = 1 gear
|
||||
event.custom({
|
||||
type: "thermal:press",
|
||||
ingredients: [
|
||||
ingotType.withCount(4).toJson(),
|
||||
{ item: "thermal:press_gear_die" }
|
||||
],
|
||||
result: [gearType.toJson()]
|
||||
});
|
||||
|
||||
// 1 ingot = 1 plate
|
||||
event.custom({
|
||||
type: "thermal:press",
|
||||
ingredients: [
|
||||
ingotType.toJson(),
|
||||
],
|
||||
result: [plateType.toJson()]
|
||||
});
|
||||
});}
|
||||
|
||||
// But only these metals can be processed without a machine
|
||||
{let _ = ['copper', 'iron', 'tin', 'nickel', 'zinc', 'brass', 'bronze', 'lead', 'aluminum'].forEach(metal => {
|
||||
console.log(`Setting up ${metal} manual processing...`);
|
||||
let gearID = metalForm(metal, 'gears', 'gear');
|
||||
let plateID = metalForm(metal, 'plates', 'plate');
|
||||
let dustID = metalForm(metal, 'dusts', 'dust');
|
||||
event.shaped(gearID, [
|
||||
' A ',
|
||||
'ABA',
|
||||
' A '
|
||||
], {
|
||||
'A': global.ingotItem(metal),
|
||||
'B': '#forge:gems'
|
||||
});
|
||||
event.shapeless(plateID, [global.ingotItem(metal, 2), '#alltheores:ore_hammers']);
|
||||
event.shapeless(dustID, [global.ingotItem(metal), '#alltheores:ore_hammers']);
|
||||
});}
|
||||
|
||||
// And only these ores can be hammered
|
||||
{let _ = ['copper', 'iron', 'tin', 'nickel', 'zinc', 'lead', 'aluminum', 'gold'].forEach(ore => {
|
||||
console.log(`Setting up ${ore} hammering...`);
|
||||
let dustType = metalForm(ore, 'dusts', 'dust');
|
||||
event.shapeless(dustType.withCount(2), [`#forge:raw_materials/${ore}`, '#alltheores:ore_hammers']);
|
||||
event.shapeless(dustType.withCount(2 * 9), [`#forge:storage_blocks/raw_${ore}`, '#alltheores:ore_hammers']);
|
||||
});}
|
||||
|
||||
// And only copper can be smelted without pulverizing
|
||||
event.smelting(global.ingotItem('copper'), metalForm('copper', 'raw_materials', 'ore'));
|
||||
|
||||
console.log(`Setting up blends...`);
|
||||
// These are the only blends you can make by hand, aka pre-smelter alloys
|
||||
event.shapeless(Item.of(metalForm('bronze', 'dusts', 'dust').withCount(2)), [
|
||||
global.dustItem('tin', 2),
|
||||
global.dustItem('copper', 2),
|
||||
'#alltheores:ore_hammers'
|
||||
]);
|
||||
event.shapeless(Item.of(metalForm('brass', 'dusts', 'dust').withCount(2)), [
|
||||
global.dustItem('copper', 3),
|
||||
global.dustItem('zinc'),
|
||||
'#alltheores:ore_hammers'
|
||||
]);
|
||||
event.shapeless(Item.of(metalForm('invar', 'dusts', 'dust').withCount(2)), [
|
||||
global.dustItem('iron', 2),
|
||||
global.dustItem('nickel', 2),
|
||||
'#alltheores:ore_hammers'
|
||||
]);
|
||||
|
||||
// Constantan dust consumes your first build grist, and it unlocks the basic grist production line
|
||||
event.shapeless(Item.of(metalForm('constantan', 'dusts', 'dust').withCount(4)),[
|
||||
global.ingotItem('nickel', 2), global.ingotItem('copper', 2), '#kubejs:grist/build/basic', '#alltheores:ore_hammers'
|
||||
]);
|
||||
// Constantan is the only metal you can't work on the bench except for gears
|
||||
event.shaped('thermal:constantan_gear', [
|
||||
' A ',
|
||||
'ABA',
|
||||
' A '
|
||||
], {
|
||||
'A': global.ingotItem('constantan'),
|
||||
'B': '#forge:gems'
|
||||
});
|
||||
|
||||
event.shaped('thermal:diamond_gear', [
|
||||
' A ',
|
||||
'ABA',
|
||||
' A '
|
||||
], {
|
||||
'A': 'minecraft:diamond',
|
||||
'B': 'minecraft:crying_obsidian'
|
||||
});
|
||||
|
||||
// Lapis can be pulverized and hammered.
|
||||
event.remove({output: 'thermal:lapis_dust', type: 'thermal:pulverizer'});
|
||||
event.custom({
|
||||
type: "thermal:pulverizer",
|
||||
ingredients: [
|
||||
{ item: "minecraft:lapis_lazuli" }
|
||||
],
|
||||
result: [
|
||||
{ item: "thermal:lapis_dust", chance: 1.05 },
|
||||
{ item: "thermal:lapis_dust", chance: 0.25 }
|
||||
],
|
||||
experience: 0.5
|
||||
});
|
||||
event.shapeless("2x thermal:lapis_dust", ["minecraft:lapis_lazuli", '#alltheores:ore_hammers']);
|
||||
|
||||
// Create clay by centrifuging gravel and ash bricks
|
||||
event.custom({
|
||||
type: "thermal:centrifuge",
|
||||
ingredients: [
|
||||
{ item: "supplementaries:ash_brick" }
|
||||
],
|
||||
result: [
|
||||
{ item: "minecraft:clay_ball", chance: 1.05 },
|
||||
{ item: "minecraft:clay_ball", chance: 0.25 }
|
||||
],
|
||||
experience: 0.5
|
||||
});
|
||||
|
||||
event.custom({
|
||||
type: "thermal:centrifuge",
|
||||
ingredients: [
|
||||
{ item: "minecraft:gravel" }
|
||||
],
|
||||
result: [
|
||||
{ item: "minecraft:sand", chance: 2.00 },
|
||||
{ item: "minecraft:clay_ball", chance: 0.75 }
|
||||
],
|
||||
experience: 0.5
|
||||
});
|
||||
})
|
56
kubejs/server_scripts/progression/report.js
Executable file
56
kubejs/server_scripts/progression/report.js
Executable file
@ -0,0 +1,56 @@
|
||||
// priority: -9999
|
||||
|
||||
ServerEvents.recipes(event => {
|
||||
return;
|
||||
console.log("reporting uncraftables");
|
||||
global.uncraftables.uncraftable.forEach(uncraftable => {
|
||||
console.log(`===== ${uncraftable}`);
|
||||
event.forEachRecipe({output: uncraftable}, recipe => {
|
||||
console.log(recipe.json.toString());
|
||||
});
|
||||
console.log('=== inputs');
|
||||
event.forEachRecipe({input: uncraftable}, recipe => {
|
||||
console.log(recipe.json.get('result').toString());
|
||||
});
|
||||
});
|
||||
|
||||
let _ = ['build', 'agricultural', 'intelligent', 'energetic'].forEach(element => {
|
||||
let __ = ['basic', 'improved', 'radiant'].forEach(tier => {
|
||||
console.log(`===== ${tier} ${element}:`);
|
||||
event.forEachRecipe({input: `kubejs:grist_${element}_${tier}`}, r => {
|
||||
if (r.json.get('result') == undefined) {
|
||||
console.log(r.json.toString());
|
||||
} else {
|
||||
console.log(r.json.get('result').toString());
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
/*event.forEachRecipe({}, recipe => {
|
||||
global.uncraftables.uncraftable.forEach(uncrafableItem => {
|
||||
let asJson = recipe.json;
|
||||
let foundResults = [];
|
||||
console.log(recipe.outputValues());
|
||||
console.log(asJson.toString());
|
||||
console.log(recipe.getType());
|
||||
if (recipe.getType() == 'farmersdelight:cutting') {
|
||||
//foundResults = [asJson.get('result').get('item')];
|
||||
asJson.get('result').forEach(result => {
|
||||
foundResults.push(result.get('item'));
|
||||
});
|
||||
} else {
|
||||
foundResults = [asJson.get('result').get('item')];
|
||||
}
|
||||
if (foundResults == []) {
|
||||
console.log(`unknown result in ${asJson.toString()}`);
|
||||
} else {
|
||||
foundResults.forEach(output => {
|
||||
console.log(output);
|
||||
if (output == uncrafableItem) {
|
||||
console.log('found uncraftable item:', recipe.json.toString());
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});*/
|
||||
});
|
78
kubejs/server_scripts/progression/uncraftables.js
Executable file
78
kubejs/server_scripts/progression/uncraftables.js
Executable file
@ -0,0 +1,78 @@
|
||||
// priority: 1
|
||||
|
||||
let unusableItems = [
|
||||
'industrialforegoing:infinity_drill',
|
||||
'industrialforegoing:infinity_backpack',
|
||||
'industrialforegoing:infinity_trident',
|
||||
'industrialforegoing:infinity_saw',
|
||||
'industrialforegoing:infinity_hammer',
|
||||
'industrialforegoing:infinity_launcher',
|
||||
'industrialforegoing:infinity_nuke',
|
||||
'industrialforegoing:infinity_charger',
|
||||
|
||||
'powder_power:hammer_alchemist',
|
||||
'powder_power:hammer_motar_pestle',
|
||||
'powder_power:wand_alchemist',
|
||||
];
|
||||
|
||||
let uncraftableItems = [
|
||||
'ars_nouveau:imbuement_chamber',
|
||||
'ars_nouveau:novice_spell_book',
|
||||
'ars_nouveau:dominion_wand',
|
||||
'powah:dielectric_paste',
|
||||
'powah:spirited_crystal',
|
||||
'powah:niotic_crystal',
|
||||
'powah:capacitor_basic_tiny',
|
||||
'powah:capacitor_basic',
|
||||
'powah:dielectric_casing',
|
||||
'powah:aerial_pearl',
|
||||
'powah:ender_core',
|
||||
'prettypipes:blank_module',
|
||||
'ae2:printed_logic_processor',
|
||||
'ae2:printed_engineering_processor',
|
||||
'ae2:printed_calculation_processor',
|
||||
'ae2:printed_silicon',
|
||||
'ae2:quartz_glass',
|
||||
'bountiful:bountyboard',
|
||||
'bountiful:decree',
|
||||
'miapi:modular_work_bench',
|
||||
'immersive_aircraft:airship',
|
||||
'immersive_aircraft:industrial_gears',
|
||||
'ironfurnaces:augment_generator',
|
||||
'croptopia:dough',
|
||||
'darkutils:blank_plate',
|
||||
'darkutils:damage_plate_player',
|
||||
'darkutils:damage_plate',
|
||||
'croptopia:flour',
|
||||
"sophisticatedstorage:storage_link"
|
||||
];
|
||||
|
||||
let uncraftableVanilla = [
|
||||
"thermal:tomato_sauce",
|
||||
"thermal:peanut_butter"
|
||||
];
|
||||
|
||||
global.uncraftables = {uncraftable: uncraftableItems, unusable: unusableItems}
|
||||
|
||||
ServerEvents.recipes(event => {
|
||||
|
||||
//event.remove({id: 'industrialforegoing:iron_gear'});
|
||||
//event.remove({id: 'industrialforegoing:gold_gear'});
|
||||
//event.remove({id: 'industrialforegoing:diamond_gear'});
|
||||
|
||||
event.remove({output: 'ars_nouveau:source_gem', type: 'ars_nouveau:imbuement'});
|
||||
|
||||
uncraftableVanilla.forEach(item => {
|
||||
event.remove({output: item, type: 'minecraft:crafting'});
|
||||
})
|
||||
|
||||
unusableItems.forEach(item => {
|
||||
event.remove({output: item});
|
||||
event.remove({input: item});
|
||||
})
|
||||
|
||||
uncraftableItems.forEach(item => {
|
||||
event.remove({output: item});
|
||||
})
|
||||
|
||||
});
|
27
kubejs/server_scripts/tags.js
Executable file
27
kubejs/server_scripts/tags.js
Executable file
@ -0,0 +1,27 @@
|
||||
|
||||
/*
|
||||
* Tag handlng that can't be done in AlmostUnified
|
||||
*/
|
||||
|
||||
ServerEvents.tags('item', event => {
|
||||
|
||||
// Copper hoppers should count for regular hoppers
|
||||
/*['exposed', 'oxidized', 'weathered'].forEach(copperAge => {
|
||||
event.add('forge:hoppers', `everythingcopper:${copperAge}_copper_hopper`)
|
||||
event.add('forge:hoppers', `everythingcopper:waxed_${copperAge}_copper_hopper`)
|
||||
});*/
|
||||
|
||||
// Farmer's Delight doesn't have rice seeds, you just plant rice grains to make more rice, which could let you completely break farming grist.
|
||||
event.remove('forge:seeds/rice', ['farmersdelight:rice']);
|
||||
event.remove('forge:rice_seeds', ['farmersdelight:rice']);
|
||||
});
|
||||
|
||||
ServerEvents.recipes(event => {
|
||||
|
||||
// Under soup salad sandwich theory, anything mixture including lettuce can be a salad.
|
||||
event.replaceInput(
|
||||
{mod: 'croptopia'},
|
||||
'croptopia:lettuce',
|
||||
'#forge:salad_ingredients'
|
||||
);
|
||||
});
|
Reference in New Issue
Block a user