Merge branch 'dev' of https://github.com/TerraFirmaGreg-Team/Modpack-Modern into dev
This commit is contained in:
BIN
kubejs/assets/tfg/textures/item/wood/lumber/bamboo.png
Normal file
BIN
kubejs/assets/tfg/textures/item/wood/lumber/bamboo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 570 B |
@@ -22,105 +22,6 @@ const registerAFCRecipes = (event) => {
|
||||
event.remove({ id: "afc:crafting/0_maple_sugar_bucket" })
|
||||
|
||||
|
||||
// #endregion
|
||||
|
||||
// #region Wood crafts
|
||||
|
||||
global.AFC_WOOD_TYPES.forEach(wood => {
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_axle` })
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_bladed_axle` })
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_encased_axle` })
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_clutch` })
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_gear_box` })
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_water_wheel` })
|
||||
|
||||
// Бревна -> Пиломатериалы
|
||||
generateCutterRecipe(event, `#afc:${wood}_logs`, `16x afc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_log`)
|
||||
|
||||
// Доски -> Пиломатериалы
|
||||
generateCutterRecipe(event, `afc:wood/planks/${wood}`, `4x afc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_planks`)
|
||||
|
||||
// Ступень -> Пиломатериалы
|
||||
generateCutterRecipe(event, `afc:wood/planks/${wood}_stairs`, `3x afc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_stairs`)
|
||||
|
||||
|
||||
// Плита -> Пиломатериалы
|
||||
generateCutterRecipe(event, `afc:wood/planks/${wood}_slab`, `2x afc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_slab`)
|
||||
|
||||
|
||||
|
||||
// ? -> Деревянная нажимная пластина
|
||||
event.shaped(`afc:wood/planks/${wood}_pressure_plate`, [
|
||||
' B ',
|
||||
'CDC',
|
||||
' E '
|
||||
], {
|
||||
B: '#tfc:hammers',
|
||||
C: `afc:wood/planks/${wood}_slab`,
|
||||
D: '#forge:small_springs',
|
||||
E: '#forge:tools/screwdrivers'
|
||||
}).id(`afc:crafting/wood/${wood}_pressure_plate`)
|
||||
|
||||
event.recipes.gtceu.assembler(`${wood}_pressure_plate`)
|
||||
.itemInputs('#forge:small_springs', `2x afc:wood/planks/${wood}_slab`)
|
||||
.circuit(3)
|
||||
.itemOutputs(`2x afc:wood/planks/${wood}_pressure_plate`)
|
||||
.duration(50)
|
||||
.EUt(2)
|
||||
|
||||
// ? -> Деревянная кнопка
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_button` })
|
||||
|
||||
event.shapeless(`3x afc:wood/planks/${wood}_button`, [`afc:wood/planks/${wood}_pressure_plate`, '#forge:tools/saws'])
|
||||
.id(`tfg:shapeless/saw_${wood}_pressure_plate_to_button`)
|
||||
|
||||
generateCutterRecipe(event, `afc:wood/planks/${wood}_pressure_plate`, `6x afc:wood/planks/${wood}_button`, 50, 2, `${wood}_button`)
|
||||
|
||||
//Stomping Barrel
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_stomping_barrel` })
|
||||
|
||||
event.shaped(`afc:wood/stomping_barrel/${wood}`, [
|
||||
'ABA',
|
||||
'AAA',
|
||||
'BBB'
|
||||
], {
|
||||
A: `afc:wood/lumber/${wood}`,
|
||||
B: 'tfc:glue'
|
||||
|
||||
}).id(`afc:crafting/wood/${wood}_stomping_barrel`)
|
||||
|
||||
event.recipes.gtceu.lathe(`tfg:stripping_${wood}_log`)
|
||||
.itemInputs(`afc:wood/log/${wood}`)
|
||||
.itemOutputs(`afc:wood/stripped_log/${wood}`)
|
||||
.duration(50)
|
||||
.EUt(2)
|
||||
|
||||
event.recipes.gtceu.lathe(`tfg:stripping_${wood}_wood`)
|
||||
.itemInputs(`afc:wood/wood/${wood}`)
|
||||
.itemOutputs(`afc:wood/stripped_wood/${wood}`)
|
||||
.duration(50)
|
||||
.EUt(2)
|
||||
|
||||
event.recipes.vintageimprovements.polishing(`afc:wood/stripped_log/${wood}`, `afc:wood/log/${wood}`)
|
||||
.speedLimits(0)
|
||||
.processingTime(50 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER)
|
||||
.id(`tfg:vi/lathe/stripping_${wood}_log`)
|
||||
|
||||
event.recipes.vintageimprovements.polishing(`afc:wood/stripped_wood/${wood}`, `afc:wood/wood/${wood}`)
|
||||
.speedLimits(0)
|
||||
.processingTime(50 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER)
|
||||
.id(`tfg:vi/lathe/stripping_${wood}_wood`)
|
||||
});
|
||||
|
||||
global.AFC_SAPLINGS.forEach(wood => {
|
||||
event.shaped(`4x afc:wood/fallen_leaves/${wood.sapling}`,[
|
||||
'AA',
|
||||
'AA'
|
||||
], {
|
||||
A: `afc:wood/leaves/${wood.sapling}`
|
||||
}).id(`tfg:shaped/afc/${wood.sapling}_leaves_to_fallen_leaves`);
|
||||
});
|
||||
|
||||
// #endregion
|
||||
|
||||
event.recipes.tfc.anvil('afc:tree_tap', '#forge:ingots/copper', ["hit_last", "upset_second_last", "upset_third_last"])
|
||||
@@ -239,7 +140,6 @@ const registerAFCRecipes = (event) => {
|
||||
.duration(20 * 35)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
|
||||
event.recipes.gtceu.fluid_solidifier('maple_syrup')
|
||||
.inputFluids(Fluid.of('afc:maple_syrup', 100))
|
||||
.itemOutputs('afc:maple_sugar')
|
||||
@@ -267,77 +167,12 @@ const registerAFCRecipes = (event) => {
|
||||
.outputItem('afc:birch_sugar')
|
||||
.id('tfg:barrel/birch_syrup_to_sugar')
|
||||
|
||||
const MORE_STRIPPING = [
|
||||
{ wood: 'black_oak', stripped: 'oak', stripped_mod: 'tfc' },
|
||||
{ wood: 'rainbow_eucalyptus', stripped: 'eucalyptus', stripped_mod: 'afc' },
|
||||
{ wood: 'gum_arabic', stripped: 'acacia', stripped_mod: 'tfc' },
|
||||
{ wood: 'redcedar', stripped: 'cypress', stripped_mod: 'afc' },
|
||||
{ wood: 'rubber_fig', stripped: 'fig', stripped_mod: 'afc' },
|
||||
{ wood: 'poplar', stripped: 'aspen', stripped_mod: 'tfc' }
|
||||
];
|
||||
|
||||
MORE_STRIPPING.forEach(x => {
|
||||
event.recipes.gtceu.lathe(`tfg:stripping_${x.wood}_log`)
|
||||
.itemInputs(`afc:wood/log/${x.wood}`)
|
||||
.itemOutputs(`${x.stripped_mod}:wood/stripped_log/${x.stripped}`)
|
||||
.duration(50)
|
||||
.EUt(2)
|
||||
|
||||
event.recipes.gtceu.lathe(`tfg:stripping_${x.wood}_wood`)
|
||||
.itemInputs(`afc:wood/wood/${x.wood}`)
|
||||
.itemOutputs(`${x.stripped_mod}:wood/stripped_wood/${x.stripped}`)
|
||||
.duration(50)
|
||||
.EUt(2)
|
||||
|
||||
event.recipes.vintageimprovements.polishing(`${x.stripped_mod}:wood/stripped_log/${x.stripped}`, `afc:wood/log/${x.wood}`)
|
||||
.speedLimits(0)
|
||||
.processingTime(50 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER)
|
||||
.id(`tfg:vi/lathe/stripping_${x.wood}_log`)
|
||||
|
||||
event.recipes.vintageimprovements.polishing(`${x.stripped_mod}:wood/stripped_wood/${x.stripped}`, `afc:wood/wood/${x.wood}`)
|
||||
.speedLimits(0)
|
||||
.processingTime(50 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER)
|
||||
.id(`tfg:vi/lathe/stripping_${x.wood}_wood`)
|
||||
})
|
||||
|
||||
/**
|
||||
* @property {Array} afcWoodRecyclingIndex - Wood recycling material index.
|
||||
*/
|
||||
const afcWoodRecyclingIndex = [
|
||||
['afc:wood/chest_minecart/{type}', ['{wood}', 4, GTMaterials.WroughtIron, 5]],
|
||||
['afc:wood/planks/{type}', ['{wood}', 8]],
|
||||
['afc:wood/planks/{type}_door', ['{wood}', 6]],
|
||||
['afc:wood/planks/{type}_trapdoor', ['{wood}', 4]],
|
||||
['afc:wood/planks/{type}_fence', ['{wood}', 4]],
|
||||
['afc:wood/planks/{type}_log_fence', ['{wood}', 8]],
|
||||
['afc:wood/planks/{type}_fence_gate', ['{wood}', 8]],
|
||||
['afc:wood/planks/{type}_slab', ['{wood}', 2]],
|
||||
['afc:wood/planks/{type}_stairs', ['{wood}', 3]],
|
||||
['afc:wood/planks/{type}_pressure_plate', ['{wood}', 4]],
|
||||
['afc:wood/planks/{type}_button', ['{wood}', 1]],
|
||||
['afc:wood/chest/{type}', ['{wood}', 16]],
|
||||
['afc:wood/trapped_chest/{type}', ['{wood}', 16, GTMaterials.WroughtIron, 4/9, GTMaterials.Wood, 1]]
|
||||
];
|
||||
/**
|
||||
* @param {Array} materials
|
||||
* @param {string} woodMaterial
|
||||
* @return {Array}
|
||||
*/
|
||||
function resolveArgs(materials, woodMaterial) {
|
||||
return materials.map(materials => materials === '{wood}' ? woodMaterial : materials);
|
||||
};
|
||||
global.AFC_HARDWOOD_TYPES.forEach(type => {
|
||||
afcWoodRecyclingIndex.forEach(([template, args]) => {
|
||||
const item = template.replace('{type}', type);
|
||||
const resolvedArgs = resolveArgs(args, GTMaterials.get('hardwood'));
|
||||
TFGHelpers.registerMaterialInfo(item, resolvedArgs);
|
||||
});
|
||||
});
|
||||
global.AFC_SOFTWOOD_TYPES.forEach(type => {
|
||||
afcWoodRecyclingIndex.forEach(([template, args]) => {
|
||||
const item = template.replace('{type}', type);
|
||||
const resolvedArgs = resolveArgs(args, GTMaterials.Wood);
|
||||
TFGHelpers.registerMaterialInfo(item, resolvedArgs);
|
||||
});
|
||||
});
|
||||
global.AFC_SAPLINGS.forEach(wood => {
|
||||
event.shaped(`4x afc:wood/fallen_leaves/${wood.sapling}`,[
|
||||
'AA',
|
||||
'AA'
|
||||
], {
|
||||
A: `afc:wood/leaves/${wood.sapling}`
|
||||
}).id(`tfg:shaped/afc/${wood.sapling}_leaves_to_fallen_leaves`);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -22,20 +22,6 @@ const registerBeneathRecipes = (event) => {
|
||||
event.remove({ id: 'beneath:crafting/hellbricks' })
|
||||
event.remove({ id: 'beneath:crafting/nether_brick' })
|
||||
event.remove({ id: 'beneath:quern/slime' })
|
||||
event.remove({ id: 'beneath:crafting/wood/crimson_planks' })
|
||||
event.remove({ id: 'beneath:crafting/wood/crimson_slab' })
|
||||
event.remove({ id: 'beneath:crafting/wood/crimson_button' })
|
||||
event.remove({ id: 'beneath:crafting/wood/crimson_pressure_plate' })
|
||||
event.remove({ id: 'beneath:crafting/wood/crimson_lumber_log' })
|
||||
event.remove({ id: 'beneath:crafting/wood/crimson_lumber_planks' })
|
||||
event.remove({ id: 'beneath:crafting/wood/crimson_slab_undo' })
|
||||
event.remove({ id: 'beneath:crafting/wood/warped_planks' })
|
||||
event.remove({ id: 'beneath:crafting/wood/warped_slab' })
|
||||
event.remove({ id: 'beneath:crafting/wood/warped_button' })
|
||||
event.remove({ id: 'beneath:crafting/wood/warped_pressure_plate' })
|
||||
event.remove({ id: 'beneath:crafting/wood/warped_lumber_log' })
|
||||
event.remove({ id: 'beneath:crafting/wood/warped_lumber_planks' })
|
||||
event.remove({ id: 'beneath:crafting/wood/warped_slab_undo' })
|
||||
event.remove({ id: 'beneath:crafting/ancient_altar' })
|
||||
|
||||
event.shaped('beneath:unposter', [
|
||||
@@ -99,43 +85,4 @@ const registerBeneathRecipes = (event) => {
|
||||
], {
|
||||
A: `beneath:wood/leaves/warped`
|
||||
}).id(`tfg:shaped/beneath/warped_leaves_to_fallen_leaves`);
|
||||
|
||||
|
||||
/**
|
||||
* @property {Array} beneathWoodRecyclingIndex - Wood recycling material index.
|
||||
*/
|
||||
const beneathWoodRecyclingIndex = [
|
||||
['beneath:wood/chest_minecart/{type}', ['{wood}', 4, GTMaterials.WroughtIron, 5]],
|
||||
['beneath:wood/planks/{type}', ['{wood}', 8]],
|
||||
['beneath:wood/planks/{type}_door', ['{wood}', 6]],
|
||||
['beneath:wood/planks/{type}_trapdoor', ['{wood}', 4]],
|
||||
['beneath:wood/planks/{type}_fence', ['{wood}', 4]],
|
||||
['beneath:wood/planks/{type}_log_fence', ['{wood}', 8]],
|
||||
['beneath:wood/planks/{type}_fence_gate', ['{wood}', 8]],
|
||||
['beneath:wood/planks/{type}_slab', ['{wood}', 2]],
|
||||
['beneath:wood/planks/{type}_stairs', ['{wood}', 3]],
|
||||
['beneath:wood/planks/{type}_pressure_plate', ['{wood}', 4]],
|
||||
['beneath:wood/planks/{type}_button', ['{wood}', 1]],
|
||||
['beneath:wood/chest/{type}', ['{wood}', 16]],
|
||||
['beneath:wood/trapped_chest/{type}', ['{wood}', 16, GTMaterials.WroughtIron, 4/9, GTMaterials.Wood, 1]]
|
||||
];
|
||||
/**
|
||||
* @param {Array} materials
|
||||
* @param {string} woodMaterial
|
||||
* @return {Array}
|
||||
*/
|
||||
function resolveArgs(materials, woodMaterial) {
|
||||
return materials.map(materials => materials === '{wood}' ? woodMaterial : materials);
|
||||
};
|
||||
|
||||
beneathWoodRecyclingIndex.forEach(([template, args]) => {
|
||||
const item = template.replace('{type}', 'crimson');
|
||||
const resolvedArgs = resolveArgs(args, GTMaterials.get('hardwood'));
|
||||
TFGHelpers.registerMaterialInfo(item, resolvedArgs);
|
||||
});
|
||||
beneathWoodRecyclingIndex.forEach(([template, args]) => {
|
||||
const item = template.replace('{type}', 'warped');
|
||||
const resolvedArgs = resolveArgs(args, GTMaterials.Wood);
|
||||
TFGHelpers.registerMaterialInfo(item, resolvedArgs);
|
||||
});
|
||||
}
|
||||
@@ -875,11 +875,9 @@ function removeGTCEURecipes(event) {
|
||||
|
||||
// Remove Default Pressure Plate Recipes
|
||||
const MC_PRESSURE_PLATES = [
|
||||
'bamboo',
|
||||
'polished_blackstone',
|
||||
'light_weighted',
|
||||
'heavy_weighted',
|
||||
'treated'
|
||||
]
|
||||
MC_PRESSURE_PLATES.forEach(material => {
|
||||
event.remove({ id: `gtceu:shaped/${material}_pressure_plate` })
|
||||
|
||||
@@ -155,189 +155,6 @@ function addCircuitToRecipe(event, recipeId, circuitNumber) {
|
||||
recipe.json.add("inputs", inputsObj);
|
||||
});
|
||||
}
|
||||
//#endregion
|
||||
|
||||
//#region Wood Builder
|
||||
|
||||
/**
|
||||
* Generates most basic wooden recipes.
|
||||
*
|
||||
* All parameters are optional. Name is used for the ID.
|
||||
*
|
||||
* @param {*} event
|
||||
* @param {string} name -Name of the wood.
|
||||
* @param {string} lumber -ID for the lumber.
|
||||
* @param {string} logs -Tag or ID for all the logs.
|
||||
* @param {string} log -ID for the regular log.
|
||||
* @param {string} stripped_log -ID for the stripped log.
|
||||
* @param {string} plank -ID for planks.
|
||||
* @param {string} stair -ID for stairs.
|
||||
* @param {string} slab -ID for slabs.
|
||||
* @param {string} door -ID for the door.
|
||||
* @param {string} trapdoor -ID for the trapdoor.
|
||||
* @param {string} fence -ID for the fence.
|
||||
* @param {string} fence_gate -ID for the fence gate.
|
||||
* @param {string} support -ID for the support.
|
||||
* @param {string} pressure_plate -ID for the pressure plate.
|
||||
* @param {string} button -ID for the button.
|
||||
*/
|
||||
function woodBuilder(event, name, lumber, logs, log, stripped_log, plank, stair, slab, door, trapdoor, fence, fence_gate, support, pressure_plate, button) {
|
||||
|
||||
if (log && stripped_log && name) {
|
||||
event.recipes.gtceu.lathe(`tfg:cutter/${name}_stripped_log_from_log`)
|
||||
.itemInputs(log)
|
||||
.itemOutputs(stripped_log)
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.vintageimprovements.polishing(stripped_log, log)
|
||||
.speedLimits(0)
|
||||
.processingTime(50 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER)
|
||||
.id(`tfg:vi/lathe/stripping_${name}_log`)
|
||||
}
|
||||
|
||||
if (logs && lumber && name) {
|
||||
event.shapeless(`8x ${lumber}`,
|
||||
[logs, '#forge:tools/saws']
|
||||
).id(`tfg:shapeless/${name}_lumber_from_log`)
|
||||
|
||||
generateCutterRecipe(event, logs, `16x ${lumber}`, 50, 7, `cutter_${name}_lumber_from_log`)
|
||||
}
|
||||
|
||||
if (plank && lumber && name) {
|
||||
event.shapeless(`4x ${lumber}`,
|
||||
[plank, '#forge:tools/saws']
|
||||
).id(`tfg:shapeless/${name}_lumber_from_plank`)
|
||||
|
||||
generateCutterRecipe(event, plank, `4x ${lumber}`, 50, 7, `cutter_${name}_lumber_from_plank`)
|
||||
|
||||
event.shaped(plank, [
|
||||
'AA',
|
||||
'AA'
|
||||
], {
|
||||
A: lumber
|
||||
}).id(`tfg:shaped/${name}_plank_from_lumber`)
|
||||
}
|
||||
|
||||
if (slab && lumber && name) {
|
||||
event.shapeless(`2x ${lumber}`,
|
||||
[slab, '#forge:tools/saws']
|
||||
).id(`tfg:shapeless/${name}_lumber_from_slab`)
|
||||
|
||||
generateCutterRecipe(event, slab, `2x ${lumber}`, 50, 7, `cutter_${name}_lumber_from_slab`)
|
||||
}
|
||||
|
||||
if (slab && plank && name) {
|
||||
event.shaped(`6x ${slab}`, [
|
||||
'AAA'
|
||||
], {
|
||||
A: plank
|
||||
}).id(`tfg:shaped/${name}_slab_from_plank`)
|
||||
}
|
||||
|
||||
if (stair && lumber && name) {
|
||||
event.shapeless(`3x ${lumber}`,
|
||||
[stair, '#forge:tools/saws']
|
||||
).id(`tfg:shapeless/${name}_lumber_from_stair`)
|
||||
|
||||
generateCutterRecipe(event, stair, `3x ${lumber}`, 50, 7, `cutter_${name}_lumber_from_stair`)
|
||||
}
|
||||
|
||||
if (stair && plank && name) {
|
||||
event.shaped(`8x ${stair}`, [
|
||||
'A ',
|
||||
'AA ',
|
||||
'AAA'
|
||||
], {
|
||||
A: plank
|
||||
}).id(`tfg:shaped/${name}_stair_from_plank`)
|
||||
}
|
||||
|
||||
if (door && lumber && name) {
|
||||
event.shaped(`2x ${door}`, [
|
||||
'AA',
|
||||
'AA',
|
||||
'AA'
|
||||
], {
|
||||
A: lumber
|
||||
}).id(`tfg:shaped/${name}_door_from_lumber`)
|
||||
}
|
||||
|
||||
if (trapdoor && lumber && name) {
|
||||
event.shaped(`3x ${trapdoor}`, [
|
||||
'AAA',
|
||||
'AAA'
|
||||
], {
|
||||
A: lumber
|
||||
}).id(`tfg:shaped/${name}_trapdoor_from_lumber_and_plank`)
|
||||
}
|
||||
|
||||
if (fence && lumber && plank && name) {
|
||||
event.shaped(`8x ${fence}`, [
|
||||
'ABA',
|
||||
'ABA'
|
||||
], {
|
||||
A: lumber,
|
||||
B: plank
|
||||
}).id(`tfg:shaped/${name}_fence_from_lumber_and_plank`)
|
||||
}
|
||||
|
||||
if (fence_gate && lumber && plank && name) {
|
||||
event.shaped(`2x ${fence_gate}`, [
|
||||
'ABA',
|
||||
'ABA'
|
||||
], {
|
||||
A: plank,
|
||||
B: lumber
|
||||
}).id(`tfg:shaped/${name}_fence_gate_from_lumber_and_plank`)
|
||||
}
|
||||
|
||||
if (support && logs && name) {
|
||||
event.shapeless(`8x ${support}`,
|
||||
[`2x ${logs}`, '#forge:tools/saws']
|
||||
).id(`tfg:shapeless/${name}_support_from_logs`)
|
||||
|
||||
event.recipes.gtceu.assembler(`tfg:assembler/${name}_support_from_logs`)
|
||||
.itemInputs(`2x ${logs}`)
|
||||
.itemOutputs(`8x ${support}`)
|
||||
.duration(50)
|
||||
.circuit(4)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
}
|
||||
|
||||
if (pressure_plate && slab && name) {
|
||||
event.shaped(pressure_plate, [
|
||||
' B ',
|
||||
'ACA',
|
||||
' D '
|
||||
], {
|
||||
A: slab,
|
||||
B: '#forge:tools/hammers',
|
||||
C: '#forge:springs',
|
||||
D: '#forge:tools/screwdrivers'
|
||||
}).id(`tfg:shaped/${name}_pressure_plate`)
|
||||
|
||||
event.recipes.gtceu.assembler(`tfg:assembler/${name}_pressure_plate`)
|
||||
.itemInputs(`2x ${slab}`, '#forge:small_springs')
|
||||
.itemOutputs(`2x ${pressure_plate}`)
|
||||
.duration(50)
|
||||
.circuit(3)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
}
|
||||
|
||||
if (button && pressure_plate && name) {
|
||||
event.recipes.gtceu.cutter(`tfg:cutter/${name}_button_from_pressure_plate`)
|
||||
.itemInputs(pressure_plate)
|
||||
.itemOutputs(`6x ${button}`)
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.shapeless(`3x ${button}`, [pressure_plate, '#forge:tools/saws'])
|
||||
.id(`tfg:shapeless/saw_${name}_pressure_plate_to_button`)
|
||||
}
|
||||
}
|
||||
//#endregion
|
||||
|
||||
//#region Sterilization
|
||||
/**
|
||||
* Creates recipes for sterilizing an item using chemicals or the autoclave.
|
||||
|
||||
@@ -289,11 +289,11 @@ ServerEvents.recipes(event => {
|
||||
registerTFCGurmanRecipes(event)
|
||||
registerTFGRecipes(event)
|
||||
registerTFCTextileRecipes(event)
|
||||
registerTFCScrapingKnivesRecipes(event)
|
||||
registerToolBeltRecipes(event)
|
||||
registerVintageImprovementsRecipes(event)
|
||||
registerWaterFlasksRecipes(event)
|
||||
registerWABRecipes(event)
|
||||
registerTFCScrapingKnivesRecipes(event)
|
||||
})
|
||||
|
||||
TaCZServerEvents.gunIndexLoad((event) => {
|
||||
|
||||
@@ -1031,7 +1031,6 @@ const registerMinecraftRecipes = (event) => {
|
||||
//#region Pressure Plates
|
||||
|
||||
const PRESSURE_PLATES = [
|
||||
{type: 'bamboo', material: 'minecraft:bamboo_slab'},
|
||||
{type: 'polished_blackstone', material: 'minecraft:polished_blackstone_slab'},
|
||||
{type: 'light_weighted', material: '#forge:plates/gold'},
|
||||
{type: 'heavy_weighted', material: '#forge:plates/iron'}
|
||||
@@ -1059,9 +1058,6 @@ const registerMinecraftRecipes = (event) => {
|
||||
event.shapeless('3x minecraft:polished_blackstone_button', ['minecraft:polished_blackstone_pressure_plate', '#forge:tools/saws'])
|
||||
.id(`tfg:shapeless/saw_blackstone_pressure_plate_to_button`)
|
||||
|
||||
event.shapeless('3x minecraft:bamboo_button', ['minecraft:bamboo_pressure_plate', '#forge:tools/saws'])
|
||||
.id(`tfg:shapeless/saw_bamboo_pressure_plate_to_button`)
|
||||
|
||||
// #endregion
|
||||
|
||||
// Minecart w/ Furnace
|
||||
|
||||
@@ -296,44 +296,4 @@ const registerTFCRecipes = (event) => {
|
||||
}).id(`tfg:shaped/tfc/${type}_krummholz`);
|
||||
});
|
||||
|
||||
/**
|
||||
* @property {Array} tfcWoodRecyclingIndex - Wood recycling material index.
|
||||
*/
|
||||
const tfcWoodRecyclingIndex = [
|
||||
['tfc:wood/chest_minecart/{type}', ['{wood}', 4, GTMaterials.WroughtIron, 5]],
|
||||
['tfc:wood/planks/{type}', ['{wood}', 8]],
|
||||
['tfc:wood/planks/{type}_door', ['{wood}', 6]],
|
||||
['tfc:wood/planks/{type}_trapdoor', ['{wood}', 4]],
|
||||
['tfc:wood/planks/{type}_fence', ['{wood}', 4]],
|
||||
['tfc:wood/planks/{type}_log_fence', ['{wood}', 8]],
|
||||
['tfc:wood/planks/{type}_fence_gate', ['{wood}', 8]],
|
||||
['tfc:wood/planks/{type}_slab', ['{wood}', 2]],
|
||||
['tfc:wood/planks/{type}_stairs', ['{wood}', 3]],
|
||||
['tfc:wood/planks/{type}_pressure_plate', ['{wood}', 4]],
|
||||
['tfc:wood/planks/{type}_button', ['{wood}', 1]],
|
||||
['tfc:wood/chest/{type}', ['{wood}', 16]],
|
||||
['tfc:wood/trapped_chest/{type}', ['{wood}', 16, GTMaterials.WroughtIron, 4/9, GTMaterials.Wood, 1]]
|
||||
];
|
||||
/**
|
||||
* @param {Array} materials
|
||||
* @param {string} woodMaterial
|
||||
* @return {Array}
|
||||
*/
|
||||
function resolveArgs(materials, woodMaterial) {
|
||||
return materials.map(materials => materials === '{wood}' ? woodMaterial : materials);
|
||||
};
|
||||
global.TFC_HARDWOOD_TYPES.forEach(type => {
|
||||
tfcWoodRecyclingIndex.forEach(([template, args]) => {
|
||||
const item = template.replace('{type}', type);
|
||||
const resolvedArgs = resolveArgs(args, GTMaterials.get('hardwood'));
|
||||
TFGHelpers.registerMaterialInfo(item, resolvedArgs);
|
||||
});
|
||||
});
|
||||
global.TFC_SOFTWOOD_TYPES.forEach(type => {
|
||||
tfcWoodRecyclingIndex.forEach(([template, args]) => {
|
||||
const item = template.replace('{type}', type);
|
||||
const resolvedArgs = resolveArgs(args, GTMaterials.Wood);
|
||||
TFGHelpers.registerMaterialInfo(item, resolvedArgs);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -88,63 +88,6 @@ function registerTFGMarsRecipes(event) {
|
||||
.EUt(GTValues.VA[GTValues.EV])
|
||||
.dimension('ad_astra:mars')
|
||||
|
||||
// Ad astra woods
|
||||
|
||||
global.AD_ASTRA_WOOD.forEach(wood => {
|
||||
woodBuilder(event, wood.name, wood.lumber, wood.logs, wood.log, wood.stripped_log, wood.plank, wood.stair, wood.slab, wood.door, wood.trapdoor, wood.fence, wood.fence_gate, wood.support, wood.pressure_plate, wood.button)
|
||||
})
|
||||
|
||||
event.shaped('8x ad_astra:aeronos_ladder', [
|
||||
'A A',
|
||||
'ABA',
|
||||
'A A'
|
||||
], {
|
||||
A: 'tfg:wood/lumber/aeronos',
|
||||
B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Wood, 1)
|
||||
}).id('tfg:shaped/aeronos_ladder')
|
||||
|
||||
event.shaped('8x ad_astra:strophar_ladder', [
|
||||
'A A',
|
||||
'ABA',
|
||||
'A A'
|
||||
], {
|
||||
A: 'tfg:wood/lumber/strophar',
|
||||
B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Wood, 1)
|
||||
}).id('tfg:shaped/strophar_ladder')
|
||||
|
||||
// don't pass in the items like doors, trapdoors etc because beneath already has good recipes for those
|
||||
woodBuilder(event, 'crimson', 'beneath:wood/lumber/crimson', '#tfc:crimson_logs', 'beneath:wood/log/crimson',
|
||||
'beneath:wood/stripped_log/crimson', 'beneath:wood/planks/crimson', null,
|
||||
'beneath:wood/planks/crimson_slab', null, null, null, null, null, 'beneath:wood/planks/crimson_pressure_plate',
|
||||
'beneath:wood/planks/crimson_button')
|
||||
|
||||
event.recipes.gtceu.lathe(`tfg:cutter/crimson_stripped_wood_from_wood`)
|
||||
.itemInputs('beneath:wood/wood/crimson')
|
||||
.itemOutputs('beneath:wood/stripped_wood/crimson')
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.vintageimprovements.polishing('beneath:wood/stripped_wood/crimson', 'beneath:wood/wood/crimson')
|
||||
.speedLimits(0)
|
||||
.processingTime(50 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER)
|
||||
.id(`tfg:vi/lathe/stripping_crimson_wood`)
|
||||
|
||||
woodBuilder(event, 'warped', 'beneath:wood/lumber/warped', '#tfc:warped_logs', 'beneath:wood/log/warped',
|
||||
'beneath:wood/stripped_log/warped', 'beneath:wood/planks/warped', null,
|
||||
'beneath:wood/planks/warped_slab', null, null, null, null, null, 'beneath:wood/planks/warped_pressure_plate',
|
||||
'beneath:wood/planks/warped_button')
|
||||
|
||||
event.recipes.gtceu.lathe(`tfg:cutter/warped_stripped_wood_from_wood`)
|
||||
.itemInputs('beneath:wood/wood/warped')
|
||||
.itemOutputs('beneath:wood/stripped_wood/warped')
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.vintageimprovements.polishing('beneath:wood/stripped_wood/warped', 'beneath:wood/wood/warped')
|
||||
.speedLimits(0)
|
||||
.processingTime(50 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER)
|
||||
.id(`tfg:vi/lathe/stripping_warped_wood`)
|
||||
|
||||
//Large Nest
|
||||
event.shaped('tfg:large_nest_box',
|
||||
[
|
||||
|
||||
771
kubejs/server_scripts/tfg/natural_blocks/recipes.wood.js
Normal file
771
kubejs/server_scripts/tfg/natural_blocks/recipes.wood.js
Normal file
@@ -0,0 +1,771 @@
|
||||
// priority: 0
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {Internal.RecipesEventJS} event
|
||||
*/
|
||||
function registerTFGWoodenRecipes(event) {
|
||||
|
||||
// #region TFG Wood Builder
|
||||
|
||||
/**
|
||||
* Generates most basic wooden recipes.
|
||||
*
|
||||
* All parameters are optional. Name is used for the ID.
|
||||
*
|
||||
* @param {*} event
|
||||
* @param {string} name -Name of the wood.
|
||||
* @param {string} lumber -ID for the lumber.
|
||||
* @param {string} logs -Tag or ID for all the logs.
|
||||
* @param {string} log -ID for the regular log.
|
||||
* @param {string} stripped_log -ID for the stripped log.
|
||||
* @param {string} plank -ID for planks.
|
||||
* @param {string} stair -ID for stairs.
|
||||
* @param {string} slab -ID for slabs.
|
||||
* @param {string} door -ID for the door.
|
||||
* @param {string} trapdoor -ID for the trapdoor.
|
||||
* @param {string} fence -ID for the fence.
|
||||
* @param {string} fence_gate -ID for the fence gate.
|
||||
* @param {string} support -ID for the support.
|
||||
* @param {string} pressure_plate -ID for the pressure plate.
|
||||
* @param {string} button -ID for the button.
|
||||
* @param {string} log_wood -ID for the log wood.
|
||||
* @param {string} stripped_wood -ID for the stripped wood.
|
||||
*/
|
||||
function TFGWoodBuilder(event, name, lumber, logs, log, stripped_log, plank, stair, slab, door, trapdoor, fence, fence_gate, support, pressure_plate, button, log_wood, stripped_wood) {
|
||||
|
||||
// Stripped log from log
|
||||
if (log && stripped_log && name) {
|
||||
event.recipes.gtceu.lathe(`tfg:${name}_stripped_log_from_log`)
|
||||
.itemInputs(log)
|
||||
.itemOutputs(stripped_log)
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.vintageimprovements.polishing(stripped_log, log)
|
||||
.speedLimits(0)
|
||||
.processingTime(50 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER)
|
||||
.id(`tfg:vi/lathe/${name}_stripped_log_from_log`)
|
||||
};
|
||||
|
||||
// Stripped wood from log wood
|
||||
if (log_wood && stripped_wood && name) {
|
||||
event.recipes.gtceu.lathe(`tfg:${name}_stripped_wood_from_log_wood`)
|
||||
.itemInputs(log_wood)
|
||||
.itemOutputs(stripped_wood)
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.vintageimprovements.polishing(stripped_wood, log_wood)
|
||||
.speedLimits(0)
|
||||
.processingTime(50 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER)
|
||||
.id(`tfg:vi/lathe/${name}_stripped_wood_from_log_wood`)
|
||||
};
|
||||
|
||||
// TODO: remove condition of logs
|
||||
// Lumber from log
|
||||
if (logs && lumber && name) {
|
||||
event.shapeless(`8x ${lumber}`,
|
||||
[logs, '#forge:tools/saws']
|
||||
)
|
||||
.id(`tfg:shapeless/${name}_lumber_from_log`)
|
||||
|
||||
generateCutterRecipe(event, logs, `16x ${lumber}`, 50, 7, `${name}_lumber_from_log`)
|
||||
};
|
||||
|
||||
if (plank && lumber && name) {
|
||||
// Lumber from plank
|
||||
event.shapeless(`4x ${lumber}`,
|
||||
[plank, '#forge:tools/saws']
|
||||
)
|
||||
.id(`tfg:shapeless/${name}_lumber_from_plank`)
|
||||
|
||||
generateCutterRecipe(event, plank, `4x ${lumber}`, 50, 7, `${name}_lumber_from_plank`)
|
||||
|
||||
// Plank from lumber
|
||||
event.shaped(plank, [
|
||||
'AA',
|
||||
'AA'
|
||||
], {
|
||||
A: lumber
|
||||
})
|
||||
.id(`tfg:shaped/${name}_plank_from_lumber`)
|
||||
};
|
||||
|
||||
// Lumber from slab
|
||||
if (slab && lumber && name) {
|
||||
event.shapeless(`2x ${lumber}`,
|
||||
[slab, '#forge:tools/saws']
|
||||
)
|
||||
.id(`tfg:shapeless/${name}_lumber_from_slab`)
|
||||
|
||||
generateCutterRecipe(event, slab, `2x ${lumber}`, 50, 7, `${name}_lumber_from_slab`)
|
||||
};
|
||||
|
||||
// Slab from lumber
|
||||
if (slab && lumber && name) {
|
||||
event.shaped(slab, [
|
||||
'AA'
|
||||
], {
|
||||
A: lumber
|
||||
})
|
||||
.id(`tfg:shaped/${name}_slab_from_lumber`)
|
||||
};
|
||||
|
||||
// Lumber from slab
|
||||
if (stair && lumber && name) {
|
||||
event.shapeless(`3x ${lumber}`,
|
||||
[stair, '#forge:tools/saws']
|
||||
)
|
||||
.id(`tfg:shapeless/${name}_lumber_from_stair`)
|
||||
|
||||
generateCutterRecipe(event, stair, `3x ${lumber}`, 50, 7, `${name}_lumber_from_stair`)
|
||||
};
|
||||
|
||||
// Stair from plank
|
||||
if (stair && lumber && name) {
|
||||
event.shaped(`8x ${stair}`, [
|
||||
'A ',
|
||||
'AA ',
|
||||
'AAA'
|
||||
], {
|
||||
A: plank
|
||||
})
|
||||
.id(`tfg:shaped/${name}_stair_from_plank`)
|
||||
};
|
||||
|
||||
// Door from lumber
|
||||
if (door && lumber && name) {
|
||||
event.shaped(`2x ${door}`, [
|
||||
'AA',
|
||||
'AA',
|
||||
'AA'
|
||||
], {
|
||||
A: lumber
|
||||
})
|
||||
.id(`tfg:shaped/${name}_door_from_lumber`)
|
||||
};
|
||||
|
||||
// Trapdoor from lumber
|
||||
if (trapdoor && lumber && name) {
|
||||
event.shaped(`3x ${trapdoor}`, [
|
||||
'AAA',
|
||||
'AAA'
|
||||
], {
|
||||
A: lumber
|
||||
})
|
||||
.id(`tfg:shaped/${name}_trapdoor_from_lumber`)
|
||||
};
|
||||
|
||||
// Fence from lumber & plank
|
||||
if (fence && lumber && plank && name) {
|
||||
event.shaped(`8x ${fence}`, [
|
||||
'ABA',
|
||||
'ABA'
|
||||
], {
|
||||
A: lumber,
|
||||
B: plank
|
||||
})
|
||||
.id(`tfg:shaped/${name}_fence_from_lumber_and_plank`)
|
||||
};
|
||||
|
||||
// Fence gate from lumber and plank
|
||||
if (fence_gate && lumber && plank && name) {
|
||||
event.shaped(`2x ${fence_gate}`, [
|
||||
'ABA',
|
||||
'ABA'
|
||||
], {
|
||||
A: plank,
|
||||
B: lumber
|
||||
})
|
||||
.id(`tfg:shaped/${name}_fence_gate_from_lumber_and_plank`)
|
||||
};
|
||||
|
||||
// Support from logs
|
||||
if (support && logs && name) {
|
||||
event.shapeless(`8x ${support}`,
|
||||
[`2x ${logs}`, '#forge:tools/saws']
|
||||
)
|
||||
.id(`tfg:shapeless/${name}_support_from_logs`)
|
||||
|
||||
event.recipes.gtceu.assembler(`tfg:${name}_support_from_logs`)
|
||||
.itemInputs(`2x ${logs}`)
|
||||
.itemOutputs(`8x ${support}`)
|
||||
.duration(50)
|
||||
.circuit(4)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
};
|
||||
|
||||
// Pressure plate
|
||||
if (pressure_plate && slab && name) {
|
||||
event.shaped(pressure_plate, [
|
||||
' B ',
|
||||
'ACA',
|
||||
' D '
|
||||
], {
|
||||
A: slab,
|
||||
B: '#forge:tools/hammers',
|
||||
C: '#forge:small_springs',
|
||||
D: '#forge:tools/screwdrivers'
|
||||
})
|
||||
.id(`tfg:shaped/${name}_pressure_plate`)
|
||||
|
||||
event.recipes.gtceu.assembler(`tfg:${name}_pressure_plate`)
|
||||
.itemInputs(`2x ${slab}`, '#forge:small_springs')
|
||||
.itemOutputs(`${pressure_plate}`)
|
||||
.duration(50)
|
||||
.circuit(3)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
};
|
||||
|
||||
// Button from pressure plate
|
||||
if (button && pressure_plate && name) {
|
||||
event.recipes.gtceu.cutter(`tfg:${name}_button_from_pressure_plate`)
|
||||
.itemInputs(pressure_plate)
|
||||
.itemOutputs(`6x ${button}`)
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.shapeless(`3x ${button}`, [pressure_plate, '#forge:tools/saws'])
|
||||
.id(`tfg:shapeless/saw_${name}_pressure_plate_to_button`)
|
||||
};
|
||||
};
|
||||
|
||||
// #endregion
|
||||
|
||||
// #region TFG Mosaic Builder
|
||||
|
||||
/**
|
||||
* @param {*} event
|
||||
* @param {string} wood - Name of the wood.
|
||||
* @param {string} lumber - ID for lumber.
|
||||
* @param {string} plank - ID for plank.
|
||||
* @param {string} mosaic_plank - ID for mosaic plank.
|
||||
* @param {string} stair - ID for stair.
|
||||
* @param {string} mosaic_stair - ID for mosaic stair.
|
||||
* @param {string} slab - ID for slab.
|
||||
* @param {string} mosaic_slab - ID for mosaic slab.
|
||||
*
|
||||
*/
|
||||
function TFGMosaicWoodBuilder(event, wood, lumber, plank, mosaic_plank, stair, mosaic_stair, slab, mosaic_slab) {
|
||||
|
||||
// Mosaic plank
|
||||
event.recipes.tfc.damage_inputs_shapeless_crafting(
|
||||
event.shapeless(`${mosaic_plank}`,
|
||||
[`${plank}`, '#tfc:chisels']
|
||||
)
|
||||
)
|
||||
.id(`tfg:shapeless/${wood}_mosaic_plank`);
|
||||
|
||||
// Lumber from mosaic plank
|
||||
event.shapeless(`4x ${lumber}`,
|
||||
[`${mosaic_plank}`, '#forge:tools/saws']
|
||||
)
|
||||
.id(`tfg:shapeless/${wood}_lumber_from_mosaic_plank`);
|
||||
|
||||
generateCutterRecipe(event, `${mosaic_plank}`, `4x ${lumber}`, 50, 7, `${wood}_lumber_from_mosaic_plank`);
|
||||
|
||||
// Mosaic stair
|
||||
event.recipes.tfc.damage_inputs_shapeless_crafting(
|
||||
event.shapeless(`${mosaic_stair}`,
|
||||
[`${stair}`, '#tfc:chisels']
|
||||
)
|
||||
)
|
||||
.id(`tfg:shapeless/${wood}_mosaic_stair`);
|
||||
|
||||
// Lumber from mosaic stairs
|
||||
event.shapeless(`3x ${lumber}`,
|
||||
[`${mosaic_stair}`, '#forge:tools/saws']
|
||||
)
|
||||
.id(`tfg:shapeless/${wood}_lumber_from_mosaic_stair`);
|
||||
|
||||
generateCutterRecipe(event, `${mosaic_stair}`, `3x ${lumber}`, 50, 7, `${wood}_lumber_from_mosaic_stair`);
|
||||
|
||||
// Mosaic slab
|
||||
event.recipes.tfc.damage_inputs_shapeless_crafting(
|
||||
event.shapeless(`${mosaic_slab}`,
|
||||
[`${slab}`, '#tfc:chisels']
|
||||
)
|
||||
)
|
||||
.id(`tfg:shapeless/${wood}_mosaic_slab`);
|
||||
|
||||
// Lumber from mosaic slab
|
||||
event.shapeless(`2x ${lumber}`,
|
||||
[`${mosaic_slab}`, '#forge:tools/saws']
|
||||
)
|
||||
.id(`tfg:shapeless/${wood}_lumber_from_mosaic_slab`);
|
||||
|
||||
generateCutterRecipe(event, `${mosaic_slab}`, `2x ${lumber}`, 50, 7, `${wood}_lumber_from_mosaic_slab`);
|
||||
|
||||
};
|
||||
|
||||
// #endregion
|
||||
|
||||
// #region TFG Wood Recycling
|
||||
|
||||
/**
|
||||
* @property {Array} TFGWoodRecyclingIndex - TFG Wood recycling material index.
|
||||
*/
|
||||
const TFGWoodRecyclingIndex = [
|
||||
['{mod}:wood/chest_minecart/{type}', ['{wood}', 4, GTMaterials.WroughtIron, 5]],
|
||||
['{mod}:wood/planks/{type}', ['{wood}', 2]],
|
||||
['{mod}:wood/planks/{type}_door', ['{wood}', 3/2]],
|
||||
['{mod}:wood/planks/{type}_trapdoor', ['{wood}', 1]],
|
||||
['{mod}:wood/planks/{type}_fence', ['{wood}', 4]],
|
||||
['{mod}:wood/planks/{type}_log_fence', ['{wood}', 8]],
|
||||
['{mod}:wood/planks/{type}_fence_gate', ['{wood}', 8]],
|
||||
['{mod}:wood/planks/{type}_slab', ['{wood}', 1]],
|
||||
['{mod}:wood/planks/{type}_stairs', ['{wood}', 3/2]],
|
||||
['{mod}:wood/planks/{type}_pressure_plate', ['{wood}', 2]],
|
||||
['{mod}:wood/planks/{type}_button', ['{wood}', 1/4]],
|
||||
['{mod}:wood/chest/{type}', ['{wood}', 4]],
|
||||
['{mod}:wood/trapped_chest/{type}', ['{wood}', 4, GTMaterials.WroughtIron, 4/9, GTMaterials.Wood, 1]]
|
||||
];
|
||||
|
||||
/**
|
||||
* @param {Array} materials
|
||||
* @param {string} woodMaterial
|
||||
* @return {Array}
|
||||
*/
|
||||
function resolveArgs(materials, woodMaterial) {
|
||||
return materials
|
||||
.map(materials => materials === '{wood}' ? woodMaterial : materials);
|
||||
};
|
||||
|
||||
function registerTFGWoodRecycling(mod, woodname, woodMaterial) {
|
||||
woodname.forEach(name => {
|
||||
TFGWoodRecyclingIndex.forEach(([template, args]) => {
|
||||
const item = template
|
||||
.replace('{mod}', mod)
|
||||
.replace('{type}', name);
|
||||
const resolvedArgs = resolveArgs(args, woodMaterial);
|
||||
TFGHelpers.registerMaterialInfo(item, resolvedArgs);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
// #endregion
|
||||
|
||||
// #region Ad Astra
|
||||
|
||||
global.AD_ASTRA_WOOD.forEach(wood => {
|
||||
// TODO: standardise ad astra constants
|
||||
TFGWoodBuilder(
|
||||
event,
|
||||
wood.name,
|
||||
wood.lumber,
|
||||
wood.logs,
|
||||
wood.log,
|
||||
wood.stripped_log,
|
||||
wood.plank,
|
||||
wood.stair,
|
||||
wood.slab,
|
||||
wood.door,
|
||||
wood.trapdoor,
|
||||
wood.fence,
|
||||
wood.fence_gate,
|
||||
wood.support,
|
||||
wood.pressure_plate,
|
||||
wood.button,
|
||||
wood.log_wood,
|
||||
wood.stripped_wood
|
||||
);
|
||||
});
|
||||
|
||||
event.shaped('8x ad_astra:aeronos_ladder', [
|
||||
'A A',
|
||||
'ABA',
|
||||
'A A'
|
||||
], {
|
||||
A: 'tfg:wood/lumber/aeronos',
|
||||
B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Wood, 1)
|
||||
})
|
||||
.id('tfg:shaped/aeronos_ladder');
|
||||
|
||||
event.shaped('8x ad_astra:strophar_ladder', [
|
||||
'A A',
|
||||
'ABA',
|
||||
'A A'
|
||||
], {
|
||||
A: 'tfg:wood/lumber/strophar',
|
||||
B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Wood, 1)
|
||||
})
|
||||
.id('tfg:shaped/strophar_ladder');
|
||||
|
||||
// #endregion
|
||||
|
||||
// #region Beneath
|
||||
|
||||
global.BENEATH_WOOD_TYPES.forEach(wood => {
|
||||
|
||||
// Removed recipe changes
|
||||
event.remove({ id: `beneath:crafting/wood/${wood}_planks` });
|
||||
event.remove({ id: `beneath:crafting/wood/${wood}_slab` });
|
||||
event.remove({ id: `beneath:crafting/wood/${wood}_button` });
|
||||
event.remove({ id: `beneath:crafting/wood/${wood}_pressure_plate` });
|
||||
event.remove({ id: `beneath:crafting/wood/${wood}_lumber_log` });
|
||||
event.remove({ id: `beneath:crafting/wood/${wood}_lumber_planks` });
|
||||
event.remove({ id: `beneath:crafting/wood/${wood}_slab_undo` });
|
||||
|
||||
TFGWoodBuilder(
|
||||
event,
|
||||
`${wood}`,
|
||||
`beneath:wood/lumber/${wood}`,
|
||||
`#tfc:${wood}_logs`,
|
||||
`beneath:wood/log/${wood}`,
|
||||
`beneath:wood/stripped_log/${wood}`,
|
||||
`beneath:wood/planks/${wood}`,
|
||||
null,
|
||||
`beneath:wood/planks/${wood}_slab`,
|
||||
`beneath:wood/planks/${wood}_door`,
|
||||
`beneath:wood/planks/${wood}_trapdoor`,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
`beneath:wood/planks/${wood}_pressure_plate`,
|
||||
`beneath:wood/planks/${wood}_button`,
|
||||
`beneath:wood/wood/${wood}`,
|
||||
`beneath:wood/stripped_wood/${wood}`,
|
||||
`beneath:wood/wood/${wood}`,
|
||||
`beneath:wood/stripped_wood/${wood}`
|
||||
);
|
||||
});
|
||||
|
||||
registerTFGWoodRecycling('beneath', ['crimson'], GTMaterials.get('hardwood'));
|
||||
registerTFGWoodRecycling('beneath', ['warped'], GTMaterials.Wood);
|
||||
|
||||
// #endregion
|
||||
|
||||
// #region AFC
|
||||
|
||||
global.AFC_WOOD_TYPES.forEach(wood => {
|
||||
|
||||
// Removed unused assets
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_axle` });
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_bladed_axle` });
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_encased_axle` });
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_clutch` });
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_gear_box` });
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_water_wheel` });
|
||||
|
||||
// Removed recipe changes
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_lumber_log` });
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_stairs` });
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_stairs_undo` });
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_slab` });
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_button` });
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_stomping_barrel` });
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_lumber_planks` });
|
||||
event.remove({ id: `afc:crafting/wood/${wood}_slab_undo` });
|
||||
|
||||
TFGWoodBuilder(
|
||||
event,
|
||||
`${wood}`,
|
||||
`afc:wood/lumber/${wood}`,
|
||||
`#afc:${wood}_logs`,
|
||||
`afc:wood/log/${wood}`,
|
||||
`afc:wood/stripped_log/${wood}`,
|
||||
`afc:wood/planks/${wood}`,
|
||||
`afc:wood/planks/${wood}_stairs`,
|
||||
`afc:wood/planks/${wood}_slab`,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
`afc:wood/planks/${wood}_pressure_plate`,
|
||||
`afc:wood/planks/${wood}_button`,
|
||||
`afc:wood/wood/${wood}`,
|
||||
`afc:wood/stripped_wood/${wood}`
|
||||
);
|
||||
|
||||
registerTFGWoodRecycling('afc', global.AFC_HARDWOOD_TYPES, GTMaterials.get('hardwood'));
|
||||
registerTFGWoodRecycling('afc', global.AFC_SOFTWOOD_TYPES, GTMaterials.Wood);
|
||||
|
||||
// Stomping Barrel
|
||||
event.shaped(`afc:wood/stomping_barrel/${wood}`, [
|
||||
'ABA',
|
||||
'AAA',
|
||||
'BBB'
|
||||
], {
|
||||
A: `afc:wood/lumber/${wood}`,
|
||||
B: 'tfc:glue'
|
||||
|
||||
})
|
||||
.id(`afc:crafting/wood/${wood}_stomping_barrel`);
|
||||
});
|
||||
|
||||
// Outliers
|
||||
const AFC_MORE_STRIPPING = [
|
||||
{ name: 'black_oak', stripped: 'oak', stripped_mod: 'tfc' },
|
||||
{ name: 'rainbow_eucalyptus', stripped: 'eucalyptus', stripped_mod: 'afc' },
|
||||
{ name: 'gum_arabic', stripped: 'acacia', stripped_mod: 'tfc' },
|
||||
{ name: 'redcedar', stripped: 'cypress', stripped_mod: 'afc' },
|
||||
{ name: 'rubber_fig', stripped: 'fig', stripped_mod: 'afc' },
|
||||
{ name: 'poplar', stripped: 'aspen', stripped_mod: 'tfc' }
|
||||
];
|
||||
|
||||
AFC_MORE_STRIPPING.forEach(x => {
|
||||
event.recipes.gtceu
|
||||
.lathe(`tfg:${x.name}_stripped_log_from_log`)
|
||||
.itemInputs(`afc:wood/log/${x.name}`)
|
||||
.itemOutputs(`${x.stripped_mod}:wood/stripped_log/${x.stripped}`)
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV]);
|
||||
|
||||
event.recipes.vintageimprovements
|
||||
.polishing(`${x.stripped_mod}:wood/stripped_log/${x.stripped}`, `afc:wood/log/${x.name}`)
|
||||
.speedLimits(0)
|
||||
.processingTime(50 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER)
|
||||
.id(`tfg:vi/lathe/${x.name}_stripped_log_from_log`);
|
||||
|
||||
event.recipes.gtceu
|
||||
.lathe(`tfg:${x.name}_stripped_wood_from_log_wood`)
|
||||
.itemInputs(`afc:wood/wood/${x.name}`)
|
||||
.itemOutputs(`${x.stripped_mod}:wood/stripped_wood/${x.stripped}`)
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV]);
|
||||
|
||||
event.recipes.vintageimprovements
|
||||
.polishing(`${x.stripped_mod}:wood/stripped_wood/${x.stripped}`, `afc:wood/wood/${x.name}`)
|
||||
.speedLimits(0)
|
||||
.processingTime(50 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER)
|
||||
.id(`tfg:vi/lathe/${x.name}_stripped_wood_from_log_wood`);
|
||||
});
|
||||
|
||||
// #endregion
|
||||
|
||||
// #region General
|
||||
|
||||
// Ladder
|
||||
event.shaped('8x minecraft:ladder', [
|
||||
'A A',
|
||||
'AAA',
|
||||
'A A'
|
||||
], {
|
||||
A: '#forge:rods/wooden'
|
||||
})
|
||||
.id('gtceu:shaped/ladder');
|
||||
|
||||
event.shaped('8x minecraft:ladder', [
|
||||
'A A',
|
||||
'AAA',
|
||||
'A A'
|
||||
], {
|
||||
A: '#tfc:lumber'
|
||||
})
|
||||
.id('tfg:crafting/vanilla/ladder');
|
||||
|
||||
// Sticks
|
||||
event.remove('gtceu:shaped/stick_normal');
|
||||
event.remove('gtceu:lathe/lathe_planks');
|
||||
event.remove('gtceu:lathe/lathe_saplings');
|
||||
|
||||
event.recipes.gtceu.lathe('tfg:planks_to_sticks')
|
||||
.itemInputs('#minecraft:planks')
|
||||
.itemOutputs('8x minecraft:stick')
|
||||
.duration(20)
|
||||
.EUt(7)
|
||||
|
||||
event.shapeless('2x minecraft:stick', ['#minecraft:saplings', '#forge:tools/knives'])
|
||||
.id('tfg:strip_saplings')
|
||||
|
||||
event.recipes.gtceu.cutter('tfg:saplings_to_sticks')
|
||||
.itemInputs('#minecraft:saplings')
|
||||
.itemOutputs('2x minecraft:stick')
|
||||
.duration(20)
|
||||
.EUt(7)
|
||||
|
||||
event.recipes.gtceu.packer('tfg:stick_bunch')
|
||||
.itemInputs('9x #forge:rods/wooden')
|
||||
.circuit(5)
|
||||
.itemOutputs('tfc:stick_bunch')
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.gtceu.packer('tfg:stick_bundle')
|
||||
.itemInputs('18x #forge:rods/wooden')
|
||||
.circuit(8)
|
||||
.itemOutputs('tfc:stick_bundle')
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
// #endregion
|
||||
|
||||
// #region TFC
|
||||
|
||||
global.TFC_WOOD_TYPES.forEach(wood => {
|
||||
|
||||
// Removed unused assets
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_axle` });
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_bladed_axle` });
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_encased_axle` });
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_clutch` });
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_gear_box` });
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_water_wheel` });
|
||||
|
||||
// Removed recipe changes
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_lumber_log` });
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_button` });
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_slab` });
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_slab_undo` });
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_lumber_planks` });
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_stairs` });
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_stairs_undo` });
|
||||
event.remove({ id: `tfc:crafting/wood/palm_mosaic` });
|
||||
event.remove({ id: `tfc:crafting/wood/palm_mosaic_slab` });
|
||||
event.remove({ id: `tfc:crafting/wood/palm_mosaic_slab_undo` });
|
||||
event.remove({ id: `tfc:crafting/wood/palm_mosaic_stairs` });
|
||||
event.remove({ id: `tfc:crafting/wood/palm_mosaic_stairs_undo` });
|
||||
|
||||
TFGWoodBuilder(
|
||||
event,
|
||||
`${wood}`,
|
||||
`tfc:wood/lumber/${wood}`,
|
||||
`#tfc:${wood}_logs`,
|
||||
`tfc:wood/log/${wood}`,
|
||||
`tfc:wood/stripped_log/${wood}`,
|
||||
`tfc:wood/planks/${wood}`,
|
||||
`tfc:wood/planks/${wood}_stairs`,
|
||||
`tfc:wood/planks/${wood}_slab`,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
`tfc:wood/planks/${wood}_pressure_plate`,
|
||||
`tfc:wood/planks/${wood}_button`,
|
||||
`tfc:wood/wood/${wood}`,
|
||||
`tfc:wood/stripped_wood/${wood}`,
|
||||
`tfc:wood/wood/${wood}`,
|
||||
`tfc:wood/stripped_wood/${wood}`
|
||||
);
|
||||
});
|
||||
|
||||
TFGMosaicWoodBuilder(
|
||||
event,
|
||||
'palm',
|
||||
'tfc:wood/lumber/palm',
|
||||
'tfc:wood/planks/palm',
|
||||
'tfc:wood/planks/palm_mosaic',
|
||||
'tfc:wood/planks/palm_stairs',
|
||||
'tfc:wood/planks/palm_mosaic_stairs',
|
||||
'tfc:wood/planks/palm_slab',
|
||||
'tfc:wood/planks/palm_mosaic_slab'
|
||||
);
|
||||
|
||||
registerTFGWoodRecycling('tfc', global.TFC_HARDWOOD_TYPES, GTMaterials.get('hardwood'));
|
||||
registerTFGWoodRecycling('tfc', global.TFC_SOFTWOOD_TYPES, GTMaterials.Wood);
|
||||
|
||||
// #endregion
|
||||
|
||||
// #region Minecraft
|
||||
|
||||
// Bamboo
|
||||
|
||||
// Removed recipe changes
|
||||
const Bamboo_Items = [
|
||||
'minecraft:stripped_bamboo_block',
|
||||
'minecraft:bamboo_planks',
|
||||
'minecraft:bamboo_slab',
|
||||
'minecraft:bamboo_stairs',
|
||||
'minecraft:bamboo_fence',
|
||||
'minecraft:bamboo_fence_gate',
|
||||
'minecraft:bamboo_door',
|
||||
'minecraft:bamboo_trapdoor',
|
||||
'minecraft:bamboo_button',
|
||||
'minecraft:bamboo_mosaic',
|
||||
'minecraft:bamboo_mosaic_slab',
|
||||
'minecraft:bamboo_mosaic_stairs',
|
||||
'minecraft:bamboo_pressure_plate'
|
||||
];
|
||||
|
||||
Bamboo_Items.forEach(item => {
|
||||
event.remove({ input: item })
|
||||
event.remove({ output: item })
|
||||
});
|
||||
|
||||
TFGWoodBuilder(
|
||||
event,
|
||||
'bamboo',
|
||||
'tfg:wood/lumber/bamboo',
|
||||
null,
|
||||
'minecraft:bamboo_block',
|
||||
'minecraft:stripped_bamboo_block',
|
||||
'minecraft:bamboo_planks',
|
||||
'minecraft:bamboo_stairs',
|
||||
'minecraft:bamboo_slab',
|
||||
'minecraft:bamboo_door',
|
||||
'minecraft:bamboo_trapdoor',
|
||||
'minecraft:bamboo_fence',
|
||||
'minecraft:bamboo_fence_gate',
|
||||
null,
|
||||
'minecraft:bamboo_pressure_plate',
|
||||
'minecraft:bamboo_button',
|
||||
null,
|
||||
null
|
||||
);
|
||||
|
||||
TFGMosaicWoodBuilder(
|
||||
event,
|
||||
'bamboo',
|
||||
'tfg:wood/lumber/bamboo',
|
||||
'minecraft:bamboo_planks',
|
||||
'minecraft:bamboo_mosaic',
|
||||
'minecraft:bamboo_stairs',
|
||||
'minecraft:bamboo_mosaic_stairs',
|
||||
'minecraft:bamboo_slab',
|
||||
'minecraft:bamboo_mosaic_slab'
|
||||
);
|
||||
|
||||
// Lumber from log
|
||||
event.shapeless('8x tfg:wood/lumber/bamboo',
|
||||
['minecraft:bamboo_block', '#forge:tools/saws']
|
||||
)
|
||||
.id(`tfg:shapeless/bamboo_lumber_from_log`);
|
||||
|
||||
event.shapeless('8x tfg:wood/lumber/bamboo',
|
||||
['minecraft:stripped_bamboo_block', '#forge:tools/saws']
|
||||
)
|
||||
.id(`tfg:shapeless/bamboo_lumber_from_stripped_log`);
|
||||
|
||||
// #endregion
|
||||
|
||||
// #region Gregtech
|
||||
|
||||
// Removed recipe changes
|
||||
event.remove({ id: 'gtceu:shaped/treated_fence' });
|
||||
event.remove({ id: 'gtceu:shaped/treated_fence_gate' });
|
||||
event.remove({ id: 'gtceu:shaped/treated_fence_gate_screws' });
|
||||
event.remove({ id: 'gtceu:shaped/treated_stairs' });
|
||||
event.remove({ id: 'gtceu:assembler/treated_stairs' });
|
||||
event.remove({ id: 'gtceu:assembler/treated_fence' });
|
||||
event.remove({ id: 'gtceu:assembler/treated_fence_gate' });
|
||||
event.remove({ output: 'gtceu:treated_wood_button' });
|
||||
|
||||
// Treated wood
|
||||
TFGWoodBuilder(
|
||||
event,
|
||||
'treated_wood',
|
||||
'gtceu:treated_wood_plate',
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
'gtceu:treated_wood_planks',
|
||||
'gtceu:treated_wood_stairs',
|
||||
'gtceu:treated_wood_slab',
|
||||
'gtceu:treated_wood_door',
|
||||
'gtceu:treated_wood_trapdoor',
|
||||
'gtceu:treated_wood_fence',
|
||||
'gtceu:treated_wood_fence_gate',
|
||||
null,
|
||||
'gtceu:treated_wood_pressure_plate',
|
||||
'gtceu:treated_wood_button',
|
||||
null,
|
||||
null
|
||||
);
|
||||
|
||||
// #endregion
|
||||
|
||||
};
|
||||
@@ -33,23 +33,6 @@ function registerTFGWoodRecipes(event) {
|
||||
result: { item: 'tfc:powder/wood_ash' }
|
||||
}).id(`tfg:ae_transform/torch_to_wood_ash`)
|
||||
|
||||
// Ladder
|
||||
event.shaped('8x minecraft:ladder', [
|
||||
'A A',
|
||||
'AAA',
|
||||
'A A'
|
||||
], {
|
||||
A: '#forge:rods/wooden'
|
||||
}).id('gtceu:shaped/ladder')
|
||||
|
||||
event.shaped('8x minecraft:ladder', [
|
||||
'A A',
|
||||
'AAA',
|
||||
'A A'
|
||||
], {
|
||||
A: '#tfc:lumber'
|
||||
}).id('tfc:crafting/vanilla/ladder')
|
||||
|
||||
event.replaceInput({ id: 'tfc:crafting/vanilla/armor_stand' }, '#minecraft:planks', '#tfc:lumber')
|
||||
event.remove({ id: 'tfc:crafting/vanilla/armor_stand_bulk' })
|
||||
|
||||
@@ -66,59 +49,6 @@ function registerTFGWoodRecipes(event) {
|
||||
.inputs('#tfg:wood_dusts', TFC.fluidStackIngredient('#forge:creosote', 50))
|
||||
.id('tfg:barrel/treated_wood_dust')
|
||||
|
||||
event.shaped('2x gtceu:treated_wood_door', [
|
||||
'AA ',
|
||||
'AA ',
|
||||
'AA '
|
||||
], {
|
||||
A: 'gtceu:treated_wood_plate'
|
||||
}).id('tfg:shaped/treated_door')
|
||||
|
||||
event.shaped('3x gtceu:treated_wood_trapdoor', [
|
||||
'AAA',
|
||||
'AAA',
|
||||
' '
|
||||
], {
|
||||
A: 'gtceu:treated_wood_plate'
|
||||
}).id('tfg:shaped/treated_trapdoor')
|
||||
|
||||
event.shaped('gtceu:treated_wood_pressure_plate', [
|
||||
' B ',
|
||||
'CDC',
|
||||
' E '
|
||||
], {
|
||||
B: '#tfc:hammers',
|
||||
C: 'gtceu:treated_wood_slab',
|
||||
D: '#forge:small_springs',
|
||||
E: '#forge:tools/screwdrivers'
|
||||
}).id('gtceu:shaped/treated_pressure_plate')
|
||||
|
||||
event.recipes.gtceu.assembler('gtceu:treated_pressure_plate')
|
||||
.itemInputs('#forge:small_springs', '2x gtceu:treated_wood_slab')
|
||||
.itemOutputs('gtceu:treated_wood_pressure_plate')
|
||||
.circuit(3)
|
||||
.duration(50)
|
||||
.EUt(2)
|
||||
|
||||
event.shapeless(`3x gtceu:treated_wood_button`, [`gtceu:treated_wood_pressure_plate`, '#forge:tools/saws'])
|
||||
.id(`tfg:shapeless/saw_treated_wood_pressure_plate_to_button`)
|
||||
|
||||
event.replaceOutput({ id: 'gtceu:cutter/treated_button' }, 'gtceu:treated_wood_button', '6x gtceu:treated_wood_button')
|
||||
event.replaceOutput({ id: 'gtceu:cutter/treated_button_water' }, 'gtceu:treated_wood_button', '6x gtceu:treated_wood_button')
|
||||
event.replaceOutput({ id: 'gtceu:cutter/treated_button_distilled_water' }, 'gtceu:treated_wood_button', '6x gtceu:treated_wood_button')
|
||||
|
||||
event.replaceOutput({ id: 'greate:cutting/integration/gtceu/cutter/treated_button' }, 'gtceu:treated_wood_button', '6x gtceu:treated_wood_button')
|
||||
event.replaceOutput({ id: 'greate:cutting/integration/gtceu/cutter/treated_button_water' }, 'gtceu:treated_wood_button', '6x gtceu:treated_wood_button')
|
||||
event.replaceOutput({ id: 'greate:cutting/integration/gtceu/cutter/treated_button_distilled_water' }, 'gtceu:treated_wood_button', '6x gtceu:treated_wood_button')
|
||||
|
||||
event.replaceOutput({ id: 'gtceu:cutter/bamboo_button' }, 'minecraft:bamboo_button', '6x minecraft:bamboo_button')
|
||||
event.replaceOutput({ id: 'gtceu:cutter/bamboo_button_water' }, 'minecraft:bamboo_button', '6x minecraft:bamboo_button')
|
||||
event.replaceOutput({ id: 'gtceu:cutter/bamboo_button_distilled_water' }, 'minecraft:bamboo_button', '6x minecraft:bamboo_button')
|
||||
|
||||
event.replaceOutput({ id: 'greate:cutting/integration/gtceu/bamboo_button' }, 'minecraft:bamboo_button', '6x minecraft:bamboo_button')
|
||||
event.replaceOutput({ id: 'greate:cutting/integration/gtceu/bamboo_button_water' }, 'minecraft:bamboo_button', '6x minecraft:bamboo_button')
|
||||
event.replaceOutput({ id: 'greate:cutting/integration/gtceu/bamboo_button_distilled_water' }, 'minecraft:bamboo_button', '6x minecraft:bamboo_button')
|
||||
|
||||
// Empty Wooden Form
|
||||
event.shaped('gtceu:empty_wooden_form', [
|
||||
' AA',
|
||||
@@ -148,101 +78,4 @@ function registerTFGWoodRecipes(event) {
|
||||
B: '#minecraft:planks',
|
||||
C: 'tfc:glue'
|
||||
}).id('gtceu:shaped/gear_wood')
|
||||
|
||||
// Sticks
|
||||
event.shapeless('2x minecraft:stick', ['#minecraft:saplings', '#forge:tools/knives']).id('tfg:strip_saplings')
|
||||
|
||||
event.recipes.gtceu.cutter('tfg:saplings_to_sticks')
|
||||
.itemInputs('#minecraft:saplings')
|
||||
.itemOutputs('2x minecraft:stick')
|
||||
.duration(20)
|
||||
.EUt(7)
|
||||
|
||||
event.recipes.gtceu.packer('tfg:stick_bunch')
|
||||
.itemInputs('9x #forge:rods/wooden')
|
||||
.circuit(5)
|
||||
.itemOutputs('tfc:stick_bunch')
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.gtceu.packer('tfg:stick_bundle')
|
||||
.itemInputs('18x #forge:rods/wooden')
|
||||
.circuit(8)
|
||||
.itemOutputs('tfc:stick_bundle')
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
|
||||
// Какие то рецепты дерева
|
||||
global.TFC_WOOD_TYPES.forEach(wood => {
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_axle` })
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_bladed_axle` })
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_encased_axle` })
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_clutch` })
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_gear_box` })
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_water_wheel` })
|
||||
|
||||
// Бревна -> Пиломатериалы
|
||||
generateCutterRecipe(event, `#tfc:${wood}_logs`, `16x tfc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_log`)
|
||||
|
||||
// Доски -> Пиломатериалы
|
||||
generateCutterRecipe(event, `tfc:wood/planks/${wood}`, `4x tfc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_planks`)
|
||||
|
||||
// Ступень -> Пиломатериалы
|
||||
generateCutterRecipe(event, `tfc:wood/planks/${wood}_stairs`, `3x tfc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_stairs`)
|
||||
|
||||
|
||||
// Плита -> Пиломатериалы
|
||||
generateCutterRecipe(event, `tfc:wood/planks/${wood}_slab`, `2x tfc:wood/lumber/${wood}`, 50, 7, `${wood}_lumber_from_slab`)
|
||||
|
||||
// ? -> Деревянная нажимная пластина
|
||||
event.shaped(`tfc:wood/planks/${wood}_pressure_plate`, [
|
||||
' B ',
|
||||
'CDC',
|
||||
' E '
|
||||
], {
|
||||
B: '#tfc:hammers',
|
||||
C: `tfc:wood/planks/${wood}_slab`,
|
||||
D: '#forge:small_springs',
|
||||
E: '#forge:tools/screwdrivers'
|
||||
}).id(`tfc:crafting/wood/${wood}_pressure_plate`)
|
||||
|
||||
event.recipes.gtceu.assembler(`${wood}_pressure_plate`)
|
||||
.itemInputs('#forge:small_springs', `2x tfc:wood/planks/${wood}_slab`)
|
||||
.circuit(3)
|
||||
.itemOutputs(`2x tfc:wood/planks/${wood}_pressure_plate`)
|
||||
.duration(50)
|
||||
.EUt(2)
|
||||
|
||||
// ? -> Деревянная кнопка
|
||||
event.remove({ id: `tfc:crafting/wood/${wood}_button` })
|
||||
|
||||
event.shapeless(`3x tfc:wood/planks/${wood}_button`, [`tfc:wood/planks/${wood}_pressure_plate`, '#forge:tools/saws'])
|
||||
.id(`tfg:shapeless/saw_${wood}_pressure_plate_to_button`)
|
||||
|
||||
generateCutterRecipe(event, `tfc:wood/planks/${wood}_pressure_plate`, `6x tfc:wood/planks/${wood}_button`, 50, 7, `${wood}_button`)
|
||||
|
||||
// Stripped logs
|
||||
event.recipes.gtceu.lathe(`tfg:stripping_${wood}_log`)
|
||||
.itemInputs(`tfc:wood/log/${wood}`)
|
||||
.itemOutputs(`tfc:wood/stripped_log/${wood}`)
|
||||
.duration(50)
|
||||
.EUt(2)
|
||||
|
||||
event.recipes.gtceu.lathe(`tfg:stripping_${wood}_wood`)
|
||||
.itemInputs(`tfc:wood/wood/${wood}`)
|
||||
.itemOutputs(`tfc:wood/stripped_wood/${wood}`)
|
||||
.duration(50)
|
||||
.EUt(2)
|
||||
|
||||
event.recipes.vintageimprovements.polishing(`tfc:wood/stripped_log/${wood}`, `tfc:wood/log/${wood}`)
|
||||
.speedLimits(0)
|
||||
.processingTime(50 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER)
|
||||
.id(`tfg:vi/lathe/stripping_${wood}_log`)
|
||||
|
||||
event.recipes.vintageimprovements.polishing(`tfc:wood/stripped_wood/${wood}`, `tfc:wood/wood/${wood}`)
|
||||
.speedLimits(0)
|
||||
.processingTime(50 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER)
|
||||
.id(`tfg:vi/lathe/stripping_${wood}_wood`)
|
||||
})
|
||||
}
|
||||
@@ -44,6 +44,7 @@ const registerTFGRecipes = (event) => {
|
||||
registerTFGWaxRecipes(event)
|
||||
registerTFGRubberRecipes(event)
|
||||
registerTFGWoodRecipes(event)
|
||||
registerTFGWoodenRecipes(event)
|
||||
registerTFGKnappingRecipes(event)
|
||||
registerTFGLeatherRecipes(event)
|
||||
registerTFGClayRecipes(event)
|
||||
|
||||
@@ -113,6 +113,7 @@ global.AD_ASTRA_WOOD = [
|
||||
{
|
||||
name: 'aeronos',
|
||||
logs: '#ad_astra:aeronos_caps', log: 'ad_astra:aeronos_stem', stripped_log: null,
|
||||
log_wood: null, stripped_wood: null,
|
||||
lumber: 'tfg:wood/lumber/aeronos', plank: 'ad_astra:aeronos_planks',
|
||||
stair: 'ad_astra:aeronos_stairs', slab: 'ad_astra:aeronos_slab',
|
||||
fence: 'ad_astra:aeronos_fence', fence_gate: 'ad_astra:aeronos_fence_gate',
|
||||
@@ -124,6 +125,7 @@ global.AD_ASTRA_WOOD = [
|
||||
{
|
||||
name: 'strophar',
|
||||
logs: '#ad_astra:strophar_caps', log: 'ad_astra:strophar_stem', stripped_log: null,
|
||||
log_wood: null, stripped_wood: null,
|
||||
lumber: 'tfg:wood/lumber/strophar', plank: 'ad_astra:strophar_planks',
|
||||
stair: 'ad_astra:strophar_stairs', slab: 'ad_astra:strophar_slab',
|
||||
fence:'ad_astra:strophar_fence', fence_gate: 'ad_astra:strophar_fence_gate',
|
||||
@@ -135,6 +137,7 @@ global.AD_ASTRA_WOOD = [
|
||||
{
|
||||
name: 'glacian',
|
||||
logs: '#ad_astra:glacian_logs', log: 'ad_astra:glacian_log', stripped_log: 'ad_astra:stripped_glacian_log',
|
||||
log_wood: 'tfg:glacian_wood', stripped_wood: 'tfg:glacian_wood_stripped',
|
||||
lumber: 'tfg:wood/lumber/glacian', plank: 'ad_astra:glacian_planks',
|
||||
stair: 'ad_astra:glacian_stairs', slab: 'ad_astra:glacian_slab',
|
||||
fence: 'ad_astra:glacian_fence', fence_gate: 'ad_astra:glacian_fence_gate',
|
||||
|
||||
@@ -50,4 +50,9 @@ global.BENEATH_DISABLED_ITEMS = [
|
||||
|
||||
"beneath:wood/sapling/crimson",
|
||||
"beneath:wood/sapling/warped"
|
||||
];
|
||||
];
|
||||
|
||||
global.BENEATH_WOOD_TYPES = /** @type {const} */ ([
|
||||
"crimson",
|
||||
"warped"
|
||||
]);
|
||||
@@ -21,4 +21,9 @@ function registerTFGWoodItems(event) {
|
||||
event.create('tfg:twigs/alphacene')
|
||||
.tag('tfc:twigs')
|
||||
.texture('tfg:item/wood/twig/alphacene')
|
||||
|
||||
// Bamboo lumber
|
||||
event.create('tfg:wood/lumber/bamboo')
|
||||
.tag('tfc:lumber')
|
||||
.texture('tfg:item/wood/lumber/bamboo')
|
||||
}
|
||||
19
pakku.json
19
pakku.json
@@ -10,22 +10,19 @@
|
||||
"kubejs",
|
||||
"tacz",
|
||||
"!kubejs/probe/**",
|
||||
"!kubejs/assets/**"
|
||||
"!kubejs/assets/**",
|
||||
"!defaultconfigs/tfc-server.toml",
|
||||
"!config/ftbbackups2.json",
|
||||
"!defaultconfigs/ftbranks/ranks.snbt"
|
||||
],
|
||||
"server_overrides": [
|
||||
"forge-auto-install.txt",
|
||||
"generate_auto_installation_file.bat",
|
||||
"minecraft_server.jar",
|
||||
"server.properties",
|
||||
"server_starter.conf",
|
||||
"server-icon.png",
|
||||
"start_server.bat",
|
||||
"README.md"
|
||||
|
||||
],
|
||||
"client_overrides": [
|
||||
"resourcepacks",
|
||||
"kubejs/assets/**"
|
||||
"kubejs/assets/**",
|
||||
"defaultconfigs/tfc-server.toml",
|
||||
"config/ftbbackups2.json",
|
||||
"defaultconfigs/ftbranks/ranks.snbt"
|
||||
],
|
||||
"projects": {
|
||||
"ambient-environment": {
|
||||
|
||||
Reference in New Issue
Block a user