User:Xyz/stress
Jump to navigation
Jump to search
_()
!
http://irc.minetest.ru/minetest/2013-02-17#i_2877771
Core concepts
All functions are prefixed with :
. All properties are prefixed with .
.
return true
in even to stop its propagation.
Types
All stressed*
members should have __type
property containing theirs type as a string.
stressedPosition
Same as position. Can be created from either {x = …, y = …, z = …}
or {…, …, …}
stressedArea
_(pos1, pos2)
, pos1
, pos2
are stressedPositions
:name("string")
:meta("name", "value")
:each(function(node))
—node
is stressedNode
stressedNode
Created via _(position)
Implements:
:name()
— get node name:name("string")
— set node name (likeminetest.env:set_node()
):meta("name")
— get meta:meta("name", "value")
— set meta:inventory("name")
— stressedInventory (name is actually listname)
stressedNodeDef
Created via _("name")
, i.e. _("default:dirt")
:on("event", function())
— registers event, possible ones:dig
place
punch
rightclick
:every
— registers ABM- every(time, function)
- every(time, chance, function)
- ??
stressedInventory
:empty()
— returns true if inventory is empty:clear()
— remove everything from inventory:size()
— get size of an inventory:size(N)
— set size of an inventory:width()
:width(N)
:stack(X)
— get the Xth stack from inventory, modifiable
stressedStack
stressedStack points to the specific slot in inventory.
:name()
:name(S)
:count()
:count(N)
:wear()
:wear(N)
:take()
— takes one item:take(N)
— takes N items
Global functions
_:on("event", function())
generated
shutdown
- …
_:iterate(pos1, pos2)
(maybe_(pos1, pos2)
?)
Something
An example of code in stress:
_("default:dirt"):on("place", function(me)
me:value("default:dirt_with_grass")
end)
same without stress
minetest.register_on_placenode(function(pos, newnode)
if newnode.name == "default:dirt" then
minetest.env:set_node(pos, {name="default:dirt_with_grass"})
end
end)
Something more?
dirttograss = nil
_:on("chat", function(message)
if message == "/dirttograss" and not dirttograss then
dirttograss = _("default:dirt"):on("place", function(me)
me:value("default:dirt_with_grass")
end)
elseif message == "/nodirttograss" and dirttograss then
_(dirttograss):clear()
end
end)