KubeJS

KubeJS

69M Downloads

More block state options

Qualia765 opened this issue ยท 4 comments

commented

Describe the feature

It would be nice to have more block state options. Here are some ones that Ive thought up:
Log - can be oriented along the x y or z axis
bar - like iron bars
pointing - like a command block, faces one direction
supported - like carpet, needs to be placed on a block and will break if below is removed
pumpkin - like glazed terricata or a carved pumpkin or a furnace (not including being lit) where there are 4 options for the x,z,-x,-z
age - just stores data states 0-15 and looks the same for each, could be handy for other custom stuff

data - just store 4 data states 0-15 and looks the same for each, also could be handy for custom stuff
lantern - same as a lantern or can be on top or bottom but needs support from the spot is placed to be on
pipe - attaches to solid blocks and itself, however can go vertical as well. when touching nothing is a small cube and when touching 4 coplanar things it look like a plus
lamp - the same as a redstone lamp, changes state and texture when powered by redstone
leaves - can be natural and if so needs to be a certain distance from a log or will decay
redstone ore - changes when stepped on and goes back after some period
6 way supported - like a button by cant be pressed and has no redstone functionality

the names don't not matter

The ones up to age would be really epic to have and the ones data and beyond would just be nice , but not as useful as the first couple.

Additional info

There are many times when I have wanted to use one of these blocks states and have not been able to.

For example:
I wanted to make some lapis bars and was not able to. (bar)
And I wanted to make some arrow type blocks that point at other blocks for a custom magic thing I was considering making and I did not want to make 6 unique blocks. (pointing)
I also one time wanted to make a sort of corruption sort of thing when players try to open the end portal. It spreads out and expands on random tick. I wanted to make it be very geometric, so it expands along the axis, so the block that receives the random tick can face three ways. I had to make three blocks for this would been nice if it was just one with block states. (log)
I wanted to add in aging cheese, that ages over time when placed down. I had to make 3 different versions of it, for different levels of age of the cheese. (age)
I want to add a carpet like block to add some decoration, but am not able to. (supported)
I am helping some one in support that wants to add a chair that can be place 4 different directions. (pumpkin)

commented

"pumpkin" type is included in #459 as "cardinal".

commented

I think it would be best if you could add your own properties, and have handlers for placement and block updates, perhaps with a js class. With that you could support anything you want.

commented

Yes, that is part of #464

commented

#464 has now been merged allowing for adding custom blockstates.

I am going to close this, however not all behaviour mentioned here is possible yet, as you cannot make the hitbox change depend on the blockstate. Due to the way that works it is unlikely to ever get implemented so that JS can access it, but those sorts of blocks (like iron bars) could still be added as type options.
If you want to suggest some more type options like that feel free to open a new issue.