[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/InfinityStudio/SimpleAPI/master/docs/Block.md [Back]  [Original]

## Block Json Object

`id`: The id of the block, should be identical.

`states`: The property containing [BlockStates](#blockstates) of the block. 

`properties`: The properties of the block.

`capabilites`: An optional property, see [Capabilities](Capabilities.md)

### BlockStates

This object will define the various states of block.

You have to have a state named default. Or, you write the block state property to the **root level**.

Common case:

    {
        "id": "eg_block",
        "states": {
            "default": {
                "lightOpacity": 1,
                "lightLevel": 0.5,
                // other default properties all here
            },
            "someOtherState": {
                // some other property
            }
        },
    }

All property goes **root level**:

    {
        "id": "eg_block",
        "states": {
            "someOtherState": {
                // some other property
            }
        },
        "lightOpacity": 1,
        "lightLevel": 0.5,
        // other default properties all here
    }

Then you could have some other custom states.

The state itself contains several property:

| Property   | Default Value                                     | Range                    | Description                                                                                                       | Example                                             |
| ---------- | ------------------------------------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- |
| material   | No default, required field                        | [Material](#material)    | The various material related behavior of block                                                                    | "grass"                                             |
| stepSound  | "stone"                                           | [SoundType](#soundtype)  | Sets the step sound of a block .                                                                                  | "wood"                                              |
| harvest    | {}                                                | [Harvest](#harvest)      | Provide the harvest behavior of block.                                                                            | {"level": "stone", "tool": "pickaxe"}               |
| bounding   | [0, 0, 0, 1, 1, 1]                                | 6 doubles                | The outline box of the block                                                                                      | [0, 0, 0, 1, 0.5625, 1]                             |
| collision  | \[[0, 0, 0, 1, 1, 1]]                             | Array of 6 doubles array | The collision box of the block                                                                                    | \[[0, 0, 0, 0.5, 0.5625, 0.5], [0.6,0.6,0.6,1,1,1]] |
| opacity    | 16                                                | 0-16                     | Sets how much light is subtracted when going through this block This is only used if isOpaqueCube() returns false | 14                                                  |
| brightness | 0.0                                               | 0.0-1.0                  | Sets how much light is emitted from the block. 0 means no light.                                                  | 0.5                                                 |
| hardness   | depends on material (stone:1.5; obsidian:50.0)    | All Float                | Sets how long it takes to break the block. Stone:1.5. Obsidian:50.0. Bedrock: -1                                  | 4.0                                                 |
| resistance | depends on material (stone:10.0; obsidian:2000.0) | All Float                | Sets the block's resistance against explosions                                                                    | 300                                                 |

### Harvest

The json object represents the harvest information of block.

| Property | Default Value | Range                                                                  | Description                           | Example |
| -------- | ------------- | ---------------------------------------------------------------------- | ------------------------------------- | ------- |
| level    | "wood"        | "wood", "stone", "iron", "diamond"                                     | What level of tool could harvest this | "iron"  |
| tool     | ""            | The id of the tools, for default minecraft: "pickaxe", "axe", "shovel" | What kind of tool could harvest this  | "axe"   |

largely ref from:


### Material

**this section is WIP, I'm filling the table**

The string or object represent the material of block.

Object format:

| Property   | Default Value | Range                                     | Description                                             |
| ---------- | ------------- | ----------------------------------------- | ------------------------------------------------------- |
| isLiquid   | false         | true, false                               | If this material is type of liquid                      |
| flammbale  | false         | true, false                               | If this block can catch on fire                         |
| replacable | false         | true, false                               | If this block is like tall grass or air can be replaced |
| mobility   | ""            | "destroy", "block", "ignore", "push_only" | The behavior of the block pushed by piston              |
| isSolid    | true          | true, false                               | If this is a solid block. This is arguably...           |

Minecraft commonly used (in my opinion) built-in material:

| Material | BlockLight() | Flammbale(x) | Replacable(x) | Solid() | Mobility(normal) | translucent | tool |
| -------- | ------------- | ------------ | ------------- | -------- | ---------------- | ----------- | ---- |
| air      | x             |              |              | x        |                  |            |      |
| grass    |               |              |               |          |                  | x           |      |
| ground   |               |              |               |          |                  | x           |      |
| wood     |               |             |               |          |                  |             |      |
| rock     |               |              |               |          |                  |             |     |
| iron     |               |              |               |          |                  |             |     |
| water    | x             |              |              | x        | destroy          |            |      |
| plants   | x             |             |               | x        | destroy          |             |      |
| cloth    |               |             |               |          |                  |             |      |
| leaves   |               |             |               |          | destroy          |             |      |
| sand     |               |              |               |          |                  |             |      |
| fire     | x             |              |              | x        | destroy          |             |      |
| ice      |               |              |               |          |                  |             |      |
| snow     | x             |              |              | x        | destroy          |             |     |
| glass    |               |              |               |          |                  |             |      |
| clay     |               |              |               |          |                  |             |      |
| cake     |               |              |               |          | destroy          |             |      |
| gourd    |               |              |               |          | destroy          |             |      |

Minecraft special usage (in my opinion) built-in material:

| Material       | BlockLight() | Flammbale(x) | Replacable(x) | Solid() | Mobility(normal) | tool |
| -------------- | ------------- | ------------ | ------------- | -------- | ---------------- | ---- |
| lava           | x             |              |              | x        | destroy          |      |
| anvil          |               |              |               |          | block            |     |
| vine           | x             |             |              | x        | destroy          |      |
| sponge         |               |              |               |          |                  |      |
| circuits       | x             |              |               | x        | destroy          |      |
| carpet         | x             |             |               | x        |                  |      |
| redstone light |               |              |               |          |                  |      |
| tnt            |               |             |               |          |                  |      |
| coral          |               |              |               |          | destroy          |      |
| packed ice     |               |              |               |          |                  |      |
| crafted snow   |               |              |               |          |                  |     |
| cactus         |               |              |               |          |                  |      |
| dragon egg     |               |              |               |          | destroy          |      |
| web            |               |              |               |          | destroy          |     |
| piston         |               |              |               |          |                  |      |
| barrier        |               |              |               |          | block            |     |
| structure void | x             |              |               |          |                  |      |
| portal         | x             |              |               | x        | block            |      |

largely ref from:


### SoundType

Minecraft have these built-in sound type: (too lazy to fill all the sound event)

| name   | volume | pitch | break | step | place | hit | fall |
| ------ | ------ | ----- | ----- | ---- | ----- | --- | ---- |
| wood   | 1      | 1     |       |      |       |     |      |
| ground | 1      | 1     |       |      |       |     |      |
| plant  | 1      | 1     |       |      |       |     |      |
| stone  | 1      | 1     |       |      |       |     |      |
| glass  | 1      | 1     |       |      |       |     |      |
| cloth  | 1      | 1     |       |      |       |     |      |
| sand   | 1      | 1     |       |      |       |     |      |
| snow   | 1      | 1     |       |      |       |     |      |
| ladder | 1      | 1     |       |      |       |     |      |
| anvil  | 0.3    | 1     |       |      |       |     |      |
| slime  | 1      | 1     |       |      |       |     |      |

To register own sound type, create file under the folder def/blocks/sound-types/ with file [soundTyle].json

Then the file format is 

    {
        "volume": 1.0,
        "pitch": 1.0,
        "break": "soundName",
        "step": "soundName",
        "place": "soundName",
        "hit": "soundName",
        "fall": "soundName"
    }

To view current built-in sound: [Sounds](Sounds.md) (NOT DONE YET)

Web Proxy Viewer  |  New URL  |  Original Page