Crafting grid behavior rework
lucasser opened this issue ยท 7 comments
Describe your enhancement
I am suggesting a rework of how items are stored inside a crafting grid. Right now, items inside the grid are stored in the block entity. This works fine if it is just crafting, but fails when you add more workstation tabs. The main problem is that my plan for multi-workstation crafting relies on being able to enable/disable tabs depending on what workstations are installed in the storage network. This will result in the deletion of items in those tabs. Instead I propose to not store the items inside the grid, but keep them in storage. When you add a recipe from JEI, the item gets put into the matrix, but it is actually still stored on a disk. This also fixes an annoying problem when you network is full and you are trying to craft something. After you pull the items into the grid, you won't be able to put them back, cluttering up your inventory.
This concept has a major problem though: crafting without a network. To solve that I suggest making the crafting grid have a built-in 1k or 4k drive. This drive can only be inserted to from the crafting grid, so when you put an item from your inventory into the matrix, it goes there. This way if there are item in say an extended crafting advanced crafting table, and you remove that table from your network, your items are not deleted, but are stored in the grid.
It seems like the only reason to do this, would be because items would get deleted if you disable a workstation tab? Why not simply return the items to the player inventory or the network when you disable a workstation tab?
When you add a recipe from JEI, the item gets put into the matrix, but it is actually still stored on a disk.
What would be the implication to the UX be for this? Can I still interact with the slots?
This also fixes an annoying problem when you network is full and you are trying to craft something. After you pull the items into the grid, you won't be able to put them back, cluttering up your inventory.
Can you elaborate a bit more? If the network is full, and the resources in the matrix slots are now on disk, don't you have the same problem?
It seems like the only reason to do this, would be because items would get deleted if you disable a workstation tab? Why not simply return the items to the player inventory or the network when you disable a workstation tab?
(The way I'm doing tabs is you have to place the workstation into the workstation grid to enable that tab [for balancing reasons], so there will be situations when there is a workstation in the grid, and then someone takes it out. so the tab gets disabled)
If I return items to network when tab is removed, what happens if there is no space in the network, or if there is no network to begin with? (standalone grid). If you return to player, what do you do if there is no player at the grid when you remove the tab? Alternatively, I can return the items to player everytime you switch tabs, but tabs saving items is a very useful feature of RS. Also if you keep items in the tab then you'll end up with players forgetting their maxed meka-tool is some random tab in some random grid god knows where, and won't be able to find it.
What would be the implication to the UX be for this? Can I still interact with the slots?
Yes. When you put something in the slot manually the items will get stored on a hidden disk bound to the grid, or the main network. I was planning to put them onto the hidden disk no matter what, but I can insert to network if there's space, whatever you think is better. The only way to insert items to the hidden disk is through the grid. There will also be a button to transfer everything from that disk into main network.
Can you elaborate a bit more? If the network is full, and the resources in the matrix slots are now on disk, don't you have the same problem?
If network is full and I request an iron block then the 9 iron get taken out of the network and put into the matrix. If I have farms running, the disks fill back up. I craft the block, and RS auto-fills the grid with more iron. but I don't need another block, so I try to return to network. But I cant because it's full. so I have to put it in my inventory, taking up space. This is especially annoying when you are trying to craft another disk with a lot of operations (cant use crafters because system will fill up).
I solve this in two parts. If you pull from jei, the items in the matrix will still be on the drives, so nothing will fill them up, and you will be able to return items to network. If I insert manually, they will get stored on the hidden disk which could either be infinite, or just big, idk yet. But it should never fill up.
Sorry, I'm not convinced that this is necessary to support the workstations. And I'm not even sure I like the semantics of the suggestion.
If you return to player, what do you do if there is no player at the grid when you remove the tab?
When will this be a case why would we remove the tab without the player interacting the grid?
Alternatively, I can return the items to player everytime you switch tabs, but tabs saving items is a very useful feature of RS. Also if you keep items in the tab then you'll end up with players forgetting their maxed meka-tool is some random tab in some random grid god knows where, and won't be able to find it.
For this i think we should either to return to player or the tab saves the item impossible to do both so decide one and live with it. There are pros and cons for everything
When will this be a case why would we remove the tab without the player interacting the grid?
Because of balancing, I want the player to craft a workstation before being able to use it. So you first make the smithing table. Then "install" it inside of a new block, the workstation grid. Then on that network, you can use smithing for crafting, making patterns, and autocrafting. This means that there is a possibility that the smithing table will get removed from the network, thus removing the tab. And because it is removed in a different block there will be no player inside the grid gui.
For this i think we should either to return to player or the tab saves the item impossible to do both so decide one and live with it. There are pros and cons for everything
I am going with saving items in tabs
When will this be a case why would we remove the tab without the player interacting the grid?
Because of balancing, I want the player to craft a workstation before being able to use it. So you first make the smithing table. Then "install" it inside of a new block, the workstation grid. Then on that network, you can use smithing for crafting, making patterns, and autocrafting. This means that there is a possibility that the smithing table will get removed from the network, thus removing the tab. And because it is removed in a different block there will be no player inside the grid gui.
So you should just have the smithing table be installed in a new block that you were naming workstation grid
just have workstation grid block entity have it own slots space where we can put any workstation that it supports and as long as i have that for example smithing table in that workstation grid i can use the smithing tab and when i remove it then the tab is gone simple
why would having a smithing table in the network showing up a tab in the workstation grid that is just not intuitive that random magic stuff happens and tabs appear and disappear that is not viable option
So you should just have the smithing table be installed in a new block that you were naming workstation grid
just have workstation grid block entity have it own slots space where we can put any workstation that it supports and as long as i have that for example smithing table in that workstation grid i can use the smithing tab and when i remove it then the tab is gone simple
That could work, but you'd have to put it inside every crafting grid you have, as well as autocrafter.
Possible, but I don't really like it
That's what I came up with. If you have a better solution, I would love to hear it.