mirror of
https://github.com/sys4-fr/server-nalc.git
synced 2026-01-05 07:15:43 +01:00
Update minetestforfun_game, fix maptools
This commit is contained in:
@@ -12,22 +12,28 @@ Please note:
|
||||
|
||||
* [XYZ] refers to a section the Minetest API
|
||||
* [#ABC] refers to a section in this document
|
||||
* [pos] refers to a position table `{x = -5, y = 0, z = 200}`
|
||||
|
||||
Bucket API
|
||||
----------
|
||||
|
||||
The bucket API allows registering new types of buckets for non-default liquids.
|
||||
|
||||
|
||||
bucket.register_liquid(
|
||||
"default:lava_source", -- name of the source node
|
||||
"default:lava_flowing", -- name of the flowing node
|
||||
"bucket:bucket_lava", -- name of the new bucket item (or nil if liquid is not takeable)
|
||||
"bucket_lava.png", -- texture of the new bucket item (ignored if itemname == nil)
|
||||
"Lava Bucket", -- text description of the bucket item
|
||||
{lava_bucket = 1} -- groups of the bucket item, OPTIONAL
|
||||
{lava_bucket = 1}, -- groups of the bucket item, OPTIONAL
|
||||
false -- force-renew, OPTIONAL. Force the liquid source to renew if it has
|
||||
-- a source neighbour, even if defined as 'liquid_renewable = false'.
|
||||
-- Needed to avoid creating holes in sloping rivers.
|
||||
)
|
||||
|
||||
The filled bucket item is returned to the player that uses an empty bucket pointing to the given liquid source.
|
||||
When punching with an empty bucket pointing to an entity or a non-liquid node, the on_punch of the entity or node will be triggered.
|
||||
|
||||
Beds API
|
||||
--------
|
||||
|
||||
@@ -39,8 +45,8 @@ Beds API
|
||||
* `beds.read_spawns() ` Returns a table containing players respawn positions
|
||||
* `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
|
||||
|
||||
###Bed definition
|
||||
|
||||
### Bed definition
|
||||
|
||||
{
|
||||
description = "Simple Bed",
|
||||
@@ -61,6 +67,11 @@ Beds API
|
||||
}
|
||||
}
|
||||
|
||||
Creative API
|
||||
------------
|
||||
|
||||
A global string called `creative.formspec_add` was added which allows mods to add additional formspec elements onto the default creative inventory formspec to be drawn after each update.
|
||||
|
||||
Doors API
|
||||
---------
|
||||
|
||||
@@ -85,12 +96,12 @@ The doors mod allows modders to register custom doors and trapdoors.
|
||||
* `def` See [#Fence gate 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
|
||||
|
||||
* Returns an ObjectRef 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
|
||||
:close(player) -- Close the door object, returns if door was closed
|
||||
:toggle(player) -- Toggle the door state, returns if state was toggled
|
||||
@@ -101,7 +112,7 @@ The doors mod allows modders to register custom doors and trapdoors.
|
||||
has the permissions needed to open this door. If omitted then no
|
||||
permission checks are performed.
|
||||
|
||||
###Door definition
|
||||
### Door definition
|
||||
|
||||
description = "Door description",
|
||||
inventory_image = "mod_door_inv.png",
|
||||
@@ -113,7 +124,7 @@ The doors mod allows modders to register custom doors and trapdoors.
|
||||
sound_close = sound play for close door, -- optional
|
||||
protected = false, -- If true, only placer can open the door (locked for others)
|
||||
|
||||
###Trapdoor definition
|
||||
### Trapdoor definition
|
||||
|
||||
description = "Trapdoor description",
|
||||
inventory_image = "mod_trapdoor_inv.png",
|
||||
@@ -125,7 +136,7 @@ The doors mod allows modders to register custom doors and trapdoors.
|
||||
sound_close = sound play for close door, -- optional
|
||||
protected = false, -- If true, only placer can open the door (locked for others)
|
||||
|
||||
###Fence gate definition
|
||||
### Fence gate definition
|
||||
|
||||
description = "Wooden Fence Gate",
|
||||
texture = "default_wood.png",
|
||||
@@ -135,6 +146,7 @@ The doors mod allows modders to register custom doors and trapdoors.
|
||||
|
||||
Fence API
|
||||
---------
|
||||
|
||||
Allows creation of new fences with "fencelike" drawtype.
|
||||
|
||||
`default.register_fence(name, item definition)`
|
||||
@@ -144,7 +156,7 @@ Allows creation of new fences with "fencelike" drawtype.
|
||||
nodedef fields here except drawtype. The fence group will always be added
|
||||
for this node.
|
||||
|
||||
###fence definition
|
||||
### fence definition
|
||||
|
||||
name = "default:fence_wood",
|
||||
description = "Wooden Fence",
|
||||
@@ -153,8 +165,9 @@ Allows creation of new fences with "fencelike" drawtype.
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
|
||||
#Walls API
|
||||
Walls API
|
||||
---------
|
||||
|
||||
The walls API allows easy addition of stone auto-connecting wall nodes.
|
||||
|
||||
walls.register(name, desc, texture, mat, sounds)
|
||||
@@ -175,7 +188,10 @@ The farming API allows you to easily register plants and hoes.
|
||||
`farming.register_plant(name, Plant definition)`
|
||||
* Register a new growing plant, see [#Plant definition]
|
||||
|
||||
###Hoe Definition
|
||||
`farming.registered_plants[name] = definition`
|
||||
* Table of registered plants, indexed by plant name
|
||||
|
||||
### Hoe Definition
|
||||
|
||||
|
||||
{
|
||||
@@ -190,7 +206,7 @@ The farming API allows you to easily register plants and hoes.
|
||||
}
|
||||
}
|
||||
|
||||
###Plant definition
|
||||
### Plant definition
|
||||
|
||||
{
|
||||
description = "", -- Description of seed item
|
||||
@@ -204,11 +220,135 @@ The farming API allows you to easily register plants and hoes.
|
||||
Fire API
|
||||
--------
|
||||
|
||||
New node def property:
|
||||
|
||||
`on_burn(pos)`
|
||||
|
||||
* Called when fire attempts to remove a burning node.
|
||||
* `pos` Position of the burning node.
|
||||
|
||||
`on_ignite(pos, igniter)`
|
||||
|
||||
* Called when Flint and steel (or a mod defined ignitor) is used on a node.
|
||||
Defining it may prevent the default action (spawning flames) from triggering.
|
||||
* `pos` Position of the ignited node.
|
||||
* `igniter` Player that used the tool, when available.
|
||||
|
||||
|
||||
Give Initial Stuff API
|
||||
----------------------
|
||||
|
||||
`give_initial_stuff.give(player)`
|
||||
|
||||
^ Give initial stuff to "player"
|
||||
|
||||
`give_initial_stuff.add(stack)`
|
||||
|
||||
^ Add item to the initial stuff
|
||||
^ Stack can be an ItemStack or a item name eg: "default:dirt 99"
|
||||
^ Can be called after the game has loaded
|
||||
|
||||
`give_initial_stuff.clear()`
|
||||
|
||||
^ Removes all items from the initial stuff
|
||||
^ Can be called after the game has loaded
|
||||
|
||||
`give_initial_stuff.get_list()`
|
||||
|
||||
^ returns list of item stacks
|
||||
|
||||
`give_initial_stuff.set_list(list)`
|
||||
|
||||
^ List of initial items with numeric indices.
|
||||
|
||||
`give_initial_stuff.add_from_csv(str)`
|
||||
|
||||
^ str is a comma separated list of initial stuff
|
||||
^ Adds items to the list of items to be given
|
||||
|
||||
Nyancat API
|
||||
-----------
|
||||
|
||||
`nyancat.place(pos, facedir, length)`
|
||||
|
||||
^ Place a cat at `pos` facing `facedir` with tail length `length`
|
||||
Only accepts facedir 0-3, if facedir > 3 then it will be interpreted as facedir = 0
|
||||
|
||||
`nyancat.generate(minp, maxp, seed)`
|
||||
|
||||
^ Called by `minetest.register_on_generated`. To disable nyancat generation,
|
||||
you can redefine nyancat.generate() to be an empty function
|
||||
|
||||
TNT API
|
||||
----------
|
||||
|
||||
`tnt.register_tnt(definition)`
|
||||
|
||||
^ Register a new type of tnt.
|
||||
|
||||
* `name` The name of the node. If no prefix is given `tnt` is used.
|
||||
* `description` A description for your TNT.
|
||||
* `radius` The radius within which the TNT can destroy nodes. The default is 3.
|
||||
* `damage_radius` The radius within which the TNT can damage players and mobs. By default it is twice the `radius`.
|
||||
* `disable_drops` Disable drops. By default it is set to false.
|
||||
* `ignore_protection` Don't check `minetest.is_protected` before removing a node.
|
||||
* `ignore_on_blast` Don't call `on_blast` even if a node has one.
|
||||
* `tiles` Textures for node
|
||||
* `side` Side tiles. By default the name of the tnt with a suffix of `_side.png`.
|
||||
* `top` Top tile. By default the name of the tnt with a suffix of `_top.png`.
|
||||
* `bottom` Bottom tile. By default the name of the tnt with a suffix of `_bottom.png`.
|
||||
* `burning` Top tile when lit. By default the name of the tnt with a suffix of `_top_burning_animated.png".
|
||||
|
||||
`tnt.boom(position, definition)`
|
||||
|
||||
^ Create an explosion.
|
||||
|
||||
* `position` The center of explosion.
|
||||
* `definition` The TNT definion as passed to `tnt.register`
|
||||
|
||||
`tnt.burn(position, [nodename])`
|
||||
|
||||
^ Ignite TNT at position, nodename isn't required unless already known.
|
||||
|
||||
|
||||
To make dropping items from node inventories easier, you can use the
|
||||
following helper function from 'default':
|
||||
|
||||
default.get_inventory_drops(pos, inventory, drops)
|
||||
|
||||
^ Return drops from node inventory "inventory" in drops.
|
||||
|
||||
* `pos` - the node position
|
||||
* `inventory` - the name of the inventory (string)
|
||||
* `drops` - an initialized list
|
||||
|
||||
The function returns no values. The drops are returned in the `drops`
|
||||
parameter, and drops is not reinitialized so you can call it several
|
||||
times in a row to add more inventory items to it.
|
||||
|
||||
|
||||
`on_blast` callbacks:
|
||||
|
||||
Both nodedefs and entitydefs can provide an `on_blast()` callback
|
||||
|
||||
`nodedef.on_blast(pos, intensity)`
|
||||
^ Allow drop and node removal overriding
|
||||
* `pos` - node position
|
||||
* `intensity` - TNT explosion measure. larger or equal to 1.0
|
||||
^ Should return a list of drops (e.g. {"default:stone"})
|
||||
^ Should perform node removal itself. If callback exists in the nodedef
|
||||
^ then the TNT code will not destroy this node.
|
||||
|
||||
`entitydef.on_blast(luaobj, damage)`
|
||||
^ Allow TNT effects on entities to be overridden
|
||||
* `luaobj` - LuaEntityRef of the entity
|
||||
* `damage` - suggested HP damage value
|
||||
^ Should return a list of (bool do_damage, bool do_knockback, table drops)
|
||||
* `do_damage` - if true then TNT mod wil damage the entity
|
||||
* `do_knockback` - if true then TNT mod will knock the entity away
|
||||
* `drops` - a list of drops, e.g. {"wool:red"}
|
||||
|
||||
|
||||
Screwdriver API
|
||||
---------------
|
||||
|
||||
@@ -224,9 +364,33 @@ To use it, add the `on_screwdriver` function to the node definition.
|
||||
* `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)
|
||||
* use `on_rotate = screwdriver.disallow` to always disallow rotation
|
||||
* use `on_rotate = false` to always disallow rotation
|
||||
* use `on_rotate = screwdriver.rotate_simple` to allow only face rotation
|
||||
|
||||
|
||||
Sethome API
|
||||
-----------
|
||||
|
||||
The sethome API adds three global functions to allow mods to read a players home position,
|
||||
set a players home position and teleport a player to home position.
|
||||
|
||||
`sethome.get(name)`
|
||||
|
||||
* `name` Player who's home position you wish to get
|
||||
* return value: false if no player home coords exist, position table if true
|
||||
|
||||
`sethome.set(name, pos)`
|
||||
|
||||
* `name` Player who's home position you wish to set
|
||||
* `pos` Position table containing coords of home position
|
||||
* return value: false if unable to set and save new home position, otherwise true
|
||||
|
||||
`sethome.go(name)`
|
||||
|
||||
* `name` Player you wish to teleport to their home position
|
||||
* return value: false if player cannot be sent home, otherwise true
|
||||
|
||||
|
||||
Stairs API
|
||||
----------
|
||||
|
||||
@@ -237,7 +401,7 @@ delivered with Minetest Game, to keep them compatible with other mods.
|
||||
|
||||
* Registers a stair.
|
||||
* `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"
|
||||
* `recipeitem`: Item used in the craft recipe, e.g. "default:cobble", may be `nil`
|
||||
* `groups`: see [Known damage and digging time defining groups]
|
||||
* `images`: see [Tile definition]
|
||||
* `description`: used for the description field in the stair's definition
|
||||
@@ -270,10 +434,10 @@ Creates panes that automatically connect to each other
|
||||
* `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 for sides", (unused), "texture for top and bottom"}, -- More tiles aren't supported
|
||||
groups = {group = rating}, -- Uses the known node groups, see [Known damage and digging time defining groups]
|
||||
sounds = SoundSpec, -- See [#Default sounds]
|
||||
recipe = {{"","","","","","","","",""}}, -- Recipe field only
|
||||
@@ -310,6 +474,7 @@ Sounds inside the default table can be used within the sounds field of node defi
|
||||
* `default.node_sound_wood_defaults()`
|
||||
* `default.node_sound_leaves_defaults()`
|
||||
* `default.node_sound_glass_defaults()`
|
||||
* `default.node_sound_metal_defaults()`
|
||||
|
||||
Default constants
|
||||
-----------------
|
||||
@@ -356,7 +521,7 @@ default.player_get_animation(player)
|
||||
* 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.
|
||||
@@ -395,7 +560,7 @@ 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
|
||||
amount of colors.
|
||||
|
||||
###Color groups
|
||||
### Color groups
|
||||
|
||||
Base color groups:
|
||||
|
||||
@@ -450,7 +615,7 @@ Example of one shapeless recipe using a color group:
|
||||
recipe = {'<mod>:item_no_color', 'group:basecolor_yellow'},
|
||||
})
|
||||
|
||||
###Color lists
|
||||
### Color lists
|
||||
|
||||
* `dye.basecolors` are an array containing the names of available base colors
|
||||
|
||||
@@ -465,7 +630,7 @@ Trees
|
||||
* `default.grow_jungle_tree(pos)`
|
||||
* Grows a mgv6 jungletree at pos
|
||||
|
||||
* `default.grow_pine_tree(pos)`
|
||||
* `default.grow_pine_tree(pos)`
|
||||
* Grows a mgv6 pinetree at pos
|
||||
|
||||
* `default.grow_new_apple_tree(pos)`
|
||||
|
||||
Reference in New Issue
Block a user