CC: Tweaked

CC: Tweaked

42M Downloads

Cannot attach a "sided" modem to pneumaticraft block. Modem "block" works fine

RobertBouillon opened this issue ยท 9 comments

commented

Minecraft Version

1.19.x

Version

1.101.4

Details

It's possible to connect a pneumaticraft thermopneumatic processing plant to a CC:T network using a modem from any side, however the smaller "sided" modem block will only connect to the top or bottom of the machine.

Steps to reproduce

  1. Make a new creative world in FTB Skies Expert
  2. Place a pneumaticraft thermopneumatic processing plant
  3. Place a modem block adjacent to the machine
  4. Surround the machine with CC:T cables.
  5. Try to attach a "sided" modem to each side of the machine

Expected Results

A sided modem should be placable on each side of the machine

Actual Results

A sided modem can only be placed on the top or bottom - modem blocks are required to interface with the machine from the sides.

image

commented

Would it be worth making a feature request for a kind of universal modem, instead?

Full block modems already exist for this purpose. Craft a modem by itself to make a full block one that can connect to non-full block peripherals.

What's the purpose of the "sided" modem? My naive expectation was that it would behave similar to other mods that interface with blocks, such as pipes (Mekanism, Thermal) , XNET. Given that I've misunderstood, that it only interfaces with full blocks, and can only attach to a single face, its purpose seems superfluous and a little confusing / disappointing. The only practical use I can think of is to prevent 5 of 6 sides from attaching as peripherals, which seems like an edge-case. It just doesn't feel consistent with how "interfacing" mods tend to work.

commented

Does Minecraft consider side of that block to be full block? Are you able for example to place torch on side of that block?

Nope, can't place a torch on it.

commented

Then it is working as intended. Small modems can only be placed on side of block that is considered full side cause it looks odd if it's not full side (for example chest) and there is odd gap between modem and block. In this case probably Minecraft is deciding this fancy model has too many gaps to be full side so you can't place the modem. Using full block modem is a solution here.

I don't think its worth making custom logic for testing if side of block is full enough to not look junky.. That sounds like something that would be a lot of work to implement and upkeep over later updates and lead to future different inconsistencies.

commented

Then it is working as intended. Small modems can only be placed on side of block that is considered full side cause it looks odd if it's not full side (for example chest) and there is odd gap between modem and block. In this case probably Minecraft is deciding this fancy model has too many gaps to be full side so you can't place the modem. Using full block modem is a solution here.

I don't think its worth making custom logic for testing if side of block is full enough to not look junky.. That sounds like something that would be a lot of work to implement and upkeep over later updates and lead to future different inconsistencies.

Okay, thanks for clarifying. So definitely not a bug.

I was expecting a behavior similar to pipes and AE2, though. I guess that's why the connectors are so small in those mods. Would it be worth making a feature request for a kind of universal modem, instead?

commented

So I think there is actually a bug here, in that modems shouldn't be placeable on the top face โ€” that face definitely isn't solid either! Modems currently use canSupportCenter to check if they can be placed, which is probably the wrong choice. This is mostly intended for things like torches, so you have the curious side-effect that you can place modems on top of fence posts.

I think the best option here is to just switch to checking the face is a full-block. We'll have to do this as part of a Minecraft upgrade, as otherwise we'll end up breaking existing builds.

We could possibly do a more fine-grained check here. It would be nice to have a can-place check which also allows for chests (which is also a pain-point, see #1758). The trouble with doing anything custom is that it's not cached by Minecraft, and so has a slightly higher performance cost (though this is hardly on the hot-path, so probably doesn't matter :D).

commented

Would it be worth making a feature request for a kind of universal modem, instead?

Full block modems already exist for this purpose. Craft a modem by itself to make a full block one that can connect to non-full block peripherals.

commented

Does Minecraft consider side of that block to be full block? Are you able for example to place torch on side of that block?

commented

I consider it a holdover from before the full-block modem existed. CC is reluctant to remove things especially when they are not broken.

commented

its purpose seems superfluous and a little confusing / disappointing

Yeah, it's definitely something I want to improve.

I think (though not 100% sure, this all dates to before CC was open-sourced) the original motivation of this code was to prevent absurd placements of wireless modems (for instance, placing a modem against a torch).

I think that motivation makes sense for wired modems too. Floating modems look very silly! The trouble is cases like the original issue or #1758 where this limitation comes at the cost of usability, and it's not quite clear to me where to balance form vs function right now.