2024-12-02 12:04:45 +11:00

116 lines
4.3 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}"))
}
// 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)
}