7 if (minetest
.get_modpath("intllib")) then
8 dofile(minetest
.get_modpath("intllib").."/intllib.lua")
9 S
= intllib
.Getter(minetest
.get_current_modname())
11 S
= function ( s
) return s
end
18 local filepath
= minetest
.get_worldpath().."/origin.mt"
19 local file
= io
.open(filepath
, "r")
27 origin
.settings
.force_singlenode
= minetest
.setting_getbool("origin_force_singlenode")
28 if origin
.settings
.force_singlenode
== nil then
29 origin
.settings
.force_singlenode
= true
33 minetest
.register_node("origin:origin",{
34 description
= S("The Origin"),
35 groups
= { not_in_creative_inventory
= 1, in_doc
= 1, immortal
= 1 },
37 tiles
= {"origin_origin.png"},
38 sounds
= { footstep
= "origin_origin_footstep" },
39 is_ground_content
= false,
43 minetest
.register_on_mapgen_init(function(mgparams
)
44 if origin
.settings
.force_singlenode
== true then
45 minetest
.set_mapgen_params({mgname
= "singlenode"})
49 minetest
.register_on_generated(function(minp
, maxp
, seed
)
50 local spawn
= minetest
.setting_get_pos("static_spawnpoint")
51 if origin
.exists
~= true then
54 blockpos
= { x
=spawn
.x
, y
=spawn
.y
-1, z
=spawn
.z
}
56 blockpos
= { x
=0, y
=-1, z
=0 }
58 if(minp
.x
<= blockpos
.x
and maxp
.x
>= blockpos
.x
and minp
.y
<= blockpos
.y
and maxp
.y
>= blockpos
.y
and minp
.z
<= blockpos
.z
and maxp
.z
>= blockpos
.z
) then
59 minetest
.set_node(blockpos
, {name
= "origin:origin"})
60 minetest
.log("action", "[origin] The Origin has been set at "..minetest
.pos_to_string(blockpos
)..".")
62 local filepath
= minetest
.get_worldpath().."/origin.mt"
63 local file
= io
.open(filepath
, "w")
65 file
:write(minetest
.pos_to_string(blockpos
))
67 minetest
.log("error", "[origin] Failed to write origin data into "..filepath
..". The Origin may be placed again if you change static_spawnpoint.")
74 if minetest
.get_modpath("doc_items") ~= nil then
75 doc
.sub
.items
.set_items_longdesc({
76 ["origin:origin"] = S("The Origin is the starting block of this world. On the Origin the earliest visitors of this world arrive and it is the first block at which all other blocks can be built to, so that builders can build their architectural masterpieces in a world which would be (usually) empty otherwise."),