Compatibility
Minecraft: Java Edition
1.21.1
1.20.1
1.19.2
1.18.2
Platforms
Supported environments
75% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Links
Creators
Details
Licensed LGPL-3.0-only
Published 3 years ago
Updated 3 days ago
Create Mechanical Extruder
A mechanical extruder block. Can be used to generate any block or item from adjacent blocks/fluids. This mod it's meant to be used in modpacks. Only contains very basic recipes.
Heavily inspired on Thermal Expansions Igneous Extruder.
1.21.1-2.x Version Requires Mechanicals Lib
Version support & documentation
- 1.21.1: Supported. Documentation refers to this version.
- 1.20.1: Only critical issues
- 1.19.x: Unsupported: Documentation
- 1.18.x: Unsupported: Documentation
Andesite Extruder
- Kinetic block.
- Filter functionality for selecting output when recipe collides.
- Shift+right click with empty hand to extract content.
- Extraction via automation.
Brass Extruder
- Can consume source blocks.
Extruding recipes
- JEI integration.
- Per recipe custom requirements.
BlockState
Block
{
"blocks": "minecraft:water"
},
Block with State
{
"blocks": "minecraft:furnace",
"state": {
"lit": "true"
}
}
Input BlockStates
"blockIngredients": {
"first": {
"blocks": "minecraft:water"
},
"second": {
"blocks": "minecraft:lava"
}
}
Catalyst BlockStates
"catalyst": {
"blocks": "minecraft:obsidian"
}
Required bonks (optional)
"requiredBonks": 10
- Defines how many times must hit.
Advanced extruder (brass) per recipe (optional)
"advanced":"true"
- Recipes requires brass extruder.
Consume blocks (advanced recipe)
- Advanced extruder can consume blocks.
"consumeBlocks": {
"first": false,
"second": true
},
Recipe Requirements
- MinY/MaxY
"requirements": [
{
"type": "mechanicals:min_y",
"value": 0
},
{
"type": "mechanicals:max_y",
"value": 60
}
],
- MinSpeed/MaxSpeed
"requirements": [
{
"type": "mechanicals:max_speed",
"value": 4.0
}
],
- Biome
"requirements": [
{
"type": "mechanicals:biome",
"value": "minecraft:plains"
}
],
- BiomeTag
"requirements": [
{
"type": "mechanicals:biome_tag",
"value": "minecraft:is_nether"
}
],
KubeJS
- Remove al Extruding recipes.
ServerEvents.recipes(event => {
event.remove({ type: 'create_mechanical_extruder:extruding' })
})
- Chanced output (binding)
Output.of('minecraft:clay', 0.5)
Output.of('4xminecraft:clay', 0.5)
- BlockPredicate (binding)
BlockPredicate.of('minecraft:sand')
- RecipeRequirement (binding)
RecipeRequirement.minY(int) //ex: RecipeRequirement.minY(-10)
RecipeRequirement.maxY(int) //ex: RecipeRequirement.maxY(20)
RecipeRequirement.minSpeed(float) //ex: RecipeRequirement.minSpeed(2.0)
RecipeRequirement.maxSpeed(float) //ex: RecipeRequirement.maxSpeed(160)
RecipeRequirement.biome(string) //ex: RecipeRequirement.biome("minecraft:plains")
RecipeRequirement.maxSpeed(string) //ex: RecipeRequirement.biome("minecraft:plains")
- Add recipes
ServerEvents.recipes(event => {
/**
create_mechanical_extruder.extruding(Output result, BlockPredicate[] inputs)
.catalys(BlockPredicate catalyst) // optional, default: empty
.advanced(true) //optional, default: false
.consumeBlock(Couple consume) //optional, default: empty
**/
event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:dirt'),[BlockPredicate.of('minecraft:lava'),BlockPredicate.of('minecraft:stone')])
.catalyst('minecraft:clay')})
- Some examples:
//Minimal
event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:redstone_block'),[BlockPredicate.of('minecraft:lava'),BlockPredicate.of('minecraft:stone')])
//Catalyst
event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:dirt'),[BlockPredicate.of('minecraft:lava'),BlockPredicate.of('minecraft:stone')])
.catalyst('minecraft:clay')
//Bonks
event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:sand'),[BlockPredicate.of('minecraft:lava'),BlockPredicate.of('minecraft:stone')])
.requiredBonks(10)
//Chanced output
event.recipes.create_mechanical_extruder.extruding(Output.of('minecraft:red_sand',0.5),[BlockPredicate.of('minecraft:lava'),BlockPredicate.of('minecraft:stone')])
//Chanced output & bonks
event.recipes.create_mechanical_extruder.extruding(Output.of('minecraft:birch_planks',0.5),[BlockPredicate.of('minecraft:lava'),BlockPredicate.of('minecraft:stone')])
.requiredBonks(5)
//Advanced extruder
event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:obsidian'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')])
.catalyst(BlockPredicate.of("minecraft:dirt"))
.advanced(true)
//Advanced extruder + consume blocks
event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:birch_planks'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')])
.catalyst(BlockPredicate.of("minecraft:dirt"))
.consumeBlocks(true)
.advanced(true)
//Advanced extruder + consume different blocks
event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:obsidian'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')])
.catalyst(BlockPredicate.of("minecraft:dirt"))
.consumeBlocks([true,false])
.advanced(true)
//Biome requirement
event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:iron_block'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')]).catalyst(BlockPredicate.of("minecraft:dirt"))
.requirements(
[
RecipeRequirement.biome("minecraft:plains")
]
);
//Biome Tag requirement
event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:gold_block'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')]).catalyst(BlockPredicate.of("minecraft:dirt"))
.requirements(
[
RecipeRequirement.biomeTag("minecraft:is_nether")
]
);
//MinY & MaxY requirement
event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:coal_block'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')]).catalyst(BlockPredicate.of("minecraft:dirt"))
.requirements(
[
RecipeRequirement.minY(-10),
RecipeRequirement.maxY(12),
]
);
//MinSpeed & MaxSpeed requirement
event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:dirt'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')]).catalyst(BlockPredicate.of("minecraft:dirt"))
.requirements(
[
RecipeRequirement.minSpeed(1.0),
RecipeRequirement.maxSpeed(16.0),
]
);
//All requirements together
event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:emerald_block'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')]).catalyst(BlockPredicate.of("minecraft:dirt"))
.requirements(
[
RecipeRequirement.minSpeed(6.0),
RecipeRequirement.maxSpeed(16.0),
RecipeRequirement.minY(10),
RecipeRequirement.maxY(12),
RecipeRequirement.biomeTag("minecraft:is_nether")
]
);
//Everything together
event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:emerald_block'),[BlockPredicate.of('minecraft:sand'),BlockPredicate.of('minecraft:gravel')])
.catalyst(BlockPredicate.of("minecraft:dirt"))
.advanced(true)
.consumeBlocks(true)
.requirements(
[
RecipeRequirement.minSpeed(16.0),
RecipeRequirement.minY(10),
RecipeRequirement.maxY(12),
RecipeRequirement.biomeTag("minecraft:is_nether")
]
);
// Funny things
// Flower pots
event.recipes.create_mechanical_extruder.extruding(Item.of('minecraft:glowstone'),[BlockPredicate.of('minecraft:potted_dandelion'),BlockPredicate.of('minecraft:potted_poppy')])
Thanks to the Creators of Create.
Code inspiration from the Create mod itself.