Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
minetest_game
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Illuna-Minetest
minetest_game
Commits
68f5740d
Commit
68f5740d
authored
9 years ago
by
red-001
Committed by
paramat
9 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Fix markdown formating in `game_api.txt`.
parent
6c6cc215
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
game_api.txt
+286
-259
286 additions, 259 deletions
game_api.txt
with
286 additions
and
259 deletions
game_api.txt
+
286
−
259
View file @
68f5740d
...
@@ -4,18 +4,21 @@ GitHub Repo: https://github.com/minetest/minetest_game
...
@@ -4,18 +4,21 @@ GitHub Repo: https://github.com/minetest/minetest_game
Introduction
Introduction
------------
------------
The Minetest Game subgame offers multiple new possibilities in addition to the Minetest engine's built-in API,
The Minetest Game subgame offers multiple new possibilities in addition to the Minetest engine's built-in API,
allowing you to add new plants to farming mod, buckets for new liquids, new stairs and custom panes.
allowing you to add new plants to farming mod, buckets for new liquids, new stairs and custom panes.
For information on the Minetest API, visit https://github.com/minetest/minetest/blob/master/doc/lua_api.txt
For information on the Minetest API, visit https://github.com/minetest/minetest/blob/master/doc/lua_api.txt
Please note:
Please note:
[XYZ] refers to a section the Minetest API
[#ABC
] refers to a section
in this document
* [XYZ
] refers to a section
the Minetest API
^ Explanation for line above
* [#ABC] refers to a section in this document
Bucket API
Bucket API
----------
----------
The bucket API allows registering new types of buckets for non-default liquids.
The bucket API allows registering new types of buckets for non-default liquids.
bucket.register_liquid(
bucket.register_liquid(
"default:lava_source", -- name of the source node
"default:lava_source", -- name of the source node
"default:lava_flowing", -- name of the flowing node
"default:lava_flowing", -- name of the flowing node
...
@@ -27,59 +30,61 @@ The bucket API allows registering new types of buckets for non-default liquids.
...
@@ -27,59 +30,61 @@ The bucket API allows registering new types of buckets for non-default liquids.
Beds API
Beds API
--------
--------
beds.register_bed(
beds.register_bed(
"beds:bed",
-- Bed name
"beds:bed", -- Bed name
def
:
See [#Bed definition]
-- Bed definition
def
--
See [#Bed definition]
)
)
beds.read_spawns() -- returns a table containing players respawn positions
* `beds.read_spawns() ` Returns a table containing players respawn positions
beds.kick_players() -- forces all players to leave bed
* `beds.kick_players()` Forces all players to leave bed
beds.skip_night() -- sets world time to morning and saves respawn position of all players currently sleeping
* `beds.skip_night()` Sets world time to morning and saves respawn position of all players currently sleeping
#Bed definition
###Bed definition
---------------
{
{
description = "Simple Bed",
description = "Simple Bed",
inventory_image = "beds_bed.png",
inventory_image = "beds_bed.png",
wield_image = "beds_bed.png",
wield_image = "beds_bed.png",
tiles = {
tiles = {
bottom = {[Tile definition],
bottom = {'Tile definition'}, -- the tiles of the bottom part of the bed.
^ the tiles of the bottom part of the bed
top = {Tile definition} -- the tiles of the bottom part of the bed.
},
},
top = {[Tile definition],
nodebox = {
^ the tiles of the bottom part of the bed
bottom = 'regular nodebox', -- bottom part of bed (see [Node boxes])
}
top = 'regular nodebox', -- top part of bed (see [Node boxes])
},
},
nodebox = {
selectionbox = 'regular nodebox', -- for both nodeboxes (see [Node boxes])
bottom = regular nodebox, see [Node boxes], -- bottm part of bed
recipe = { -- Craft recipe
top = regular nodebox, see [Node boxes], -- top part of bed
{"group:wool", "group:wool", "group:wool"},
},
{"group:wood", "group:wood", "group:wood"}
selectionbox = regular nodebox, see [Node boxes], -- for both nodeboxes
}
recipe = { -- Craft recipe
{"group:wool", "group:wool", "group:wool"},
{"group:wood", "group:wood", "group:wood"}
}
}
}
Doors API
Doors API
---------
---------
The doors mod allows modders to register custom doors and trapdoors.
The doors mod allows modders to register custom doors and trapdoors.
doors.register_door(name, def)
`doors.register_door(name, def)`
^ name: "Door name"
^ def: See [#Door definition]
-> Registers new door
doors.register_trapdoor(name, def)
* Registers new door
^ name: "mod_door"
* `name` Name for door
^ def: See [#Trapdoor definition]
* `def` See [#Door definition]
-> Registers new trapdoor
doors.get(pos)
`doors.register_trapdoor(name, def)`
^ pos = { x = .., y = .., z = ..}
-> Returns an ObjecRef to a door, or nil if the pos did not contain a door
Methods:
* Registers new trapdoor
* `name` Name for trapdoor
* `def` See [#Trapdoor definition]
`doors.get(pos)`
* `pos` A position as a table, e.g `{x = 1, y = 1, z = 1}`
* Returns an ObjecRef to a door, or nil if the position does not contain a door
###Methods
:open(player) -- Open the door object, returns if door was opened
:open(player) -- Open the door object, returns if door was opened
:close(player) -- Close the door object, returns if door was closed
:close(player) -- Close the door object, returns if door was closed
:toggle(player) -- Toggle the door state, returns if state was toggled
:toggle(player) -- Toggle the door state, returns if state was toggled
...
@@ -90,164 +95,166 @@ doors.get(pos)
...
@@ -90,164 +95,166 @@ doors.get(pos)
has the permissions needed to open this door. If omitted then no
has the permissions needed to open this door. If omitted then no
permission checks are performed.
permission checks are performed.
#Door definition
###Door definition
----------------
{
description = "Door description",
description = "Door description",
inventory_image = "mod_door_inv.png",
inventory_image = "mod_door_inv.png",
groups = {choppy =
1
},
groups = {choppy =
2
},
tiles = {
"mod_door.png"
},
tiles = {"mod_door.png"},
-- UV map.
recipe = craftrecipe,
recipe = craftrecipe,
sounds = default.node_sound_wood_defaults(), -- optional
sounds = default.node_sound_wood_defaults(), -- optional
sound_open = sound play for open door, -- optional
sound_open = sound play for open door, -- optional
sound_close = sound play for close door, -- optional
sound_close = sound play for close door, -- optional
protected = false,
protected = false,
-- If true, only placer can open the door (locked for others)
^ If true, only placer can open the door (locked for others)
}
###Trapdoor definition
#Trapdoor definition
----------------
{
description = "Trapdoor description",
description = "Trapdoor description",
inventory_image = "mod_trapdoor_inv.png",
inventory_image = "mod_trapdoor_inv.png",
groups = {choppy = 1},
groups = {choppy = 2},
tile_front = "doors_trapdoor.png",
tile_front = "doors_trapdoor.png", -- the texture for the front and back of the trapdoor
^ the texture for the front and back of the trapdoor
tile_side = "doors_trapdoor_side.png", -- the tiles of the four side parts of the trapdoor
tile_side: "doors_trapdoor_side.png",
^ the tiles of the four side parts of the trapdoor
sounds = default.node_sound_wood_defaults(), -- optional
sounds = default.node_sound_wood_defaults(), -- optional
sound_open = sound play for open door, -- optional
sound_open = sound play for open door, -- optional
sound_close = sound play for close door, -- optional
sound_close = sound play for close door, -- optional
protected = false,
protected = false, -- If true, only placer can open the door (locked for others)
^ If true, only placer can open the door (locked for others)
}
Fence API
Fence API
---------
---------
Allows creation of new fences with "fencelike" drawtype.
Allows creation of new fences with "fencelike" drawtype.
default.register_fence(name, item definition)
`default.register_fence(name, item definition)`
^ Registers a new fence. Custom fields texture and material are required, as
^ are name and description. The rest is optional. You can pass most normal
Registers a new fence. Custom fields texture and material are required, as
^ nodedef fields here except drawtype. The fence group will always be added
are name and description. The rest is optional. You can pass most normal
^ for this node.
nodedef fields here except drawtype. The fence group will always be added
for this node.
###fence definition
#fence definition
name = "default:fence_wood",
name = "default:fence_wood",
description = "Wooden Fence",
description = "Wooden Fence",
texture = "default_wood.png",
texture = "default_wood.png",
material = "default:wood",
material = "default:wood",
groups = {choppy
=
2, oddly_breakable_by_hand = 2, flammable = 2},
groups = {choppy
=
2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults(),
sounds = default.node_sound_wood_defaults(),
Farming API
Farming API
-----------
-----------
The farming API allows you to easily register plants and hoes.
The farming API allows you to easily register plants and hoes.
farming.register_hoe(name, hoe definition)
`
farming.register_hoe(name, hoe definition)
`
->
Register a new hoe, see [#hoe definition]
*
Register a new hoe, see [#hoe definition]
farming.register_plant(name, Plant definition)
`
farming.register_plant(name, Plant definition)
`
->
Register a new growing plant, see [#Plant definition]
*
Register a new growing plant, see [#Plant definition]
#Hoe Definition
###Hoe Definition
---------------
{
description = "", -- Description for tooltip
{
inventory_image = "unknown_item.png", -- Image to be used as wield- and inventory image
description = "", -- Description for tooltip
max_uses = 30, -- Uses until destroyed
inventory_image = "unknown_item.png", -- Image to be used as wield- and inventory image
material = "", -- Material for recipes
max_uses = 30, -- Uses until destroyed
recipe = { -- Craft recipe, if material isn't used
material = "", -- Material for recipes
{"air", "air", "air"},
recipe = { -- Craft recipe, if material isn't used
{"", "group:stick"},
{"air", "air", "air"},
{"", "group:stick"},
{"", "group:stick"},
{"", "group:stick"},
}
}
}
}
#Plant definition
##
#Plant definition
-----------------
{
{
description = "", -- Description of seed item
description = "", -- Description of seed item
inventory_image = "unknown_item.png", -- Image to be used as seed's wield- and inventory image
inventory_image = "unknown_item.png", -- Image to be used as seed's wield- and inventory image
steps = 8, -- How many steps the plant has to grow, until it can be harvested
steps = 8, -- How many steps the plant has to grow, until it can be harvested
^ Always provide a plant texture for each step, format: modname_plantname_i.png (i = stepnumber)
--
^ Always provide a plant texture for each step, format: modname_plantname_i.png (i = stepnumber)
minlight = 13, -- Minimum light to grow
minlight = 13, -- Minimum light to grow
maxlight = default.LIGHT_MAX -- Maximum light to grow
maxlight = default.LIGHT_MAX -- Maximum light to grow
}
}
Screwdriver API
Screwdriver API
---------------
---------------
The screwdriver API allows you to control a node's behaviour when a screwdriver is used on it.
The screwdriver API allows you to control a node's behaviour when a screwdriver is used on it.
To use it, add the on_screwdriver function to the node definition.
To use it, add the `on_screwdriver` function to the node definition.
on_rotate(pos, node, user, mode, new_param2)
^ pos: position of the node that the screwdriver is being used on
`on_rotate(pos, node, user, mode, new_param2)`
^ node: that node
^ user: the player who used the screwdriver
* `pos` Position of the node that the screwdriver is being used on
^ mode: screwdriver.ROTATE_FACE or screwdriver.ROTATE_AXIS
* `node` that node
^ new_param2: the new value of param2 that would have been set if on_rotate wasn't there
* `user` The player who used the screwdriver
^ return value: false to disallow rotation, nil to keep default behaviour, true to allow
* `mode` screwdriver.ROTATE_FACE or screwdriver.ROTATE_AXIS
* `new_param2` the new value of param2 that would have been set if on_rotate wasn't there
* return value: false to disallow rotation, nil to keep default behaviour, true to allow
it but to indicate that changed have already been made (so the screwdriver will wear out)
it but to indicate that changed have already been made (so the screwdriver will wear out)
^
use on_rotate = screwdriver.disallow to always disallow rotation
*
use
`
on_rotate = screwdriver.disallow
`
to always disallow rotation
^
use on_rotate = screwdriver.rotate_simple to allow only face rotation
*
use
`
on_rotate = screwdriver.rotate_simple
`
to allow only face rotation
Stairs API
Stairs API
----------
----------
The stairs API lets you register stairs and slabs and ensures that they are registered the same way as those
The stairs API lets you register stairs and slabs and ensures that they are registered the same way as those
delivered with Minetest Game, to keep them compatible with other mods.
delivered with Minetest Game, to keep them compatible with other mods.
stairs.register_stair(subname, recipeitem, groups, images, description, sounds)
`stairs.register_stair(subname, recipeitem, groups, images, description, sounds)`
-> Registers a stair.
-> subname: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_subname"
* Registers a stair.
-> recipeitem: Item used in the craft recipe, e.g. "default:cobble"
* `subname`: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_subname"
-> groups: see [Known damage and digging time defining groups]
* `recipeitem`: Item used in the craft recipe, e.g. "default:cobble"
-> images: see [Tile definition]
* `groups`: see [Known damage and digging time defining groups]
-> description: used for the description field in the stair's definition
* `images`: see [Tile definition]
-> sounds: see [#Default sounds]
* `description`: used for the description field in the stair's definition
* `sounds`: see [#Default sounds]
stairs.register_slab(subname, recipeitem, groups, images, description, sounds)
-> Registers a slabs
`stairs.register_slab(subname, recipeitem, groups, images, description, sounds)`
-> subname: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_subname"
-> recipeitem: Item used in the craft recipe, e.g. "default:cobble"
* Registers a slabs
-> groups: see [Known damage and digging time defining groups]
* `subname`: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_subname"
-> images: see [Tile definition]
* `recipeitem`: Item used in the craft recipe, e.g. "default:cobble"
-> description: used for the description field in the stair's definition
* `groups`: see [Known damage and digging time defining groups]
-> sounds: see [#Default sounds]
* `images`: see [Tile definition]
* `description`: used for the description field in the stair's definition
stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, sounds)
* `sounds`: see [#Default sounds]
-> A wrapper for stairs.register_stair and stairs.register_slab
-> Uses almost the same arguments as stairs.register_stair
`stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, sounds)`
-> desc_stair: Description for stair node
-> desc_slab: Description for slab node
* A wrapper for stairs.register_stair and stairs.register_slab
* Uses almost the same arguments as stairs.register_stair
* `desc_stair`: Description for stair node
* `desc_slab`: Description for slab node
Xpanes API
Xpanes API
----------
----------
Creates panes that automatically connect to each other
Creates panes that automatically connect to each other
xpanes.register_pane(subname, def)
`xpanes.register_pane(subname, def)`
-> subname: used for nodename. Result: "xpanes:subname" and "xpanes:subname_{2..15}"
-> def: See [#Pane definition]
* `subname`: used for nodename. Result: "xpanes:subname" and "xpanes:subname_{2..15}"
* `def`: See [#Pane definition]
#Pane definition
----------------
###Pane definition
{
textures = {"texture_Bottom_top", "texture_left_right", "texture_front_back"},
{
^ More tiles aren't supported
textures = {"texture_Bottom_top", "texture_left_right", "texture_front_back"}, -- More tiles aren't supported
groups = {group = rating},
groups = {group = rating}, -- Uses the known node groups, see [Known damage and digging time defining groups]
^ Uses the known node groups, see [Known damage and digging time defining groups]
sounds = SoundSpec, -- See [#Default sounds]
sounds = SoundSpec,
recipe = {{"","","","","","","","",""}}, -- Recipe field only
^ See [#Default sounds]
}
recipe = {{"","","","","","","","",""}},
^ Recipe field only
}
Raillike definitions
Raillike definitions
--------------------
--------------------
The following nodes use the group `connect_to_raillike` and will only connect to
The following nodes use the group `connect_to_raillike` and will only connect to
raillike nodes within this group and the same group value.
raillike nodes within this group and the same group value.
Use `minetest.raillike_group(<Name>)` to get the group value.
Use `minetest.raillike_group(<Name>)` to get the group value.
| Node type | Raillike group name
| Node type | Raillike group name
+
-----------------------
+
--------------------
|
-----------------------
|-
--------------------
| default:rail | "rail"
| default:rail | "rail"
| tnt:gunpowder | "gunpowder"
| tnt:gunpowder | "gunpowder"
| tnt:gunpowder_burning | "gunpowder"
| tnt:gunpowder_burning | "gunpowder"
...
@@ -260,168 +267,188 @@ of your node.
...
@@ -260,168 +267,188 @@ of your node.
Default sounds
Default sounds
--------------
--------------
Sounds inside the default table can be used within the sounds field of node definitions.
Sounds inside the default table can be used within the sounds field of node definitions.
default.node_sound_defaults()
* `
default.node_sound_defaults()
`
default.node_sound_stone_defaults()
* `
default.node_sound_stone_defaults()
`
default.node_sound_dirt_defaults()
* `
default.node_sound_dirt_defaults()
`
default.node_sound_sand_defaults()
* `
default.node_sound_sand_defaults()
`
default.node_sound_wood_defaults()
* `
default.node_sound_wood_defaults()
`
default.node_sound_leaves_defaults()
* `
default.node_sound_leaves_defaults()
`
default.node_sound_glass_defaults()
* `
default.node_sound_glass_defaults()
`
Default constants
Default constants
-----------------
-----------------
default.LIGHT_MAX
^
The maximum light level (see [Node definition] light_source)
`default.LIGHT_MAX`
The maximum light level (see [Node definition] light_source)
Player API
Player API
----------
----------
The player API can register player models and update the player's appearence
The player API can register player models and update the player's appearence
default.player_register_model(name, def)
`default.player_register_model(name, def)`
^ Register a new model to be used by players.
-> name: model filename such as "character.x", "foo.b3d", etc.
-> def: See [#Model definition]
default.registered_player_models[name]
* Register a new model to be used by players.
^ Get a model's definition
* name: model filename such as "character.x", "foo.b3d", etc.
-> s
ee [#Model definition]
* def: S
ee [#Model definition]
default.player_set_model(player, model_name)
`default.registered_player_models[name]`
^ Change a player's model
-> player: PlayerRef
-> model_name: model registered with player_register_model()
default.player_set_animation(player, anim_name [, speed])
* Get a model's definition
^ Applies an animation to a player
* see [#Model definition]
-> anim_name: name of the animation.
-> speed: frames per second. If nil, default from the model is used
default.player_set_textures(player, textures)
`default.player_set_model(player, model_name)`
^ Sets player textures
-> player: PlayerRef
* Change a player's model
-> textures: array of textures
* `player`: PlayerRef
^ If <textures> is nil, the default textures from the model def are used
* `model_name`: model registered with player_register_model()
`default.player_set_animation(player, anim_name [, speed])`
* Applies an animation to a player
* anim_name: name of the animation.
* speed: frames per second. If nil, default from the model is used
`default.player_set_textures(player, textures)`
* Sets player textures
* `player`: PlayerRef
* `textures`: array of textures, If `textures` is nil, the default textures from the model def are used
default.player_get_animation(player)
default.player_get_animation(player)
^ Returns a table containing fields "model", "textures" and "animation".
^ Any of the fields of the returned table may be nil.
* Returns a table containing fields `model`, `textures` and `animation`.
-> player: PlayerRef
* Any of the fields of the returned table may be nil.
* player: PlayerRef
Model Definition
----------------
###Model Definition
{
animation_speed = 30, -- Default animation speed, in FPS.
{
textures = {"character.png", }, -- Default array of textures.
animation_speed = 30, -- Default animation speed, in FPS.
visual_size = {x = 1, y = 1}, -- Used to scale the model.
textures = {"character.png", }, -- Default array of textures.
animations = {
visual_size = {x = 1, y = 1}, -- Used to scale the model.
-- <anim_name> = {x = <start_frame>, y = <end_frame>},
animations = {
foo = {x = 0, y = 19},
-- <anim_name> = {x = <start_frame>, y = <end_frame>},
bar = {x = 20, y = 39},
foo = {x = 0, y = 19},
bar = {x = 20, y = 39},
-- ...
-- ...
},
},
}
}
Leafdecay
Leafdecay
---------
---------
To enable leaf decay for a node, add it to the "leafdecay" group.
The rating of the group determines how far from a node in the group "tree"
To enable leaf decay for a node, add it to the `leafdecay` group.
The rating of the group determines how far from a node in the group `tree`
the node can be without decaying.
the node can be without decaying.
If param2 of the node is ~= 0, the node will always be preserved. Thus, if
If
`
param2
`
of the node is ~= 0, the node will always be preserved. Thus, if
the player places a node of that kind, you will want to set param2
=1
or so.
the player places a node of that kind, you will want to set
`
param2
= 1`
or so.
The function default.after_place_leaves can be set as after_place_node of a node
The function
`
default.after_place_leaves
`
can be set as
`
after_place_node of a node
`
to set param2 to 1 if the player places the node (should not be used for nodes
to set param2 to 1 if the player places the node (should not be used for nodes
that use param2 otherwise (e.g. facedir)).
that use param2 otherwise (e.g. facedir)).
If the node is in the leafdecay_drop group then it will always be dropped as an
If the node is in the
`
leafdecay_drop
`
group then it will always be dropped as an
item.
item.
Dyes
Dyes
----
----
To make recipes that will work with any dye ever made by anybody, define
To make recipes that will work with any dye ever made by anybody, define
them based on groups. You can select any group of groups, based on your need for
them based on groups. You can select any group of groups, based on your need for
amount of colors.
amount of colors.
#Color groups
##
#Color groups
-------------
Base color groups:
Base color groups:
- basecolor_white
- basecolor_grey
* `basecolor_white`
- basecolor_black
* `basecolor_grey`
- basecolor_red
* `basecolor_black`
- basecolor_yellow
* `basecolor_red`
- basecolor_green
* `basecolor_yellow`
- basecolor_cyan
* `basecolor_green`
- basecolor_blue
* `basecolor_cyan`
- basecolor_magenta
* `basecolor_blue`
* `basecolor_magenta`
Extended color groups (* = equal to a base color):
* excolor_white
Extended color groups ( * means also base color )
- excolor_lightgrey
* excolor_grey
* `excolor_white` *
- excolor_darkgrey
* `excolor_lightgrey`
* excolor_black
* `excolor_grey` *
* excolor_red
* `excolor_darkgrey`
- excolor_orange
* `excolor_black` *
* excolor_yellow
* `excolor_red` *
- excolor_lime
* `excolor_orange`
* excolor_green
* `excolor_yellow` *
- excolor_aqua
* `excolor_lime`
* excolor_cyan
* `excolor_green` *
- excolor_sky_blue
* `excolor_aqua`
* excolor_blue
* `excolor_cyan` *
- excolor_violet
* `excolor_sky_blue`
* excolor_magenta
* `excolor_blue` *
- excolor_red_violet
* `excolor_violet`
* `excolor_magenta` *
* `excolor_red_violet`
The whole unifieddyes palette as groups:
The whole unifieddyes palette as groups:
- unicolor_<excolor>
* `unicolor_<excolor>`
For the following, no white/grey/black is allowed:
For the following, no white/grey/black is allowed:
- unicolor_medium_<excolor>
- unicolor_dark_<excolor>
* `unicolor_medium_<excolor>`
- unicolor_light_<excolor>
* `unicolor_dark_<excolor>`
- unicolor_<excolor>_s50
* `unicolor_light_<excolor>`
- unicolor_medium_<excolor>_s50
* `unicolor_<excolor>_s50`
- unicolor_dark_<excolor>_s50
* `unicolor_medium_<excolor>_s50`
* `unicolor_dark_<excolor>_s50`
Example of one shapeless recipe using a color group:
Example of one shapeless recipe using a color group:
minetest.register_craft({
type = "shapeless",
output = '<mod>:item_yellow',
recipe = {'<mod>:item_no_color', 'group:basecolor_yellow'},
})
#Color lists
minetest.register_craft({
------------
type = "shapeless",
dye.basecolors
output = '<mod>:item_yellow',
^ Array containing the names of available base colors
recipe = {'<mod>:item_no_color', 'group:basecolor_yellow'},
})
###Color lists
* `dye.basecolors` are an array containing the names of available base colors
dye.excolors
* `dye.excolors` are an array containing the names of the available extended colors
^ Array containing the names of the available extended colors
Trees
Trees
-----
-----
default.grow_tree(pos, is_apple_tree)
^ Grows a mgv6 tree or apple tree at pos
default.grow_jungle_tree(pos)
* `default.grow_tree(pos, is_apple_tree)`
^ Grows a mgv6 jungletree at pos
* Grows a mgv6 tree or apple tree at pos
* `default.grow_jungle_tree(pos)`
* Grows a mgv6 jungletree at pos
* `default.grow_pine_tree(pos)`
* Grows a mgv6 pinetree at pos
* `default.grow_new_apple_tree(pos)`
* Grows a new design apple tree at pos
default.grow_
pin
e_tree(pos)
* `
default.grow_
new_jungl
e_tree(pos)
`
^
Grows a
mgv6 pine
tree at pos
*
Grows a
new design jungle
tree at pos
default.grow_new_
appl
e_tree(pos)
* `
default.grow_new_
pin
e_tree(pos)
`
^
Grows a new design
appl
e tree at pos
*
Grows a new design
pin
e tree at pos
default.grow_new_
jungle
_tree(pos)
* `
default.grow_new_
acacia
_tree(pos)
`
^
Grows a new design
jungle
tree at pos
*
Grows a new design
acacia
tree at pos
default.grow_new_
pine
_tree(pos)
* `
default.grow_new_
aspen
_tree(pos)
`
^
Grows a new design
pine
tree at pos
*
Grows a new design
aspen
tree at pos
default.grow_new_
acacia
_tree(pos)
* `
default.grow_new_
snowy_pine
_tree(pos)
`
^
Grows a new design
acacia
tree at pos
*
Grows a new design
snowy pine
tree at pos
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment