[Request] Improved Block Placement
scofrona opened this issue ยท 3 comments
(Something that micro blocks spoiled me with)
Rather than have "vertical slabs" and "horizontal slabs" of varying size, be able to place a slab at the correct orientation (vertical or horizontal) based on the crosshair positioning. Possibly with a visual indicator when hovering over the area the block is being placed.
This would remove a bit of the convolution while crafting and keep inventories more organized by limiting a "4x4x1" slice to a single item rather than a "4x1x4" being an entirely separate value and therefore a separate stack.
A possible addition to this being when placing two perpendicular slabs in the same block space, have the corner where the two overlap drop as bits or as a column rather than force the slab to be placed in an adjacent block.
For any bug reports please provide the following details as well,
- MC Version: 1.12
- C&B Version: Newest
- Do You have Optifine: Yes (Unrelated)
While I think this sounds good in theory, it only makes sense with a smaller selection of blocks, thinks like planes, more complicated blocks work very differently, and I'm not sure it makes sense to have things behavior in drastically different ways inside the same mod. I find its generally easier to work with planes/pillar and such using raw bits rather then blocks.
This is something I was thinking could be applied to more complex blocks as well. Right now slabs are oriented in a similar way to minecraft stairs, where the position is based off of the quadrant the crosshair is on.
Would it be viable to have something so that when holding "SHIFT" a block could be placed the same way but based on the vector the block is facing (the side or bottom of a block) rather than always being oriented vertically in relation to world-space?
I think the ability to place more complicated objects at other-than-vertical orientations may help make it easier to make compound objects. It would also reduce the number of unique cut-blocks based on orientation, making them closer in function to bits when building something out of them (since bits don't have the same problem with orientation).
As an example, to make a 4-pointed star there could be a blue-print for a 1-Block pyramid and the pyramid is placed at the top, bottom, and sides of a full block so the point goes outward from the block instead of every pyramid pointing straight up.
This may not be a viable solution, but figured it wouldn't hurt to spit out some ideas.
"but based on the vector the block is facing" I believe is the main problem in this.
Blocks are just a pile of data, and the mod, and game don't really have a concept of "pointing" or "facing" a block is simply a shape, and its up to the player to decide where and how to use that shape.
Stairs and slabs, and microblocks from other mods take advantage of the fact that they know precisely what the shape is, and are able to implement special rules for how those objects can be placed.
Stairs change their shape depending on where and how you place them. Slabs move up or down depending on the side you place them. Microblocks stick to the side you are going to place them on.
Note that each of these are unique to the object your placing. a 1x16x16 plane? could function like a microblock, a 16x16x8 + 16x8x8 stair could function more like a stair, a 16x16x8 could function like a slab.
But does it make sense for the mod to make these these assessments of your creation and completely alter the placement rules based on them? I honestly don't know, I feel like being consistent is important, in that if the mod suddenly starts acting completely different because you remove a few bits from your block might throw people off. Or it might improve usibility... Its hard to say, but it does also open up a can of worms, just how many types of special object placement are there? Should we detect ramps? Stairs? Corners? Pyramids? Corner slops? Pillars? Fences? Planes? Grates?
How should each one act, and how much processing time should be devoted to analyzing the blocks to determine what type of placement to use? and how "fuzzy" should it be? Should a stair only be that one exact design? or should it work for blocks that are 90% matches?
Its not exactly a trivial thing to implement, and the potential confusion / increase in inconsistency makes me hesitant to even progress with it.