Confirmedusers, Bureaucrats, editor, Administrators
1,779
edits
Lazy Warlock (talk | contribs) |
No edit summary |
||
(31 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> | |||
<translate> | |||
__NOTOC__ | __NOTOC__ | ||
== Overview == | == Overview == <!--T:1--> | ||
This table was once complete, but it is now missing some new properties. In the code, these come from the fields listed with the "[JsonProperty]" attribute in [https://github.com/anegostudios/vsessentialsmod/blob/master/Loading/BlockType.cs BlockType.cs], plus the fields from the parent classes [https://github.com/anegostudios/vsessentialsmod/blob/master/Loading/CollectibleType.cs CollectibleType.cs] and [https://github.com/anegostudios/vsessentialsmod/blob/master/Loading/RegistryObjectType.cs RegistryObjectType.cs]. The json parser is case insensitive, which is how the property names can have different capitalization in the code and in the table below. | |||
<!--T:2--> | |||
Definitions: | |||
<!--T:3--> | |||
'''Key''' - The name of the property, which should be used as it appears in the column. | |||
<!--T:4--> | |||
'''Value''' - A component of a property. | |||
<!--T:5--> | |||
'''Array''' - A list of objects or values that can be referenced in code. | |||
<!--T:6--> | |||
'''String''' - A sequence of characters that can be used as an identifier in code. Essentially a word that can be referenced and assigned to something. Generally does not use numbers. | |||
<!--T:7--> | |||
'''Boolean''' - A true or false value, essentially "on" or "off". | |||
<!--T:8--> | |||
'''Int''' - An integer, or whole number. Cannot use decimal values. | |||
<!--T:9--> | |||
'''Float''' - A decimal, specifically one that does not exceed more than 1 significant digit | |||
<!--T:10--> | |||
'''Object''' - This is a bit more complex, but essentially objects are the items, blocks and entities that can be interacted with. In most cases, when an "object" type appears it means you must use a specific item variant code, which follows the "itemcode-variant_1-variant_2-variant_n" style of naming. | |||
</translate> | |||
<table id="treeviewtable" class="table table-bordered tt-table" style='table-layout: fixed'> | <table id="treeviewtable" class="table table-bordered tt-table" style='table-layout: fixed'> | ||
<tr> | <tr> | ||
Line 8: | Line 38: | ||
<th width='120' align='left'>Type</th> | <th width='120' align='left'>Type</th> | ||
<th width='120' align='left'>Default</th> | <th width='120' align='left'>Default</th> | ||
<th width=' | <th width='400' align='left'>Usage</th> | ||
<th align='left'>Reference</th> | <th align='left'>Reference</th> | ||
</tr> | </tr> | ||
Line 50: | Line 80: | ||
<td>array of objects</td> | <td>array of objects</td> | ||
<td>-</td> | <td>-</td> | ||
<td>Allows you define multiple variants of the same | <td>Allows you define multiple [[Modding:Registry_Object_JSON_Parsing|variants]] of the same block.</td> | ||
<td>armor, ore-graded, plank, </td> | <td>armor, ore-graded, plank, </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_byType" data-tt-parent="root">(any) bytype</div></td> | ||
<td | <td>key: string; value: object</td> | ||
<td>-</td> | |||
<td>Allows different property values to be [[Modding:Registry_Object_JSON_Parsing#ByType_properties|specified]] based on the variant code.</td> | |||
</tr> | |||
< | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_allowedVariants" data-tt-parent="root">allowedVariants</div></td> | |||
<td>array of strings</td> | |||
<td>-</td> | |||
</ | <td>Used to [[Modding:Registry_Object_JSON_Parsing#Filtering_out_variants|trim]] unnecessary blocks generated by combined variants. </td> | ||
<td>crystalizedore-graded, ore-graded, ore-ungraded</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_skipVariants" data-tt-parent="root">skipVariants</div></td> | |||
<td>array of strings</td> | |||
<td>-</td> | |||
<td>Similar to allowedVariants, but instead [[Modding:Registry_Object_JSON_Parsing#Filtering_out_variants|skips]] the creation of listed variants rather than assigning which are allowed. </td> | |||
< | <td>armor</td> | ||
</tr> | |||
<tr> | |||
<td colspan="5" 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> | ||
<td>anvil, firepit, quern, skep</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="4"> | |||
It can be used to open guis or adding other extra functionality to the block. A complete tutorial of how to add your own class to the game can be found [[Advanced Blocks|here]]. An ongoing list of block classes used in JSONS can also be found [[Block Classes|here]]. | |||
</ | </td> | ||
< | |||
< | |||
< | |||
</ | |||
< | |||
</ | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_entityclass" data-tt-parent="root">entityclass</div></td> | ||
<td> | <td>string</td> | ||
<td>-</td> | <td>-</td> | ||
<td> | <td>The block entity class is able to tick and to store extra data. Allows for much more advanced properties.</td> | ||
<td>anvil, firepit, quern, skep</td> | |||
</tr> | </tr> | ||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_behaviors" data-tt-parent="root">behaviors</div></td> | ||
<td | <td>array of object</td> | ||
<td>-</td> | |||
<td>A behavior adds custom abilities such as falling block.</td> | |||
<td>gravel, lantern, log, rock, torch</td> | |||
</ | |||
< | |||
</ | |||
< | |||
</td> | |||
</tr> | </tr> | ||
<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="4"> | |||
Behaviors are useful traits as many can be assigned to a single block. If you want to create your own custom behavior you can read [[Adding Block Behavior]]. | |||
To see all of the current behaviors in the game see [[Json:block:behaviors|All Block Behaviors]] | |||
</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_ebehaviors" data-tt-parent="root">entityBehaviors</div></td> | |||
<td>array of object</td> | |||
<td>-</td> | |||
<td>An entity behavior adds custom abilities to an entity assigned to a block, such as the mechanical power properties of the windmill.</td> | |||
<td>angledgears, axle, brake, clutch, helvehammerbase, toggle, transmission, windmillrotor</td> | |||
<td | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_ebehaviors_info" data-tt-parent="p_ebehaviors" data-invisible="true"></div></td> | ||
<td> | <td colspan="4"> | ||
Block entity behaviors are expanded capabilities that regular behaviors cannot accomplish. At the moment they are only used for Mechanical Power blocks, but if you're looking to make your own you can look through the existing files at the Vintage Story Github [https://github.com/anegostudios/vssurvivalmod/tree/master/Systems/MechanicalPower/BlockEntityBehavior here ]. | |||
To see all of the current block entity behaviors in the game see [[Modding:Block_Entity_Behaviors|All Block Entity Behaviors]]. | |||
</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_entityclass_info" data-tt-parent="p_entityclass" data-invisible="true"></div></td> | ||
<td colspan="4"> | <td colspan="4"> | ||
A chest for example uses the BlockEntity to store the inventory. A tutorial of creating your own entityclass can be found [[Block Entity|here]]. You can also find every existing block entity and their relevant github links [[Block Entities|here]]. | |||
</td> | </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_blockmaterial" data-tt-parent="root">blockmaterial</div></td> | ||
<td>string</td> | <td>string</td> | ||
<td>-</td> | <td>-</td> | ||
<td>A behavior adds custom abilities such as falling block.</td> | <td>A behavior adds custom abilities such as falling block.</td> | ||
<td>gravel | <td>gravel</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_blockmaterial_info" data-tt-parent="p_blockmaterial" data-invisible="true"></div></td> | ||
<td colspan="4"> | <td colspan="4"> | ||
Materials are hardcoded and currently only used to determine mining speed with a specific tool. The following materials are available: | |||
''Brick, Ceramic, Cloth, Fire, Glass, Gravel, Ice, Lava, Leaves, Liquid, Mantle, Metal, Other, Plant, Sand, Snow, Soil, Stone, Wood'' | |||
</td> | </td> | ||
</tr> | </tr> | ||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_matterstate" data-tt-parent="root">matterstate</div></td> | ||
<td>array of object</td> | <td>array of object</td> | ||
<td> | <td>"block"</td> | ||
<td> | <td>Determines whether the block is in a '''''solid''''', a '''''liquid''''', a '''''gas''''' or a '''''plasma''''' state.</td> | ||
<td> | <td> water </td> | ||
</tr> | </tr> | ||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_blockmaterial_info" data-tt-parent="p_blockmaterial" data-invisible="true"></div></td> | |||
<td colspan="4"> | <td colspan="4"> | ||
Used for special collision behavior and rendering. Currently used for lava and water, which are liquids (All other blocks default to solid). | |||
Gas and plasma are not yet implemented. | |||
</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> | |||
<td>leaves, meteorite, sand</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_resistance_info" data-tt-parent="p_resistance" data-invisible="true"></div></td> | ||
<td colspan="4"> | <td colspan="4"> | ||
Resistance values range from very low with leaves (0.5) to the average of stone (6) to the very high resistance value of meteoric iron deposits (60). | |||
</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_requiredminingtier" data-tt-parent="root">requiredminingtier</div></td> | ||
<td> | <td>integer</td> | ||
<td> | <td>0</td> | ||
<td> | <td>Minimum required mining tier to get the drop out of the block.</td> | ||
<td> | <td>ore-graded, rock</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_requiredminingtier_info" data-tt-parent="p_requiredminingtier" data-invisible="true"></div></td> | ||
<td colspan="4"> | <td colspan="4"> | ||
The following are examples of the mining tiers required for certian ores in Vintage Story: | |||
<table class="wikitable"> | |||
<tr style="background-color: rgba(0,0,0,0.2);"> | |||
<th style="background-color: rgba(0,0,0,0.2);">Tier</th> | |||
<th style="background-color: rgba(0,0,0,0.2);">Ores</th> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td | <td>'''1'''</td> | ||
<td>'''''galena''''' and '''''rocksalt_sylvite'''''</td> | |||
</tr> | </tr> | ||
<tr> | |||
<td>'''2'''</td> | |||
<td>'''''lignite''''', '''''cassiterite''''', '''''sphalerite''''', '''''rocksalt''''', '''''sulfur''''' and '''''nativecopper'''''</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td | <td>'''3'''</td> | ||
<td>'''''bituminouscoal''''', '''''quartz_nativegold''''', '''''quartz_nativesilver''''', '''''lapislazuli''''', '''''bismuthinite''''', '''''quartz''''', '''''magnetite''''' and '''''limonite'''''</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td | <td>'''4'''</td> | ||
<td>'''''diamond''''' and '''''emerald'''''</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td | <td>'''5'''</td> | ||
<td>'''''chromite''''', '''''platinum''''' and '''''ilmenite'''''</td> | |||
</tr> | </tr> | ||
</table> | |||
</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td> | <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> | |||
<td>ladder</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_rainpermeable" data-tt-parent="root">rainpermeable</div></td> | |||
<td scope="row"><div class="tt" data-tt-id="p_rainpermeable" data-tt-parent="root">rainpermeable</div></td> | |||
<td>boolean</td> | <td>boolean</td> | ||
<td>false</td> | <td>false</td> | ||
Line 847: | Line 725: | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_cprops_gstages" data-tt-parent="p_cropprops"> | <td scope="row"><div class="tt" data-tt-id="p_cprops_gstages" data-tt-parent="p_cropprops">growthStages</div></td> | ||
<td>number</td> | <td>number</td> | ||
<td>-</td> | <td>-</td> | ||
Line 940: | Line 818: | ||
}, | }, | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</td> | </td> | ||
</tr> | </tr> | ||
Line 950: | Line 826: | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_sounds_ambient" data-tt-parent="p_sounds">ambientBlockCount</div></td> | <td scope="row"><div class="tt" data-tt-id="p_sounds_ambient" data-tt-parent="p_sounds">ambientBlockCount</div></td> | ||
<td colspan="4">The | <td colspan="4">The amount of blocks required to be in the vicinity of the player to play the sound at full volume.</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
Line 983: | Line 859: | ||
</td> | </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_cprops_gstages" data-tt-parent="root">liquidCode</div></td> | |||
<td>string</td> | |||
<td>-</td> | |||
<td>An identifier for other liquids to utilize during collisions.</td> | |||
<td>lava, water</td> | |||
</tr> | |||
<tr> | |||
<td colspan="5" style='font-size: 14pt; border-bottom: 2pt solid black; padding-left: 100px;'><b>Common</b></td> | <td colspan="5" style='font-size: 14pt; border-bottom: 2pt solid black; padding-left: 100px;'><b>Common</b></td> | ||
</tr> | </tr> | ||
Line 1,017: | Line 900: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</td> | </td> | ||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_creativestacks" data-tt-parent="root">CreativeInventoryStacks</div></td> | |||
<td>-</td> | |||
<td>-</td> | |||
<td>If you want to add itemstacks with custom attributes to the creative inventory, add them to this list.</td> | |||
<td>-</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_notincreative" data-tt-parent="root">notCreateveInventoryStacks</div></td> | |||
<td>-</td> | |||
<td>-</td> | |||
<td>Prevents the variant from being included in the creative inventory.</td> | |||
<td>tapestry</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
Line 1,205: | Line 1,102: | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td | <td scope="row"><div class="tt" data-tt-id="p_transprops" data-tt-parent="root">transitionableProps</div></td> | ||
<td>-</td> | |||
<td>-</td> | |||
<td>Can be used to transition an item to another item or block.</td> | |||
<td>redmeat, hide</td> | |||
</tr> | </tr> | ||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_tprops_type" data-tt-parent="p_transprops">type</div></td> | ||
<td>-</td> | |||
<td>-</td> | <td>-</td> | ||
<td>The type of transition method to utilize.</td> | |||
<td>redmeat, hide</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_tprops_type_cure" data-tt-parent="p_tprops_type">Cure</div></td> | |||
<td>string</td> | |||
<td>-</td> | <td>-</td> | ||
<td> | <td>Will "cure" an item by showing percent progress until cured.</td> | ||
<td> | <td>hide</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_attributes_info" data-tt-parent="p_attributes_list" data-invisible="true"></div></td> | <td scope="row"><div class="tt" data-tt-id="p_tprops_type_perish" data-tt-parent="p_tprops_type">Perish</div></td> | ||
<td colspan="4"> | <td>string</td> | ||
Attributes constitute a large number of custom properties that an block can have, many of which are specific to unique blocks that rely on a C# class for additional functionality. If you wish to add your own JSON attributes to an item generally you must also have a class to utilize them. | <td>-</td> | ||
<td>Will gradually reduce the saturation of a food item once it's fresh period has passed, eventually converting into the product item (usually rot).</td> | |||
Values placed here are final and cannot be modified. For example, if you made a new type of block, say one that damages people when they get close you could define them here: | <td>hide</td> | ||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_tprops_fresh" data-tt-parent="p_transprops">freshHours</div></td> | |||
<td>number (hours)</td> | |||
<td>-</td> | |||
<td>An optional "fresh" period that must pass before the transition time starts. With food, this is the period of time that saturation is not affected.</td> | |||
<td>bread, vegetable, redmeat</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_tprops_ttime" data-tt-parent="p_transprops">transitionHours</div></td> | |||
<td>number (hours)</td> | |||
<td>-</td> | |||
<td>Number of hours before the item transitions into a different item.</td> | |||
<td>redmeat, hide</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_tprops_stack" data-tt-parent="p_transprops">transitionedStack</div></td> | |||
<td>object (item or block)</td> | |||
<td>-</td> | |||
<td>The item or block that the item will transition into.</td> | |||
<td>redmeat, hide</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_tprops_ratio" data-tt-parent="p_transprops">transitionRatio</div></td> | |||
<td>number</td> | |||
<td>-</td> | |||
<td>The quantity of the item that will be consumed after the transition period.</td> | |||
<td>redmeat, hide</td> | |||
</tr> | |||
<tr> | |||
<td colspan="5" style='font-size: 14pt; border-bottom: 2pt solid black; padding-left: 100px;'><b>Attributes</b></td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_attributes_list" data-tt-parent="root">attributes</div></td> | |||
<td>-</td> | |||
<td>-</td> | |||
<td>Custom Attributes associated with this item.</td> | |||
<td>barrel, chest, pot, skep</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_attributes_info" data-tt-parent="p_attributes_list" data-invisible="true"></div></td> | |||
<td colspan="4"> | |||
Attributes constitute a large number of custom properties that an block can have, many of which are specific to unique blocks that rely on a C# class for additional functionality. If you wish to add your own JSON attributes to an item generally you must also have a class to utilize them. | |||
Values placed here are final and cannot be modified. For example, if you made a new type of block, say one that damages people when they get close you could define them here: | |||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
Line 1,807: | Line 1,760: | ||
Attributes that define additional rendering information. | Attributes that define additional rendering information. | ||
</tr> | </tr> | ||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_alist_tintinventory" data-tt-parent="p_attributes_render">ignoreTintInventory</div></td> | |||
<td>boolean</td> | |||
<td>-</td> | |||
<td>If true, does not apply texture tints to the block model as an inventory item.</td> | |||
<td>soil</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_alist_mechpower" data-tt-parent="p_attributes_render">mechancialPower</div></td> | |||
<td>boolean</td> | |||
<td>-</td> | |||
<td>A special category of values reserved for mechanical power. Currently only "renderer" is used by the angled gears block to determine which combination of gears to render.</td> | |||
<td>angledgears</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_alist_pushvec" data-tt-parent="p_attributes_render">pushVector</div></td> | |||
<td>vector coordinates</td> | |||
<td>-</td> | |||
<td>Allows the vector shape of a block to be altered for slopes.</td> | |||
<td>lava, water</td> | |||
</tr> | |||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_attributes_misc" data-tt-parent="root">(Misc Attributes)</div></td> | <td scope="row"><div class="tt" data-tt-id="p_attributes_misc" data-tt-parent="root">(Misc Attributes)</div></td> | ||
Line 1,907: | Line 1,881: | ||
<td>Can be used to prevent a solid block from connecting to fences.</td> | <td>Can be used to prevent a solid block from connecting to fences.</td> | ||
<td>-</td> | <td>-</td> | ||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_alist_grinding" data-tt-parent="p_attributes_misc">grindingProps</div></td> | |||
<td>-</td> | |||
<td>-</td> | |||
<td>Gives the block a grinding recipe in a quern.</td> | |||
<td>ore-ungraded</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_gprops_type" data-tt-parent="p_alist_grinding">type</div></td> | |||
<td>object</td> | |||
<td>-</td> | |||
<td>Type of stack produced, either a <code>block</code> or <code>item</code>.</td> | |||
<td>-</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_gprops_code" data-tt-parent="p_alist_grinding">code</div></td> | |||
<td>string</td> | |||
<td>-</td> | |||
<td>Name of the item or block produced by the recipe.''</td> | |||
<td>ore-ungraded</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_gprops_stacksize" data-tt-parent="p_alist_grinding">stacksize</div></td> | |||
<td>number</td> | |||
<td>-</td> | |||
<td>The amount of the output produced after grinding.''</td> | |||
<td>ore-ungraded</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
Line 2,058: | Line 2,060: | ||
<td colspan="5" style='font-size: 14pt; border-bottom: 2pt solid black; padding-left: 100px;'><b>Rendering</b></td> | <td colspan="5" style='font-size: 14pt; border-bottom: 2pt solid black; padding-left: 100px;'><b>Rendering</b></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_textures" data-tt-parent="root">textures</div></td> | <td scope="row"><div class="tt" data-tt-id="p_textures" data-tt-parent="root">textures</div></td> | ||
Line 2,063: | Line 2,067: | ||
<td></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. Within a mod, to refer to a texture from the base game, prefix the path with "game:" (i.e. base: "game:path/to/texture") </td> | <td>The texture definitions for the block as seen in the world, when dropped on the ground or held in the hand. Within a mod, to refer to a texture from the base game, prefix the path with "game:" (i.e. base: "game:path/to/texture") </td> | ||
<td>all blocks</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row | <td scope="row"><div class="tt" data-tt-id="p_textures_base" data-tt-parent="p_textures" data-invisible="true"></div></td> | ||
<td colspan="4">{{:json:block:texture}}</td> | <td colspan="4">{{:json:block:texture}}</td> | ||
</tr> | </tr> | ||
Line 2,073: | Line 2,078: | ||
<td></td> | <td></td> | ||
<td>The texture definitions for the block as seen in the player inventory. Overrides the textures.</td> | <td>The texture definitions for the block as seen in the player inventory. Overrides the textures.</td> | ||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
Line 2,079: | Line 2,085: | ||
<td>-</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> | <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> | ||
<td>Barrel, firepit</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
Line 2,085: | Line 2,092: | ||
<td></td> | <td></td> | ||
<td>The path to the shape json file, the base dir is ''assets/shapes/''.</td> | <td>The path to the shape json file, the base dir is ''assets/shapes/''.</td> | ||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
Line 2,091: | Line 2,099: | ||
<td>0</td> | <td>0</td> | ||
<td>Only 90 degree rotations are possible.</td> | <td>Only 90 degree rotations are possible.</td> | ||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
Line 2,097: | Line 2,106: | ||
<td>0</td> | <td>0</td> | ||
<td>Only 90 degree rotations are possible.</td> | <td>Only 90 degree rotations are possible.</td> | ||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
Line 2,103: | Line 2,113: | ||
<td>0</td> | <td>0</td> | ||
<td>Only 90 degree rotations are possible.</td> | <td>Only 90 degree rotations are possible.</td> | ||
<td>-</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_offsetX" data-tt-parent="p_shape">offsetx</div></td> | |||
<td>float</td> | |||
<td>0</td> | |||
<td>Offsets the shape in the X axis.</td> | |||
<td>-</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_offsetY" data-tt-parent="p_shape">offsety</div></td> | |||
<td>float</td> | |||
<td>0</td> | |||
<td>Offsets the shape in the Y axis.</td> | |||
<td>-</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_offsetZ" data-tt-parent="p_shape">offsetz</div></td> | |||
<td>float</td> | |||
<td>0</td> | |||
<td>Offsets the shape in the Z axis.</td> | |||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
Line 2,109: | Line 2,141: | ||
<td>-</td> | <td>-</td> | ||
<td>For the json drawtype, the shape definition of the block as shown in the players inventory.</td> | <td>For the json drawtype, the shape definition of the block as shown in the players inventory.</td> | ||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
Line 2,114: | Line 2,147: | ||
<td>string</td> | <td>string</td> | ||
<td>"cube"</td> | <td>"cube"</td> | ||
<td>Determines | <td>Determines which [[Modding:Block_Tessellator|block tessellator]] processes the block. Select JSON for being able to use custom JSON Models. Use Cube for basic cubes.</td> | ||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_renderpass" data-tt-parent="root">renderpass</div></td> | ||
<td></td> | <td>string</td> | ||
<td> | <td>"opaque"</td> | ||
<td></td> | <td>Determines which [[Modding:Render_Stages#Chunk_render_passes|pass]] the block is drawn in.</td> | ||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_doNotRenderAtLod2" data-tt-parent="root">doNotRenderAtLod2</div></td> | ||
<td></td> | <td>boolean</td> | ||
<td>1</td> | <td>false</td> | ||
<td></td> | <td>When false, render the block at [[Modding:Level_of_detail|level of detail]] 1, which is visible at all distances within the frustum. When true, only render the block at short and medium distances. This property is only respected by some [[Modding:Block_Tessellator|block tessellators]].</td> | ||
<td>torch</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_ambientocclusion" data-tt-parent="root">ambientocclusion</div></td> | ||
<td></td> | <td>boolean</td> | ||
<td> | <td>true</td> | ||
<td></td> | <td>If ambient occlusion will be applied to the block.</td> | ||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_tintindex" data-tt-parent="root">tintindex</div></td> | ||
<td></td> | <td>integer</td> | ||
<td> | <td>0</td> | ||
<td></td> | <td>'''''0''''' for no tint, '''''1''''' for plant climate tint, '''''2''''' for water climate tint.</td> | ||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_renderflags" data-tt-parent="root">renderflags</div></td> | ||
<td></td> | <td>0 ... 255</td> | ||
<td> | <td>0</td> | ||
<td></td> | <td>8 bits that are sent to the graphics card for each vertex of the blocks shape. The lower 3 bits are currently used for altering the vertexes z-depth to fix a bunch of z-fighting issues.</td> | ||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_facecullmode" data-tt-parent="root">facecullmode</div></td> | ||
<td></td> | <td>string</td> | ||
<td> | <td>"default"</td> | ||
<td></td> | <td>Determines which sides of the blocks should be rendered.</td> | ||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_facecullmode_default" data-tt-parent="p_facecullmode">default</div></td> | ||
<td></td> | <td></td> | ||
<td>0</td> | |||
<td>Culls faces if they are opaque faces adjacent to opaque faces.</td> | |||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_facecullmode_default" data-tt-parent="p_facecullmode">nevercull</div></td> | ||
<td></td> | <td></td> | ||
<td> | <td>1</td> | ||
<td> | <td>Never culls any faces.</td> | ||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_facecullmode_default" data-tt-parent="p_facecullmode">merge</div></td> | ||
<td></td> | <td></td> | ||
<td> | <td>2</td> | ||
<td> | <td>Culls all faces that are adjacent to opaque faces and faces adjacent to blocks of the same id (Example usage: Ice blocks).</td> | ||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_facecullmode_default" data-tt-parent="p_facecullmode">collapse</div></td> | ||
<td></td> | <td></td> | ||
<td> | <td>3</td> | ||
<td> | <td>Culls all faces that are adjacent to opaque faces and the bottom, east or south faces adjacent to blocks of the same id. This causes to still leave one single face in between instead of 2, eliminating any z-fighting.</td> | ||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_facecullmode_default" data-tt-parent="p_facecullmode">mergematerial</div></td> | ||
<td></td> | <td></td> | ||
<td>4</td> | |||
<td>Same as Merge but checks for equal material (Example usage: Plain glass and all colored glass blocks).</td> | |||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_facecullmode_default" data-tt-parent="p_facecullmode">collapsematerial</div></td> | ||
<td></td> | <td></td> | ||
<td>5</td> | |||
<td>Same as Collapse but checks for equal material (Example usage: All leaves blocks).</td> | |||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_facecullmode_default" data-tt-parent="p_facecullmode">liquid</div></td> | ||
<td></td> | <td></td> | ||
<td> | <td>6</td> | ||
<td></td> | <td>Same as CollapseMaterial but also culls faces towards opaque blocks.</td> | ||
<td>-</td> | |||
</tr> | |||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_sideopaque" data-tt-parent="root">sideopaque</div></td> | ||
<td></td> | <td>key: string, value: boolean</td> | ||
<td> | <td>-</td> | ||
<td></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> | ||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_sideopauqe_info" data-tt-parent="p_sideopaque" data-invisible="true"></div></td> | ||
<td | <td colspan="4"> | ||
Sides include: ''all; horizontals, verticals; east, west, up, down, north, south''. | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_sideao" data-tt-parent="root">sideao</div></td> | ||
<td></td> | <td>key: string, value: boolean</td> | ||
<td> | <td>-</td> | ||
<td> | <td>If AmbientOcclusion will be applied for each side.</td> | ||
<td>-</td> | |||
</tr> | </tr> | ||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id=" | <td scope="row"><div class="tt" data-tt-id="p_ao_info" data-tt-parent="p_sideao" data-invisible="true"></div></td> | ||
<td colspan="4"> | |||
Sides include: ''all; horizontals, verticals; east, west, up, down, north, south''. | |||
<td | |||
</tr> | </tr> | ||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_sideemitao" data-tt-parent="root">sideEmitAo</div></td> | |||
<td scope="row"><div class="tt" data-tt-id=" | |||
<td>key: string, value: boolean</td> | <td>key: string, value: boolean</td> | ||
<td>-</td> | <td>-</td> | ||
<td> | <td>Defines which of the 6 block neighbours should receive AO if this block is in front of them.</td> | ||
<td>-</td> | <td>-</td> | ||
</tr> | </tr> | ||
<tr> | |||
<td scope="row"> | <td scope="row"><div class="tt" data-tt-id="p_sideemitao_info" data-tt-parent="p_sideemitao" data-invisible="true"></div></td> | ||
<td colspan="4"> | |||
Sides include: ''all; horizontals, verticals; east, west, up, down, north, south''. | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
Line 2,360: | Line 2,281: | ||
<td>key: string, value: boolean</td> | <td>key: string, value: boolean</td> | ||
<td>-</td> | <td>-</td> | ||
<td> | <td>Determines if given block side is solid. If true, other blocks like torches can be [[Modding:Block_Attachment|attached]] to it.</td> | ||
<td>all stairs</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"> | <td scope="row"><div class="tt" data-tt-id="p_sidesolid_info" data-tt-parent="p_sidesolid" data-invisible="true"></div></td> | ||
<td colspan="4"> | |||
Sides include: ''all; horizontals, verticals; east, west, up, down, north, south''. | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
Line 2,386: | Line 2,297: | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_randomrotations" data-tt-parent="root"> | <td scope="row"><div class="tt" data-tt-id="p_randomrotations" data-tt-parent="root">randomizeRotations</div></td> | ||
<td>boolean</td> | <td>boolean</td> | ||
<td>false</td> | <td>false</td> | ||
<td>If true then the block will be randomly rotated when placed.</td> | <td>If true then the block will be randomly rotated when placed. Note: Many random rotated blocks in one chunk will slow down block placement updates. You can increase efficieny by defining alternate shapes with random rotations instead.</td> | ||
<td>flower</td> | <td>flower</td> | ||
</tr> | </tr> |