diff --git a/README.md b/README.md index 0b926c40b477736b21e4803ff97ba2ae1bd1483b..80cf1856301116acd816775d5ebb20a9c7624335 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Go get it! [DOWNLOAD IT NOW](https://github.com/minetest-mods/mesecons/archive/master.zip) -Now go ahead and install it like any other Minetest mod. Don't know how? Check out [the wonderful page about it](http://wiki.minetest.com/wiki/Mods) over at the Minetest Wiki. For your convenience, here's a quick summary: +Now go ahead and install it like any other Minetest mod. Don't know how? Check out [the wonderful page about it](https://wiki.minetest.net/Mods) over at the official Minetest Wiki. For your convenience, here's a quick summary: 1. If Mesecons is still in a ZIP file, extract the folder inside to somewhere on the computer. 2. Make sure that when you open the folder, you can directly find `README.md` in the listing. If you just see another folder, move that folder up one level and delete the old one. @@ -43,6 +43,8 @@ Or maybe a [comprehensive reference](http://mesecons.net/items.html) is your sty An overview for the very newest of new beginners? How does [this one](http://uberi.mesecons.net/projects/MeseconsBasics/index.html) look? +There is also a [wiki page](https://wiki.minetest.net/Mods/Mesecons) dedicated to this mod. + Want to get more into building? Why not check out the [Mesecons Laboratory](http://uberi.mesecons.net/), a website dedicated to advanced Mesecons builders? Want to contribute to Mesecons itself? Check out the [source code](https://github.com/minetest-mods/mesecons)! diff --git a/mesecons/oldwires.lua b/mesecons/oldwires.lua index 43bf3025a40a732e83c443767bcd7d2de2ad6fb1..8d6c6b1f87e4477241f0082d262b5da073fb6226 100644 --- a/mesecons/oldwires.lua +++ b/mesecons/oldwires.lua @@ -30,7 +30,7 @@ minetest.register_node("mesecons:mesecon_on", { }, groups = {dig_immediate=3, not_in_creaive_inventory=1, mesecon=1}, drop = "mesecons:mesecon_off 1", - light_source = default.LIGHT_MAX-11, + light_source = minetest.LIGHT_MAX-11, mesecons = {conductor={ state = mesecon.state.on, offstate = "mesecons:mesecon_off" diff --git a/mesecons/settings.lua b/mesecons/settings.lua index 1ebbfde4004ad78f192655f5b2f58f1e296167e6..02207073c524c54a735d8a09db52a0291cbed96b 100644 --- a/mesecons/settings.lua +++ b/mesecons/settings.lua @@ -1,15 +1,15 @@ -- SETTINGS function mesecon.setting(setting, default) if type(default) == "boolean" then - local read = minetest.setting_getbool("mesecon."..setting) + local read = minetest.settings:get_bool("mesecon."..setting) if read == nil then return default else return read end elseif type(default) == "string" then - return minetest.setting_get("mesecon."..setting) or default + return minetest.settings:get("mesecon."..setting) or default elseif type(default) == "number" then - return tonumber(minetest.setting_get("mesecon."..setting) or default) + return tonumber(minetest.settings:get("mesecon."..setting) or default) end end diff --git a/mesecons_button/init.lua b/mesecons_button/init.lua index 104fc5bb6a027b2319ab0819faef21caca721019..8764fbc7a49758da5668e89f1943ee72bdbe5603 100644 --- a/mesecons_button/init.lua +++ b/mesecons_button/init.lua @@ -73,7 +73,7 @@ minetest.register_node("mesecons_button:button_on", { legacy_wallmounted = true, walkable = false, on_rotate = false, - light_source = default.LIGHT_MAX-7, + light_source = minetest.LIGHT_MAX-7, sunlight_propagates = true, selection_box = { type = "fixed", diff --git a/mesecons_delayer/init.lua b/mesecons_delayer/init.lua index 0cbfd42c035fa5d2e56fbbcadc7a6ebf3023e25f..94450db820053fa6f141e25e12bba4c74796e500 100644 --- a/mesecons_delayer/init.lua +++ b/mesecons_delayer/init.lua @@ -158,6 +158,7 @@ minetest.register_node("mesecons_delayer:delayer_on_"..tostring(i), { end, delayer_time = delaytime, delayer_offstate = "mesecons_delayer:delayer_off_"..tostring(i), + sounds = default.node_sound_stone_defaults(), mesecons = { receptor = { diff --git a/mesecons_extrawires/corner.lua b/mesecons_extrawires/corner.lua index 8dc98667d4963f3ba951440061d018d0210f88ae..d33447a776e7169d08a2f5515dd6732c1503a306 100644 --- a/mesecons_extrawires/corner.lua +++ b/mesecons_extrawires/corner.lua @@ -2,13 +2,14 @@ local screwdriver_exists = minetest.global_exists("screwdriver") local corner_nodebox = { type = "fixed", + -- ±0.001 is to prevent z-fighting fixed = {{ -16/32-0.001, -17/32, -3/32, 0, -13/32, 3/32 }, { -3/32, -17/32, -16/32+0.001, 3/32, -13/32, 3/32}} } local corner_selectionbox = { type = "fixed", - fixed = { -16/32-0.001, -18/32, -16/32, 5/32, -12/32, 5/32 }, + fixed = { -16/32, -16/32, -16/32, 5/32, -12/32, 5/32 }, } local corner_get_rules = function (node) @@ -42,6 +43,7 @@ minetest.register_node("mesecons_extrawires:corner_on", { node_box = corner_nodebox, groups = {dig_immediate = 3, not_in_creative_inventory = 1}, drop = "mesecons_extrawires:corner_off", + sounds = default.node_sound_defaults(), mesecons = {conductor = { state = mesecon.state.on, @@ -71,6 +73,7 @@ minetest.register_node("mesecons_extrawires:corner_off", { selection_box = corner_selectionbox, node_box = corner_nodebox, groups = {dig_immediate = 3}, + sounds = default.node_sound_defaults(), mesecons = {conductor = { state = mesecon.state.off, diff --git a/mesecons_extrawires/crossover.lua b/mesecons_extrawires/crossover.lua index 4aefbbcec50fe220dc4cb1f768b867dc8249e5f8..2656d6129e72f923a7d023e54b4a09444db83e1b 100644 --- a/mesecons_extrawires/crossover.lua +++ b/mesecons_extrawires/crossover.lua @@ -32,8 +32,9 @@ minetest.register_node("mesecons_extrawires:crossover_off", { is_ground_content = false, walkable = false, stack_max = 99, - selection_box = {type="fixed", fixed={-16/32-0.0001, -18/32, -16/32-0.001, 16/32+0.001, -5/32, 16/32+0.001}}, + selection_box = {type="fixed", fixed={-16/32, -16/32, -16/32, 16/32, -5/32, 16/32}}, groups = {dig_immediate=3, mesecon=3}, + sounds = default.node_sound_defaults(), mesecons = { conductor = { states = crossover_states, @@ -58,8 +59,9 @@ minetest.register_node("mesecons_extrawires:crossover_01", { is_ground_content = false, walkable = false, stack_max = 99, - selection_box = {type="fixed", fixed={-16/32-0.0001, -18/32, -16/32-0.001, 16/32+0.001, -5/32, 16/32+0.001}}, + selection_box = {type="fixed", fixed={-16/32, -16/32, -16/32, 16/32, -5/32, 16/32}}, groups = {dig_immediate=3, mesecon=3, not_in_creative_inventory=1}, + sounds = default.node_sound_defaults(), mesecons = { conductor = { states = crossover_states, @@ -84,8 +86,9 @@ minetest.register_node("mesecons_extrawires:crossover_10", { is_ground_content = false, walkable = false, stack_max = 99, - selection_box = {type="fixed", fixed={-16/32-0.0001, -18/32, -16/32-0.001, 16/32+0.001, -5/32, 16/32+0.001}}, + selection_box = {type="fixed", fixed={-16/32, -16/32, -16/32, 16/32, -5/32, 16/32}}, groups = {dig_immediate=3, mesecon=3, not_in_creative_inventory=1}, + sounds = default.node_sound_defaults(), mesecons = { conductor = { states = crossover_states, @@ -110,8 +113,9 @@ minetest.register_node("mesecons_extrawires:crossover_on", { is_ground_content = false, walkable = false, stack_max = 99, - selection_box = {type="fixed", fixed={-16/32-0.0001, -18/32, -16/32-0.001, 16/32+0.001, -5/32, 16/32+0.001}}, + selection_box = {type="fixed", fixed={-16/32, -16/32, -16/32, 16/32, -5/32, 16/32}}, groups = {dig_immediate=3, mesecon=3, not_in_creative_inventory=1}, + sounds = default.node_sound_defaults(), mesecons = { conductor = { states = crossover_states, diff --git a/mesecons_extrawires/tjunction.lua b/mesecons_extrawires/tjunction.lua index 53a69f6709aede8ae39ab38c8e71a3972fe4d7b4..77c42906777882ff3b973d90c6562538bc8dbeba 100644 --- a/mesecons_extrawires/tjunction.lua +++ b/mesecons_extrawires/tjunction.lua @@ -2,13 +2,14 @@ local screwdriver_exists = minetest.global_exists("screwdriver") local tjunction_nodebox = { type = "fixed", + -- ±0.001 is to prevent z-fighting fixed = {{ -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 }, { -3/32, -17/32, -16/32+0.001, 3/32, -13/32, -3/32},} } local tjunction_selectionbox = { type = "fixed", - fixed = { -16/32-0.001, -18/32, -16/32, 16/32+0.001, -12/32, 7/32 }, + fixed = { -16/32, -16/32, -16/32, 16/32, -12/32, 7/32 }, } local tjunction_get_rules = function (node) @@ -43,6 +44,7 @@ minetest.register_node("mesecons_extrawires:tjunction_on", { node_box = tjunction_nodebox, groups = {dig_immediate = 3, not_in_creative_inventory = 1}, drop = "mesecons_extrawires:tjunction_off", + sounds = default.node_sound_defaults(), mesecons = {conductor = { state = mesecon.state.on, @@ -72,6 +74,7 @@ minetest.register_node("mesecons_extrawires:tjunction_off", { selection_box = tjunction_selectionbox, node_box = tjunction_nodebox, groups = {dig_immediate = 3}, + sounds = default.node_sound_defaults(), mesecons = {conductor = { state = mesecon.state.off, diff --git a/mesecons_extrawires/vertical.lua b/mesecons_extrawires/vertical.lua index 1cff013d29d9c75e6c12b08cbed96504a1ec34eb..1543194ea4422c82390b7d2455e567151c0fb451 100644 --- a/mesecons_extrawires/vertical.lua +++ b/mesecons_extrawires/vertical.lua @@ -88,7 +88,8 @@ mesecon.register_node("mesecons_extrawires:vertical", { is_vertical_conductor = true, drop = "mesecons_extrawires:vertical_off", after_place_node = vertical_update, - after_dig_node = vertical_update + after_dig_node = vertical_update, + sounds = default.node_sound_defaults(), },{ tiles = {"mesecons_wire_off.png"}, groups = {dig_immediate=3}, @@ -121,7 +122,8 @@ mesecon.register_node("mesecons_extrawires:vertical_top", { is_vertical_conductor = true, drop = "mesecons_extrawires:vertical_off", after_place_node = vertical_update, - after_dig_node = vertical_update + after_dig_node = vertical_update, + sounds = default.node_sound_defaults(), },{ tiles = {"mesecons_wire_off.png"}, mesecons = {conductor = { @@ -152,7 +154,8 @@ mesecon.register_node("mesecons_extrawires:vertical_bottom", { is_vertical_conductor = true, drop = "mesecons_extrawires:vertical_off", after_place_node = vertical_update, - after_dig_node = vertical_update + after_dig_node = vertical_update, + sounds = default.node_sound_defaults(), },{ tiles = {"mesecons_wire_off.png"}, mesecons = {conductor = { diff --git a/mesecons_hydroturbine/init.lua b/mesecons_hydroturbine/init.lua index 395b8f6e2dc303a921a2f4a0415a4d5d2018285a..afa21e97479acf89fcead2c32f06e7275b65a6b4 100644 --- a/mesecons_hydroturbine/init.lua +++ b/mesecons_hydroturbine/init.lua @@ -22,7 +22,7 @@ minetest.register_node("mesecons_hydroturbine:hydro_turbine_off", { type = "fixed", fixed = { -0.5, -0.5, -0.5, 0.5, 1.5, 0.5 }, }, - sounds = default.node_sound_stone_defaults(), + sounds = default.node_sound_metal_defaults(), mesecons = {receptor = { state = mesecon.state.off }}, @@ -51,7 +51,7 @@ minetest.register_node("mesecons_hydroturbine:hydro_turbine_on", { type = "fixed", fixed = { -0.5, -0.5, -0.5, 0.5, 1.5, 0.5 }, }, - sounds = default.node_sound_stone_defaults(), + sounds = default.node_sound_metal_defaults(), mesecons = {receptor = { state = mesecon.state.on }}, diff --git a/mesecons_insulated/init.lua b/mesecons_insulated/init.lua index 92ff639da4945ad41cd73a972f2018e05f3ac089..ca55b9ab6bd990072cc389728141e7df04323ab6 100644 --- a/mesecons_insulated/init.lua +++ b/mesecons_insulated/init.lua @@ -27,14 +27,16 @@ minetest.register_node("mesecons_insulated:insulated_on", { sunlight_propagates = true, selection_box = { type = "fixed", - fixed = { -16/32-0.001, -18/32, -7/32, 16/32+0.001, -12/32, 7/32 } + fixed = { -16/32, -16/32, -7/32, 16/32, -12/32, 7/32 } }, node_box = { type = "fixed", + -- ±0.001 is to prevent z-fighting fixed = { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 } }, groups = {dig_immediate = 3, not_in_creative_inventory = 1}, drop = "mesecons_insulated:insulated_off", + sounds = default.node_sound_defaults(), mesecons = {conductor = { state = mesecon.state.on, offstate = "mesecons_insulated:insulated_off", @@ -62,13 +64,15 @@ minetest.register_node("mesecons_insulated:insulated_off", { sunlight_propagates = true, selection_box = { type = "fixed", - fixed = { -16/32-0.001, -18/32, -7/32, 16/32+0.001, -12/32, 7/32 } + fixed = { -16/32, -16/32, -7/32, 16/32, -12/32, 7/32 } }, node_box = { type = "fixed", + -- ±0.001 is to prevent z-fighting fixed = { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 } }, groups = {dig_immediate = 3}, + sounds = default.node_sound_defaults(), mesecons = {conductor = { state = mesecon.state.off, onstate = "mesecons_insulated:insulated_on", diff --git a/mesecons_luacontroller/init.lua b/mesecons_luacontroller/init.lua index 325e16fcf96ab202dd2492adb55fdda42d8c3e9e..e91d460c230b00f5bc0cc8f11c1abd0f7a1c2a92 100644 --- a/mesecons_luacontroller/init.lua +++ b/mesecons_luacontroller/init.lua @@ -198,7 +198,11 @@ end ------------------------- local function safe_print(param) + local string_meta = getmetatable("") + local sandbox = string_meta.__index + string_meta.__index = string -- Leave string sandbox temporarily print(dump(param)) + string_meta.__index = sandbox -- Restore string sandbox end local function safe_date() @@ -548,6 +552,7 @@ local function save_memory(pos, meta, mem) if (#memstring <= memsize_max) then meta:set_string("lc_memory", memstring) + meta:mark_as_private("lc_memory") else print("Error: Luacontroller memory overflow. "..memsize_max.." bytes available, " ..#memstring.." required. Controller overheats.") @@ -611,6 +616,7 @@ end local function reset_formspec(meta, code, errmsg) meta:set_string("code", code) + meta:mark_as_private("code") code = minetest.formspec_escape(code or "") errmsg = minetest.formspec_escape(tostring(errmsg or "")) meta:set_string("formspec", "size[12,10]".. @@ -718,7 +724,7 @@ local function on_receive_fields(pos, form_name, fields, sender) local ok, err = set_program(pos, fields.code) if not ok then -- it's not an error from the server perspective - minetest.log("action", "Lua controller programming error: " .. err) + minetest.log("action", "Lua controller programming error: " .. tostring(err)) end end diff --git a/mesecons_microcontroller/init.lua b/mesecons_microcontroller/init.lua index 46272b99ca819efc7604b6e5704e4a9de68dd5d7..9b1bf3b7edabbb0f2c4bc08667e70d59d2ee69ae 100644 --- a/mesecons_microcontroller/init.lua +++ b/mesecons_microcontroller/init.lua @@ -103,6 +103,12 @@ minetest.register_node(nodename, { meta:set_string("eeprom", r) end, on_receive_fields = function(pos, formanme, fields, sender) + local player_name = sender:get_player_name() + if minetest.is_protected(pos, player_name) and + not minetest.check_player_privs(player_name, {protection_bypass=true}) then + minetest.record_protection_violation(pos, player_name) + return + end local meta = minetest.get_meta(pos) if fields.band then fields.code = "sbi(C, A&B) :A and B are inputs, C is output" @@ -272,7 +278,7 @@ yc.parsecode = function(code, pos) end yc.parse_get_command = function(code, starti) - i = starti + local i = starti local s while s ~= "" do s = string.sub(code, i, i) @@ -298,7 +304,7 @@ yc.parse_get_command = function(code, starti) end yc.parse_get_params = function(code, starti) - i = starti + local i = starti local s local params = {} local is_string = false @@ -321,7 +327,7 @@ yc.parse_get_params = function(code, starti) end yc.parse_get_eeprom_param = function(cond, starti) - i = starti + local i = starti local s local addr while s ~= "" do @@ -488,7 +494,7 @@ end --Condition parsing yc.command_if_getcondition = function(code, starti) - i = starti + local i = starti local s local brackets = 1 --1 Bracket to close while s ~= "" do diff --git a/mesecons_movestones/init.lua b/mesecons_movestones/init.lua index 76fd3cd35b7351857676c1084b86dbc61fa69d43..cd8229405398cb8a34c159ce75209799d1985f75 100644 --- a/mesecons_movestones/init.lua +++ b/mesecons_movestones/init.lua @@ -60,14 +60,16 @@ function mesecon.register_movestone(name, def, is_sticky, is_vertical) minetest.get_node_timer(frontpos):start(timer_interval) -- ### Step 3: If sticky, pull stack behind ### - if not is_sticky then - return - end - local backpos = vector.subtract(pos, direction) - success, stack, oldstack = mesecon.mvps_pull_all(backpos, direction, max_pull) - if success then - mesecon.mvps_move_objects(backpos, vector.multiply(direction, -1), oldstack, -1) + if is_sticky then + local backpos = vector.subtract(pos, direction) + success, stack, oldstack = mesecon.mvps_pull_all(backpos, direction, max_pull) + if success then + mesecon.mvps_move_objects(backpos, vector.multiply(direction, -1), oldstack, -1) + end end + + -- ### Step 4: Let things fall ### + minetest.check_for_falling(vector.add(pos, {x=0, y=1, z=0})) end def.is_ground_content = false @@ -141,12 +143,12 @@ mesecon.register_movestone("mesecons_movestones:movestone_vertical", { mesecon.register_movestone("mesecons_movestones:sticky_movestone_vertical", { tiles = { - "jeija_movestone_side.png", - "jeija_movestone_side.png", - "jeija_sticky_movestone.png^[transformFXR90", - "jeija_sticky_movestone.png^[transformR90", - "jeija_sticky_movestone.png^[transformFXR90", - "jeija_sticky_movestone.png^[transformR90", + "jeija_movestone_side.png^(mesecons_glue.png^[opacity:127)", + "jeija_movestone_side.png^(mesecons_glue.png^[opacity:127)", + "jeija_movestone_arrows.png^[transformFXR90", + "jeija_movestone_arrows.png^[transformR90", + "jeija_movestone_arrows.png^[transformFXR90", + "jeija_movestone_arrows.png^[transformR90", }, groups = {cracky = 3}, description = "Vertical Sticky Movestone", diff --git a/mesecons_noteblock/init.lua b/mesecons_noteblock/init.lua index 9fa59eaf7d9072a9f4f0a027e03d3d2b20c7ff28..22755ef28f485f771732f970cdc2ce39c542ece5 100644 --- a/mesecons_noteblock/init.lua +++ b/mesecons_noteblock/init.lua @@ -45,7 +45,7 @@ local soundnames = { local node_sounds = { ["default:glass"] = "mesecons_noteblock_hihat", ["default:stone"] = "mesecons_noteblock_kick", - ["default:lava_source"] = "fire_large", + ["default:lava_source"] = "fire_fire", ["default:chest"] = "mesecons_noteblock_snare", ["default:tree"] = "mesecons_noteblock_crash", ["default:wood"] = "mesecons_noteblock_litecrash", diff --git a/mesecons_pistons/init.lua b/mesecons_pistons/init.lua index e10b604c055ba2a92288560e65658e80be1d23b9..386cffa252f064a8f0bbd5210a99f984073cfc37 100644 --- a/mesecons_pistons/init.lua +++ b/mesecons_pistons/init.lua @@ -326,6 +326,7 @@ minetest.register_node("mesecons_pistons:piston_pusher_normal", { node_box = piston_pusher_box, on_rotate = piston_rotate_pusher, drop = "", + sounds = default.node_sound_wood_defaults(), }) -- Sticky ones @@ -403,6 +404,7 @@ minetest.register_node("mesecons_pistons:piston_pusher_sticky", { node_box = piston_pusher_box, on_rotate = piston_rotate_pusher, drop = "", + sounds = default.node_sound_wood_defaults(), }) diff --git a/mesecons_powerplant/init.lua b/mesecons_powerplant/init.lua index 28cad2590c0cd1c9d727f4949edee69bc7ba5784..356fb12ad57ed5173e835ac285f807ce2d2819c2 100644 --- a/mesecons_powerplant/init.lua +++ b/mesecons_powerplant/init.lua @@ -10,7 +10,7 @@ minetest.register_node("mesecons_powerplant:power_plant", { is_ground_content = false, walkable = false, groups = {dig_immediate=3, mesecon = 2}, - light_source = default.LIGHT_MAX-9, + light_source = minetest.LIGHT_MAX-9, description="Power Plant", selection_box = { type = "fixed", diff --git a/mesecons_pressureplates/init.lua b/mesecons_pressureplates/init.lua index b44736a82ffdcf814b0e7ad31af2081df7e99cf2..f5411e84a01e6a66e49afbfc5061ce81b8599a39 100644 --- a/mesecons_pressureplates/init.lua +++ b/mesecons_pressureplates/init.lua @@ -42,8 +42,18 @@ end -- tiles_on: textures of the pressure plate when active -- image: inventory and wield image of the pressure plate -- recipe: crafting recipe of the pressure plate +-- groups: groups +-- sounds: sound table + +function mesecon.register_pressure_plate(basename, description, textures_off, textures_on, image_w, image_i, recipe, groups, sounds) + local groups_off, groups_on + if not groups then + groups = {} + end + local groups_off = table.copy(groups) + local groups_on = table.copy(groups) + groups_on.not_in_creative_inventory = 1 -function mesecon.register_pressure_plate(basename, description, textures_off, textures_on, image_w, image_i, recipe) mesecon.register_node(basename, { drawtype = "nodebox", inventory_image = image_i, @@ -56,17 +66,18 @@ function mesecon.register_pressure_plate(basename, description, textures_off, te on_construct = function(pos) minetest.get_node_timer(pos):start(mesecon.setting("pplate_interval", 0.1)) end, + sounds = sounds, },{ mesecons = {receptor = { state = mesecon.state.off, rules = mesecon.rules.pplate }}, node_box = pp_box_off, selection_box = pp_box_off, - groups = {snappy = 2, oddly_breakable_by_hand = 3}, + groups = groups_off, tiles = textures_off },{ mesecons = {receptor = { state = mesecon.state.on, rules = mesecon.rules.pplate }}, node_box = pp_box_on, selection_box = pp_box_on, - groups = {snappy = 2, oddly_breakable_by_hand = 3, not_in_creative_inventory = 1}, + groups = groups_on, tiles = textures_on }) @@ -83,7 +94,9 @@ mesecon.register_pressure_plate( {"jeija_pressure_plate_wood_on.png","jeija_pressure_plate_wood_on.png","jeija_pressure_plate_wood_on_edges.png"}, "jeija_pressure_plate_wood_wield.png", "jeija_pressure_plate_wood_inv.png", - {{"default:mese_crystal_fragment", "group:wood", "default:mese_crystal_fragment"}}) + {{"default:mese_crystal_fragment", "group:wood", "default:mese_crystal_fragment"}}, + { choppy = 3, oddly_breakable_by_hand = 3 }, + default.node_sound_wood_defaults()) mesecon.register_pressure_plate( "mesecons_pressureplates:pressure_plate_stone", @@ -92,4 +105,6 @@ mesecon.register_pressure_plate( {"jeija_pressure_plate_stone_on.png","jeija_pressure_plate_stone_on.png","jeija_pressure_plate_stone_on_edges.png"}, "jeija_pressure_plate_stone_wield.png", "jeija_pressure_plate_stone_inv.png", - {{"default:mese_crystal_fragment", "default:cobble", "default:mese_crystal_fragment"}}) + {{"default:mese_crystal_fragment", "default:cobble", "default:mese_crystal_fragment"}}, + { cracky = 3, oddly_breakable_by_hand = 3 }, + default.node_sound_stone_defaults()) diff --git a/mesecons_receiver/init.lua b/mesecons_receiver/init.lua index edf6622cd780e8f58e9841af6b19832ef08bde0f..476131de7ad9b6f34fa40552e4dd8036205db7fb 100644 --- a/mesecons_receiver/init.lua +++ b/mesecons_receiver/init.lua @@ -56,6 +56,7 @@ mesecon.register_node("mesecons_receiver:receiver", { }, groups = {dig_immediate = 3, not_in_creative_inventory = 1}, drop = "mesecons:wire_00000000_off", + sounds = default.node_sound_defaults(), }, { tiles = { "receiver_top_off.png", @@ -104,6 +105,7 @@ mesecon.register_node("mesecons_receiver:receiver_up", { }, groups = {dig_immediate = 3, not_in_creative_inventory = 1}, drop = "mesecons:wire_00000000_off", + sounds = default.node_sound_defaults(), }, { tiles = {"mesecons_wire_off.png"}, mesecons = {conductor = { @@ -148,6 +150,7 @@ mesecon.register_node("mesecons_receiver:receiver_down", { }, groups = {dig_immediate = 3, not_in_creative_inventory = 1}, drop = "mesecons:wire_00000000_off", + sounds = default.node_sound_defaults(), }, { tiles = {"mesecons_wire_off.png"}, mesecons = {conductor = { @@ -206,7 +209,6 @@ function mesecon.receiver_place(rcpt_pos) local param2 = minetest.dir_to_facedir(minetest.facedir_to_dir(node.param2)) if string.find(nn.name, "mesecons:wire_") ~= nil then - minetest.dig_node(pos) minetest.set_node(pos, {name = rcvtype, param2 = param2}) mesecon.on_placenode(pos, nn) end @@ -215,8 +217,7 @@ end function mesecon.receiver_remove(rcpt_pos, dugnode) local pos = mesecon.receiver_get_pos_from_rcpt(rcpt_pos, dugnode.param2) local nn = minetest.get_node(pos) - if string.find(nn.name, "mesecons_receiver:receiver_") ~=nil then - minetest.dig_node(pos) + if string.find(nn.name, "mesecons_receiver:receiver_") ~= nil then local node = {name = "mesecons:wire_00000000_off"} minetest.set_node(pos, node) mesecon.on_placenode(pos, node) diff --git a/mesecons_torch/init.lua b/mesecons_torch/init.lua index 5f1d25a84bbb38d154e12d76a8eec7270863292d..867c9098b5ac385aa7743ecf6f16c99cff74be85 100644 --- a/mesecons_torch/init.lua +++ b/mesecons_torch/init.lua @@ -60,6 +60,7 @@ minetest.register_node("mesecons_torch:mesecon_torch_off", { selection_box = torch_selectionbox, groups = {dig_immediate = 3, not_in_creative_inventory = 1}, drop = "mesecons_torch:mesecon_torch_on", + sounds = default.node_sound_defaults(), mesecons = {receptor = { state = mesecon.state.off, rules = torch_get_output_rules @@ -79,8 +80,9 @@ minetest.register_node("mesecons_torch:mesecon_torch_on", { paramtype2 = "wallmounted", selection_box = torch_selectionbox, groups = {dig_immediate=3}, - light_source = default.LIGHT_MAX-5, + light_source = minetest.LIGHT_MAX-5, description="Mesecon Torch", + sounds = default.node_sound_defaults(), mesecons = {receptor = { state = mesecon.state.on, rules = torch_get_output_rules diff --git a/mesecons_wires/init.lua b/mesecons_wires/init.lua index 1766a993e33e01e3c01f21604fa12cfd1155d16e..3ca9cbcc44915f621d890288a414b0c053bf2d80 100644 --- a/mesecons_wires/init.lua +++ b/mesecons_wires/init.lua @@ -215,6 +215,7 @@ local function register_wires() walkable = false, drop = "mesecons:wire_00000000_off", mesecon_wire = true, + sounds = default.node_sound_defaults(), on_rotate = false, }, {tiles = tiles_off, mesecons = meseconspec_off, groups = groups_off}, {tiles = tiles_on, mesecons = meseconspec_on, groups = groups_on}) diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..6f1bae5d1117876b63339eb861a40bd46b87f407 Binary files /dev/null and b/screenshot.png differ diff --git a/settingtypes.txt b/settingtypes.txt new file mode 100644 index 0000000000000000000000000000000000000000..8be7be61bbb6c13fb5aff9dc41b13cb194b59784 --- /dev/null +++ b/settingtypes.txt @@ -0,0 +1,43 @@ +[mesecons] + +mesecon.resumetime (Startup delay) int 4 1 10 +mesecon.overheat_max (Device heat limit) int 20 1 100 +mesecon.cooldown_time (Device cooldown time) float 2.0 0.1 10.0 +mesecon.cooldown_granularity (Cooldown step length) float 0.5 0.0 1.0 + + +[mesecons_blinkyplant] + +mesecon.blinky_plant_interval (Plant blinking interval) int 3 1 5 + + +[mesecons_detector] + +mesecon.detector_radius (Player detector scanning radius) int 6 3 16 +mesecon.node_detector_distance_max (Node detector distance limit) int 10 1 16 + + +[mesecons_luacontroller] + +mesecon.luacontroller_string_rep_max (string:rep result length limit) int 64000 1000 1000000 +mesecon.luacontroller_digiline_maxlen (Digiline message size limit) int 50000 1000 1000000 +mesecon.luacontroller_maxevents (Controller execution time limit) int 10000 1000 100000 +mesecon.luacontroller_memsize (Controller memory limit) int 100000 10000 1000000 + + +[mesecons_movestones] + +mesecon.movestone_speed (Speed) int 3 1 10 +mesecon.movestone_max_push (Max push) int 50 1 100 +mesecon.movestone_max_pull (Max pull) int 50 1 100 + + +[mesecons_pistons] + +mesecon.piston_max_push (Max push) int 15 1 100 +mesecon.piston_max_pull (Max pull) int 15 1 100 + + +[mesecons_pressureplates] + +mesecon.pplate_interval (Check interval) float 0.1 0.1 1.0