TechReborn / RebornStorage

Adding some long lost things back into RefinedStorage
MIT License
29 stars 21 forks source link

[BUG?] Air - Block is not valid for use in the machine's interior #77

Closed hron84 closed 6 years ago

hron84 commented 6 years ago

I playing with FTB Revelations but I replaced AE2-related mods with Refined Storage and Reborn Storage (versions are at the end of the issue). I trying to build the autocrafter multiblock, however it keeps saying it detects invalid block. After few tests, it seems it does not like air blocks in the interior. While I can build a smaller multiblock, could you just allow the multiblock to not be totally filled from the beginnings but let me fill it as I progress through? Also, it would be good if it can allow airy blocks like torches too.

Versions

modmuss50 commented 6 years ago

The machine has to be solid.

hron84 commented 6 years ago

@modmuss50 Why? I mean, I understand you have this opinion, but I'd like to know the reasons.

modmuss50 commented 6 years ago

There isnt really any reason, I guess I could change it.

calloatti commented 6 years ago

Just like a computer does not need to have all its RAM or PCI slots filled to work, maybe the autocrafter could work with empty "slots" inside? It would make upgrading easier for one thing.

modmuss50 commented 6 years ago

Ok, after a bit of thinking I have come to 2 conclusions. All the blocks must be connected to the outer frame otherwise there is a chance of the inner blocks not connecting to the RS system. Each block in the multiblock acts as a cable.

Option 1: Dont allow having air gaps

Option 2: Add a cheap "filler" block that you have to put where you dont want to have anything. This could be cables?

Im not sure what your thoughts on this are on this, please let me know.

hron84 commented 6 years ago

@modmuss50 but indirect connections are OK? So, consider a 5x5x5 inner cube, if there is a CPU at 3,3,3 but the cube also has two pattern storage too that can connect it to the heat wall, is this OK? If yes, I can agree if you have to consistently fill up the internal space (e.g ground-up left-right, right-left). In this way, you do not need a filler block (if one of the valid inner blocks has no connection to casing, print a warn about it at first touch and that's all). Otherwise, yes, cables could be good. In my situation, all blocks were connected to at least one heat wall (since this was a 3x3x3 interior) but I did not have enough block to fill all 27 blocks with stuff.

modmuss50 commented 6 years ago

Humm, I may be able to add a check to ensure that all of the internal blocks are connected to the outside in someway, but that would slow down the checking of the multiblock to ensure that it is valid. Or I could just make it a warning. Ill see what I can do.

BrianEdmonds commented 6 years ago

Modmuss50 notifications@github.com writes:

Humm, I may be able to add a check to ensure that all of the internal blocks are connected to the outside in someway...

Why bother checking? Just make it part of the instructions that air blocks are allowed, but all functional blocks must be (indirectly) connected to the outside blocks. Anything connected works, anything else is reasonably ignored as not part of the structure. If you could have a placed interior block indicate its multiblock member status indicated in its description, that would help with debugging. Put an interior block down in the world, or in a crafter but not in contact with the exterior, its description would indicate that it's not part of a multiblock.

hron84 commented 6 years ago

@BrianEdmonds Multiblock consistency should be checked anyway if we want to keep current functionality - the paged inventory does not pop up if the multiblock is not correct. Also, multiblock consistency check determines how much page should be viewed for the player. It's not about the crafting process itself.

BrianEdmonds commented 6 years ago

Gabor Garami writes:

Multiblock consistency should be checked anyway...

I don't think my suggestion was to throw away multiblock consistency, just adjust its definition a bit. Instead of a multiblock having to be solid blocks, it could allow air gaps, and the active components defined as those in contact with the outer walls. This actually sounds like it could be an interview question at a tech company. :)

hron84 commented 6 years ago

@modmuss50 this is solved then?

CyberFoxar commented 4 years ago

Seconding this question, because it still is in the air for version 1.12.2 - 3.3.4.1. A spec of doc somewhere telling that the multiblock should be solid, the addition of a cheap filler block or the support of air inside the structure would be nice.

vmsh0 commented 4 years ago

I second @CyberFoxar's comment. This is not documented anywhere and I had to look through the source code (and then here) to find out!