Vexatos / Computronics

A ComputerCraft/OpenComputers addon mod.
125 stars 53 forks source link

Adapter ignores GregTech covers #202

Open wkalinin opened 8 years ago

wkalinin commented 8 years ago

I'm not sure if this is not a core OC issue, but as GT machine driver is provided by Computronics, I post it here first: When placing an adapter near GT block (machine, cable) covered by GT covers (plates, foils), adapter still register this block as a component. This can be a pain in compact setups, because there is no way to disable specific adapter size. (Which would be great too (idea was mentioned in https://github.com/MightyPirates/OpenComputers/issues/1341))

Vexatos commented 8 years ago

Disabling an adapter side does sound like an interesting idea.

Unfortunately, it's not really possible to check if a cover blocks data as there are only methods to check if a covered side accepts items, fluid, EU or redstone.

Vexatos commented 8 years ago

Why would you need side-specificness to compact setups? Wouldn't you merely have one component you don't need in your network if there is an adapter adjacent to it? I don't see how a single redundant component would be this bad.

wkalinin commented 8 years ago

Because e.g. if an adapter is for a battery buffer, then it is fairly probable that there would be a lot of power cables around, if it a central power storage. And I certainly don't need any components for these cables even if they touch the adapter. Redundant components are bad because of the components limit. Even with server component cards the limit is not that high. Currently in the component list of my server about half of the components are cables. (Yes, I like compact design)

leagris commented 8 years ago

One solution to this (I don't mean it be easy to implement), would be to get interfaces as multi-part panes using AppliedEnergistics2 as a model. Keep current interfaces as single-block for convenience and backward compatibility but add option to convert these to interface panes to stick on computer cables. Panel interface should only show component on its side. Fit compact designs by interfacing multiple sides of a same computer cable block.

Vexatos commented 8 years ago

@wkalinin The obvious solution would be not to place the Adapter next to the cables. If you really are using all sides of the battery buffer in such a way that there are always cables nearby, you might instead want to re-think your design with OpenComputers in mind. That's not about compactness. Adapters cannot be set to check only specific sides and Computronics can do nothing about that, while the GregTech side doesn't provide any method to check whether a cover should block data transmission, otherwise I would have already implemented that.

@leagris This is not something that would belong into Computronics.

wkalinin commented 8 years ago

Unfortunately, it's not really possible to check if a cover blocks data as there are only methods to check if a covered side accepts items, fluid, EU or redstone.

The obvious solution would be to look if the cover blocks everything (which is the default), and only if it does not block something, then register a component.

Vexatos commented 8 years ago

But why would blocking items, fluids or redstone impact data flow in any way? It simply makes no sense.

leagris commented 8 years ago

On 06/06/2016 15:46, Vexatos wrote:

But why would blocking items, fluids or redstone impact data flow in any way? It simply makes no sense.

Redstone is Data. So if covered side is blocking Redstone, maybe that interface should not be reading the machine behind.

Gregtech as multiple kind of covers.

Would be fair: If you cannot read/transmit redstone through a side, you should not read data from the block. Considered as dumb block.

Vexatos commented 8 years ago

I probably could do that. I'll look into it.

Vexatos commented 7 years ago

As of OpenComputers 1.6.1, you can wrench an adapter's side to turn it off; that might help.

repo-alt commented 7 years ago

Yes, of course, thank you.

leagris commented 7 years ago

Just awesome. It also save on collecting unused data.