The Meaning of Life, the Universe, and Everything.
Join Date:
8/9/2016
Posts:
165
Member Details
It would be nice if we could take (for instance) an oak slab and a birch slab and stack them on top of each other without the space for the rest of the block, it would allow a great deal more texturing for a stacked stone or wooden subway tile kind of look.
Although what happens when you stack two of the same slab? Currently it turns into the full block and when you break it you break both slabs, but with this change would that change too?
The Meaning of Life, the Universe, and Everything.
Join Date:
8/9/2016
Posts:
165
Member Details
I've noticed that wood doesn't work quite this way. I can break a slab if I aim for the top...I think you're right that stone does it this way no matter what.
In practice it would mean that slabs have to remain slabs rather than interacting as a single block. If they were .5 block in height or .45 or something rather than reserving a whole block, it would probably work. In fact, if they were .45 or .48 and left just a hair of space it would be pretty cool looking.
Wood works the same way, and you can additionally use the sneak key to only break one slab or the other (depending on which half of the block you're pointing at at time of breaking). It's a pretty nifty feature for when you misplace random slabs.
This has been discussed many many many many times, and it was declared computer intensive to do. It would bump up the system requirements of the game a lot more the it already is for no reason then to be able to stack slabs.
This is not possible unless they add dozens of new block IDs or make double slabs tile entities. Why? Each block has 4 bits of metadata, allowing a single block ID to have 16 different block states; for example, wool colors. There are currently 9 types of stone slabs and 6 types of wooden slabs; to get every combination of just one type of stone slab and every type of wooden slab would require 13 new block states (1 for both stone, 6 for stone on bottom + wood on top, 6 for stone on top + wood on bottom). Multiply that by 9 types of stone slabs and you get 117 different double slabs - then do the same for each type of stone and wood (for example, oak wood + one of 6 types of wood).
Also, it is not possible to fit two different blocks into the space of a single block because there simply is no room for them, unless you want to greatly increase resource usage; in order to fit two blocks into the space of one block you would need to double the size of the block array from 16x16x16 (per chunk section, the basic unit of storage) to 16x16x32 or provide two entries per integer block position with the same effect (most blocks would be placed at even multiples of y; 0, 2, 4, 6, etc; while half-slabs would be placed at 0, 1, 2, 3, etc). This is also why a partial block like a fence displaces water from the space of an entire block, instead of the water being able to exist within the same block (this can be approximated by rendering, like how Optifine can render snow under flowers and tall grass, but there would still be only fence within the block).
This is not possible unless they add dozens of new block IDs or make double slabs tile entities. Why? Each block has 4 bits of metadata, allowing a single block ID to have 16 different block states; for example, wool colors. There are currently 9 types of stone slabs and 6 types of wooden slabs; to get every combination of just one type of stone slab and every type of wooden slab would require 13 new block states (1 for both stone, 6 for stone on bottom + wood on top, 6 for stone on top + wood on bottom). Multiply that by 9 types of stone slabs and you get 117 different double slabs - then do the same for each type of stone and wood (for example, oak wood + one of 6 types of wood).
Also, it is not possible to fit two different blocks into the space of a single block because there simply is no room for them, unless you want to greatly increase resource usage; in order to fit two blocks into the space of one block you would need to double the size of the block array from 16x16x16 (per chunk section, the basic unit of storage) to 16x16x32 or provide two entries per integer block position with the same effect (most blocks would be placed at even multiples of y; 0, 2, 4, 6, etc; while half-slabs would be placed at 0, 1, 2, 3, etc). This is also why a partial block like a fence displaces water from the space of an entire block, instead of the water being able to exist within the same block (this can be approximated by rendering, like how Optifine can render snow under flowers and tall grass, but there would still be only fence within the block).
Great answer. I got lost after "This is not possible unless...". Then all I heard was "I'm certain this sounds smart".
(Edit: I did kind of follow...it's interesting to think of the consequences of what seems like a minor change.)
This is not possible unless they add dozens of new block IDs or make double slabs tile entities. Why? Each block has 4 bits of metadata, allowing a single block ID to have 16 different block states; for example, wool colors. There are currently 9 types of stone slabs and 6 types of wooden slabs; to get every combination of just one type of stone slab and every type of wooden slab would require 13 new block states (1 for both stone, 6 for stone on bottom + wood on top, 6 for stone on top + wood on bottom). Multiply that by 9 types of stone slabs and you get 117 different double slabs - then do the same for each type of stone and wood (for example, oak wood + one of 6 types of wood).
Also, it is not possible to fit two different blocks into the space of a single block because there simply is no room for them, unless you want to greatly increase resource usage; in order to fit two blocks into the space of one block you would need to double the size of the block array from 16x16x16 (per chunk section, the basic unit of storage) to 16x16x32 or provide two entries per integer block position with the same effect (most blocks would be placed at even multiples of y; 0, 2, 4, 6, etc; while half-slabs would be placed at 0, 1, 2, 3, etc). This is also why a partial block like a fence displaces water from the space of an entire block, instead of the water being able to exist within the same block (this can be approximated by rendering, like how Optifine can render snow under flowers and tall grass, but there would still be only fence within the block).
I actually don't think the performance cost of turning slabs into a tile entity would really be that big, though. I ran an experiment where I filled an entire chunk (65,536 blocks) with furnaces, a tile entity, and the performance drop and memory increase was marginal, if it even existed. Since slabs don't need intensive code to continually run, I don't think any performance drop caused by turning them would be terrible. At any rate, any performance drop would be worth it.
It would be nice if we could take (for instance) an oak slab and a birch slab and stack them on top of each other without the space for the rest of the block, it would allow a great deal more texturing for a stacked stone or wooden subway tile kind of look.
I agree. Support!
Although what happens when you stack two of the same slab? Currently it turns into the full block and when you break it you break both slabs, but with this change would that change too?
Totally agree with you! I keep thinking that at some point they will add this to the game, but they don't. Support
Listen to C418's album "One"
https://www.youtube.com/watch?v=wYNAZz86DVo&list=PLA3c7DWaVs-G8r1lsYr57G8K16EBWNajR&index=1
I've noticed that wood doesn't work quite this way. I can break a slab if I aim for the top...I think you're right that stone does it this way no matter what.
In practice it would mean that slabs have to remain slabs rather than interacting as a single block. If they were .5 block in height or .45 or something rather than reserving a whole block, it would probably work. In fact, if they were .45 or .48 and left just a hair of space it would be pretty cool looking.
Wood works the same way, and you can additionally use the sneak key to only break one slab or the other (depending on which half of the block you're pointing at at time of breaking). It's a pretty nifty feature for when you misplace random slabs.
This has been discussed many many many many times, and it was declared computer intensive to do. It would bump up the system requirements of the game a lot more the it already is for no reason then to be able to stack slabs.
This is not possible unless they add dozens of new block IDs or make double slabs tile entities. Why? Each block has 4 bits of metadata, allowing a single block ID to have 16 different block states; for example, wool colors. There are currently 9 types of stone slabs and 6 types of wooden slabs; to get every combination of just one type of stone slab and every type of wooden slab would require 13 new block states (1 for both stone, 6 for stone on bottom + wood on top, 6 for stone on top + wood on bottom). Multiply that by 9 types of stone slabs and you get 117 different double slabs - then do the same for each type of stone and wood (for example, oak wood + one of 6 types of wood).
Also, it is not possible to fit two different blocks into the space of a single block because there simply is no room for them, unless you want to greatly increase resource usage; in order to fit two blocks into the space of one block you would need to double the size of the block array from 16x16x16 (per chunk section, the basic unit of storage) to 16x16x32 or provide two entries per integer block position with the same effect (most blocks would be placed at even multiples of y; 0, 2, 4, 6, etc; while half-slabs would be placed at 0, 1, 2, 3, etc). This is also why a partial block like a fence displaces water from the space of an entire block, instead of the water being able to exist within the same block (this can be approximated by rendering, like how Optifine can render snow under flowers and tall grass, but there would still be only fence within the block).
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
Great answer. I got lost after "This is not possible unless...". Then all I heard was "I'm certain this sounds smart".
(Edit: I did kind of follow...it's interesting to think of the consequences of what seems like a minor change.)
I actually don't think the performance cost of turning slabs into a tile entity would really be that big, though. I ran an experiment where I filled an entire chunk (65,536 blocks) with furnaces, a tile entity, and the performance drop and memory increase was marginal, if it even existed. Since slabs don't need intensive code to continually run, I don't think any performance drop caused by turning them would be terrible. At any rate, any performance drop would be worth it.
Want to see my suggestions? Here they are!
I am also known as GameWyrm or GameWyrm97. You can also find me at snapshotmc.com
Support since I was going to suggest it myself!
I don't even play Minecraft much anymore yet here I am on the Minecraft forums for some reason...
^^
Support!