|
|
Line 1: |
Line 1: |
| __NOTOC__
| | /* CSS placed here will be applied to all skins */ |
| == Overview ==
| | .treeview{margin-top:0.3em}.treeview ul,.treeview li{margin:0;padding:0;list-style-type:none;list-style-image:none}.treeview li{display:table}.treeview li li{position:relative;padding-left:13px;margin-left:7px;border-left:1px solid #636363}.treeview li li:before{content:"";position:absolute;top:0;left:0;width:11px;height:11px;border-bottom:1px solid #636363}.treeview li li.first:before{border-color:#636363;border-style:solid;border-width:1px 0 0 1px;height:100%;margin-top:11px;width:10px}.treeview li li.first,.treeview li li:last-child{border:0;padding-left:14px}.treeview li li:last-child:before{border-left:1px solid #636363;width:10px} |
| An incomplete list of all available properties
| |
|
| |
|
| <table id="treeviewtable" class="table table-bordered tt-table" style='table-layout: fixed'>
| | .tt-table td,th { |
| <tr style='background-color: gray;'>
| | padding: 10px; |
| <th width='300' align='left'>Property</th>
| | } |
| <th width='200' align='left'>Type</th>
| |
| <th width='120' align='left'>Default</th>
| |
| <th align='left'>Usage</th>
| |
| </tr>
| |
| <tr>
| |
| <td><div class="tt" data-tt-id="root">json</div></td>
| |
| <td></td>
| |
| <td></td>
| |
| <td></td>
| |
| </tr>
| |
| <tr>
| |
| <td colspan="4" style='font-size: 14pt; border-bottom: 2pt solid black; padding-left: 100px;'><b>Core (no byType available)</b></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_code" data-tt-parent="root">Code</div></td>
| |
| <td>string</td>
| |
| <td>required</td>
| |
| <td>A unique identifier for the block.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_code_info" data-tt-parent="p_code" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| A '''domain prefix''' will be added dynamically depending on the location of the file. Every mod and the VintageStory itself have a unique prefix.
| |
|
| |
|
| For example the code '''<code>stone</code>''' would turn into '''<code>game:stone</code>'''.
| | .tt-table tr.level0 td{ |
| | background-color: #e8e8e8; |
| | } |
|
| |
|
| The code identifier has to be unique, at least inside his domain, so in theory there can be equal identifiers with different domain prefixes.
| | .tt-table tr.level1.odd td{ |
| Find out more about [[Basic Modding#Domains|Domains]].
| | background-color: #e5e5e5; |
| </td>
| | } |
| </tr>
| | .tt-table tr.level1.even td{ |
| <tr>
| | background-color: lightgray; |
| <td scope="row"><div class="tt" data-tt-id="p_enabled" data-tt-parent="root">Enabled</div></td>
| | } |
| <td>boolean</td>
| |
| <td>true</td>
| |
| <td>If the block will be loaded or not. Can be used to temporarily remove the block.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_variantgroups" data-tt-parent="root">VariantGroups</div></td>
| |
| <td>array of object</td>
| |
| <td>-</td>
| |
| <td>Allows you define multiple variants of the same block.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_variantgroups_info" data-tt-parent="p_variantgroups" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| The variantgroups property allows you to define multiple variants of this block. All of them will have their unique code, which will added to the code.
| |
|
| |
|
| An easy example would be a bowl, which can either be raw or burned:
| | .tt-table tr.level2 td{ |
| <syntaxhighlight lang="json">
| | background-color: #f2f2f2; |
| variantgroups: [
| | } |
| { code:"type", states: ["raw", "burned"] },
| |
| ],
| |
| </syntaxhighlight>
| |
|
| |
|
| Meaning there will be two blocks <code>bowl-raw</code> and <code>bowl-burned</code>.
| | .tt-table div.tt { |
| | display:inline-block; |
| | position:relative; |
| | } |
|
| |
|
| ---- | | .tt-table div.tt div.content { |
| | border:1px gray solid; |
| | border-radius: 0px; |
| | z-index: 10; |
| | padding:0 4px 0 5px; |
| | position:relative; |
| | background-color: #efefef; |
| | color: black; |
| | } |
|
| |
|
| It's also possible to define multiple groups.
| | .tt-table div.tt div.tail { |
| | border:1px darkgray solid; |
| | border-right: 0; |
| | border-top: 0; |
| | position:absolute; |
| | border-radius: 0px; |
| | bottom: 11px; |
| | left: -10px; |
| | z-index: 0; |
| | } |
|
| |
|
| <syntaxhighlight lang="json">
| | .tt-table div.tt-parent div.content { |
| variantgroups: [ | | cursor:pointer; |
| { code:"state", states: ["closed", "opened"] },
| | background-color: #efefef; /*bccdff*/ |
| { code:"contents", states: ["empty", "cabbage"] },
| | font-weight: bold; |
| ],
| | } |
| </syntaxhighlight>
| |
|
| |
|
| As a result you will have 2x2 groups, which will be added one after each other: <code>barrel-closed-empty</code>, <code>barrel-closed-cabbage</code>, <code>barrel-opened-empty</code> and <code>barrel-opened-cabbage</code>.
| | #jquery-script-menu { |
| | position: fixed; |
| | height: 90px; |
| | width: 100%; |
| | top: 0; |
| | left: 0; |
| | border-top: 5px solid #316594; |
| | background: #fff; |
| | -moz-box-shadow: 0 2px 3px 0px rgba(0, 0, 0, 0.16); |
| | -webkit-box-shadow: 0 2px 3px 0px rgba(0, 0, 0, 0.16); |
| | box-shadow: 0 2px 3px 0px rgba(0, 0, 0, 0.16); |
| | z-index: 999999; |
| | padding: 10px 0; |
| | -webkit-box-sizing:content-box; |
| | -moz-box-sizing:content-box; |
| | box-sizing:content-box; |
| | } |
|
| |
|
| ----
| | .jquery-script-center { |
| | | width: 960px; |
| Additionally it is possible to refer to external lists that are found in the worldproperties folder, such as <code>block/rock</code>, which contains all states of all rock types. This used for <code>gravel</code>, <code>sand</code> and <code>rock</code>:
| | margin: 0 auto; |
| <syntaxhighlight lang="json">
| | } |
| variantgroups: [
| | .jquery-script-center ul { |
| { loadFromProperties: "block/rock" },
| | width: 212px; |
| ],
| | float:left; |
| </syntaxhighlight>
| | line-height:45px; |
| | | margin:0; |
| Here is a full list of all groups and their variants (you can also find them in the <code>assets/worldproperties</code> folder):
| | padding:0; |
| {{:json:block:worldvariantgroups}}
| | list-style:none; |
|
| | } |
| ----
| | .jquery-script-center a { |
| | | text-decoration:none; |
| Futhermore there are two ways of combining together groups. So far we covered the default combination mode, which is <code>multiplicative</code> (the total count of variants is the product of all states).
| | } |
| | | .jquery-script-ads { |
| Let's take a look at a different example (flowerpot), which uses the <code>additive</code> combination mode:
| | width: 728px; |
| <syntaxhighlight lang="json">
| | height:90px; |
| variantgroups: [
| | float:right; |
| { code: "type", states: ["raw"] },
| | } |
| { code: "empty", states: ["empty"], combine: "additive" },
| | .jquery-script-clear { |
| { code: "flower", loadFromProperties: "block/flower", combine: "additive" },
| | clear:both; |
| { code: "mushroom", loadFromProperties: "block/mushroom", combine: "additive" },
| | height:0; |
| { code: "sapling", loadFromProperties: "block/wood", combine: "additive" },
| |
| ],
| |
| </syntaxhighlight>
| |
| | |
| The variants are <code>flowerpot-raw</code>, <code>flowerpot-empty</code>, <code>flowerpot-{all flowers}</code>, <code>flowerpot-{all mushrooms}</code> and <code>flowerpot-{all saplings}</code>.
| |
| | |
| Things might get clearer if we look at another example:
| |
| <syntaxhighlight lang="json">
| |
| variantgroups: [
| |
| { code: "something", states: ["same", "different"] },
| |
| { code: "type", states: ["raw", "baked"] },
| |
| { code: "empty", states: ["red", "green"], "combine": "additive" },
| |
| ],
| |
| </syntaxhighlight>
| |
| | |
| In this case, the result would be <code>same-raw</code>, <code>same-baked</code>, <code>different-raw</code>, <code>different-baked</code>, <code>red</code> and <code>green</code>
| |
| | |
| The <code>additive</code> combination means all states will be added as a separate variant.
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td colspan="4" style='font-size: 14pt; border-bottom: 2pt solid black; padding-left: 100px;'><b>Specific</b></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_class" data-tt-parent="root">Class</div></td>
| |
| <td>string</td>
| |
| <td>"block"</td>
| |
| <td>The block class can add special functionalities for the block.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_class_info" data-tt-parent="p_class" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| A complete tutorial of how to create your own class can be found [[Advanced Blocks|here]].
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_entityclass" data-tt-parent="root">EntityClass</div></td>
| |
| <td>string</td>
| |
| <td>-</td>
| |
| <td>The block entity class is able to tick and to store extra data.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_entityclass_info" data-tt-parent="p_entityclass" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| A complete tutorial of creating your own entityclass can be found [[Block Entity|here]].
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_behaviors" data-tt-parent="root">Behaviors</div></td>
| |
| <td>array of object</td>
| |
| <td>-</td>
| |
| <td>A behavior adds custom abilities such as falling block..</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_behaviors_info" data-tt-parent="p_behaviors" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| Here is an overview of all exisiting behaviors, if you want to create your own custom behavior you can read [[Adding Block Behavior]].
| |
| {{:json:block:behavior}}
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_blockmaterial" data-tt-parent="root">BlockMaterial</div></td>
| |
| <td>string</td>
| |
| <td>-</td>
| |
| <td>A behavior adds custom abilities such as falling block.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row">
| |
| <div class="tt" data-tt-id="p_blockmaterial_soil" data-tt-parent="p_blockmaterial">Soil</div><br>
| |
| <div class="tt" data-tt-id="p_blockmaterial_gravel" data-tt-parent="p_blockmaterial">Gravel</div><br>
| |
| <div class="tt" data-tt-id="p_blockmaterial_sand" data-tt-parent="p_blockmaterial">Sand</div><br>
| |
| <div class="tt" data-tt-id="p_blockmaterial_wood" data-tt-parent="p_blockmaterial">Wood</div><br>
| |
| <div class="tt" data-tt-id="p_blockmaterial_leaves" data-tt-parent="p_blockmaterial">Leaves</div><br>
| |
| <div class="tt" data-tt-id="p_blockmaterial_stone" data-tt-parent="p_blockmaterial">Stone</div><br>
| |
| <div class="tt" data-tt-id="p_blockmaterial_liquid" data-tt-parent="p_blockmaterial">Liquid</div><br>
| |
| <div class="tt" data-tt-id="p_blockmaterial_snow" data-tt-parent="p_blockmaterial">Snow</div><br>
| |
| <div class="tt" data-tt-id="p_blockmaterial_ice" data-tt-parent="p_blockmaterial">Ice</div><br>
| |
| <div class="tt" data-tt-id="p_blockmaterial_metal" data-tt-parent="p_blockmaterial">Metal</div><br>
| |
| <div class="tt" data-tt-id="p_blockmaterial_mantle" data-tt-parent="p_blockmaterial">Mantle</div><br>
| |
| <div class="tt" data-tt-id="p_blockmaterial_plant" data-tt-parent="p_blockmaterial">Plant</div><br>
| |
| <div class="tt" data-tt-id="p_blockmaterial_glass" data-tt-parent="p_blockmaterial">Glass</div><br>
| |
| <div class="tt" data-tt-id="p_blockmaterial_ceramic" data-tt-parent="p_blockmaterial">Ceramic</div><br>
| |
| <div class="tt" data-tt-id="p_blockmaterial_cloth" data-tt-parent="p_blockmaterial">Cloth</div><br>
| |
| <div class="tt" data-tt-id="p_blockmaterial_lava" data-tt-parent="p_blockmaterial">Lava</div><br>
| |
| <div class="tt" data-tt-id="p_blockmaterial_brick" data-tt-parent="p_blockmaterial">Brick</div><br>
| |
| <div class="tt" data-tt-id="p_blockmaterial_fire" data-tt-parent="p_blockmaterial">Fire</div><br>
| |
| <div class="tt" data-tt-id="p_blockmaterial_other" data-tt-parent="p_blockmaterial">Other</div>
| |
| </td>
| |
| <td colspan="3" valign="top">
| |
| Materials are hardcoded and currently only used to determine mining speed with a specific tool.
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_matterstate" data-tt-parent="root">MatterState</div></td>
| |
| <td>array of object</td>
| |
| <td>"block"</td>
| |
| <td>Determines whether the block is in a '''''solid''''', a '''''liquid''''', a '''''gas''''' or a '''''plasma''''' state.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row">
| |
| <div class="tt" data-tt-id="p_matterstate_solid" data-tt-parent="p_matterstate">solid</div><br><br>
| |
| <div class="tt" data-tt-id="p_matterstate_liquid" data-tt-parent="p_matterstate">liquid</div><br><br>
| |
| <div class="tt" data-tt-id="p_matterstate_gas" data-tt-parent="p_matterstate">gas</div><br><br>
| |
| <div class="tt" data-tt-id="p_matterstate_plasma" data-tt-parent="p_matterstate">plasma</div><br><br>
| |
| </td>
| |
| <td colspan="3">
| |
| Used for special collision behavior and rendering. Currently used for:
| |
| | |
| Liquid:
| |
| *Lava
| |
| *Water
| |
| *Water with particles
| |
| | |
| Gas/Plasma:
| |
| none added yet
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_resistance" data-tt-parent="root">Resistance</div></td>
| |
| <td>decimal number</td>
| |
| <td>6</td>
| |
| <td>How long it takes to break this block in seconds (with a mining speed of 1).</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_resistance_info" data-tt-parent="p_resistance" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| Same examples of resistance's values used in VintageStory:
| |
| <table class="wikitable">
| |
| <tr style="background-color: grey;">
| |
| <th style="background-color: grey;">Block</th>
| |
| <th style="background-color: grey;">Value</th>
| |
| </tr>
| |
| <tr>
| |
| <td>'''leave'''</td>
| |
| <td>''0.5''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''wool'''</td>
| |
| <td>''1.0''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''bowl'''</td>
| |
| <td>''1.5''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''obsidian'''</td>
| |
| <td>''2''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''plank'''</td>
| |
| <td>''3.5''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''log'''</td>
| |
| <td>''4.5''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''rock'''</td>
| |
| <td>''6''</td>
| |
| </tr>
| |
| </table>
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_requiredminingtier" data-tt-parent="root">RequiredMiningTier</div></td>
| |
| <td>integer</td>
| |
| <td>0</td>
| |
| <td>Minimum required mining tier to get the drop out of the block.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_requiredminingtier_info" data-tt-parent="p_requiredminingtier" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| <table class="wikitable">
| |
| <tr style="background-color: grey;">
| |
| <th style="background-color: grey;">Tier</th>
| |
| <th style="background-color: grey;">Ores</th>
| |
| </tr>
| |
| <tr>
| |
| <td>'''1'''</td>
| |
| <td>'''''gelena''''' and '''''rocksalt_sylvite'''''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''2'''</td>
| |
| <td>'''''lignite''''', '''''cassiterite''''', '''''sphalerite''''', '''''rocksalt''''', '''''sulfur''''' and '''''nativecopper'''''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''3'''</td>
| |
| <td>'''''bituminouscoal''''', '''''quartz_nativegold''''', '''''quartz_nativesilver''''', '''''lapislazuli''''', '''''bismuthinite''''', '''''quartz''''', '''''magnetite''''' and '''''limonite'''''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''4'''</td>
| |
| <td>'''''diamond''''' and '''''emerald'''''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''5'''</td>
| |
| <td>'''''chromite''''', '''''platinum''''' and '''''ilmenite'''''</td>
| |
| </tr>
| |
| </table>
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_climbable" data-tt-parent="root">Climbable</div></td>
| |
| <td>boolean</td>
| |
| <td>false</td>
| |
| <td>If true, walking against this block will make the player climb (used for ladders).</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_rainpermeable" data-tt-parent="root">RainPermeable</div></td>
| |
| <td>boolean</td>
| |
| <td>false</td>
| |
| <td>If rain can fall through this block.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_snowcoverage" data-tt-parent="root">SnowCoverage</div></td>
| |
| <td>boolean</td>
| |
| <td>-</td>
| |
| <td>Whether snow may rest on top of this block.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_snowcoverage_info" data-tt-parent="p_snowcoverage" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| All none solid blocks can't be covered by snow unless it's defined different:
| |
| *Leaves (also branchy): '''true''',
| |
| *Water with particles, Lakeice: '''false'''
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_collisionbox" data-tt-parent="root">CollisionBox</div></td>
| |
| <td>object</td>
| |
| <td>box (0,0,0 -> 1,1,1)</td>
| |
| <td>Defines a box with which the player collides with.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_collisionbox_info" data-tt-parent="p_collisionbox" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| A '''half slab''' for example, has either a box going from 0,0,0 to 1,0.5,1 or going from 0,0.5,0 to 1,1,1, depending on whether it is a slab is down or up:
| |
| <syntaxhighlight lang="json">
| |
| collisionboxByType: {
| |
| "*-down": { x1: 0, y1: 0, z1: 0, x2: 1, y2: 0.5, z2: 1 },
| |
| "*-up": { x1: 0, y1: 0.5, z1: 0, x2: 1, y2: 1, z2: 1 }
| |
| },
| |
| </syntaxhighlight>
| |
| | |
| Collision and selection boxes are most likely equal.
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_collisionboxes" data-tt-parent="root">CollisionBoxes</div></td>
| |
| <td>array of object</td>
| |
| <td>-</td>
| |
| <td>Defines multiple boxes with which the player collides with.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_collisionboxes_info" data-tt-parent="p_collisionboxes" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| A '''crate''' for example requires multiple collision boxes:
| |
| <syntaxhighlight lang="json">
| |
| collisionboxesByType: {
| |
| "*-opened": [
| |
| { x1: 0, y1: 0, z1: 0, x2: 1, y2: 0.0625, z2: 1 },
| |
| { x1: 0, y1: 0, z1: 0, x2: 1, y2: 1, z2: 0.0625 },
| |
| { x1: 0, y1: 0, z1: 0, x2: 1, y2: 1, z2: 0.0625, rotateY: 90 },
| |
| { x1: 0, y1: 0, z1: 0, x2: 1, y2: 1, z2: 0.0625, rotateY: 180 },
| |
| { x1: 0, y1: 0, z1: 0, x2: 1, y2: 1, z2: 0.0625, rotateY: 270 },
| |
| ]
| |
| },
| |
| </syntaxhighlight>
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_selectionbox" data-tt-parent="root">SelectionBox</div></td>
| |
| <td>object</td>
| |
| <td>box (0,0,0 -> 1,1,1)</td>
| |
| <td>Defines a box which the player's mouse pointer collides with for selection.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_selectionbox_info" data-tt-parent="p_selectionbox" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| A '''half slab''' for example, has either a box going from 0,0,0 to 1,0.5,1 or going from 0,0.5,0 to 1,1,1, depending on whether it is a slab is down or up:
| |
| <syntaxhighlight lang="json">
| |
| selectionboxByType: {
| |
| "*-down": { x1: 0, y1: 0, z1: 0, x2: 1, y2: 0.5, z2: 1 },
| |
| "*-up": { x1: 0, y1: 0.5, z1: 0, x2: 1, y2: 1, z2: 1 }
| |
| },
| |
| </syntaxhighlight>
| |
| | |
| Collision and selection boxes are most likely equal.
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_selectionboxes" data-tt-parent="root">SelectionBoxes</div></td>
| |
| <td>array of object</td>
| |
| <td>-</td>
| |
| <td>Defines multiple boxes which the player's mouse pointer collides with for selection.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_selectionboxes_info" data-tt-parent="p_selectionboxes" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| A '''crate''' for example requires multiple selection boxes:
| |
| <syntaxhighlight lang="json">
| |
| selectionboxesByType: {
| |
| "*-opened": [
| |
| { x1: 0, y1: 0, z1: 0, x2: 1, y2: 0.0625, z2: 1 },
| |
| { x1: 0, y1: 0, z1: 0, x2: 1, y2: 1, z2: 0.0625 },
| |
| { x1: 0, y1: 0, z1: 0, x2: 1, y2: 1, z2: 0.0625, rotateY: 90 },
| |
| { x1: 0, y1: 0, z1: 0, x2: 1, y2: 1, z2: 0.0625, rotateY: 180 },
| |
| { x1: 0, y1: 0, z1: 0, x2: 1, y2: 1, z2: 0.0625, rotateY: 270 },
| |
| ]
| |
| },
| |
| </syntaxhighlight>
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_replaceable" data-tt-parent="root">Replaceable</div></td>
| |
| <td>integer</td>
| |
| <td>0</td>
| |
| <td>A value usually between 0-9999 that indicates which blocks may be replaced with others.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_replaceable_info" data-tt-parent="p_replaceable" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| <table class="wikitable">
| |
| <tr style="background-color: grey;">
| |
| <th style="background-color: grey;">Value</th>
| |
| <th style="background-color: grey;">Effect (Blocks)</th>
| |
| </tr>
| |
| <tr>
| |
| <td>'''0'''</td>
| |
| <td>'''''ordinary blocks''''' (stone for example)</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''5000'''</td>
| |
| <td>Everything equal or above will be washed away by water (such as '''''Fruit''''').</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''6000'''</td>
| |
| <td>Everything equal or above wwill replaced when the player tries to place a block (such as '''''Tallgrass''''').</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''9000'''</td>
| |
| <td>'''''Lava'''''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''9500'''</td>
| |
| <td>'''''Water'''''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''9999'''</td>
| |
| <td>'''''Air'''''</td>
| |
| </tr>
| |
| </table>
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_fertility" data-tt-parent="root">Fertility</div></td>
| |
| <td>integer</td>
| |
| <td>0</td>
| |
| <td>Which plants can grow on top of this block.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_fertility_info" data-tt-parent="p_fertility" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| <table class="wikitable">
| |
| <tr style="background-color: grey;">
| |
| <th style="background-color: grey;">Value</th>
| |
| <th style="background-color: grey;">Effect</th>
| |
| </tr>
| |
| <tr>
| |
| <td>'''0'''</td>
| |
| <td>''nothing can grow.''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''10'''</td>
| |
| <td>''some tallgrass and small trees can be grow on it.''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''100'''</td>
| |
| <td>''all grass and trees can grow on it.''</td>
| |
| </tr>
| |
| </table>
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_glowlevel" data-tt-parent="root">GlowLevel</div></td>
| |
| <td>0 ... 255</td>
| |
| <td>0</td>
| |
| <td>Basic glow level for all the blocks model elements.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_glowlevel_info" data-tt-parent="p_glowlevel" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| <table class="wikitable">
| |
| <tr style="background-color: grey;">
| |
| <th style="background-color: grey;">Blocks</th>
| |
| <th style="background-color: grey;">Value</th>
| |
| </tr>
| |
| <tr>
| |
| <td>''Glacierice''</td>
| |
| <td>'''8'''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>''Paperlantern''</td>
| |
| <td>'''32'''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>''Ember''</td>
| |
| <td>'''48'''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>''Fire'', ''Firepit'', ''Oillamp'', ''Torch''</td>
| |
| <td>'''64'''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>''Lava''</td>
| |
| <td>'''128'''</td>
| |
| </tr>
| |
| </table>
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_lightabsorption" data-tt-parent="root">LightAbsorption</div></td>
| |
| <td>0 ... 32</td>
| |
| <td>0</td>
| |
| <td>For light blocking blocks. Any value above 32 will completely block all light.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_walkspeedmultiplier" data-tt-parent="root">WalkspeedMultiplier</div></td>
| |
| <td>decimal number</td>
| |
| <td>1</td>
| |
| <td>Percentage walk-speed when standing on or inside this block.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_walkspeedmultiplier_info" data-tt-parent="p_walkspeedmultiplier" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| <table class="wikitable">
| |
| <tr style="background-color: grey;">
| |
| <th style="background-color: grey;">Blocks</th>
| |
| <th style="background-color: grey;">Value</th>
| |
| </tr>
| |
| <tr>
| |
| <td>''Spiderweb''</td>
| |
| <td>'''0.25'''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>''Stonepath''</td>
| |
| <td>'''1.15'''</td>
| |
| </tr>
| |
| </table>
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_dragmultiplier" data-tt-parent="root">DragMultiplier</div></td>
| |
| <td>decimal number</td>
| |
| <td>1</td>
| |
| <td>Drag multiplier applied to entities standing on it (slipperiness factor).</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_dragmultiplier_info" data-tt-parent="p_dragmultiplier" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| <table class="wikitable">
| |
| <tr style="background-color: grey;">
| |
| <th style="background-color: grey;">Blocks</th>
| |
| <th style="background-color: grey;">Value</th>
| |
| </tr>
| |
| <tr>
| |
| <td>''Glacierice'', ''Lakeice''</td>
| |
| <td>'''0.02'''</td>
| |
| </tr>
| |
| </table>
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_drops" data-tt-parent="root">Drops</div></td>
| |
| <td>array of object</td>
| |
| <td>-</td>
| |
| <td>The items that should drop from breaking this block.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_drops_info" data-tt-parent="p_drops" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| | |
| '''Drop itself'''
| |
| | |
| If this property does not exist the block will drop itself.
| |
| | |
| ----
| |
| | |
| '''No drop'''
| |
| | |
| A '''firepit''' for example doesn't drop anything. You can do so if you specify an empty array:
| |
| <syntaxhighlight lang="json">
| |
| drops: [],
| |
| </syntaxhighlight>
| |
| | |
| ----
| |
| | |
| '''Special drop'''
| |
| | |
| You can also specify a special item/ block. Therefore you need to define an '''ItemStack''', with the given properties:
| |
| | |
| <table class="wikitable">
| |
| <tr style="background-color: grey;">
| |
| <th style="background-color: grey;">Property</th>
| |
| <th style="background-color: grey;">Default</th>
| |
| <th style="background-color: grey;">Explanation</th> | |
| </tr>
| |
| <tr>
| |
| <td>'''type'''</td>
| |
| <td>''block''</td>
| |
| <td>Can either be '''''block''''' or '''''item'''''.</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''code''' (required)</td>
| |
| <td>-</td>
| |
| <td>The complete code (can also include domain) of the item or block.</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''lastdrop'''</td>
| |
| <td>false</td>
| |
| <td>If true and the quantity dropped is >=1 any subsequent drop will be ignored.</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''attributes'''</td>
| |
| <td>-</td>
| |
| <td>Tree Attributes that will be attached to the resulting itemstack.</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''tool'''</td>
| |
| <td>-</td>
| |
| <td>If specified then given tool is required to break this block.</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''quantity'''</td>
| |
| <td>- (one)</td>
| |
| <td>Determines the quantity of items which will be dropped.</td>
| |
| </tr>
| |
| </table>
| |
| | |
| For example, the drop of a '''charcoalpile''' looks like this:
| |
| | |
| <syntaxhighlight lang="json">
| |
| drops: [
| |
| { type: "item", code: "charcoal" }
| |
| ],
| |
| </syntaxhighlight>
| |
| | |
| '''Tallgrass''' will only drop something if it's mined by a knife:
| |
| | |
| <syntaxhighlight lang="json">
| |
| drops: [
| |
| { type: "item", code: "drygrass", tool: "knife" },
| |
| ],
| |
| </syntaxhighlight>
| |
| | |
| ----
| |
| | |
| '''Chance drops'''
| |
| | |
| Let's take a look at an example. This is the drop property of rock:
| |
| | |
| <syntaxhighlight lang="json">
| |
| drops: [
| |
| {
| |
| type: "item",
| |
| code: "stone-{rock}",
| |
| quantity: { avg: 2.5, var: 0.5 }
| |
| },
| |
| ]
| |
| </syntaxhighlight>
| |
| | |
| This will drop 2-3 blocks.
| |
| | |
| '''''avg''''': Stands for the default drop quantity. If var is 0 or not specified it will always drop the given average.
| |
| | |
| '''''var''''': How much the drop rate can vary. Meaning the drop rate can be <code>avg - var</code> at minimum and <code>age + var</code> at maximum.
| |
| | |
| Futhermore you can also switch between different distribution modes using the '''''dist''''' property.
| |
| | |
| <table class="wikitable mw-collapsible mw-collapsed">
| |
| <tr>
| |
| <th colspan="2">Overview - Distribution modes</th>
| |
| </tr>
| |
| <tr style="background-color: grey;">
| |
| <th style="background-color: grey;">Name</th>
| |
| <th style="background-color: grey;">Explanation</th>
| |
| </tr>
| |
| <tr>
| |
| <td>'''uniform'''</td>
| |
| <td>''Select completely random numbers within avg-var until avg+var.''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''triangle'''</td>
| |
| <td>''Select random numbers with numbers near avg being the most commonly selected ones, following a triangle curve.''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''gaussian'''</td>
| |
| <td>''Select random numbers with numbers near avg being the most commonly selected ones, following a gaussian curve.''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''narrowgaussian'''</td>
| |
| <td>''Select random numbers with numbers near avg being the most commonly selected ones, following a narrow gaussian curve.''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''inversegaussian'''</td>
| |
| <td>''Select random numbers with numbers near avg being the least commonly selected ones, following an upside down gaussian curve.''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''narrowinversegaussian'''</td>
| |
| <td>''Select random numbers with numbers near avg being the least commonly selected ones, following an upside down gaussian curve.''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''invexp'''</td>
| |
| <td>''Select numbers in the form of avg + var, wheras low value of var are preferred.''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''stronginvexp'''</td>
| |
| <td>''Select numbers in the form of avg + var, wheras low value of var are strongly preferred.''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''strongerinvexp'''</td>
| |
| <td>''Select numbers in the form of avg + var, wheras low value of var are very strongly preferred.''</td>
| |
| </tr>
| |
| <tr>
| |
| <td>'''dirac'''</td>
| |
| <td>''Select completely random numbers within avg-var until avg+var only ONCE and then always 0.''</td>
| |
| </tr>
| |
| </table>
| |
| | |
| ----
| |
|
| |
| '''Multiple Drops'''
| |
| | |
| Of course you can also define multiple drops at once. '''Sapling''' can drop a sapling and a stick:
| |
| | |
| <syntaxhighlight lang="json">
| |
| drops: [
| |
| {
| |
| type: "block",
| |
| code: "sapling-{wood}",
| |
| quantity: { avg: 0.02, var: 0 },
| |
| },
| |
| {
| |
| type: "item",
| |
| code: "stick",
| |
| quantity: { avg: 0.02, var: 0 },
| |
| }
| |
| ],
| |
| </syntaxhighlight>
| |
| | |
| ----
| |
| | |
| '''Last Drop'''
| |
| | |
| In order to add a special drop, which (if dropped) prevents all other drops, you can use the lastDrop property:
| |
| | |
| <syntaxhighlight lang="json">
| |
| dropsByType: {
| |
| "ore-quartz-*": [
| |
| { type: "item", code: "clearquartz", quantity: { avg: 0.2, var: 0 }, lastDrop: true },
| |
| { type: "item", code: "ore-{ore}", quantity: { avg: 1.25, var: 0 } }
| |
| ],
| |
| "*": [
| |
| { type: "item", code: "ore-{ore}", quantity: { avg: 1.25, var: 0 } }
| |
| ],
| |
| } | | } |
| </syntaxhighlight>
| |
|
| |
| Quartz ore will drop with a 20% chance clearquartz, if not it will drop the regular ore. If lastDrop wouldn't be true it could drop both at the same time.
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_particleproperties" data-tt-parent="root">ParticleProperties</div></td>
| |
| <td>array of object</td>
| |
| <td>-</td>
| |
| <td>Particles that should spawn in regular intervals from this block.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_liquidlevel" data-tt-parent="root">LiquidLevel</div></td>
| |
| <td>0 ... 7</td>
| |
| <td>0</td>
| |
| <td>Value between 0...7 for Liquids to determine the height of the liquid.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_cropprops" data-tt-parent="root">CropProps</div></td>
| |
| <td>object</td>
| |
| <td>-</td>
| |
| <td>Information about the block as a crop.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_sounds" data-tt-parent="root">Sounds</div></td>
| |
| <td>key: string, value: string</td>
| |
| <td>-</td>
| |
| <td>The sounds played for this block during step, break, build and walk.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_sounds_walk" data-tt-parent="p_sounds">Walk</div></td>
| |
| <td colspan="3">An entity walks over it.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_sounds_inside" data-tt-parent="p_sounds">Inside</div></td>
| |
| <td colspan="3">The player is inside the block.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_sounds_break" data-tt-parent="p_sounds">Break</div></td>
| |
| <td colspan="3">Breaking the block.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_sounds_place" data-tt-parent="p_sounds">Place</div></td>
| |
| <td colspan="3">Placing the block.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_sounds_hit" data-tt-parent="p_sounds">Hit</div></td>
| |
| <td colspan="3">While mining the block.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_sounds_ambient" data-tt-parent="p_sounds">Ambient</div></td>
| |
| <td colspan="3">Played from time to time if the player is close to it.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_sounds_info" data-tt-parent="p_sounds" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| '''Anvil''':
| |
| <syntaxhighlight lang="json">
| |
| sounds: {
| |
| "place": "block/anvil",
| |
| "break": "block/anvil"
| |
| }
| |
| </syntaxhighlight>
| |
|
| |
| '''Rails''':
| |
| <syntaxhighlight lang="json">
| |
| sounds: {
| |
| place": "block/planks",
| |
| "walk": "walk/wood"
| |
| }
| |
| </syntaxhighlight>
| |
|
| |
| '''Water''':
| |
| <syntaxhighlight lang="json">
| |
| sounds: {
| |
| place: "block/water",
| |
| inside: "walk/water",
| |
| ambient: "environment/creek"
| |
| },
| |
| </syntaxhighlight>
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td colspan="4" style='font-size: 14pt; border-bottom: 2pt solid black; padding-left: 100px;'><b>Common</b></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_creativeinventory" data-tt-parent="root">CreativeInventory</div></td>
| |
| <td>key: string, value: string[]</td>
| |
| <td>-</td>
| |
| <td>In which creative inventory tabs the block should be visible in.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_creativeinventory_info" data-tt-parent="p_creativeinventory" data-invisible="true"></div></td>
| |
| <td colspan="3">
| |
| There are several tabs to you can add your stuff. Note that general should always be included, since it should contain everything.
| |
|
| |
| *general
| |
| *terrain
| |
| *flora
| |
| *construction
| |
| *decorative
| |
| *items
| |
|
| |
| '''Rock''' adds all of it's variantions to general, terrain and construction:
| |
| <syntaxhighlight lang="json">
| |
| creativeinventory: { "general": ["*"], "terrain": ["*"], "construction": ["*"] },
| |
| </syntaxhighlight>
| |
|
| |
| '''<code>*</code>''' reprents the variants which will be added. You can specify multiple and separate them with a comma. It follows the same way as the '''byType''' property.
| |
|
| |
| A '''Torch''' on the other hand only adds the variation '''<code>up</code>''':
| |
| <syntaxhighlight lang="json">
| |
| creativeinventory: { "general": ["*-up"], "decorative": ["*-up"] },
| |
| </syntaxhighlight>
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_maxstacksize" data-tt-parent="root">MaxStackSize</div></td>
| |
| <td>integer</td>
| |
| <td>64</td>
| |
| <td>Determines the maximum amount you can stack the block in one slot.</td>
| |
| </tr>
| |
|
| |
|
| |
|
| |
|
| |
|
| |
| <tr>
| |
| <td colspan="4" style='font-size: 14pt; border-bottom: 2pt solid black; padding-left: 100px;'><b>Rendering</b></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_renderpass" data-tt-parent="root">renderpass</div></td>
| |
| <td>string (of enum)</td>
| |
| <td>opaque</td>
| |
| <td>Determines how the block will be drawn.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_opaque" data-tt-parent="p_renderpass">opaque</div></td>
| |
| <td></td>
| |
| <td>0</td>
| |
| <td>Used for solid blocks with no half transparency.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_opaquenocull" data-tt-parent="p_renderpass">opaquenocull</div></td>
| |
| <td></td>
| |
| <td>1</td>
| |
| <td>Used for non-solid single faced blocks, such as tall grass.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_transparent" data-tt-parent="p_renderpass">transparent</div></td>
| |
| <td></td>
| |
| <td>2</td>
| |
| <td>Use for solid halftransparent blocks, such as glass</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_liquid" data-tt-parent="p_renderpass">liquid</div></td>
| |
| <td></td>
| |
| <td>3</td>
| |
| <td>Used for liquids, produces waves.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_topsoil" data-tt-parent="p_renderpass">topsoil</div></td>
| |
| <td></td>
| |
| <td>4</td>
| |
| <td>Used for grass covered blocks. Allows for a smooth transition from grass to soil, while still allowing climate tinting of grass.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_shape" data-tt-parent="root">shape</div></td>
| |
| <td>shape</td>
| |
| <td></td>
| |
| <td>For the json drawtype, the shape definition of the block as shown in the world, dropped on the ground or held in hand.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_base" data-tt-parent="p_shape">base</div></td>
| |
| <td></td>
| |
| <td></td>
| |
| <td>The path to the shape json file, the base dir is ''assets/shapes/''.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_rotateX" data-tt-parent="p_shape">rotateX</div></td>
| |
| <td>float</td>
| |
| <td>0</td>
| |
| <td></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_rotateY" data-tt-parent="p_shape">rotateY</div></td>
| |
| <td>float</td>
| |
| <td>0</td>
| |
| <td></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_rotateZ" data-tt-parent="p_shape">rotateZ</div></td>
| |
| <td>float</td>
| |
| <td>0</td>
| |
| <td></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_shapeinventory" data-tt-parent="root">shapeinventory</div></td>
| |
| <td>shape</td>
| |
| <td></td>
| |
| <td>For the json drawtype, the shape definition of the block as shown in the players inventory.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_invbase" data-tt-parent="p_shapeinventory">base</div></td>
| |
| <td></td>
| |
| <td></td>
| |
| <td>The path to the shape json file, the base dir is ''assets/shapes/''.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_invrotateX" data-tt-parent="p_shapeinventory">rotateX</div></td>
| |
| <td>float</td>
| |
| <td>0</td>
| |
| <td></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_invrotateY" data-tt-parent="p_shapeinventory">rotateY</div></td>
| |
| <td>float</td>
| |
| <td>0</td>
| |
| <td></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_invrotateZ" data-tt-parent="p_shapeinventory">rotateZ</div></td>
| |
| <td>float</td>
| |
| <td>0</td>
| |
| <td></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_ambientocclusion" data-tt-parent="root">ambientocclusion</div></td>
| |
| <td>boolean</td>
| |
| <td>true</td>
| |
| <td>If ambient occlusion will be applied to the block.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_drawtype" data-tt-parent="root" hide="children">drawtype</div></td>
| |
| <td>string (of enum)</td>
| |
| <td>cube</td>
| |
| <td>Determines how the block is tesselated, select JSON for being able to use custom JSON Models. The other values are hardcoded methods of tesselating the block. Check [[Drawtypes]] for a full list.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_blockLayer_1" data-tt-parent="p_drawtype">blockLayer_1</div></td>
| |
| <td></td>
| |
| <td>0</td>
| |
| <td></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_blockLayer_2" data-tt-parent="p_drawtype">blockLayer_2</div></td>
| |
| <td></td>
| |
| <td>1</td>
| |
| <td></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_blockLayer_3" data-tt-parent="p_drawtype">blockLayer_3</div></td>
| |
| <td></td>
| |
| <td>2</td>
| |
| <td></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_blockLayer_4" data-tt-parent="p_drawtype">blockLayer_4</div></td>
| |
| <td></td>
| |
| <td>3</td>
| |
| <td></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_blockLayer_5" data-tt-parent="p_drawtype">blockLayer_5</div></td>
| |
| <td></td>
| |
| <td>4</td>
| |
| <td></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_blockLayer_6" data-tt-parent="p_drawtype">blockLayer_6</div></td>
| |
| <td></td>
| |
| <td>5</td>
| |
| <td></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_blockLayer_7" data-tt-parent="p_drawtype">blockLayer_7</div></td>
| |
| <td></td>
| |
| <td>6</td>
| |
| <td></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_json" data-tt-parent="p_drawtype">json</div></td>
| |
| <td></td>
| |
| <td>7</td>
| |
| <td>Will draw a json model.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_empty" data-tt-parent="p_drawtype">empty</div></td>
| |
| <td></td>
| |
| <td>8</td>
| |
| <td>Nothing will be drawn.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_cube" data-tt-parent="p_drawtype">cube</div></td>
| |
| <td></td>
| |
| <td>9</td>
| |
| <td>Draws an ordinary cube.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_cross" data-tt-parent="p_drawtype">cross</div></td>
| |
| <td></td>
| |
| <td>10</td>
| |
| <td></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_transparent" data-tt-parent="p_drawtype">transparent</div></td>
| |
| <td></td>
| |
| <td>11</td>
| |
| <td></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_liquid" data-tt-parent="p_drawtype">liquid</div></td>
| |
| <td></td>
| |
| <td>12</td>
| |
| <td></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_crossandsnowlayer" data-tt-parent="p_drawtype">crossandsnowlayer</div></td>
| |
| <td></td>
| |
| <td>13</td>
| |
| <td></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_textures" data-tt-parent="root">textures</div></td>
| |
| <td>key: direction, value: texture</td>
| |
| <td></td>
| |
| <td>The texture definitions for the block as seen in the world, when dropped on the ground or held in the hand.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row" valign="top"><div class="tt" data-tt-id="p_textures_base" data-tt-parent="p_textures">base</div><br><br><div class="tt" data-tt-id="p_textures_overlays" data-tt-parent="p_textures">overlays</div><br><br><div class="tt" data-tt-id="p_textures_base" data-tt-parent="p_textures">alternates</div></td>
| |
| <td colspan="3">{{:json:block:texture}}</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_texturesinventory" data-tt-parent="root">texturesinventory</div></td>
| |
| <td>key: direction, value: texture</td>
| |
| <td></td>
| |
| <td>The texture definitions for the block as seen in the player inventory. Overrides the textures definition if set.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_sideopaque" data-tt-parent="root">sideopaque</div></td>
| |
| <td>key: direction, value: boolean</td>
| |
| <td>true</td>
| |
| <td>Determines if given block face is fully opaque. If yes, the opposite face of the adjacent block will not be drawn for efficiency reasons.</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row">
| |
| <div class="tt" data-tt-id="p_sideopaque_all" data-tt-parent="p_sideopaque">all</div><br>
| |
| <div class="tt" data-tt-id="p_sideopaque_east" data-tt-parent="p_sideopaque">east</div><br>
| |
| <div class="tt" data-tt-id="p_sideopaque_west" data-tt-parent="p_sideopaque">west</div><br>
| |
| <div class="tt" data-tt-id="p_sideopaque_up" data-tt-parent="p_sideopaque">up</div><br>
| |
| <div class="tt" data-tt-id="p_sideopaque_down" data-tt-parent="p_sideopaque">down</div><br>
| |
| <div class="tt" data-tt-id="p_sideopaque_north" data-tt-parent="p_sideopaque">north</div><br>
| |
| <div class="tt" data-tt-id="p_sideopaque_south" data-tt-parent="p_sideopaque">south</div>
| |
| </td>
| |
| <td></td>
| |
| <td></td>
| |
| <td></td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row"><div class="tt" data-tt-id="p_sidesolid" data-tt-parent="root">sidesolid</div></td>
| |
| <td>key: direction, value: boolean</td>
| |
| <td>true</td>
| |
| <td>Determins if given block side is solid. If true, other blocks like torches can be attached to it</td>
| |
| </tr>
| |
| <tr>
| |
| <td scope="row">
| |
| <div class="tt" data-tt-id="p_sidesolid_all" data-tt-parent="p_sidesolid">all</div><br>
| |
| <div class="tt" data-tt-id="p_sidesolid_east" data-tt-parent="p_sidesolid">east</div><br>
| |
| <div class="tt" data-tt-id="p_sidesolid_west" data-tt-parent="p_sidesolid">west</div><br>
| |
| <div class="tt" data-tt-id="p_sidesolid_up" data-tt-parent="p_sidesolid">up</div><br>
| |
| <div class="tt" data-tt-id="p_sidesolid_down" data-tt-parent="p_sidesolid">down</div><br>
| |
| <div class="tt" data-tt-id="p_sidesolid_north" data-tt-parent="p_sidesolid">north</div><br>
| |
| <div class="tt" data-tt-id="p_sidesolid_south" data-tt-parent="p_sidesolid">south</div>
| |
| </td>
| |
| <td></td>
| |
| <td></td>
| |
| <td></td>
| |
| </tr>
| |
| </table>
| |