Difference between revisions of "User:Hybrid Dog"
Jump to navigation
Jump to search
Hybrid Dog (talk | contribs) m (→vector_extras) |
Hybrid Dog (talk | contribs) |
||
Line 56: | Line 56: | ||
! Comments | ! Comments | ||
! Status | ! Status | ||
+ | |- | ||
+ | |<source enclose="none">vector.pos_to_string(pos)</source> | ||
+ | | string | ||
+ | | similar to minetest.pos_to_string | ||
+ | | untested | ||
|- | |- | ||
|<source enclose="none">vector.line([pos, dir[, range][, alt]])</source> | |<source enclose="none">vector.line([pos, dir[, range][, alt]])</source> | ||
Line 145: | Line 150: | ||
| should return the chunkcorner near pos | | should return the chunkcorner near pos | ||
| could work | | could work | ||
+ | |- | ||
+ | |<source enclose="none">vector.zero</source> | ||
+ | | {x=0, y=0, z=0} | ||
+ | | not a function | ||
+ | | works | ||
|} | |} |
Revision as of 17:43, 5 April 2015
minetest.on_place
Syntax
minetest.on_place(nodename, func)
Description
This changes on_place of a node after it was defined.
It is not implemented into minetest but can be added via mod(s):
minetest.on_place = minetest.on_place or function(name, func)
local previous_on_place = minetest.registered_nodes[name].on_place
minetest.override_item(name, {
on_place = function(itemstack, placer, pointed_thing)
if func(itemstack, placer, pointed_thing) then
return previous_on_place(itemstack, placer, pointed_thing)
end
end
})
end
nodename
The name of the node which should become changed
func
should return true if the node becomes set
function(itemstack, placer, pointed_thing)
Example
minetest.on_place("hydro:growlamp", function(itemstack, placer, pointed_thing)
if not pointed_thing then
return
end
local pos = minetest.get_pointed_thing_position(pointed_thing, true)
if not pos then
return
end
local nd_above = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name
local nd_above_info = minetest.registered_nodes[nd_above]
if nd_above == "air"
or nd_above == "hydro:growlamp"
or not nd_above_info.walkable
or nd_above_info.buildable_to then
return
end
return true
end)
Mods
vector_extras
Function | Return value | Comments | Status |
---|---|---|---|
vector.pos_to_string(pos)
|
string | similar to minetest.pos_to_string | untested |
vector.line([pos, dir[, range][, alt]])
|
table of vectors | dir can be following:
if alt then the old path calculation is used |
works |
vector.fine_line([pos, dir[, range], scale])
|
table of vectors |
|
works but old and slow |
vector.twoline(x, y)
|
table |
|
works |
vector.threeline(x, y, z)
|
table |
|
works |
vector.straightdelay([s, v[, a]])
|
number |
|
works |
vector.sun_dir(t)
|
vector |
|
works |
vector.inside(pos, minp, maxp)
|
bool | returns true if pos is inside or on the corners of minp and maxp | untested |
vector.minmax(p1, p2)
|
vector, vector | the first vector's x, y and z are smaller than the second one's | untested |
vector.move(p1, p2, s)
|
vector |
|
untested |
vector.explosion_table(r)
|
table |
|
works |
vector.circle(r)
|
table of vectors |
|
works |
vector.ring(r)
|
table of vectors |
|
works |
vector.chunkcorner(pos)
|
vector | should return the chunkcorner near pos | could work |
vector.zero
|
{x=0, y=0, z=0} | not a function | works |