Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
MythicCrucible MythicCrucible
  • Project overview
    • Project overview
    • Details
    • Activity
  • Issues 53
    • Issues 53
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar
  • MythicCraft
  • MythicCrucibleMythicCrucible
  • Wiki
  • Furniture

Furniture · Changes

Page history
added extra information, changed page layout and merged secondary pages authored May 10, 2023 by Lxlp's avatar Lxlp
Show whitespace changes
Inline Side-by-side
Showing with 192 additions and 42 deletions
+192 -42
  • Furniture.md Furniture.md +192 -42
  • No files found.
Furniture.md
View page @ 6f6606df
Furniture
---------
Crucible allows people to create "furniture", custom objects that can be placed in the world. These custom objects can be interacted with in different ways, and can also utilize skills!
Items that are configured to be furniture will have their corresponding furniture object placed in the world where the player is looking when right-clicked, and will drop the original item when broken by default (unless configured otherwise).
Furniture objects are rendered using custom modeled objects placed in either Item Frames or Armor Stands.
Furniture Options
-----------------
All options are placed under a "Furniture" section on an item.
<!-- TABLE OF CONTENTS -->
<!-- I am perfectly aware of the [[_TOC_]] shortcut, but in this instance it is not ideal -->
- [Furniture Options](#furniture-options)
- [Base Options](#base-options)
- [Type-Specific Options](#type-specific-options)
- [Drops](#drops)
- [Furniture States](#furniture-states)
- [Examples](#examples)
### Base Options
- `Type` - Defaults to `DISPLAY` on 1.19.4+, or `ITEM_FRAME` on lower versions.
- `Material` - The material of the furniture object.
- `Model` - The CustomModelData ID of the furniture object.
- `Health` - How many times a piece of furniture has to be punched within a short interval to break.
- `CanRotate` - If the furniture can be rotated. Defaults to true.
- `GlowingItem` - Whether the item should glow
- `Color` - A hex code to color the furniture. Only works on colorable items.
## Furniture Options
### Drops
Furniture drops are defined under the furniture `Drops` section. This uses the standard MythicMobs drop table format.
All options are placed under a `Furniture` section on an item, like so:
```yaml
ExampleFurniture:
Id: IRON_NUGGET
Type: FURNITURE
Model: 5
Furniture:
Material: GOLD_NUGGET
Model: 6
```
##
### **Base Options**
#### Type
The type of the entity that will be used to display the Furniture's `Material`. Defaults to `DISPLAY` on 1.19.4+, or `ITEM_FRAME` on lower versions
```yaml
Furniture:
Type: DISPLAY
```
#### Material
The base material of the Furniture. If used on its own, the Furniture will only display this item as if it was placed in an Item Frame, but with the `Model` Option and an accompanying ResourcePack, custom models can be displayed
```yaml
Furniture:
Material: BRICK
```
#### Model
The CustomModelData value of the Furniture's `Material`
```yaml
Furniture:
Material: BRICK
Model: 12
```
#### Health
The amount of times a piece of Furniture can be hit within a short timespan before breaking
<br>Defaults to `1`
```yaml
Furniture:
Health: 3
```
By default the furniture will drop itself when broken if there is no Drops field defined. You can make the furniture drop nothing by setting `Drops: []` or `DropSelf: false`
#### Hitbox
The dimension of the Interaction Entity that will make up the hitbox of the Furniture. The hitbox will not be solid or repel entities, but can be interacted with.
<br>Defaults to `1`x`1` if not barriers are present, or `0`x`0` if they are
```
Furniture:
Hitbox:
Height: 1
Width: 1
```
Type-Specific Options
---------------------
#### CanRotate
If the Furniture can be rotated if right clicked while sneaking
<br>Defaults to `true`
```yaml
Furniture:
CanRotate: false
```
### DISPLAY
#### GlowingItem
If the Furniture should be glowing
<br>Defaults to `false`
```yaml
Furniture:
GlowingItem: true
```
#### DropSelf
If the Furniture should drop itself once broken
<br>Defaults to `true` in most cases
```yaml
Furniture:
DropSelf: false
```
#### Color
The Hex code used to set the Furniture's color. Only works on colorable items
```yaml
Furniture:
Color: #00e277
```
#### Placement
Where the Furniture is meant to be placed:
- `FLOOR` - The item is to be placed like a block, on the ground or off the side face of a block
- `HANGING` - The item is to be placed like an item frame or painting, against a wall
- `CEILING` - The item is to be placed like glow berries, from a ceiling
- `WALL` - Similar to hanging, except the item orientation (the invisible frame) is in the same orientation as FLOOR (on the bottom face of the block, facing up)
Defaults to `FLOOR`
```yaml
Furniture:
Placement: FLOOR
```
#### Barriers
A list of relative coordinates where barriers will be placed. Useful to make a solid hitbox for the Furniture. Can be used with the `Hitbox` Option, and if both are present then both the Hitbox and the Barrier will act as the Furniture's Hitbox
- The `x` is left/right
- The `y` is up/down
- The `z` is forward/backward
The barriers rotates with the Furniture, and a Furniture cannot be placed or rotated if doing so would overlaps one of its barriers with anything but air blocks.
```yaml
Furniture:
Barriers:
- 0,0,0 # Will be placed on the same block as the base of the Furniture
- 0,1,0 # Will be placed one block above the base of the Furniture
- 0,0,1 # Will be placed one block "forward" the base of the Furniture, based on the Furniture's rotation
```
#### Lights
A list of relative coordinates and an integer value that determines where the light sources will be placed and their light level. Useful to make the "light sources" of the Furniture
- The `x` is left/right
- The `y` is up/down
- The `z` is forward/backward
- The `INTEGER` value is for the light level of the light block
The light blocks rotates with the Furniture, and a Furniture cannot be placed or rotated if doing so would overlaps one of its light blocks with anything but air blocks.
A light block and a barrier **cannot be placed** on the same spot.
```yaml
Furniture:
Lights:
- -1,0,0 # Will be placed one block "to the right" the base of the Furniture, based on the Furniture's rotation
- 0,-1,0 # Will be placed one block below the base of the Furniture
- 0,0,-1 # Will be placed one block "backward" the base of the Furniture, based on the Furniture's rotation
```
#### Seats
A list of relative coordinates where the Seats of the Furniture will be placed. Players can use them by right clicking the Furniture.
- The `x` is left/right
- The `y` is up/down
- The `z` is forward/backward
A Seat can overlap barriers and light sources of the Furniture and every kind of block present in the world when rotated.
If multiple seats are created, when a player right clicks on a furniture the closest free spot, if any, will be selected as the seat
```yaml
Furniture:
Seats:
- 0,1,0,0,0 # A seat will be placed on block above the base of the Furniture
```
##
### **Type-Specific Options**
#### Display
- `Height` - The height of the display entity used for rendering. Defaults to 1.
- `Width` - The width of the display entity used for rendering. Defaults to 1.
- `Billboard` - `FIXED`, `CENTER`, `HORIZONRAL`, `VERTICAL`
......@@ -37,31 +171,19 @@ Type-Specific Options
- `Transform` - How the item is rendered. Defaults to `FIXED` which matches item frame rendering. Can also be `GROUND`, `GUI`, `HEAD`, `FIRSTPERSON_LEFTHAND`, `FIRSTPERSON_RIGHTHAND`, `THIRDPERSON_LEFTHAND`, `THIRDPERSON_RIGHTHAND`
- `Scale` - Changes the scaling sizes of the displayed item. Defaults to `.5,.5,.5` which matches item frame rendering.
### ITEM_FRAME
#### Item_Frame
- `GlowingFrame` - Whether the frame should be a glowing frame which renders the furniture at 100% brightness at all times. Defaults to false.
## Drops
Furniture drops are defined under the furniture `Drops` section. This uses the standard MythicMobs drop table format.
Extra Parts
-----------
Furniture can be configured with several special extras that are placed in the world along with it:
#### Barrier Blocks (in a `Barriers` list)
Barriers:
- 0,0,0
#### Light Blocks (with light level)
Lights:
- 0,2,0 15
By default the furniture will drop itself when broken if there is no Drops field defined. You can make the furniture drop nothing by setting `Drops: []` or `DropSelf: false`.
<br>If `DropSelf` is set to `true` and some `Drops` have been specified, then both the Furniture and the Drops will be dropped.
#### Seats (the closest seat is chosen when a player right-clicks the furniture)
Seats:
- 0,0.9,0,0,0
Extra blocks are configured from the perspective of an object placed when the player is facing **yaw = 0**, and are rotated accordingly depending on how the furniture is placed.
## Furniture States
Furniture States
----------------
Furniture States are other states that furniture can be swapped into using the `furnitureState` mechanic.
Furniture States are other states that furniture can be swapped into using the [`furnitureState`](/Skills/Mechanics/furniturestate) mechanic.
This allows you to create dynamic furniture, such as:
- Crops that grow
......@@ -69,7 +191,7 @@ This allows you to create dynamic furniture, such as:
- Drawers that open and close
States are placed under a `States` section like so:
```
```yaml
TestFurniture:
Furniture:
Model: 1
......@@ -84,9 +206,8 @@ Each state can use any of the regular furniture options, and also `Lights: false
The `DefaultState` (defaults to "DEFAULT") allows you to set the name of the base version of the furniture for referencing in mecahnics.
Example Configuration
---------------------
```
## Examples
```yaml
TestFurniture:
Id: IRON_NUGGET
Display: 'Probably a Chair'
......@@ -108,3 +229,32 @@ TestFurniture:
- sound{s=block.lever.click} @self ~onBlockRotate
- sound{s=entity.zombie.attack_wooden_door} @self ~onDamaged
```
```yaml
TestFurnitureStates:
Id: BRICK
Model: 2
Display: 'Test States'
Type: FURNITURE
Furniture:
Material: BRICK
Model: 2
Barriers:
- 0,0,0
DefaultState: BROKEN
States:
HALF_REPAIRED:
Model: 3
GlowingFrame: true
REPAIRED:
Model: 4
Lights: true
GlowingFrame: true
GlowingItem: true
FurnitureSkills:
- setFurnitureState{state=BROKEN} ~onInteract
?furnitureState{s=REPAIRED}
- setFurnitureState{state=REPAIRED} ~onInteract
?furnitureState{s=HALF_REPAIRED}
- setFurnitureState{state=HALF_REPAIRED} ~onInteract
?furnitureState{s=BROKEN}```
```
\ No newline at end of file
Clone repository
  • Home
  • Changelogs
  • Commands / Permissions
  • FAQ / Common Issues
Usage
  • Installation
  • Item Options
  • Item Skills
  • Item Durability
  • Custom Blocks
  • Furniture
    • Furniture Options
    • Furniture States
  • Crafting Recipes
  • Custom Bags
  • Ammo System / Guns
New Mechanics
  • Item Mechanics
  • Item Targeters
  • Item Triggers
  • Item Conditions