This PR allows the usage of any fluid container, such as GT cells and drums, or EIO portable tanks, or Thermal portable tanks, in crafting recipes involving buckets. This is done through mass recipe replacing, replacing ingredients with a custom 'fluid bucket ingredient'. This ingredient also displays some options for containers in JEI, allowing for crafting auto-fill. Some recipes have been changed: - Cake + Cake Base + Chocolate Cake now supports dough or rice dough - Cake + Cake Base no longer allow using unfilled buckets - Concrete Bucket (for Firebricks Recipe) change: - Now makes Concrete Cell (Iron) - Takes a cell as input, and any fluid container (for water) as input - New Recipe: Water + Lava = Obsidian Reviewers: - Anything else we should add to the display list? Should we remove something? - Any recipes that are not replaced? - Check for bugs involving crafting, e.g. crash, dupe, unexpected behaviours. [EXPAND] [[messages]] messageBody = ''' [FEATURE] [DETAILS] details = [ "Allows using ANY Fluid Container (GT Drums/Cells, EIO Tanks, Thermal Tanks, etc.) in Crafting Recipes, Substituting Filled Buckets", "Also adds Crafting Recipe for Obsidian (Water + Lava)" ] [DETAILS] ''' [[messages]] messageTitle = "Revamp Concrete Bucket Crafting Recipe" messageBody = ''' [BALANCING] [HM] [DETAILS] detail = "Now takes an Empty Cell as Input, and outputs a Filled Cell" [DETAILS] ''' [EXPAND]
129 lines
4.7 KiB
Groovy
129 lines
4.7 KiB
Groovy
import net.minecraft.item.EnumDyeColor
|
|
import net.minecraft.item.ItemStack
|
|
|
|
import static com.nomiceu.nomilabs.groovy.GroovyHelpers.NBTClearingRecipeHelpers.*
|
|
import static com.nomiceu.nomilabs.groovy.GroovyHelpers.TooltipHelpers.*
|
|
import static com.nomiceu.nomilabs.groovy.GroovyHelpers.TranslationHelpers.*
|
|
import static com.nomiceu.nomilabs.groovy.NBTClearingRecipe.CAN_CLEAR_TOOLTIP
|
|
import static com.nomiceu.nomilabs.groovy.NBTClearingRecipe.WARNING_TOOLTIP
|
|
import static gregtech.common.metatileentities.MetaTileEntities.*
|
|
|
|
// NBT Clearing Recipes
|
|
nbtClearingRecipe(item('minecraft:water_bucket'), item('minecraft:bucket'))
|
|
nbtClearingRecipe(item('minecraft:lava_bucket'), item('minecraft:bucket'))
|
|
nbtClearingRecipe(item('forge:bucketfilled'), item('minecraft:bucket'))
|
|
|
|
// Shulker Boxes
|
|
for (def color : EnumDyeColor.values()) {
|
|
nbtClearingRecipe(item("minecraft:${color.name}_shulker_box"))
|
|
}
|
|
|
|
// GT Crates
|
|
for (def material : ["wood", "bronze", "steel", "aluminium", "stainless_steel", "titanium", "tungstensteel"]) {
|
|
nbtClearingRecipe(metaitem("crate.${material}"))
|
|
}
|
|
|
|
// NC Coolers
|
|
for (def meta : 1..15) {
|
|
nbtClearingRecipe(item('nuclearcraft:cooler', meta), item('nuclearcraft:cooler'),
|
|
translatable('nomiceu.tooltip.nc.nbt_clearing.cooler.can_clear'),
|
|
translatable('nomiceu.tooltip.nc.nbt_clearing.cooler.warning'))
|
|
}
|
|
|
|
// Bronze Cell
|
|
nbtClearingRecipe(metaitem('nomilabs:bronze_cell'))
|
|
|
|
/* Drawers */
|
|
// Add empty can clear tooltip, as we want to add multiple lines
|
|
var empty = translatableEmpty()
|
|
List<ItemStack> canClearDrawers = []
|
|
|
|
// Wooden Type Drawers
|
|
for (def meta : 0..4) {
|
|
nbtClearingRecipe(item('storagedrawers:basicdrawers', meta), {
|
|
var tag = transferSubTags(it, 'material')
|
|
it.tagCompound = transferDrawerUpgradeData(it, tag)
|
|
}, empty, WARNING_TOOLTIP)
|
|
|
|
canClearDrawers.add(item('storagedrawers:basicdrawers', meta))
|
|
}
|
|
|
|
var normalClearer = { ItemStack it ->
|
|
it.tagCompound = transferDrawerUpgradeData(it, null)
|
|
}
|
|
|
|
// GregTech Drawers
|
|
for (def meta : 0..4) {
|
|
nbtClearingRecipe(item('gregtechdrawers:basicdrawers_gregtech_rubber_wood', meta), normalClearer,
|
|
empty, WARNING_TOOLTIP)
|
|
nbtClearingRecipe(item('gregtechdrawers:basicdrawers_gregtech_treated_wood', meta), normalClearer,
|
|
empty, WARNING_TOOLTIP)
|
|
|
|
canClearDrawers.add(item('gregtechdrawers:basicdrawers_gregtech_rubber_wood', meta))
|
|
canClearDrawers.add(item('gregtechdrawers:basicdrawers_gregtech_treated_wood', meta))
|
|
}
|
|
|
|
// Compacting Drawers
|
|
nbtClearingRecipe(item('storagedrawers:compdrawers'), normalClearer, empty, WARNING_TOOLTIP)
|
|
canClearDrawers.add(item('storagedrawers:compdrawers'))
|
|
|
|
/* Framed Drawer Like */
|
|
def framedClearer = { ItemStack it ->
|
|
var tag = transferSubTags(it, 'MatS', 'MatT', 'MatF')
|
|
it.tagCompound = transferDrawerUpgradeData(it, tag)
|
|
}
|
|
|
|
// Framed Drawers
|
|
for (def meta : 0..4) {
|
|
nbtClearingRecipe(item('storagedrawers:customdrawers', meta), framedClearer, empty, WARNING_TOOLTIP)
|
|
canClearDrawers.add(item('storagedrawers:customdrawers', meta))
|
|
}
|
|
|
|
// Framed Compacting Drawers
|
|
nbtClearingRecipe(item('framedcompactdrawers:framed_compact_drawer'), framedClearer, empty, WARNING_TOOLTIP)
|
|
canClearDrawers.add(item('framedcompactdrawers:framed_compact_drawer'))
|
|
|
|
for (var canClear : canClearDrawers) {
|
|
addTooltip(canClear, [translatable('nomiceu.tooltip.drawers.nbt_clearing.drawers.can_clear.1'),
|
|
translatable('nomiceu.tooltip.drawers.nbt_clearing.drawers.can_clear.2')])
|
|
}
|
|
|
|
// Thermal Portable Tanks
|
|
nbtClearingRecipe(item('thermalexpansion:tank'), {
|
|
it.tagCompound = transferSubTags(it, 'Creative', 'Level', 'RSControl')
|
|
})
|
|
|
|
// Tooltips for Other Clearable Containers
|
|
List<ItemStack> clearableContainers = []
|
|
|
|
// Super/Quantum Chests & Tanks
|
|
clearableContainers.addAll(QUANTUM_CHEST.collect {it.getStackForm() })
|
|
clearableContainers.addAll(QUANTUM_TANK.collect {it.getStackForm() })
|
|
|
|
// Drums
|
|
for (def material : ["wood", "bronze", "steel", "aluminium", "stainless_steel", "titanium", "tungstensteel", "gold"]) {
|
|
clearableContainers.add(metaitem("drum.${material}"))
|
|
}
|
|
|
|
// Cells
|
|
|
|
// Bronze Cell does not need tooltip added, its recipe is added above
|
|
|
|
// Special Cells
|
|
clearableContainers.add(metaitem('fluid_cell'))
|
|
clearableContainers.add(metaitem('fluid_cell.universal'))
|
|
|
|
// Material Cells
|
|
for (def material : ["steel", "aluminium", "stainless_steel", "titanium", "tungstensteel"]) {
|
|
clearableContainers.add(metaitem("large_fluid_cell.${material}"))
|
|
}
|
|
|
|
// EIO Tanks
|
|
// Technically Machines Too... but Not As Useful
|
|
clearableContainers.add(item('enderio:block_tank'))
|
|
clearableContainers.add(item('enderio:block_tank', 1))
|
|
|
|
for (def container : clearableContainers) {
|
|
addTooltip(container, CAN_CLEAR_TOOLTIP)
|
|
}
|