From dafff876553f6531175872637edca1633c732e3b Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Mon, 20 Feb 2017 18:37:09 +0100 Subject: [PATCH 1/6] Add a contribution guide --- CONTRIBUTING.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..56fb504 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,10 @@ +# Contribution Guide + +Thank you for your interest in this mod! Before contributing, be sure to know +about these few guidelines: + +- Contributions have to be under the zlib license (or compatible) for code, + and CC BY-SA 3.0 license (or compatible) for assets. +- Make sure to update the change log, keeping the + [change log format](http://keepachangelog.com/) we use. +- Don't bump the version yourself. Maintainers will do this when necessary. From 7c45f1d53ca25cbda89f7f124925b6cb18d06b95 Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Sun, 8 Oct 2017 00:33:42 +0200 Subject: [PATCH 2/6] Update the README, CHANGELOG, NODES and CONTRIBUTING documents --- CHANGELOG.md | 12 +++++--- CONTRIBUTING.md | 14 +++++----- NODES.md | 61 ++++++++++++++-------------------------- README.md | 74 +++++++++++++++++++++++++++++++++++++++++++++---- 4 files changed, 104 insertions(+), 57 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e3c422f..dadd058 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,14 @@ -# Change Log +# Changelog All notable changes to this project will be documented in this file. -The format is based on [Keep a Changelog](http://keepachangelog.com/) -and this project adheres to [Semantic Versioning](http://semver.org/). +The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). + +## [Unreleased] ## [1.0.0] - 2017-02-19 -- Initial versioned release. \ No newline at end of file +- Initial versioned release. + +[Unreleased]: https://github.com/minetest-mods/moreblocks/compare/v1.0.0...HEAD diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 56fb504..f656b22 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,10 +1,10 @@ -# Contribution Guide +# Contributing to Map Tools -Thank you for your interest in this mod! Before contributing, be sure to know -about these few guidelines: +Thank you for your interest in Map Tools! Before contributing, +be sure to know about these few guidelines: -- Contributions have to be under the zlib license (or compatible) for code, - and CC BY-SA 3.0 license (or compatible) for assets. -- Make sure to update the change log, keeping the - [change log format](http://keepachangelog.com/) we use. +- Contributions have to be licensed under the zlib license (or compatible) + for code, and CC BY-SA 3.0 (or compatible) for assets. +- Make sure to update the changelog, keeping the + [changelog format](http://keepachangelog.com/en/1.0.0/) we use. - Don't bump the version yourself. Maintainers will do this when necessary. diff --git a/NODES.md b/NODES.md index f5ce3cc..5e0c079 100644 --- a/NODES.md +++ b/NODES.md @@ -1,45 +1,26 @@ -Item names for spawning the items using /give or /giveme -======================================================== +# Item names for spawning the items using /give or /giveme -Items ------ +## Items -* `admin_pick:` magenta pickaxe, infinite durability, mines everything including unbreakable blocks instantly. No drops. Don't put this pickaxe in the hands of a griefer, of course. +- `admin_pick`: magenta pickaxe, infinite durability, mines everything including unbreakable blocks instantly. No drops. Don't put this pickaxe in the hands of a griefer, of course. +- `admin_pick_with_drops`: same as admin pickaxe, but drops stuff. +- `infinite_fuel`: fuel lasting for a (near)-infinite time. Don't worry about the "near" * it lasts for about 50 in-real-life years. +- `super_apple`: a yellow apple which heals 20 HP. +- `copper_coin`, +- `silver_coin`, +- `gold_coin`: these have nothing to do with the More Ores mod; they can be used as a currency for trading, or as an universal currency for mods that add shops. -* `admin_pick_with_drops:` same as admin pickaxe, but drops stuff. - -* `infinite_fuel:` fuel lasting for a (near)-infinite time. Don't worry about the "near" * it lasts for about 50 in-real-life years. - -* `super_apple:` a yellow apple which heals 20 HP. - -* `copper_coin,` -* `silver_coin,` -* `gold_coin:` these have nothing to do with the More Ores mod; they can be used as a currency for trading, or as an universal currency for mods that add shops. - -Blocks ------- +## Blocks **[!]** denotes an unpointable, unbreakable block; be very careful with them, they cannot be removed by hand (they can only be removed with WorldEdit or similar). - - -* `(block)_u` : unbreakable, non-flammable, non-falling, non-decaying blocks, most common blocks have their unbreakable form (examples: maptools:stone or maptools:wood for unbreakable stone/wood). Examples: `stone_u`, `wood_u`, `glass_u`, … - -* `full_grass:` unbreakable block with the grass texture on all sides. - -* `player_clip:` **[!]** invisible block, not pointable. - -* `full_clip:` invisible block, pointable. Also available as a thin face: full_clip_face. - -* `smoke_block:` some smoke (does not harm players or entities). - -* `no_build:` **[!]** very basic building prevention. - -* `no_interact:` prevents interacting through the block (opening chests, furnaces, attacking entities, …). - -* `damage_(1…5):` **[!]** damaging blocks. The damage is in half hearts and ranges from 1 to 5 (0.5 to 2.5 hearts damage every second). - -* `kill:` **[!]** instant kill (deals 10 heart damage) blocks. - -* `light_block:` **[!]** invisible non-solid block, prevents light from passing through. - -* `light_bulb:` **[!]** invisible non-solid block, emitting a good amount of light. +- `(block)_u` : unbreakable, non-flammable, non-falling, non-decaying blocks, most common blocks have their unbreakable form (examples: maptools:stone or maptools:wood for unbreakable stone/wood). Examples: `stone_u`, `wood_u`, `glass_u`, … +- `full_grass`: unbreakable block with the grass texture on all sides. +- `player_clip`: **[!]** invisible block, not pointable. +- `full_clip`: invisible block, pointable. Also available as a thin face: full_clip_face. +- `smoke_block`: some smoke (does not harm players or entities). +- `no_build`: **[!]** very basic building prevention. +- `no_interact`: prevents interacting through the block (opening chests, furnaces, attacking entities, …). +- `damage_(1…5)`: **[!]** damaging blocks. The damage is in half hearts and ranges from 1 to 5 (0.5 to 2.5 hearts damage every second). +- `kill`: **[!]** instant kill (deals 10 heart damage) blocks. +- `light_block`: **[!]** invisible non-solid block, prevents light from passing through. +- `light_bulb`: **[!]** invisible non-solid block, emitting a good amount of light. diff --git a/README.md b/README.md index bd65652..7a14122 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,73 @@ -Map Tools -========= +# Map Tools -Map Tools for [Minetest](http://minetest.net), a free and open source infinite +Map Tools for [Minetest](https://www.minetest.net/), a free and open source infinite world block sandbox game. -To install, just clone this repository into your "mods" directory. +[**Forum topic**](https://forum.minetest.net/viewtopic.php?f=11&t=1882) -Map Tools code is licensed under the zlib license, textures are by Calinou and are licensed under CC BY-SA 3.0 Unported. +## Installation -**Forum topic:** +### Download the mod + +To install Map Tools, clone this Git repository into your Minetest's `mods/` +directory: + +``` +git clone https://github.com/minetest-mods/maptools.git +``` + +You can also +[download a ZIP archive](https://github.com/minetest-mods/maptools/archive/master.zip) +of Map Tools. If you do so, you will need to extract the archive, then rename +the resulting folder from `maptools-master` to `maptools` – this is +**absolutely** necessary to do, else, it won't work! + +### Enable the mod + +Once you have installed Map Tools, you need to enable it in Minetest. +The procedure is as follows: + +#### Using the client's main menu + +This is the easiest way to enable Map Tools when playing in singleplayer +(or on a server hosted from a client). + +1. Start Minetest and switch to the **Local Game** tab. +2. Select the world you want to enable Map Tools in. +3. Click **Configure**, then enable `maptools` by double-clicking it + (or ticking the **Enabled** checkbox). +4. Save the changes, then start a game on the world you enabled Map Tools on. +5. Map Tools should now be running on your world. + +#### Using a text editor + +This is the recommended way to enable the mod on a server without using a GUI. + +1. Make sure Minetest is not currently running (else, it will overwrite + the changes when exiting). +2. Open the world's `world.mt` file using a text editor. +3. Add the following line at the end of the file: + +``` +load_mod_maptools = true +``` + +If the line is already present in the file, then replace `false` with `true` on that line. + +4. Save the file, then start a game on the world you enabled Map Tools on. +5. Map Tools should now be running on your world. + +## Version compatibility + +Map Tools is currently primarily tested with Minetest 0.4.16. +It may or may not work with newer or older versions. Issues arising in older +versions than 0.4.16 will generally not be fixed. + +## License + +Copyright © 2012-2017 Hugo Locurcio and contributors + +- Map Tools code is licensed under the zlib license, see + [`LICENSE.md`](LICENSE.md) for details. +- Unless otherwise specified, Map Tools textures are licensed under + [CC BY-SA 3.0 Unported](https://creativecommons.org/licenses/by-sa/3.0/). From fcb4dc587567e016fb34b04748a4ce0da9c77184 Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Sun, 8 Oct 2017 00:35:53 +0200 Subject: [PATCH 3/6] Fix the URL of 1.0.0...HEAD version comparison --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dadd058..882b5e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,4 +11,4 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Initial versioned release. -[Unreleased]: https://github.com/minetest-mods/moreblocks/compare/v1.0.0...HEAD +[Unreleased]: https://github.com/minetest-mods/maptools/compare/v1.0.0...HEAD From 7bb6ff48e4fc5948d5f42815c57c9b6153c5faf5 Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Sun, 22 Apr 2018 00:15:52 +0200 Subject: [PATCH 4/6] Remove brackets around the initial version number in the changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 882b5e9..0830e62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] -## [1.0.0] - 2017-02-19 +## 1.0.0 - 2017-02-19 - Initial versioned release. From 7459fc338901767cd335c5e24306df84ec0bc657 Mon Sep 17 00:00:00 2001 From: Thomas--S Date: Sun, 22 Jul 2018 13:22:41 +0200 Subject: [PATCH 5/6] Replace old nodeupdate() with new minetest.check_for_falling() (#7) --- tools.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools.lua b/tools.lua index e42d2f5..b2f5a8d 100644 --- a/tools.lua +++ b/tools.lua @@ -56,6 +56,6 @@ minetest.register_on_punchnode(function(pos, node, puncher) and minetest.get_node(pos).name ~= "air" then minetest.log("action", puncher:get_player_name() .. " digs " .. minetest.get_node(pos).name .. " at " .. minetest.pos_to_string(pos) .. " using an Admin Pickaxe.") minetest.remove_node(pos) -- The node is removed directly, which means it even works on non-empty containers and group-less nodes. - nodeupdate(pos) -- Run node update actions like falling nodes. + minetest.check_for_falling(pos) -- Run node update actions like falling nodes. end end) From 106bba39b9df0fde96a80654add64d1c06a5504f Mon Sep 17 00:00:00 2001 From: shivajiva101 Date: Fri, 27 Jul 2018 11:10:09 +0100 Subject: [PATCH 6/6] Prevent tools & nodes from being dropped (#11) Adds a function to message a player that they cannot drop tools/nodes registered by maptools --- default_nodes.lua | 40 +++++++++++++++++++++++++++++++++++++--- init.lua | 5 +++++ nodes.lua | 27 +++++++++++++++++++++++++++ tools.lua | 2 ++ 4 files changed, 71 insertions(+), 3 deletions(-) diff --git a/default_nodes.lua b/default_nodes.lua index b7a2a98..eb74b4c 100644 --- a/default_nodes.lua +++ b/default_nodes.lua @@ -17,6 +17,7 @@ minetest.register_node("maptools:stone", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:stonebrick", { @@ -27,6 +28,7 @@ minetest.register_node("maptools:stonebrick", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:tree", { @@ -37,7 +39,8 @@ minetest.register_node("maptools:tree", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), - on_place = minetest.rotate_node + on_place = minetest.rotate_node, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:jungletree", { @@ -48,7 +51,8 @@ minetest.register_node("maptools:jungletree", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), - on_place = minetest.rotate_node + on_place = minetest.rotate_node, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:cactus", { @@ -59,7 +63,8 @@ minetest.register_node("maptools:cactus", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), - on_place = minetest.rotate_node + on_place = minetest.rotate_node, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:papyrus", { @@ -80,6 +85,7 @@ minetest.register_node("maptools:papyrus", { }, groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_leaves_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:dirt", { @@ -90,6 +96,7 @@ minetest.register_node("maptools:dirt", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:wood", { @@ -100,6 +107,7 @@ minetest.register_node("maptools:wood", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:junglewood", { @@ -110,6 +118,7 @@ minetest.register_node("maptools:junglewood", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:glass", { @@ -123,6 +132,7 @@ minetest.register_node("maptools:glass", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_glass_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:leaves", { @@ -135,6 +145,7 @@ minetest.register_node("maptools:leaves", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_leaves_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:sand", { @@ -145,6 +156,7 @@ minetest.register_node("maptools:sand", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_sand_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:gravel", { @@ -158,6 +170,7 @@ minetest.register_node("maptools:gravel", { footstep = {name="default_gravel_footstep", gain=0.35}, dug = {name="default_gravel_footstep", gain=0.6}, }), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:clay", { @@ -168,6 +181,7 @@ minetest.register_node("maptools:clay", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:desert_sand", { @@ -178,6 +192,7 @@ minetest.register_node("maptools:desert_sand", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_sand_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:sandstone", { @@ -188,6 +203,7 @@ minetest.register_node("maptools:sandstone", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:sandstone_brick", { @@ -198,6 +214,7 @@ minetest.register_node("maptools:sandstone_brick", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:desert_stone", { @@ -208,6 +225,7 @@ minetest.register_node("maptools:desert_stone", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:desert_cobble", { @@ -218,6 +236,7 @@ minetest.register_node("maptools:desert_cobble", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:desert_stonebrick", { @@ -228,6 +247,7 @@ minetest.register_node("maptools:desert_stonebrick", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:grass", { @@ -241,6 +261,7 @@ minetest.register_node("maptools:grass", { sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain = 0.4}, }), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:fullgrass", { @@ -253,6 +274,7 @@ minetest.register_node("maptools:fullgrass", { sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain=0.4}, }), + on_drop = maptools.drop_msg }) for slab_num = 1,3,1 do @@ -272,6 +294,7 @@ for slab_num = 1,3,1 do drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults({footstep = {name="default_grass_footstep", gain = 0.4}}), + on_drop = maptools.drop_msg }) end @@ -283,6 +306,7 @@ minetest.register_node("maptools:cobble", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:mossycobble", { @@ -293,6 +317,7 @@ minetest.register_node("maptools:mossycobble", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:brick", { @@ -303,6 +328,7 @@ minetest.register_node("maptools:brick", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:coalblock", { @@ -313,6 +339,7 @@ minetest.register_node("maptools:coalblock", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), + on_drop = maptools.drop_msg }) @@ -324,6 +351,7 @@ minetest.register_node("maptools:steelblock", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:goldblock", { @@ -334,6 +362,7 @@ minetest.register_node("maptools:goldblock", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:copperblock", { @@ -344,6 +373,7 @@ minetest.register_node("maptools:copperblock", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:bronzeblock", { @@ -354,6 +384,7 @@ minetest.register_node("maptools:bronzeblock", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:diamondblock", { @@ -364,6 +395,7 @@ minetest.register_node("maptools:diamondblock", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), + on_drop = maptools.drop_msg }) -- Farming: @@ -376,6 +408,7 @@ minetest.register_node("maptools:soil_wet", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, soil = 3, wet = 1, grassland = 1}, sounds = default.node_sound_dirt_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:desert_sand_soil_wet", { @@ -386,4 +419,5 @@ minetest.register_node("maptools:desert_sand_soil_wet", { tiles = {"farming_desert_sand_soil_wet.png", "farming_desert_sand_soil_wet_side.png"}, groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, soil = 3, wet = 1, desert = 1}, sounds = default.node_sound_sand_defaults(), + on_drop = maptools.drop_msg }) diff --git a/init.lua b/init.lua index 7b9afcd..17d5e37 100644 --- a/init.lua +++ b/init.lua @@ -20,6 +20,11 @@ maptools.intllib = S local modpath = minetest.get_modpath("maptools") +maptools.drop_msg = function(itemstack, player) + local name = player:get_player_name() + minetest.chat_send_player(name, S("[maptools] tools/nodes do not drop!")) +end + dofile(modpath .. "/config.lua") dofile(modpath .. "/aliases.lua") dofile(modpath .. "/craftitems.lua") diff --git a/nodes.lua b/nodes.lua index b97f8d9..d8e4212 100644 --- a/nodes.lua +++ b/nodes.lua @@ -16,6 +16,7 @@ minetest.register_node(":default:cloud", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_defaults(), + on_drop = maptools.drop_msg }) -- Nodes @@ -30,6 +31,7 @@ minetest.register_node("maptools:black", { post_effect_color = {a=255, r=0, g=0, b=0}, groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:white", { @@ -41,6 +43,7 @@ minetest.register_node("maptools:white", { post_effect_color = {a=255, r=128, g=128, b=128}, groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:playerclip", { @@ -54,6 +57,7 @@ minetest.register_node("maptools:playerclip", { sunlight_propagates = true, drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:fake_walkable", { @@ -74,6 +78,7 @@ minetest.register_node("maptools:fake_walkable", { }, drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:fullclip", { @@ -86,6 +91,7 @@ minetest.register_node("maptools:fullclip", { sunlight_propagates = true, drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:fake_walkable_pointable", { @@ -105,6 +111,7 @@ minetest.register_node("maptools:fake_walkable_pointable", { }, drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:ignore_like", { @@ -117,6 +124,7 @@ minetest.register_node("maptools:ignore_like", { sunlight_propagates = true, drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:ignore_like_no_clip", { @@ -130,6 +138,7 @@ minetest.register_node("maptools:ignore_like_no_clip", { sunlight_propagates = true, drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + on_drop = maptools.drop_msg }) @@ -144,6 +153,7 @@ minetest.register_node("maptools:ignore_like_no_point", { sunlight_propagates = true, drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:ignore_like_no_clip_no_point", { @@ -158,6 +168,7 @@ minetest.register_node("maptools:ignore_like_no_clip_no_point", { sunlight_propagates = true, drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:fullclip_face", { @@ -176,6 +187,7 @@ minetest.register_node("maptools:fullclip_face", { }, drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100}, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:playerclip_bottom", { @@ -194,6 +206,7 @@ minetest.register_node("maptools:playerclip_bottom", { }, drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100}, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:playerclip_top", { @@ -212,6 +225,7 @@ minetest.register_node("maptools:playerclip_top", { }, drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100}, + on_drop = maptools.drop_msg }) for pusher_num=1,10,1 do @@ -231,6 +245,7 @@ minetest.register_node("maptools:pusher_" .. pusher_num, { }, drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100, bouncy=pusher_num*100}, + on_drop = maptools.drop_msg }) end @@ -247,6 +262,7 @@ minetest.register_node("maptools:lightbulb", { sunlight_propagates = true, drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:nobuild", { @@ -261,6 +277,7 @@ minetest.register_node("maptools:nobuild", { sunlight_propagates = true, drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:nointeract", { @@ -274,6 +291,7 @@ minetest.register_node("maptools:nointeract", { sunlight_propagates = true, drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:climb", { @@ -289,6 +307,7 @@ minetest.register_node("maptools:climb", { sunlight_propagates = true, drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + on_drop = maptools.drop_msg }) for damage_num=1,5,1 do @@ -305,6 +324,7 @@ minetest.register_node("maptools:damage_" .. damage_num, { sunlight_propagates = true, drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + on_drop = maptools.drop_msg }) end @@ -321,6 +341,7 @@ minetest.register_node("maptools:kill", { sunlight_propagates = true, drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:smoke", { @@ -334,6 +355,7 @@ minetest.register_node("maptools:smoke", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, post_effect_color = {a=192, r=96, g=96, b=96}, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:ladder", { @@ -354,6 +376,7 @@ minetest.register_node("maptools:ladder", { drop = "", groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), + on_drop = maptools.drop_msg }) minetest.register_node("maptools:permanent_fire", { @@ -373,6 +396,7 @@ minetest.register_node("maptools:permanent_fire", { sunlight_propagates = true, walkable = false, damage_per_second = 4, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:fake_fire", { @@ -391,6 +415,7 @@ minetest.register_node("maptools:fake_fire", { groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sunlight_propagates = true, walkable = false, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:igniter", { @@ -406,6 +431,7 @@ minetest.register_node("maptools:igniter", { sunlight_propagates = true, pointable = false, walkable = false, + on_drop = maptools.drop_msg }) minetest.register_node("maptools:superapple", { @@ -426,4 +452,5 @@ minetest.register_node("maptools:superapple", { groups = {fleshy=3, dig_immediate=3, not_in_creative_inventory = maptools.creative}, on_use = minetest.item_eat(20), sounds = default.node_sound_defaults(), + on_drop = maptools.drop_msg }) diff --git a/tools.lua b/tools.lua index b2f5a8d..a5c5933 100644 --- a/tools.lua +++ b/tools.lua @@ -28,6 +28,7 @@ minetest.register_tool("maptools:pick_admin", { }, damage_groups = {fleshy = 1000}, }, + on_drop = maptools.drop_msg }) minetest.register_tool("maptools:pick_admin_with_drops", { @@ -49,6 +50,7 @@ minetest.register_tool("maptools:pick_admin_with_drops", { }, damage_groups = {fleshy = 1000}, }, + on_drop = maptools.drop_msg }) minetest.register_on_punchnode(function(pos, node, puncher)