more greenhouse tweaks, added a recipe for grass blocks
This commit is contained in:
@@ -15,8 +15,10 @@
|
||||
- Anthracite now also superheats blaze burners @Pyritie
|
||||
- Changed LV chem reactor quest to work with any container of rubber instead of just a rubber bucket (#1116) @ofoxsmith
|
||||
- Added perfect overclock to the electric greenhouse so it scales better with the pyro oven @Pyritie
|
||||
- Electric greenhouse now accepts logs and leaf blocks inside it, so you can build a little tree if you want @Pyritie
|
||||
- Increased durability of the blue steel diving suit to match blue steel armor @Pyritie
|
||||
- Phantom Silk and Polycaprolactam Fabric now count as High Quality Fabric @Pyritie
|
||||
- Added recipes to turn dirt into grass @Pyritie
|
||||
### Bug fixes
|
||||
- Fixed issue where "melts into" tooltips and certain timers on Jade were missing (#1102) @Xikaro
|
||||
- Improved block ordering logic with AoE mining tools to reduce incorrect cave-ins @voidstar240
|
||||
|
||||
@@ -25,11 +25,12 @@ const registerTooltips = (event) =>
|
||||
text.add(1, [text.of("§4Obsolete§f: Replaced by the AFC TreeTap, you can craft it from this one by placing this in a crafting table!")])
|
||||
})
|
||||
event.addAdvanced(['create:blaze_burner'], (item, advanced, text) => {
|
||||
text.add(1, text.of('§cSuperheat§r with Coke, or Flawless and Exquisite coal gems.'))
|
||||
text.add(1, text.of('§cSuperheat§r with Coke, Anthracite, or Flawless and Exquisite coal gems.'))
|
||||
})
|
||||
event.addAdvanced(['gtceu:greenhouse'], (item, advanced, text) => {
|
||||
text.add(1, text.of('This machine has a §2Perfect Overclock§r!')),
|
||||
text.add(2, text.of('Currently, due to a bug, sometimes outputs rotten food.'))
|
||||
text.add(3, text.of(`The interior is customizable! Check the multiblock preview in JEI.`))
|
||||
})
|
||||
event.addAdvanced(['gtceu:nether_dome'], (item, advanced, text) => {
|
||||
text.add(1, text.of('Artificial enviroment to simulate the Nether.')),
|
||||
|
||||
@@ -444,12 +444,12 @@ const registerFirmaLifeRecipes = (event) => {
|
||||
|
||||
// Семена фруктов
|
||||
global.FIRMALIFE_GREENHOUSE_FRUIT_RECIPE_COMPONENTS.forEach(element => {
|
||||
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name)
|
||||
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name, true)
|
||||
})
|
||||
|
||||
// Семена ягод
|
||||
global.FIRMALIFE_GREENHOUSE_BERRY_RECIPE_COMPONENTS.forEach(element => {
|
||||
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name)
|
||||
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name, false)
|
||||
})
|
||||
|
||||
//#endregion
|
||||
|
||||
@@ -23,10 +23,10 @@ const generateCutterRecipe = (event, input, output, duration, EUt, id) => {
|
||||
.EUt(EUt)
|
||||
}
|
||||
|
||||
const generateGreenHouseRecipe = (event, input, fluid_amount, output, id) => {
|
||||
const generateGreenHouseRecipe = (event, input, fluid_amount, output, id, overworldExclusive) => {
|
||||
|
||||
// Без удобрения
|
||||
event.recipes.gtceu.greenhouse(id)
|
||||
let r = event.recipes.gtceu.greenhouse(id)
|
||||
.itemInputs(input)
|
||||
.circuit(1)
|
||||
.inputFluids(Fluid.of('minecraft:water', fluid_amount))
|
||||
@@ -36,8 +36,11 @@ const generateGreenHouseRecipe = (event, input, fluid_amount, output, id) => {
|
||||
.duration(36000) // 30 mins
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
if (overworldExclusive)
|
||||
r.dimension('minecraft:overworld')
|
||||
|
||||
// С удобрением
|
||||
event.recipes.gtceu.greenhouse(`${id}_fertilized`)
|
||||
r = event.recipes.gtceu.greenhouse(`${id}_fertilized`)
|
||||
.itemInputs(input)
|
||||
.itemInputs('8x gtceu:fertilizer')
|
||||
.circuit(2)
|
||||
@@ -47,6 +50,9 @@ const generateGreenHouseRecipe = (event, input, fluid_amount, output, id) => {
|
||||
.chancedOutput(input, 6000, 0)
|
||||
.duration(12000) // 10 mins
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
if (overworldExclusive)
|
||||
r.dimension('minecraft:overworld')
|
||||
}
|
||||
|
||||
const getFillingNBT = (material, amount) => {
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
|
||||
function registerTFCDirtRecipes(event) {
|
||||
|
||||
//#region Земля
|
||||
|
||||
// Loam + Silt -> Silty Loam (Миксер)
|
||||
event.recipes.gtceu.mixer('silty_loam_dirt')
|
||||
.itemInputs('tfc:dirt/loam', 'tfc:dirt/silt')
|
||||
@@ -26,18 +24,11 @@ function registerTFCDirtRecipes(event) {
|
||||
.itemOutputs(`tfc:rooted_dirt/${mud}`)
|
||||
.duration(200)
|
||||
.EUt(16)
|
||||
})
|
||||
|
||||
global.TFC_MUD_TYPES.forEach(mud => {
|
||||
|
||||
event.smelting(`tfc:dirt/${mud}`, `tfc:mud/${mud}`)
|
||||
.id(`tfg:smelting/${mud}_mud_to_grass`)
|
||||
})
|
||||
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Грязь
|
||||
|
||||
global.TFC_MUD_TYPES.forEach(mud => {
|
||||
// Dirt -> Mud
|
||||
event.recipes.gtceu.mixer(`${mud}_grass_to_mud`)
|
||||
.itemInputs(`tfc:dirt/${mud}`)
|
||||
@@ -46,12 +37,8 @@ function registerTFCDirtRecipes(event) {
|
||||
.itemOutputs(`tfc:mud/${mud}`)
|
||||
.duration(200)
|
||||
.EUt(16)
|
||||
})
|
||||
|
||||
//#endregion
|
||||
|
||||
//AE Transform Mud
|
||||
global.TFC_MUD_TYPES.forEach(mud => {
|
||||
//AE Transform Mud
|
||||
event.custom({
|
||||
type: "ae2:transform",
|
||||
circumstance: {
|
||||
@@ -62,12 +49,8 @@ function registerTFCDirtRecipes(event) {
|
||||
{item: `tfc:dirt/${mud}`}],
|
||||
result: {item: `tfc:mud/${mud}`}
|
||||
}).id(`tfg:ae_transform/${mud}_to_mud`)
|
||||
})
|
||||
|
||||
|
||||
//#region Грязь кирпичи
|
||||
|
||||
global.TFC_MUD_TYPES.forEach(mud => {
|
||||
// Mud bricks
|
||||
|
||||
// Влажный кирпич -> Кирпич
|
||||
event.smelting(`tfc:mud_brick/${mud}`, `tfc:drying_bricks/${mud}`)
|
||||
@@ -104,9 +87,9 @@ function registerTFCDirtRecipes(event) {
|
||||
A: `tfc:mud_brick/${mud}`
|
||||
}).id(`tfc:crafting/soil/${mud}_mud_bricks_slab`)
|
||||
|
||||
event.shaped(`2x tfc:mud_bricks/${mud}_wall`, [
|
||||
'AAA',
|
||||
'AAA'
|
||||
event.shaped(`tfc:mud_bricks/${mud}_wall`, [
|
||||
'A',
|
||||
'A'
|
||||
], {
|
||||
A: `tfc:mud_brick/${mud}`
|
||||
}).id(`tfc:crafting/soil/${mud}_mud_bricks_wall`)
|
||||
@@ -128,9 +111,16 @@ function registerTFCDirtRecipes(event) {
|
||||
|
||||
event.stonecutting(`tfc:mud_bricks/${mud}_wall`, `tfc:mud_bricks/${mud}`)
|
||||
.id(`tfc:stonecutting/soil/${mud}_mud_bricks_wall`)
|
||||
|
||||
// Grass blocks
|
||||
|
||||
event.shapeless(`tfc:grass/${mud}`, [`tfc:dirt/${mud}`, 'minecraft:bone_meal', '#forge:seeds'])
|
||||
.id(`tfg:shapeless/${mud}_grass_bonemeal`)
|
||||
|
||||
event.shapeless(`tfc:grass/${mud}`, [`tfc:dirt/${mud}`, 'gtceu:fertilizer', '#forge:seeds'])
|
||||
.id(`tfg:shapeless/${mud}_grass_fertilizer`)
|
||||
})
|
||||
|
||||
//#endregion
|
||||
|
||||
// #region Wattle and daub
|
||||
// TODO: Workaround for not being able to stain wattle and daub with normal dyes
|
||||
|
||||
@@ -94,26 +94,26 @@ const registerTFCRecipes = (event) => {
|
||||
|
||||
// Дерево
|
||||
global.TFC_WOOD_TYPES.forEach(wood => {
|
||||
generateGreenHouseRecipe(event, `8x tfc:wood/sapling/${wood}`, 16000, `64x tfc:wood/log/${wood}`, `tfg:greenhouse/${wood}`)
|
||||
generateGreenHouseRecipe(event, `8x tfc:wood/sapling/${wood}`, 16000, `64x tfc:wood/log/${wood}`, `tfg:greenhouse/${wood}`, true)
|
||||
})
|
||||
|
||||
global.AFC_SAPLINGS.forEach(x => {
|
||||
generateGreenHouseRecipe(event, `8x afc:wood/sapling/${x.sapling}`, 16000, `64x ${x.log}`, `tfg:greenhouse/${x.sapling}`)
|
||||
generateGreenHouseRecipe(event, `8x afc:wood/sapling/${x.sapling}`, 16000, `64x ${x.log}`, `tfg:greenhouse/${x.sapling}`, true)
|
||||
})
|
||||
|
||||
// Семена фруктов
|
||||
global.TFC_GREENHOUSE_FRUIT_RECIPE_COMPONENTS.forEach(element => {
|
||||
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name)
|
||||
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name, true)
|
||||
})
|
||||
|
||||
// Семена овощей
|
||||
global.TFC_GREENHOUSE_VEGETABLE_RECIPE_COMPONENTS.forEach(element => {
|
||||
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name)
|
||||
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name, false)
|
||||
})
|
||||
|
||||
// Семена ягод
|
||||
global.TFC_GREENHOUSE_BERRY_RECIPE_COMPONENTS.forEach(element => {
|
||||
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name)
|
||||
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name, false)
|
||||
})
|
||||
|
||||
// Растения
|
||||
@@ -121,7 +121,7 @@ const registerTFCRecipes = (event) => {
|
||||
const itemId = element.id;
|
||||
const recipeId = `greenhouse_${itemId.replace(':', '_')}`;
|
||||
|
||||
generateGreenHouseRecipe(event, itemId, 8000, `8x ${itemId}`, recipeId);
|
||||
generateGreenHouseRecipe(event, itemId, 8000, `8x ${itemId}`, recipeId, false);
|
||||
});
|
||||
|
||||
//#endregion
|
||||
|
||||
@@ -19,15 +19,15 @@ const registerGTCEuMachines = (event) => {
|
||||
.appearanceBlock(GTBlocks.CASING_STEEL_SOLID)
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("CCCCCCC", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", " F ")
|
||||
.aisle("CDDDDDC", "X X", "X X", "X X", "X X", "X X", "X X", "X X", " XXFXX ")
|
||||
.aisle("CDDDDDC", "X X", "X X", "X X", "X X", "X X", "X X", "X X", " XXFXX ")
|
||||
.aisle("CDDDDDC", "F F", "F F", "F F", "F F", "F F", "F F", "F F", "FFFFFFF")
|
||||
.aisle("CDDDDDC", "X X", "X X", "X X", "X X", "X X", "X X", "X X", " XXFXX ")
|
||||
.aisle("CDDDDDC", "X X", "X X", "X X", "X X", "X X", "X X", "X X", " XXFXX ")
|
||||
.aisle("CDDDDDC", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", " XXFXX ")
|
||||
.aisle("CDDDDDC", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", " XXFXX ")
|
||||
.aisle("CDDDDDC", "F#####F", "F#####F", "F#####F", "F#####F", "F#####F", "F#####F", "F#####F", "FFFFFFF")
|
||||
.aisle("CDDDDDC", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", " XXFXX ")
|
||||
.aisle("CDDDDDC", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", " XXFXX ")
|
||||
.aisle("CCCYCCC", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", " F ")
|
||||
.where('X', Predicates.blocks('ae2:quartz_glass'))
|
||||
.where('F', Predicates.frames('steel'))
|
||||
.where('D', Predicates.blocks('tfc:dirt/silt')
|
||||
.where('D', Predicates.blocks('tfc:grass/silt')
|
||||
.or(Predicates.blocks('tfc:dirt/loam'))
|
||||
.or(Predicates.blocks('tfc:dirt/sandy_loam'))
|
||||
.or(Predicates.blocks('tfc:dirt/silty_loam'))
|
||||
@@ -36,11 +36,39 @@ const registerGTCEuMachines = (event) => {
|
||||
.or(Predicates.blocks('tfc:grass/sandy_loam'))
|
||||
.or(Predicates.blocks('tfc:grass/silty_loam')))
|
||||
.where('C', Predicates.blocks('gtceu:steel_machine_casing').or(Predicates.autoAbilities(definition.getRecipeTypes())))
|
||||
.where('#', Predicates.air()
|
||||
.or(Predicates.blockTag($Tags.block("minecraft:logs")))
|
||||
.or(Predicates.blockTag($Tags.block("minecraft:leaves"))))
|
||||
.where(' ', Predicates.any())
|
||||
.where('Y', Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.build()
|
||||
)
|
||||
.workableCasingRenderer('gtceu:block/casings/solid/machine_casing_solid_steel', 'gtceu:block/multiblock/implosion_compressor', false)
|
||||
.shapeInfo(controller => MultiblockShapeInfo.builder()
|
||||
.aisle("CCCCCCC", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", " F ")
|
||||
.aisle("CDDDDDC", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", " XXFXX ")
|
||||
.aisle("CDDDDDC", "X#####X", "X#####X", "X#####X", "X##L##X", "X#LLL#X", "X##L##X", "X#####X", " XXFXX ")
|
||||
.aisle("CDDDDDC", "F##W##F", "F##W##F", "F##W##F", "F#LWL#F", "F#LWL#F", "F#LLL#F", "F#####F", "FFFFFFF")
|
||||
.aisle("CDDDDDC", "X#####X", "X#####X", "X#####X", "X##L##X", "X#LLL#X", "X##L##X", "X#####X", " XXFXX ")
|
||||
.aisle("CDDDDDC", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", "X#####X", " XXFXX ")
|
||||
.aisle("CitYfeC", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", " F ")
|
||||
.where('Y', controller, Direction.SOUTH)
|
||||
.where('C', GTBlocks.STEEL_HULL.get())
|
||||
.where('D', Block.getBlock('tfc:grass/silt'))
|
||||
.where('F', Block.getBlock('gtceu:steel_frame'))
|
||||
.where('X', Block.getBlock('ae2:quartz_glass'))
|
||||
.where('W', Block.getBlock('tfc:wood/log/oak'))
|
||||
.where('L', Block.getBlock('tfc:wood/leaves/oak'))
|
||||
.where(' ', Block.getBlock('minecraft:air'))
|
||||
.where('i', GTMachines.ITEM_IMPORT_BUS[GTValues.ULV], Direction.SOUTH)
|
||||
.where('t', GTMachines.ITEM_EXPORT_BUS[GTValues.ULV], Direction.SOUTH)
|
||||
.where('f', GTMachines.FLUID_IMPORT_HATCH[GTValues.ULV], Direction.SOUTH)
|
||||
.where('e', GTMachines.ENERGY_INPUT_HATCH[GTValues.LV], Direction.SOUTH)
|
||||
.build()
|
||||
)
|
||||
.workableCasingRenderer(
|
||||
'gtceu:block/casings/solid/machine_casing_solid_steel',
|
||||
'gtceu:block/multiblock/implosion_compressor', false
|
||||
)
|
||||
|
||||
//#endregion
|
||||
|
||||
|
||||
Reference in New Issue
Block a user