Rework the overly weird vine growth algorithm
[MineClone/MineClone2.git] / GROUPS.md
blob688441d0ae37bf65580b4fbb8ef046efe8918b4a
1 ## Groups
2 This document explains all the groups used in this subgame.
4 ### Special groups
6 * `not_in_creative_inventory=1`: Item will not be shown in creative inventory
7 * `not_in_craft_guide=1`: Item will not be shown as result or fuel item in crafting guide (but still may be shown as ingredient)
9 ### Digging time groups
11 The basic digging time groups determine by which tools a node can be dug.
13 * `pickaxey`: Diggable by pickaxe. The rating is for the possible tool materials in which the node will make its useful drop:
14     * `pickaxey=1`: Wood, gold, stone, iron and diamond
15     * `pickaxey=2`: Gold, stone, iron and diamond
16     * `pickaxey=3`: Stone, iron and diamond
17     * `pickaxey=4`: Iron and diamond
18     * `pickaxey=5`: Diamond
19 * `axey`: Axe. Rating is same as for `pickaxey`
20 * `shovely`: Shovel. Rating is same as for `pickaxey`
21 * `swordy=1`: Diggable by sword (any material), and this node is *not* a cobweb
22 * `swordy_cobweb=1`: Diggable by sword (any material), and this node is a cobweb
23 * `shearsy=1`: Diggable by shears, and this node is *not* wool
24 * `shearsy=wool=1`: Diggable by shears, and this node is wool
25 * `handy=1`: Breakable by hand and this node gives it useful drop when dug by hand. All nodes which are breakable by pickaxe, axe, shovel, sword or shears are also automatically breakable by hand, but not neccess
26 * `creative_breakable=1`: Block is breakable by hand in creative mode. This group is implied if the node belongs to any other digging group
28 Please read <http://minecraft.gamepedia.com/Breaking> to learn how digging times work in Minecraft, as MineClone 2 is based on the same system.
30 ### Groups for interactions
32 * `crush_after_fall=1`: For falling nodes. These will crush whatever they hit after falling, not dropping as an item
33 * `dig_by_water=1`: Blocks with this group will drop when they are near flowing water
34 * `destroy_by_lava_flow=1`: Blocks with this group will be destroyed by flowing lava
35 * `dig_by_piston=1`: Blocks which will drop as an item when pushed by a piston. They also cannot be pulled by sticky pistons
36 * `cultivatable=2`: Block will be turned into Farmland by using a hoe on it
37 * `cultivatable=1`: Block will be turned into Dirt by using a hoe on it
38 * `flammable`: Block helps spreading fire and gets destroyed by nearby fire (rating doesn't matter)
39 * `spreading_dirt_type=1`: A dirt-type block with a cover (e.g. grass) which may spread to neighbor dirt blocks
40 * `dirtifies_below_solid=1`: This node turns into dirt immediately when a solid or dirtifier node is placed on top
41 * `dirtifier=1`: This node turns nodes the above group into dirt when placed above
42 * `non_mycelium_plant=1`: A plant which can't grow on mycelium. Placing it on mycelium fails and if mycelium spreads below it, it uproots
43 * `soil=1`: Saplings and other small plants can grow on it
44 * `soil_sapling=2`: Soil for saplings. Intended to be natural soil. All saplings will grow on this
45 * `soil_sapling=1`: Artificial soil (such as farmland) for saplings. Some saplings will not grow on this
46 * `soil_sugarcane=1`: Sugar canes will grow on this near water
47 * `soil_nether_wart=1`: Nether wart will grow on this
48 * `enderman_takable=1`: Block can be taken and placed by endermen
49 * `disable_suffocation=1`: Disables suffocation for full solid cubes (1)
50 * `destroys_items=1`: If an item happens to be *inside* this node, the item will be destroyed
51 * `no_eat_delay=1`: Only for foodstuffs. When eating this, all eating delays are ignored.
52 * `can_eat_when_full=1`: Only for foodstuffs. This item can be eaten when the user has a full hunger bar
53 * `attached_node_facedir=1`: Like `attached_node`, but for facedir nodes
54 * `cauldron`: Cauldron. 1: Empty. 2-4: Water height
56 #### Footnotes
58 1. Normally, all walkable blocks with the default 1×1×1 cube as a collision box (e.g. sand,
59    gravel, stone, but not fences) will damage the players while their head is inside. This
60    is called “suffocation”. Setting this group disables this behaviour
62 ### Groups (mostly) used for crafting recipes
64 * `sand=1`: Sand (any color)
65 * `sandstone=1`: (Yellow) sandstone and related nodes (chiseled and the like) (only full blocks)
66 * `redsandstone=1`: Red sandstone and related nodes (chiseled and the like) (only full blocks)
67 * `quartz_block=1`: Quartz Block and variants (chiseled, pillar, etc.) (only full blocks)
68 * `stonebrick=1`: Stone Bricks and related nodes (only full blocks)
69 * `shulker_box=1`: Block is a shulker box
70 * `tree=1`: Oak Wood, Birch Wood, etc. (tree trunks)
71 * `wood=1`: Oak Wood Planks, Birch Wood Planks, etc. (only full blocks)
72 * `wood_slab=1`: Slabs made out of a kind of wooden planks
73 * `wood_stairs=1`: Stairs made out of a kind of wooden planks
74 * `coal=1`: Coal of any kind (lumps only, not blocks)
75 * `wool=1`: Wool (only full blocks)
76 * `carpet=1:` (Wool) carpet
77 * `stick=1`: Stick
78 * `water_bucket=1`: Bucket containing a liquid of group “water”
80 ### Material groups
82 These groups correspond to the Minecraft materials. They classify the block into a type, indicating what the block is “made off”.
84 * `material_stone=1`: Stone
85 * `material_wood=1`: Wood
86 * `material_sand=1`: Sand
87 * `material_glass=1`: Glass
89 Currently, these groups are used for the note block.
90 Note that not all Minecraft materials are used so far. More Minecraft materials will lilely only be added when they are needed for a concrete use case.
92 ### Declarative groups
93 These groups are used mostly for informational purposes
95 * `solid=1`: Solid full-cube block (automatically assigned)
96 * `opaque=1`: Opaque block (automatically assigned)
97 * `not_solid=1`: Block is not solid (only assign this group for nodes which are automatically detected as “solid” in error
98 * `fire=1`: Fire
99 * `water=1`: Water
100 * `lava=1`: Lava
101 * `top_snow=X`: Top snow with X layers (1-8)
102 * `torch`: Torch or torch-like node
103     * `torch=1`: Torch on floor
104     * `torch=2`: Torch at wall
105 * `liquid`: Block is a liquid
106     * `liquid=1`: Unspecified type
107     * `liquid=2`: Water
108     * `liquid=3`: Lava
109 * `fence=1`: Fence
110 * `fence_gate=1`: Fence gate
111 * `fence_wood=1`: Wooden fence
112 * `fence_nether_brick=1`: Nether brick fence
113 * `flower_pot`: Flower pot
114    * `flower_pot=1`: Empty flower pot
115    * `flower_pot=2`: Flower pot with a plant or flower
116 * `flower=1`: Flower
117 * `place_flowerlike=1`: Node has placement rules like that of a flower
118 * `place_flowerlike=2`: Node has placement rules like tall grass
119 * `cake`: Cake (rating = slices left)
120 * `book=1`: Book
121 * `pane=1`: Node is a “pane”-like node glass pane or iron bars
122 * `bed=1`: Bed
123 * `door=1`: Door
124 * `trapdoor=1`: Closed trapdoor
125 * `trapdoor=2`: Open trapdoor
126 * `glass=1`: Glass (full cubes only)
127 * `rail=1`: Rail
128 * `music_record`: Music Disc (rating is track ID)
129 * `tnt=1`: Block is TNT
130 * `boat=1`: Boat
131 * `minecart=1`: Minecart
132 * `food`: Item is a comestible item which can be consumed (healthy or unhealthy)
133     * `food=2`: Food
134     * `food=3`: Drink (including soups)
135     * `food=1`: Other/unsure
136 * `eatable`: Item can be *directly* eaten by wielding + right click (`on_use=item_eat`). Rating is the satiation gain
137 * `cocoa`: Node is a cocoa pod (rating is growth stage, ranging from 1 to 3)
138 * `ammo=1`: Item is used as ammo for a weapon
139 * `ammo_bow=1`: Item is used as ammo for bows
140 * `non_combat_armor=1`: Item can be equipped as armor, but is not made for combat (e.g. zombie head, pumpkin)
141 * `container`: Node is a container which physically stores items within and has at least 1 inventory
142    * `container=2`: Has one inventory with list name `"main"`. Items can be placed and taken freely
143    * `container=3`: Same as `container=2`, but shulker boxes can not be inserted
144    * `container=4`: Furnace-like, has lists `"src"`, `"fuel"` and `"dst"`.
145                     It is expected that this also reacts on `on_timer`;
146                     the node timer must be started from other mods when they add into `"src"` or `"fuel"`
147    * `container=5`: Left part of a 2-part horizontal connected container. Both parts have a `"main"` inventory
148                     list. Both inventories are considered to belong together. This is used for large chests.
149    * `container=6`: Same as above, but for the right part.
150    * `container=1`: Other/unspecified container type
151 * `spawn_egg=1`: Spawn egg
153 * `pressure_plate=1`: Pressure plate (off)
154 * `pressure_plate=2`: Wooden pressure (on)
155 * `button=1`: Button (off)
156 * `button=2`: Button (on)
157 * `redstone_torch=1`: Redstone Torch (lit)
158 * `redstone_torch=2`: Redstone Torch (unlit)
160 * `plant=1`: Plant or part of a plant
161 * `double_plant`: Part of a double-sized plant. 1 = lower part, 2 = upper part
163 * `weapon=1`: Item is primarily (!) a weapon
164 * `tool=1`: Item is primarily (!) a tool
165 * `craftitem=1`: Item is primarily (!) used for crafting
166 * `brewitem=1`: Item is primarily (!) used in brewing
167 * `transport=1`: Item is used for transportation
168 * `building_block=1`: Block is a building block
169 * `deco_block=1`: Block is a decorational block
171 ## Fake item groups
172 These groups put similar items together which should all be treated by the gameplay or the GUI as a single item.
173 You should not add custom items to these groups for no good reason, this is likely to cause a ton of conflicts.
175 * `clock`: Clock (rating indicates the “frame”)
176 * `compass`: Compass (rating indicates the “frame”)
178 This has the following implication: If you want to use a compass or clock in a crafting recipe, you *must*
179 use `group:compass` or `group:clock`, respectively.