diff --git a/create_catalog.lua b/create_catalog.lua index 5cff333..8267068 100644 --- a/create_catalog.lua +++ b/create_catalog.lua @@ -25,7 +25,7 @@ function mapblock_lib.create_catalog(filename, pos1, pos2, options) -- default to async serialization options = options or {} - options.delay = options.delay or 0.2 + options.delay = options.delay or 0.1 options.callback = options.callback or function() end options.progress_callback = options.progress_callback or function() end diff --git a/get_catalog.lua b/get_catalog.lua index 224b713..81d41fb 100644 --- a/get_catalog.lua +++ b/get_catalog.lua @@ -136,7 +136,7 @@ function Catalog:deserialize_all(target_mapblock_pos, options) local count = 0 options = options or {} - options.delay = options.delay or 0.2 + options.delay = options.delay or 0.1 options.rotate_y = options.rotate_y or 0 options.callback = options.callback or function() end options.progress_callback = options.progress_callback or function() end diff --git a/init.lua b/init.lua index 6b0c59f..4d00370 100644 --- a/init.lua +++ b/init.lua @@ -23,6 +23,7 @@ dofile(MP .. "/util.lua") dofile(MP .. "/pointed.lua") dofile(MP .. "/pos.lua") dofile(MP .. "/data.lua") +dofile(MP .. "/metadata.lua") dofile(MP .. "/mapblock.lua") diff --git a/metadata.lua b/metadata.lua new file mode 100644 index 0000000..da057a1 --- /dev/null +++ b/metadata.lua @@ -0,0 +1,41 @@ + +local function update_formspec(meta) + local group = meta:get_string("group") + -- TODO + + meta:set_string("formspec", [[ + size[10,8.3] + real_coordinates[true] + field[0.1,0.4;8.8,0.8;group;Group;]] .. group .. [[] + button_exit[9,0.4;0.9,0.8;set;Set] + list[context;main;0.1,1.4;8,1;] + list[current_player;main;0.1,3;8,4;] + listring[] + ]]) +end + +minetest.register_node("mapblock_lib:metadata", { + description = "Mapblock-lib metadata marker", + tiles = {"mapblock_lib_metadata.png^[colorize:#23c1cc"}, + drawtype = "allfaces", + use_texture_alpha = "blend", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + groups = { + oddly_breakable_by_hand = 3 + }, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + update_formspec(meta) + end, + + on_receive_fields = function(pos, _, fields) + if fields.set then + local meta = minetest.get_meta(pos) + meta:set_string("group", fields.group) + update_formspec(meta) + end + end +}) diff --git a/readme.md b/readme.md index 6245300..e237627 100644 --- a/readme.md +++ b/readme.md @@ -64,7 +64,7 @@ local mb_pos1 = { x=0, y=0, z=0 } local mb_pos2 = { x=1, y=1, z=1 } local options = { -- optional: delay between operations - delay = 0.2, + delay = 0.1, -- optional: called when done callback = function() print("done!") diff --git a/textures/mapblock_lib_metadata.png b/textures/mapblock_lib_metadata.png new file mode 100644 index 0000000..7beae93 Binary files /dev/null and b/textures/mapblock_lib_metadata.png differ