Hiding unused tank recipes in JEI
Aspyro opened this issue · 8 comments
In my pack, I use FluidTank and i needed to hide every tank from non vanilla material (lead, silver, copper, tin, bronze). It did work.
The same way i tried to hide every invisible tanks. I kinda worked but in the Gold Tank recipe, some of them still do appear (invisible_tank_iron, invisible_tank_silver, invisible_tank_bronze, invisible_tank_lead).
Same thing with the corresponding tanks used to craft the iron tank
I don't understand why.
There is the useful part in my script code (kubeJS) :
var FluidTankTanks = [
'fluidtank:tank_copper',
'fluidtank:tank_silver',
'fluidtank:tank_tin',
'fluidtank:tank_bronze',
'fluidtank:tank_lead',
'fluidtank:invisible_tank_copper',
'fluidtank:invisible_tank_silver',
'fluidtank:invisible_tank_tin',
'fluidtank:invisible_tank_bronze',
'fluidtank:invisible_tank_lead',
'fluidtank:creative'
]
// Less useful, but here to show that eveything worked with all those arrays from other similar mods
var ArrayOfAllArrays = [
IronFurnacesTierUpgrades,
IronFurnacesUpgradedFurnaces,
IronFurnacesRainbowRelatedItems,
IronChestsChestUpgrades,
IronChestsChests,
IronShulkerBoxesShulkerUpgrades,
IronShulkerBoxesShulkers,
MetalBarrelsBarrelUpgrades,
MetalBarrelsBarrels,
FluidTankTanks
]
onEvent('recipes', event => {
// Change recipes here
ArrayOfAllArrays.forEach(detailledArray => {
detailledArray.forEach(element => {
event.remove({id: element})
event.remove({input: element})
event.remove({output: element})
})
});
});
I also did the same to hide all those items from the side panel in JEI, with this function in the appropriate file.
So all the fluid tanks I don't need are hidden from JEI, but they aren't in recipes where they would be used
onEvent('jei.hide.items', event => {
// Hide items in JEI here
// event.hide('minecraft:cobblestone')
ArrayOfAllArrays.forEach(detailledArray => {
detailledArray.forEach(element => {
event.hide(element);
})
});
});
What does the word “hide“ mean?
- Remove block completely
- Remove recipe in order not to be used in survival
- Hde from JEI, remaining the recipe available
I think you mean 2.
I don't know about KubeJS, but you can add “fluidtank:crafting_convert_invisible“ to remove all recipes for invisible tanks.
I was thinking of a way to help that issue that would be :
- add in the config file the possibility to not load invisible tanks
- add in the config file the possibility to not load tanks from a non-vanilla material
While i'm at it, I was thinking of 2 other things you could add to the mod :
- add in the config file the possibility to change the capacity of the tanks
- add in the config file the possibility to add our own tanks
Would you prefer that I write it in another issue ?
Hiding means n°3
But I did 2 & 3.
I did use "fluidtank:crafting_convert_invisible" as you suggest, but I still see the invisible tanks as ingredients for the Gold and Iron tanks. It didn't work.
However, i'm sure there is no error in the script, because it works for everything else.
I added some config options, "usableInvisibleInRecipe", "usableUnavailableTankInRecipe". Change both to false will hide tanks from recipe.
You want to hide (or remove) invisible tanks from the recipe of normal tanks (in JEI and real crafting), right?
Not to load blocks is not allowed by forge, but I can make some tanks unusable as ingredient of high tier tank recipe.
These functions need code change, so I'll work in my dev environment.
Changing the capacity of tanks will result in strange rendering like this.
Actually, I have some ideas to solve this problem, but I need more time to implement and test it.
Thanks for the updates, I'll try this out right now !
And thanks too for the information on the tanks capacity.