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
acafe5ca
Commit
acafe5ca
authored
9 years ago
by
rubenwardy
Committed by
paramat
9 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Add give_initial_items API
parent
12c763a6
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
game_api.txt
+56
-21
56 additions, 21 deletions
game_api.txt
minetest.conf.example
+2
-1
2 additions, 1 deletion
minetest.conf.example
mods/give_initial_stuff/init.lua
+42
-10
42 additions, 10 deletions
mods/give_initial_stuff/init.lua
with
100 additions
and
32 deletions
game_api.txt
+
56
−
21
View file @
acafe5ca
...
...
@@ -39,8 +39,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",
...
...
@@ -85,12 +85,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 Objec
t
Ref 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 +101,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 +113,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 +125,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 +135,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 +145,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 +154,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 +177,7 @@ 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
###
Hoe Definition
{
...
...
@@ -190,7 +192,7 @@ The farming API allows you to easily register plants and hoes.
}
}
###Plant definition
###
Plant definition
{
description = "", -- Description of seed item
...
...
@@ -204,16 +206,49 @@ 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.
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
#
TNT API
TNT API
----------
tnt.register_tnt(definition)
`
tnt.register_tnt(definition)
`
^ Register a new type of tnt.
...
...
@@ -341,7 +376,7 @@ 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
...
...
@@ -427,7 +462,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.
...
...
@@ -466,7 +501,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:
...
...
@@ -521,7 +556,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
...
...
@@ -536,7 +571,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)`
...
...
This diff is collapsed.
Click to expand it.
minetest.conf.example
+
2
−
1
View file @
acafe5ca
...
...
@@ -18,8 +18,9 @@
# 'permanent flame' nodes will remain with either setting
#disable_fire = false
# Whether
steel tools, torches and cobblestone
should be given to new players
# Whether
the stuff in initial_stuff
should be given to new players
#give_initial_stuff = false
#initial_stuff = default:pick_steel,default:axe_steel,default:shovel_steel,default:torch 99,default:cobble 99
# Whether the TNT mod should be enabled
#enable_tnt = <true in singleplayer, false in multiplayer>
...
...
This diff is collapsed.
Click to expand it.
mods/give_initial_stuff/init.lua
+
42
−
10
View file @
acafe5ca
minetest
.
register_on_newplayer
(
function
(
player
)
--print("on_newplayer")
if
minetest
.
setting_getbool
(
"give_initial_stuff"
)
then
minetest
.
log
(
"action"
,
"Giving initial stuff to player "
..
player
:
get_player_name
())
player
:
get_inventory
():
add_item
(
'main'
,
'default:pick_steel'
)
player
:
get_inventory
():
add_item
(
'main'
,
'default:torch 99'
)
player
:
get_inventory
():
add_item
(
'main'
,
'default:axe_steel'
)
player
:
get_inventory
():
add_item
(
'main'
,
'default:shovel_steel'
)
player
:
get_inventory
():
add_item
(
'main'
,
'default:cobble 99'
)
local
stuff_string
=
minetest
.
setting_get
(
"initial_stuff"
)
or
"default:pick_steel,default:axe_steel,default:shovel_steel,"
..
"default:torch 99,default:cobble 99"
give_initial_stuff
=
{
items
=
{}
}
function
give_initial_stuff
.
give
(
player
)
minetest
.
log
(
"action"
,
"Giving initial stuff to player "
..
player
:
get_player_name
())
local
inv
=
player
:
get_inventory
()
for
_
,
stack
in
ipairs
(
give_initial_stuff
.
items
)
do
inv
:
add_item
(
"main"
,
stack
)
end
end
function
give_initial_stuff
.
add
(
stack
)
give_initial_stuff
.
items
[
#
give_initial_stuff
.
items
+
1
]
=
ItemStack
(
stack
)
end
function
give_initial_stuff
.
clear
()
give_initial_stuff
.
items
=
{}
end
function
give_initial_stuff
.
add_from_csv
(
str
)
local
items
=
str
:
split
(
","
)
for
_
,
itemname
in
ipairs
(
items
)
do
give_initial_stuff
.
add
(
itemname
)
end
end
)
end
function
give_initial_stuff
.
set_list
(
list
)
give_initial_stuff
.
items
=
list
end
function
give_initial_stuff
.
get_list
()
return
give_initial_stuff
.
items
end
give_initial_stuff
.
add_from_csv
(
stuff_string
)
if
minetest
.
setting_getbool
(
"give_initial_stuff"
)
then
minetest
.
register_on_newplayer
(
give_initial_stuff
.
give
)
end
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