๐งญ Furniture Placements¶
Nexo lets a single furniture-item behave differently depending on what surface it is placed on.
A lantern that stands on the ground, hangs from the ceiling and sticks out of a wall, all from one NexoItem.
This is done with the placements-section, which has three optional subsections:
floor - Used when placed on top of a block
wall - Used when placed on the side of a block
roof - Used when placed on the underside of a block
Each of these is a furniture-mechanic of its own, merged on top of the parent furniture.
Anything you can put in the furniture-section can be put in a placement, and it will override the parent value.
Properties you do not specify are simply inherited from the parent furniture.
lantern:
itemname: "<gray>Lantern"
material: PAPER
Pack:
model: default/lantern
Mechanics:
furniture:
block_sounds:
place_sound: block.lantern.place
break_sound: block.lantern.break
hitbox:
interaction: 0,0,0 0.5,0.5
placements:
floor:
item_model: nexo:furniture/lantern_floor
wall:
item_model: nexo:furniture/lantern_wall
properties:
translation: 0,0.3,-0.3
roof:
item_model: nexo:furniture/lantern_hanging
properties:
translation: 0,-0.4,0
The chosen placement is stored on the furniture when placed, so breaking, interacting and drops all use the same variant it was placed as.
Info
If you only define some of the placements, the ones you leave out fall back to the parent furniture.
A placement cannot define its own placements-section, as that would recurse infinitely.
Placements vs Limited Placing¶
The two work together and do different things.
Limited placing decides if a furniture may be placed on a surface.
Placements decide what the furniture looks and acts like once placed there.
Meaning, if you want a furniture that only exists as a wall- and roof-variant, combine the two: