Difference between revisions of "User:Xyz/stress"
Jump to navigation
Jump to search
Line 13: | Line 13: | ||
=== stressedPosition === | === stressedPosition === | ||
Same as [[position]]. Can be created from either <code>{x = …, y = …, z = …}</code> or <code>{…, …, …}</code> | Same as [[position]]. Can be created from either <code>{x = …, y = …, z = …}</code> or <code>{…, …, …}</code> | ||
+ | Supports -(unary), +, -. | ||
+ | <source> | ||
+ | stressedPosition({1, 2, 3}) + {4, 5, 6} | ||
+ | stressedPosition({0, 0, 0}) - stressedPosition({1, 2, 3}) | ||
+ | … | ||
+ | </source> | ||
=== stressedArea === | === stressedArea === |
Revision as of 15:07, 24 February 2013
_()
!
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 {…, …, …}
Supports -(unary), +, -.
stressedPosition({1, 2, 3}) + {4, 5, 6}
stressedPosition({0, 0, 0}) - stressedPosition({1, 2, 3})
…
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)
for pos in _:iterate({0, 0, 0}, {1, 1, 1}) do
_(pos):name("air")
end
-- same as _({0, 0, 0}, {1, 1, 1}):name("air")
Something
An example of code in stress:
_("default:dirt"):on("place", function(me)
me:name("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:name("default:dirt_with_grass")
end)
elseif message == "/nodirttograss" and dirttograss then
_(dirttograss):clear()
end
end)