> For the complete documentation index, see [llms.txt](https://plugins.elitefantasy.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://plugins.elitefantasy.net/masky-plugins/maskycore/unique-behaviors-of-craftengine.md).

# Unique behaviors of CraftEngine

## Item Behaviors

### Shift Place Block Item Behavior

Allows you to place a block while sneaking

```yaml
items:
  minecraft:oak_slab:
    behaviors:
      - type: painter:shift_place_block
        block: elitefantasy:oak_vertical_slab
```

### Termite Bucket Item Behavior

Store mythicmobs "Termite" mob

```yaml
items:
  elitefantasy:termite_bucket:
    material: BUCKET
    texture: elitefantasy:item/termite_bucket
    data:
      item-name: "<!i><white><l10n:item.termite_bucket>"
      lore:
        - '<gray>Right click a block to release one termite.'
    behaviors:
      - type: painter:termite_bucket
        empty-bucket-material: BUCKET
```

### Block Speed Item Behavior

```yaml
items:
  elitefantasy:ostrich_boots:
    material: leather_boots
    texture: elitefantasy:item/ostrich_boots
    data:
      unbreakable: false
      max_damage: 195
      dyed_color: 255,255,255
    settings:
      equipment:
        asset_id: elitefantasy:ostrich_boots
        slot: feet
    behaviors:
      - type: painter:block_speed
        speed-amplifier: 0
        duration-ticks: 40
        blocks:
          - SAND
          - RED_SAND
          - SUSPICIOUS_SAND
```

### Crop Accelerator Item Behavior

```yaml
items:
  elitefantasy:sawdust:
    material: SUGAR
    data:
      item-name: "<!i><white><l10n:item.sawdust>"
      lore:
        - '<gray>Sprinkle onto crops before harvesting.'
    behaviors:
      - type: painter:crop_accelerator
        multiplier: 2
        consume-item: true
        mark-duration-ticks: 1200
        valid-crops:
          - WHEAT
          - CARROTS
          - POTATOES
          - BEETROOTS
          - NETHER_WART
```

### Frozen Totem of Undying Item Behavior

```yaml
items:
  elitefantasy:frozen_totem_of_undying:
    data:
      item_name: "<!i><white>Frozen Totem of Undying"
    material: totem_of_undying
    texture: elitefantasy:item/frozen_totem_of_undying
    behaviors:
      - type: painter:frozen_totem_of_undying
        item-model: elitefantasy:frozen_totem_of_undying
        radius: 6.0
        freeze-ticks: 140
        slowness-duration: 120
        slowness-amplifier: 2
```

## Block Behaviors

### Column Block Behavior

| Property Name | Property Type | Required |
| ------------- | ------------- | -------- |
| up            | string        | yes      |
| middle        | string        | yes      |
| down          | string        | yes      |
| single        | string        | yes      |

```yaml
  painter:white_column:
    behavior:
      - type: painter:column_block
    states:
      properties:
        position:
          type: painter:column_block
          default: down
      appearances:
        position=up:
          auto-state: cactus
          model:
            path: "painter:block/white_column_up"
        position=middle:
          auto-state: cactus
          model:
            path: "painter:block/white_column_middle"
        position=down:
          auto-state: cactus
          model:
            path: "painter:block/white_column_down"
        position=single:
          auto-state: cactus
          model:
            path: "painter:block/white_column_down"
      variants:
        position=up:
          appearance: "position=up"
        position=middle:
          appearance: "position=middle"
        position=down:
          appearance: "position=down"
        position=single:
          appearance: "position=single"
```

### Window Connect Tile Block Behavior

| Property Name | Property Type | Required |
| ------------- | ------------- | -------- |
| single        | string        | yes      |
| left          | string        | yes      |
| middle        | string        | yes      |
| right         | string        | yes      |
| up\_left      | string        | yes      |
| up            | string        | yes      |
| up\_right     | string        | yes      |
| down\_left    | string        | yes      |
| down          | string        | yes      |
| down\_right   | string        | yes      |

```yaml
templates:
  painter:block/oak_window_directional:
    behavior:
      - type: painter:window_connect_tile
    states:
      properties:
        tile:
          type: painter:window_connect_tile
          default: single
        facing:
          type: 4-direction
          default: north
      appearances:
############
## SINGLE ##
############
      # EAST #      
        facing=east,tile=single:
          state: iron_door[facing=east,half=lower,hinge=left,open=false,powered=true]
          transparent: true
          entity-renderer:
            item: ${item}
            yaw: -90
            translation: 0,0,-0.81
      # NORTH #
        facing=north,tile=single:
          state: iron_door[facing=north,half=lower,hinge=left,open=false,powered=true]
          transparent: true
          entity-renderer:
            item: ${item}
            yaw: 180
            translation: 0,0,-0.81
      # SOUTH #
        facing=south,tile=single:
          state: iron_door[facing=south,half=lower,hinge=left,open=false,powered=true]
          transparent: true
          entity-renderer:
            item: ${item}
            #yaw: 0
            translation: 0,0,-0.81
      # WEST #
        facing=west,tile=single:
          state: iron_door[facing=west,half=lower,hinge=left,open=false,powered=true]
          transparent: true
          entity-renderer:
            item: ${item}
            yaw: 90
            translation: 0,0,-0.81
######################
## OTHER_PROPERTIES ##
######################
            
       variants:
        facing=east,tile=single:
          appearance: facing=east,tile=single
        facing=north,tile=single:
          appearance: facing=north,tile=single
        facing=south,tile=single:
          appearance: facing=south,tile=single
        facing=west,tile=single:
          appearance: facing=west,tile=single
```

### Sofa Connect Tile Block Behavior

| Property Name | Property Type | Required |
| ------------- | ------------- | -------- |
| single        | string        | yes      |
| left          | string        | yes      |
| middle        | string        | yes      |
| right         | string        | yes      |

```yaml
templates:
  painter:block/oak_window_directional:
    behavior:
      - type: painter:sofa_connect_tile
    states:
      properties:
        tile:
          type: painter:sofa_connect_tile
          default: single
        facing:
          type: 4-direction
          default: north
      appearances:
############
## SINGLE ##
############
      # EAST #      
        facing=east,tile=single:
          state: iron_door[facing=east,half=lower,hinge=left,open=false,powered=true]
          transparent: true
          entity-renderer:
            item: ${item}
            yaw: -90
            translation: 0,0,-0.81
      # NORTH #
        facing=north,tile=single:
          state: iron_door[facing=north,half=lower,hinge=left,open=false,powered=true]
          transparent: true
          entity-renderer:
            item: ${item}
            yaw: 180
            translation: 0,0,-0.81
      # SOUTH #
        facing=south,tile=single:
          state: iron_door[facing=south,half=lower,hinge=left,open=false,powered=true]
          transparent: true
          entity-renderer:
            item: ${item}
            #yaw: 0
            translation: 0,0,-0.81
      # WEST #
        facing=west,tile=single:
          state: iron_door[facing=west,half=lower,hinge=left,open=false,powered=true]
          transparent: true
          entity-renderer:
            item: ${item}
            yaw: 90
            translation: 0,0,-0.81
######################
## OTHER_PROPERTIES ##
######################
            
      variants:
        facing=east,tile=single:
          appearance: facing=east,tile=single
        facing=north,tile=single:
          appearance: facing=north,tile=single
        facing=south,tile=single:
          appearance: facing=south,tile=single
        facing=west,tile=single:
          appearance: facing=west,tile=single
```

### FishTank Block Behavior

This behavior has no other unique properties; the supported fishes are `COD`, `SALMON`, `TROPICAL_FISH`, `PUFFERFISH`, `AXOLOTL` & `TADPOLE`

```yaml
templates:
  painter:block/oak_window_directional:
    behavior:
      - type: painter:fish_tank
    states:
      properties:
        fish:
          type: painter:fish_type
```

### AshesMerge Behavior

This needs a custom stuff to work fine

```yaml
  elitefantasy:block/elitefantasy_block_ashes_block:
    behaviors:
      - type: painter:ashes_merge
      - type: stackable_block
        property: layers
        items:
          - elitefantasy:ashes_block
    states:
      properties:
        layers:
          type: int
          default: 1
          range: 1~8
      appearances:
        layers=8:
          ## ..etc
        layers=7:
          ## ..etc
        layers=6:
          ## ..etc
        layers=5:
          ## ..etc
        ## ..etc
      variants:
        layers=1:
          appearance: layers=1
        layers=2:
          appearance: layers=2
        layers=3:
          appearance: layers=3
        ## ..etc
```

### Curtain Block Behavior

| Property Name | Property Type | Required |
| ------------- | ------------- | -------- |
| single        | string        | yes      |
| bottom        | string        | yes      |
| middle        | string        | yes      |
| top           | string        | yes      |

```yaml
items:
  elitefantasy:curtain_blue:
    behavior:
      type: block_item
      block:
        behaviors:
          - type: painter:curtain_block
        states:
          template: elitefantasy:block_state/curtain
          arguments:
            color: blue
templates:
  elitefantasy:block_state/curtain:
    properties:
      facing:
        type: 4-direction
        default: north
      open:
        type: boolean
        default: false
      powered:
        type: boolean
        default: false
      ypos:
        type: painter:curtain_ypos
        default: single
    appearances:
      # false,false,none
      facing=east,open=false,powered=false,ypos=single:
        state: minecraft:glow_lichen[down=false,east=true,north=false,south=false,up=false,waterlogged=false,west=false]
        transparent: true
        entity_renderer:
          item: elitefantasy:curtain_single_closed_${color}
          rotation: 90
      facing=north,open=false,powered=false,ypos=single:
        state: minecraft:glow_lichen[down=false,east=false,north=true,south=false,up=false,waterlogged=false,west=false]
        transparent: true
        entity_renderer:
          item: elitefantasy:curtain_single_closed_${color}
          rotation: 0
```

### Shower Curtain Block Behavior

| Property Name | Property Type | Required |
| ------------- | ------------- | -------- |
| single        | string        | yes      |
| left          | string        | yes      |
| middle        | string        | yes      |
| right         | string        | yes      |

```yaml
items:
  elitefantasy:shower_curtain:
    behavior:
      type: block_item
      block:
        behavior:
          - type: painter:shower_curtain_block
        states:
          properties:
            facing:
              type: 4-direction
              default: north
            pos:
              type: elitefantasy:sofa_connect_tile
              default: single
            open:
              type: boolean
              default: false
            powered:
              type: boolean
              default: false
          appearances:
            facing=east,pos=single,open=false,powered=false:
              state: minecraft:glow_lichen[down=false,east=true,north=false,south=false,up=false,waterlogged=false,west=false]
              transparent: true
              entity-renderer:
                item: elitefantasy:shower_curtain_single_closed
                rotation: 90
                translation: 0,-1,0
## ETC
```

### Mini Cubes Block Behavior

```yaml
templates:
  painter:block/mini_cubes_8x8_oak:
    loot:
      template: painter:loot_table/mini_cubes
      arguments:
        item: ${item}
    behaviors:
      - type: painter:mini_cubes
        cubes: mini_cubes
        item: ${item}
        material: ${material:-default}
        mode: full_8
        remove-with-shift: true
        flip-x: true
        flip-y: false
        flip-z: true
        sounds:
          place-sound: minecraft:block.${sound_type}.place
          break-sound: minecraft:block.${sound_type}.break
    states:
      template: painter:states/mini_cubes_8x8
      arguments:
        item: ${item}

  painter:states/mini_cubes_8x8:
    properties:
      mini_cubes:
        type: painter:mini_cubes
        default: c1
    appearances:
      mini_cubes=c1:
        state: barrier
        transparent: true
        entity-renderer:
          item: ${item}_shape_1
          translation: 0,0,0
      mini_cubes=c2:
        state: barrier
        transparent: true
        entity-renderer:
          item: ${item}_shape_10
          translation: 0,0,0
      mini_cubes=c3:
        state: barrier
        transparent: true
        entity-renderer:
          item: ${item}_shape_11
          translation: 0,0,0
      mini_cubes=c4:
        state: barrier
        transparent: true
        entity-renderer:
          item: ${item}_shape_100
          translation: 0,0,0
      mini_cubes=c5:
        state: barrier
        transparent: true
        entity-renderer:
          item: ${item}_shape_101
          translation: 0,0,0
#..etc
    variants:
      mini_cubes=c245:
        appearance: mini_cubes=c245
      mini_cubes=c246:
        appearance: mini_cubes=c246
      mini_cubes=c247:
        appearance: mini_cubes=c247
      mini_cubes=c248:
        appearance: mini_cubes=c248
      mini_cubes=c249:
        appearance: mini_cubes=c249
      mini_cubes=c250:
        appearance: mini_cubes=c250
      mini_cubes=c251:
        appearance: mini_cubes=c251
      mini_cubes=c252:
        appearance: mini_cubes=c252
      mini_cubes=c253:
        appearance: mini_cubes=c253
      mini_cubes=c254:
        appearance: mini_cubes=c254
      mini_cubes=c255:
        appearance: mini_cubes=c255
```

### Pointed Dripstone Block Behavior

It lets you create unique pointed dripstones

#### Thickness

| Property Name | Property Type | Required |
| ------------- | ------------- | -------- |
| tip           | string        | yes      |
| tip\_merge    | string        | yes      |
| frustrum      | string        | yes      |
| middle        | string        | yes      |
| base          | string        | yes      |

#### Vertical direction

| Property Name | Property Type | Required |
| ------------- | ------------- | -------- |
| up            | string        | yes      |
| down          | string        | yes      |

```yaml
blocks:
  elitefantasy:ice_pointed_dripstone:
    behaviors:
      - type: "painter:pointed_dripstone"
    settings:
      item: elitefantasy:ice_pointed_dripstone
      hardness: 1.5
      resistance: 3.0
      map_color: 31
      replaceable: false
      is_randomly_ticking: true
      push-reaction: destroy
      sounds:
        break: minecraft:block.pointed_dripstone.break
        step: minecraft:block.pointed_dripstone.step
        place: minecraft:block.pointed_dripstone.place
        hit: minecraft:block.pointed_dripstone.hit
        fall: minecraft:block.pointed_dripstone.fall
    states:
      properties:
        thickness:
          type: "painter:pointed_dripstone_thickness"
          default: tip
        vertical_direction:
          type: "painter:pointed_dripstone_vertical_direction"
          default: up
      appearances:
        thickness=base,vertical_direction=down:
          auto_state: cactus
          model:
            path: "elitefantasy:block/ice_pointed_dripstone_down_base"
            generation:
              parent: "minecraft:block/pointed_dripstone"
              textures:
                cross: "elitefantasy:block/ice_pointed_dripstone_down_base"
        thickness=base,vertical_direction=up:
          auto_state: tripwire
          model:
            path: "elitefantasy:block/ice_pointed_dripstone_up_base"
            generation:
              parent: "minecraft:block/pointed_dripstone"
              textures:
                cross: "elitefantasy:block/ice_pointed_dripstone_up_base"
#..etc
```

### Amethyst Crystal Block Behavior

```yaml
templates:
  elitefantasy:block/frozen_crystal_bud:
    behaviors:
      - type: "painter:amethyst_crystal"
    settings:
      item: ${__NAMESPACE__}:${__ID__}
    states:
      properties:
        facing:
          type: "painter:amethyst_facing"
          default: up
      appearances:
        down:
          auto_state: tripwire
          model:
            x: 180
            path: "${model_path}"
            generation:
              parent: minecraft:block/cross
              textures:
                cross: "${model_path}"
        east:
          auto_state: tripwire
          model:
            x: 90
            y: 90
            path: "${model_path}"
            generation:
              parent: minecraft:block/cross
              textures:
                cross: "${model_path}"
        north:
          auto_state: tripwire
          model:
            x: 90
            path: "${model_path}"
            generation:
              parent: minecraft:block/cross
              textures:
                cross: "${model_path}"
#..etc
      variants:
        facing=down:
          appearance: down
        facing=east:
          appearance: east
        facing=north:
          appearance: north
        facing=south:
          appearance: south
        facing=up:
          appearance: up
        facing=west:
          appearance: west
```

### Budding Amethyst Block Behavior

```yaml
blocks:
  elitefantasy:budding_frozen_crystal:
    behaviors:
      - type: "painter:budding_amethyst"
        small-bud: elitefantasy:small_frozen_crystal_bud
        medium-bud: elitefantasy:medium_frozen_crystal_bud
        large-bud: elitefantasy:large_frozen_crystal_bud
        cluster: elitefantasy:frozen_crystal_cluster
        chance: 5
    settings:
      item: elitefantasy:budding_frozen_crystal
    state:
      auto_state: solid
      model:
        path: "elitefantasy:block/budding_frozen_crystal"
        generation:
          parent: "minecraft:block/cube_all"
          textures:
            all: "elitefantasy:block/budding_frozen_crystal"
```

### Brittle Ice Block Behavior

```yaml
items:
  elitefantasy:brittle_ice:
    model:
      path: "elitefantasy:block/brittle_ice_0"
    behavior:
      type: block_item
      block:
        behavior:
          - type: painter:brittle_ice
            break-delay-ticks: 60
            cracked-delay-ticks: 20
            middle-delay-ticks: 40
            broken-delay-ticks: 52
            instant-break-fall-distance: 3.0
            instant-break-radius: 1 # 0 = 1x1, 1 = 3x3, 2 = 5x5
            crack-sound: minecraft:block.glass.hit
            break-sound: minecraft:block.glass.break
            particle: minecraft:snowflake
            stage-sound-volume: 0.18
        states:
          properties:
            stage:
              type: painter:brittle_ice_stage
              default: normal
          appearances:
            stage=normal:
              auto_state: solid
              model:
                path: "elitefantasy:block/brittle_ice_0"
            stage=cracked:
              auto_state: solid
              model:
                path: "elitefantasy:block/brittle_ice_1"
                generation:
                  parent: "minecraft:block/cube_all"
                  textures:
                    all: "minecraft:block/frosted_ice_1"
#..etc
          variants:
            stage=normal:
              appearance: stage=normal
            stage=cracked:
              appearance: stage=cracked
            stage=middle:
              appearance: stage=middle
            stage=broken:
              appearance: stage=broken
```

### MultiFace Atacched Block Behavior

```yml
blocks:
  elitefantasy:ice_layer:
    behaviors:
      - type: painter:multiface_attached_block
    states:
      properties:
        down:
          type: boolean
          default: false
        east:
          type: boolean
          default: false
        north:
          type: boolean
          default: false
        south:
          type: boolean
          default: false
        up:
          type: boolean
          default: false
        west:
          type: boolean
          default: false
      appearances:
        none:
          state: minecraft:barrier
        down:
          state: minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]
          transparent: true
          entity_renderer:
            - type: item_display
              item: elitefantasy:ice_layer_render_down
              display_transform: fixed
              billboard: fixed
              translation: 0,0,0
              scale: 1
        east:
          state: minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]
          transparent: true
          entity_renderer:
            - type: item_display
              item: elitefantasy:ice_layer_render_west
              display_transform: fixed
              billboard: fixed
              translation: 0,0,0
              scale: 1
#..etc
      variants:
        down=false,east=false,north=false,south=false,up=false,west=false:
          appearance: none
        down=true,east=false,north=false,south=false,up=false,west=false:
          appearance: down
        down=false,east=true,north=false,south=false,up=false,west=false:
          appearance: east
        down=true,east=true,north=false,south=false,up=false,west=false:
          appearance: down_east
        down=false,east=false,north=true,south=false,up=false,west=false:
          appearance: north
        down=true,east=false,north=true,south=false,up=false,west=false:
          appearance: down_north
        down=false,east=true,north=true,south=false,up=false,west=false:
          appearance: east_north
        down=true,east=true,north=true,south=false,up=false,west=false:
          appearance: down_east_north
        down=false,east=false,north=false,south=true,up=false,west=false:
          appearance: south
        down=true,east=false,north=false,south=true,up=false,west=false:
          appearance: down_south
        down=false,east=true,north=false,south=true,up=false,west=false:
          appearance: east_south
        down=true,east=true,north=false,south=true,up=false,west=false:
          appearance: down_east_south
        down=false,east=false,north=true,south=true,up=false,west=false:
          appearance: north_south
        down=true,east=false,north=true,south=true,up=false,west=false:
          appearance: down_north_south
        down=false,east=true,north=true,south=true,up=false,west=false:
          appearance: east_north_south
        down=true,east=true,north=true,south=true,up=false,west=false:
          appearance: down_east_north_south 
```

### Timed Redstone Delay Block Behavior

```yaml
blocks:
  elitefantasy:frozen_crystal_block:
    behaviors:
      - type: painter:timed_redstone_relay
        seconds-per-power: 60
        property: redstone_power
    states:
      properties:
        redstone_power:
          type: int
          range: 0~15
          default: 0
      appearances:
        off:
          auto_state: solid
          model:
            path: elitefantasy:block/frozen_crystal_block
        on:
          auto_state: solid
          model:
            path: elitefantasy:block/frozen_crystal_block_powered
      variants:
        redstone_power=0:
          appearance: off
          settings:
            luminance: 0
        redstone_power=1:
          appearance: on
          settings:
            luminance: 1
        redstone_power=2:
          appearance: on
          settings:
            luminance: 2
        redstone_power=3:
          appearance: on
          settings:
            luminance: 3
        redstone_power=4:
          appearance: on
          settings:
            luminance: 4
        redstone_power=5:
          appearance: on
          settings:
            luminance: 5
        redstone_power=6:
          appearance: on
          settings:
            luminance: 6
        redstone_power=7:
          appearance: on
          settings:
            luminance: 7
        redstone_power=8:
          appearance: on
          settings:
            luminance: 8
#..etc
```

### Wall Block Behavior

```yaml
items:
  painter:snow_bricks_wall:
    material: BRICK
    client-bound-data:
      item-name: <!i><white><l10n:item.snow_bricks_wall>
    model:
      template: painter:model/painter_snow_bricks_wall_inventory
      arguments:
        model: elitefantasy:block/snow_bricks
    behavior:
      type: block_item
      block:
        template: painter:block/painter_snow_bricks_wall
        arguments:
          item: painter:snow_bricks_wall
          block_model: elitefantasy:block/snow_bricks
          wall_post_item: painter:snow_bricks_wall_post
          wall_side_item: painter:snow_bricks_wall_side
          wall_side_tall_item: painter:snow_bricks_wall_side_tall
          sound_type: snow
  painter:snow_bricks_wall_post:
    material: BRICK
    model:
      template: painter:model/painter_snow_bricks_wall_post
      arguments:
        model: elitefantasy:block/snow_bricks
  painter:snow_bricks_wall_side:
    material: BRICK
    model:
      template: painter:model/painter_snow_bricks_wall_side
      arguments:
        model: elitefantasy:block/snow_bricks
  painter:snow_bricks_wall_side_tall:
    material: BRICK
    model:
      template: painter:model/painter_snow_bricks_wall_side_tall
      arguments:
        model: elitefantasy:block/snow_bricks
          
templates:
  painter:block/painter_snow_bricks_wall:
    behaviors:
      - type: painter:wall_block
    loot:
      pools:
        - rolls: 1
          conditions:
            - type: survives_explosion
          entries:
            - type: item
              item: ${item}
    settings:
      item: ${item}
      map-color: 8
      hardness: 0.75
      resistance: 1.5
      tags:
        - minecraft:mineable/pickaxe
        - minecraft:walls
      is_suffocating: false
      is_redstone_conductor: false
      sounds:
        break: minecraft:block.${sound_type}.break
        step: minecraft:block.${sound_type}.step
        place: minecraft:block.${sound_type}.place
        hit: minecraft:block.${sound_type}.hit
        fall: minecraft:block.${sound_type}.fall
        destroy: minecraft:block.anvil.destroy
    states:
      template: painter:block_state/snow_bricks_wall
      arguments:
        base_block: stone_brick_wall
        wall_post_item: ${wall_post_item}
        wall_side_item: ${wall_side_item}
        wall_side_tall_item: ${wall_side_tall_item}
        item: ${item}
        
  painter:block_state/snow_bricks_wall:
    properties:
      up:
        type: boolean
        default: true
      north:
        type: painter:wall_connection
        default: none
      east:
        type: painter:wall_connection
        default: none
      south:
        type: painter:wall_connection
        default: none
      west:
        type: painter:wall_connection
        default: none
      waterlogged:
        type: boolean
        default: false
    appearances:
      up=true,north=none,east=none,south=none,west=none,waterlogged=false:
        state: ${base_block}[up=true,north=none,east=none,south=none,west=none,waterlogged=false]
        entity-renderer:
          - item: ${wall_post_item}
            rotation: 180
            scale: 1.0003
            translation: 0,0.0001,0
        transparent: true
      up=true,north=none,east=none,south=none,west=low,waterlogged=false:
        state: ${base_block}[up=true,north=none,east=none,south=none,west=low,waterlogged=false]
        entity-renderer:
          - item: ${wall_post_item}
            rotation: 180
            scale: 1.0003
            translation: 0,0.0001,0
          - item: ${wall_side_item}
            rotation: 90
        transparent: true
      up=true,north=none,east=none,south=none,west=tall,waterlogged=false:
        state: ${base_block}[up=true,north=none,east=none,south=none,west=tall,waterlogged=false]
        entity-renderer:
          - item: ${wall_post_item}
            rotation: 180
            scale: 1.0003
            translation: 0,0.0001,0
          - item: ${wall_side_tall_item}
            rotation: 90
        transparent: true
      up=true,north=none,east=none,south=low,west=none,waterlogged=false:
        state: ${base_block}[up=true,north=none,east=none,south=low,west=none,waterlogged=false]
        entity-renderer:
          - item: ${wall_post_item}
            rotation: 180
            scale: 1.0003
            translation: 0,0.0001,0
          - item: ${wall_side_item}
            rotation: 0
        transparent: true
#..etc
    variants:
      up=true,north=none,east=none,south=none,west=none,waterlogged=false:
        appearance: up=true,north=none,east=none,south=none,west=none,waterlogged=false
      up=true,north=none,east=none,south=none,west=low,waterlogged=false:
        appearance: up=true,north=none,east=none,south=none,west=low,waterlogged=false
      up=true,north=none,east=none,south=none,west=tall,waterlogged=false:
        appearance: up=true,north=none,east=none,south=none,west=tall,waterlogged=false
      up=true,north=none,east=none,south=low,west=none,waterlogged=false:
        appearance: up=true,north=none,east=none,south=low,west=none,waterlogged=false
      up=true,north=none,east=none,south=low,west=low,waterlogged=false:
        appearance: up=true,north=none,east=none,south=low,west=low,waterlogged=false
      up=true,north=none,east=none,south=low,west=tall,waterlogged=false:
        appearance: up=true,north=none,east=none,south=low,west=tall,waterlogged=false
      up=true,north=none,east=none,south=tall,west=none,waterlogged=false:
        appearance: up=true,north=none,east=none,south=tall,west=none,waterlogged=false
      up=true,north=none,east=none,south=tall,west=low,waterlogged=false:
        appearance: up=true,north=none,east=none,south=tall,west=low,waterlogged=false
      up=true,north=none,east=none,south=tall,west=tall,waterlogged=false:
        appearance: up=true,north=none,east=none,south=tall,west=tall,waterlogged=false
      up=true,north=none,east=low,south=none,west=none,waterlogged=false:
        appearance: up=true,north=none,east=low,south=none,west=none,waterlogged=false
      up=true,north=none,east=low,south=none,west=low,waterlogged=false:
        appearance: up=true,north=none,east=low,south=none,west=low,waterlogged=false
      up=true,north=none,east=low,south=none,west=tall,waterlogged=false:
        appearance: up=true,north=none,east=low,south=none,west=tall,waterlogged=false
      up=true,north=none,east=low,south=low,west=none,waterlogged=false:
        appearance: up=true,north=none,east=low,south=low,west=none,waterlogged=false
      up=true,north=none,east=low,south=low,west=low,waterlogged=false:
        appearance: up=true,north=none,east=low,south=low,west=low,waterlogged=false
      up=true,north=none,east=low,south=low,west=tall,waterlogged=false:
        appearance: up=true,north=none,east=low,south=low,west=tall,waterlogged=false
      up=true,north=none,east=low,south=tall,west=none,waterlogged=false:
        appearance: up=true,north=none,east=low,south=tall,west=none,waterlogged=false
      up=true,north=none,east=low,south=tall,west=low,waterlogged=false:
        appearance: up=true,north=none,east=low,south=tall,west=low,waterlogged=false
      up=true,north=none,east=low,south=tall,west=tall,waterlogged=false:
```

### Redstone Field Block Behavior

```yaml
blocks:
  elitefantasy:abyssal_crystal_block:
```

#### ICE

```yaml
    behaviors:
      - type: painter:redstone_field
        field-type: ice
        property: redstone_power
        max-radius: 6
        scan-interval-ticks: 20
        particle-count: 8
        safe-radius: 2.25
        ice:
          slowness-amplifier: 4
          slow-falling-amplifier: 0
          mining-fatigue-amplifier: 2
```

#### FIRE

```yaml
    behaviors:
      - type: painter:redstone_field
        field-type: fire
        property: redstone_power
        max-radius: 6
        scan-interval-ticks: 20
        particle-count: 8
        safe-radius: 2.25
        fire:
          fire-ticks: 80
          ignite-blocks: true
          block-ignite-attempts: 12
```

```yaml
    states:
      properties:
        redstone_power:
          type: int
          range: 0~15
          default: 0
      appearances:
        off:
          auto_state: solid
          model:
            path: elitefantasy:block/abyssal_crystal_block
        on:
          auto_state: solid
          model:
            path: elitefantasy:block/abyssal_crystal_block_powered
      variants:
        redstone_power=0:
          appearance: off
          settings:
            luminance: 0
        redstone_power=1:
          appearance: on
          settings:
            luminance: 1
        redstone_power=2:
          appearance: on
          settings:
            luminance: 2
        redstone_power=3:
          appearance: on
          settings:
            luminance: 3
        redstone_power=4:
          appearance: on
          settings:
            luminance: 4
        redstone_power=5:
          appearance: on
          settings:
            luminance: 5
        redstone_power=6:
          appearance: on
          settings:
            luminance: 6
        redstone_power=7:
          appearance: on
          settings:
            luminance: 7
        redstone_power=8:
          appearance: on
          settings:
            luminance: 8
#..etc
```

### Redstone Field Resonator Block Behavior

```yaml
blocks:
  elitefantasy:abyssal_crystal_cluster:
```

#### ICE

```yaml
    behaviors:
      - type: painter:redstone_field
        trigger-field-types: "ice"
        output-field-type: "inherit"
        resonance-radius: 3
        particle-count: 24
        safe-radius: 0.5
        resonance-ticks: 45
        ice:
          slowness-amplifier: 7"
          slow-falling-amplifier: 1
          leather-armor-effect-reduction: 1
          full-leather-prevents-freeze: true
```

#### FIRE

```yaml
    behaviors:
      - type: painter:redstone_field
        trigger-field-types: fire
        output-field-type: "inherit"
        resonance-radius: 3
        particle-count: 24
        safe-radius: 0.5
        resonance-ticks: 45
        fire:
          fire-ticks: "140"
          ignite-blocks: true
          block-ignite-attempts: 20
```

### Multi Sapling Block Behavior

```yaml
items:
  elitefantasy:baobab_sapling:
    material: PAPER
    settings:
      fuel-time: 100
    data:
      item-name: "<!i><white><l10n:item.baobab_sapling>"
    texture: elitefantasy:block/baobab_sappling
    behavior:
      type: block_item
      block:
        settings:
          template: elitefantasy:settings/sapling
        behaviors:
          - type: painter:multi_sapling
            grow_speed: 0.07
            bone_meal_success_chance: 0.45
            max_stage: 1
            consume_saplings: true
            patterns:
              - size_x: 4
                size_y: 1
                size_z: 4
                required_stage: 1
                saplings:
                  - painter:baobab_sapling
```

#### Feature

```yaml
            generators:
              - type: feature
                id: painter:baobab_tree
                offset_x: 1
                offset_y: 0
                offset_z: 1
```

#### Structure

```yaml
            generators:
              - type: structure
                id: painter:baobab_tree
                offset_x: 1
                offset_y: 0
                offset_z: 1
```

#### Command

```yaml
            generators:
              - type: command
                command: "execute in {dimension} positioned {x} {y} {z} run place feature painter:baobab_tree"
```
