# Unique behaviors of CraftEngine

## 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
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://plugins.elitefantasy.net/mechanics/unearthmechanic/unique-behaviors-of-craftengine.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
