XFactHD / FramedBlocks

Fancy building blocks
GNU Lesser General Public License v3.0
69 stars 26 forks source link

[Feature]: Vertical stairs connect horizontal stairs (horizontally and vertically) #486

Open leagris opened 3 months ago

leagris commented 3 months ago

Describe the feature

With Carpenter's Blocks I used to make door frames this way by placing vertical stairs at sides, horizontal stairs atop and top corners of doors had stairs connect both horizontally and vertically.

On this aspect. Carpenter's Block had a more convenient way of determining block shape and orientation based or player target and orientation.

XFactHD commented 3 months ago

I assume this kind of setup is what you are talking about, in which case you can do that by placing the horizontal stairs in the corners facing away from the center and letting the center horizontal stairs force it into a corner shape: 2024-08-23_01 16 29

As for your second point, can you go into more detail on that? I haven't touched the original Carpenter's Blocks in ages, so I'm not sure what you mean specifically.

leagris commented 3 months ago

Yes for this setup.

As for Carpenters. Crouching while using the mouse wheel allows to cycle a shape within its category if you hold. Example: vertical or horizontal stair, the various slope types.

All shapes have some logic to auto-connect other shapes except if you crouch while placing. Example: Slopes can automatically select the slope type that best seamlessly connect to neighbour slopes

XFactHD commented 3 months ago

Ok, that makes sense. I have considered adding some way to switch between the current placement behaviour and one where you can cycle manually between the possible states and then place the selected state regardless of where exactly the crosshair points on the block you are placing it against. The difficulty is finding an approach that is not a pain to use, is stable from a technical standpoint and is not a complete pain to implement, which is why nothing in this regard has happened yet. As for trying to be clever with neighboring blocks, I'm usually not a fan of such functionality as it's far too easy to cause the exact opposite of what the player intends and, depending on the block combination, this can get really annoying to implement. Apart from that, the mod already has one system where behaviour must be defined based on the exact combination of two shapes which takes significant development time and grows exponentially. I don't want another one of those systems.