diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..f42bd64 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,13 @@ ++---- zlib/libpng license ----+ + +Copyright (c) 2013 Calinou + +This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source distribution. diff --git a/README.md b/README.md deleted file mode 100644 index a936d87..0000000 --- a/README.md +++ /dev/null @@ -1,2 +0,0 @@ -maptools -======== diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..4c15581 --- /dev/null +++ b/README.txt @@ -0,0 +1,22 @@ +Calinou's Minetest Mods +===================== + +Calinou's Mods for Minetest [http://minetest.net], a free and opensource Minecraft-like game. + +This Git repository is mostly made for servers; it allows easy updating. + +To install, just clone this repository somewhere, then copy the "calinou_mods" folder in the "mods/minetest" folder of Minetest's installation folder. + + + +Misc stuff +===================== + +All these mods' source codes, except More Ores are under the zlib/libpng license. More Ores is under the GNU GPLv3; the mods' textures are under the CC BY-SA 3.0 Unported. + +Mods' forum threads: +More Blocks: http://minetest.net/forum/viewtopic.php?id=509 +More Ores: http://minetest.net/forum/viewtopic.php?id=549 +Map Tools: http://minetest.net/forum/viewtopic.php?id=1882 +Doors+: http://minetest.net/forum/viewtopic.php?id=2059 +Stairs+: http://minetest.net/forum/viewtopic.php?id=2092 diff --git a/_README.txt b/_README.txt new file mode 100644 index 0000000..cfbe0b2 --- /dev/null +++ b/_README.txt @@ -0,0 +1,53 @@ +*** Item names for spawning the items using /give or /giveme *** + +Items: + +- admin_pick +Purple pickaxe, infinite durability, mines everything including unbreakable blocks instantly. Don't put this pickaxe in the hands of a griefer, of course. :) + +- infinitefuel +Fuel lasting for a (near)-infinite time. Don't worry about the "near" - it lasts for about 50 in-real-life years. + +- superapple +An apple which heals all 10 hearts. + +- 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: +A /!\ denotes an unpointable, unbreakable block; be very careful with them, they cannot be removed by hand (they can only be removed with WorldEdit). + +- (insert block name here)_u -- example: stone_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). + +- fullgrass +Unbrakable block with the "grass" texture on all sides. + +- playerclip +/!\ Invisible block, not pointable. + +- fullclip +Invisible block, pointable. + +- smoke_block +Some smoke (does not harm players or entities). + +- nobuild +/!\ Very basic building prevention. + +- nointeract +Prevents interacting through the block (interacting as in opening chests, furnaces, attacking entities...). + +- damage_(insert damage in half hearts here) +/!\ Damaging blocks. The damage is in half hearts and ranges from 1 to 5 (0.5 to 2.5 hearts damage every second). + +- killblock +/!\ Instant kill (deals 10 heart damage) blocks. + +- lightblock +/!\ Invisible non-solid block, prevents light from passing through. + +- lightbulb +/!\ Invisible non-solid block, emitting a good amount of light. diff --git a/aliases.lua b/aliases.lua new file mode 100644 index 0000000..9a89f17 --- /dev/null +++ b/aliases.lua @@ -0,0 +1,93 @@ +-- Aliases + +minetest.register_alias("adminpick", "maptools:pick_admin") +minetest.register_alias("adminpickaxe", "maptools:pick_admin") +minetest.register_alias("admin_pick", "maptools:pick_admin") +minetest.register_alias("admin_pickaxe", "maptools:pick_admin") +minetest.register_alias("pick_admin", "maptools:pick_admin") +minetest.register_alias("pickaxe_admin", "maptools:pick_admin") +minetest.register_alias("pickadmin", "maptools:pick_admin") +minetest.register_alias("pickaxeadmin", "maptools:pick_admin") +minetest.register_alias("adminpickdrops", "maptools:pick_admin_with_drops") +minetest.register_alias("adminpickaxedrops", "maptools:pick_admin_with_drops") +minetest.register_alias("admin_pick_drops", "maptools:pick_admin_with_drops") +minetest.register_alias("admin_pickaxe_drops", "maptools:pick_admin_with_drops") +minetest.register_alias("pick_admin_drops", "maptools:pick_admin_with_drops") +minetest.register_alias("pickaxe_admin_drops", "maptools:pick_admin_with_drops") +minetest.register_alias("pickadmindrops", "maptools:pick_admin_with_drops") +minetest.register_alias("pickaxeadmindrops", "maptools:pick_admin_with_drops") +minetest.register_alias("infinitefuel", "maptools:infinitefuel") +minetest.register_alias("infinite_fuel", "maptools:infinitefuel") +minetest.register_alias("ifuel", "maptools:infinitefuel") +minetest.register_alias("superapple", "maptools:superapple") +minetest.register_alias("super_apple", "maptools:superapple") +minetest.register_alias("sapple", "maptools:superapple") +minetest.register_alias("nobuild", "maptools:nobuild") +minetest.register_alias("nointeract", "maptools:nointeract") +minetest.register_alias("damage_1", "maptools:damage_1") +minetest.register_alias("damage_2", "maptools:damage_2") +minetest.register_alias("damage_3", "maptools:damage_3") +minetest.register_alias("damage_4", "maptools:damage_4") +minetest.register_alias("damage_5", "maptools:damage_5") +minetest.register_alias("pusher_1", "maptools:pusher_1") +minetest.register_alias("pusher_2", "maptools:pusher_2") +minetest.register_alias("pusher_3", "maptools:pusher_3") +minetest.register_alias("pusher_4", "maptools:pusher_4") +minetest.register_alias("pusher_5", "maptools:pusher_5") +minetest.register_alias("pusher_6", "maptools:pusher_6") +minetest.register_alias("pusher_7", "maptools:pusher_7") +minetest.register_alias("pusher_8", "maptools:pusher_8") +minetest.register_alias("pusher_9", "maptools:pusher_9") +minetest.register_alias("pusher_10", "maptools:pusher_10") +minetest.register_alias("killblock", "maptools:kill") +minetest.register_alias("kill_block", "maptools:kill") +minetest.register_alias("lightblock", "maptools:lightblock") +minetest.register_alias("light_block", "maptools:lightblock") +minetest.register_alias("lightbulb", "maptools:lightbulb") +minetest.register_alias("light_bulb", "maptools:lightbulb") +minetest.register_alias("playerclip", "maptools:playerclip") +minetest.register_alias("player_clip", "maptools:playerclip") +minetest.register_alias("pclip", "maptools:playerclip") +minetest.register_alias("fullclip", "maptools:fullclip") +minetest.register_alias("full_clip", "maptools:fullclip") +minetest.register_alias("fclip", "maptools:fullclip") +minetest.register_alias("full_clip", "maptools:fullclip") +minetest.register_alias("full_clip_face", "maptools:fullclip_face") +minetest.register_alias("fullclip_face", "maptools:fullclip_face") +minetest.register_alias("fullclipface", "maptools:fullclip_face") +minetest.register_alias("player_clip_bottom", "maptools:playerclip_bottom") +minetest.register_alias("playerclip_bottom", "maptools:playerclip_bottom") +minetest.register_alias("playerclipbottom", "maptools:playerclip_bottom") +minetest.register_alias("player_clip_top", "maptools:playerclip_top") +minetest.register_alias("playerclip_top", "maptools:playerclip_top") +minetest.register_alias("playercliptop", "maptools:playerclip_top") +minetest.register_alias("permanentfire", "maptools:permanent_fire") +minetest.register_alias("permanent_fire", "maptools:permanent_fire") +minetest.register_alias("pfire", "maptools:permanent_fire") +minetest.register_alias("fakefire", "maptools:fake_fire") +minetest.register_alias("fake_fire", "maptools:fake_fire") +minetest.register_alias("ffire", "maptools:fake_fire") +minetest.register_alias("igniter", "maptools:igniter") + +-- Unbreakable block aliases + +minetest.register_alias("stone_u", "maptools:stone") +minetest.register_alias("tree_u", "maptools:tree") +minetest.register_alias("cobble_u", "maptools:cobble") +minetest.register_alias("wood_u", "maptools:wood") +minetest.register_alias("sand_u", "maptools:sand") +minetest.register_alias("gravel_u", "maptools:gravel") +minetest.register_alias("brick_u", "maptools:brick") +minetest.register_alias("dirt_u", "maptools:dirt") +minetest.register_alias("glass_u", "maptools:glass") +minetest.register_alias("sandstone_u", "maptools:sandstone") +minetest.register_alias("desert_stone_u", "maptools:desert_stone") +minetest.register_alias("desertstone_u", "maptools:desert_stone") +minetest.register_alias("desert_sand_u", "maptools:desert_sand") +minetest.register_alias("desertsand_u", "maptools:desert_sand") +minetest.register_alias("leaves_u", "maptools:leaves") +minetest.register_alias("grass_u", "maptools:glass") +minetest.register_alias("fullgrass", "maptools:fullgrass") +minetest.register_alias("fullgrass_u", "maptools:fullgrass") +minetest.register_alias("mossycobble_u", "maptools:mossycobble") +minetest.register_alias("mossy_cobble_u", "maptools:mossycobble") diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/depends.txt @@ -0,0 +1 @@ +default diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..9a71f95 --- /dev/null +++ b/init.lua @@ -0,0 +1,472 @@ +-- Load translation library if intllib is installed + +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) + else + S = function ( s ) return s end +end + +dofile(minetest.get_modpath("maptools").."/aliases.lua") + +print(S("[maptools] loaded.")) + +--[[ +**** +Map Tools +by Calinou +Licensed under the zlib/libpng license for code and CC BY-SA for textures, see LICENSE.txt for info. +**** +--]] + +-- Redefine cloud so that admin pickaxe can mine it + +minetest.register_node(":default:cloud", { + description = S("Cloud"), + tiles = {"default_cloud.png"}, + groups = {unbreakable=1, not_in_creative_inventory=1}, + sounds = default.node_sound_defaults(), +}) + +-- Items + +minetest.register_craft({ + type = "fuel", + recipe = "maptools:infinitefuel", + burntime = 1000000000, +}) + +-- Blocks + +minetest.register_node("maptools:stone", { + description = S("Unbreakable Stone"), + tiles = {"default_stone.png"}, + groups = {unbreakable=1, not_in_creative_inventory=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:tree", { + description = S("Unbreakable Tree"), + tiles = {"default_tree.png"}, + groups = {unbreakable=1, not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("maptools:dirt", { + description = S("Unbreakable Dirt"), + tiles = {"default_dirt.png"}, + groups = {unbreakable=1, not_in_creative_inventory=1}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("maptools:wood", { + description = S("Unbreakable Wooden Planks"), + tiles = {"default_wood.png"}, + groups = {unbreakable=1, not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("maptools:glass", { + description = S("Unbreakable Glass"), + drawtype = "glasslike", + tiles = {"default_glass.png"}, + paramtype = "light", + sunlight_propagates = true, + groups = {unbreakable=1, not_in_creative_inventory=1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("maptools:leaves", { + description = S("Unbreakable Leaves"), + drawtype = "allfaces_optional", + tiles = {"default_leaves.png"}, + paramtype = "light", + groups = {unbreakable=1, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("maptools:sand", { + description = S("Unbreakable Sand"), + tiles = {"default_sand.png"}, + groups = {unbreakable=1, not_in_creative_inventory=1}, + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("maptools:gravel", { + description = S("Unbreakable Gravel"), + tiles = {"default_gravel.png"}, + groups = {unbreakable=1, not_in_creative_inventory=1}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_gravel_footstep", gain=0.45}, + }), +}) + +minetest.register_node("maptools:desert_sand", { + description = S("Unbreakable Desert Sand"), + tiles = {"default_desert_sand.png"}, + groups = {unbreakable=1, not_in_creative_inventory=1}, + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("maptools:sandstone", { + description = S("Unbreakable Sandstone"), + tiles = {"default_sandstone.png"}, + groups = {unbreakable=1, not_in_creative_inventory=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:desert_stone", { + description = S("Unbreakable Desert Stone"), + tiles = {"default_desert_stone.png"}, + groups = {unbreakable=1, not_in_creative_inventory=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:grass", { + description = S("Unbreakable Dirt with Grass"), + tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, + groups = {unbreakable=1, not_in_creative_inventory=1}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.4}, + }), +}) + +minetest.register_node("maptools:fullgrass", { + description = S("Unbreakable Full Grass"), + tiles = {"default_grass.png"}, + groups = {unbreakable=1, not_in_creative_inventory=1}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.4}, + }), +}) + +minetest.register_node("maptools:cobble", { + description = S("Unbreakable Cobblestone"), + tiles = {"default_cobble.png"}, + groups = {unbreakable=1, not_in_creative_inventory=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:mossycobble", { + description = S("Unbreakable Mossy Cobblestone"), + tiles = {"default_mossycobble.png"}, + groups = {unbreakable=1, not_in_creative_inventory=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:brick", { + description = S("Unbreakable Brick"), + tiles = {"default_brick.png"}, + groups = {unbreakable=1, not_in_creative_inventory=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:playerclip", { + description = S("Player Clip"), + drawtype = "airlike", + paramtype = "light", + pointable = false, + sunlight_propagates = true, + groups = {unbreakable=1, not_in_creative_inventory=1}, +}) + +minetest.register_node("maptools:fullclip", { + description = S("Full Clip"), + drawtype = "airlike", + paramtype = "light", + sunlight_propagates = true, + groups = {unbreakable=1, not_in_creative_inventory=1}, +}) + +minetest.register_node("maptools:playerclip", { + description = S("Player Clip"), + drawtype = "airlike", + paramtype = "light", + pointable = false, + sunlight_propagates = true, + groups = {unbreakable=1, not_in_creative_inventory=1}, +}) + +minetest.register_node("maptools:fullclip_face", { + description = S("Full Clip Face"), + drawtype = "nodebox", + tiles = {"invisible.png"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + groups = {unbreakable=1, not_in_creative_inventory=1, fall_damage_add_percent=-100}, +}) + +minetest.register_node("maptools:playerclip_bottom", { + description = S("Player Clip Bottom Face"), + drawtype = "nodebox", + tiles = {"invisible.png"}, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + groups = {unbreakable=1, not_in_creative_inventory=1, fall_damage_add_percent=-100}, +}) + +minetest.register_node("maptools:playerclip_top", { + description = S("Player Clip Top Face"), + drawtype = "nodebox", + tiles = {"invisible.png"}, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, 0.4999, -0.5, 0.5, 0.5, 0.5}, + }, + groups = {unbreakable=1, not_in_creative_inventory=1, fall_damage_add_percent=-100}, +}) + +for pusher_num=1,10,1 do +minetest.register_node("maptools:pusher_" .. pusher_num, { + description = S("Pusher: %s"):format(pusher_num), + drawtype = "nodebox", + tiles = {"invisible.png"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + groups = {unbreakable=1, not_in_creative_inventory=1, fall_damage_add_percent=-100, bouncy=pusher_num*100}, +}) +end + +minetest.register_node("maptools:lightbulb", { + description = S("Light Bulb"), + drawtype = "airlike", + walkable = false, + pointable = false, + light_source = 15, + paramtype = "light", + buildable_to = true, + sunlight_propagates = true, + groups = {unbreakable=1, not_in_creative_inventory=1}, +}) + +minetest.register_node("maptools:nobuild", { + description = S("Build Prevention"), + drawtype = "airlike", + walkable = false, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + groups = {unbreakable=1, not_in_creative_inventory=1}, +}) + +minetest.register_node("maptools:nointeract", { + description = S("Interact Prevention"), + drawtype = "airlike", + walkable = false, + paramtype = "light", + sunlight_propagates = true, + groups = {unbreakable=1, not_in_creative_inventory=1}, +}) + +minetest.register_node("maptools:climb", { + description = S("Climb Block"), + drawtype = "airlike", + walkable = false, + climbable = true, + pointable = false, + buildable_to = true, + paramtype = "light", + sunlight_propagates = true, + groups = {unbreakable=1, not_in_creative_inventory=1}, +}) + +for damage_num=1,5,1 do +minetest.register_node("maptools:damage_" .. damage_num, { + description = S("Damaging Block: %s"):format(damage_num), + drawtype = "airlike", + walkable = false, + pointable = false, + damage_per_second = damage_num, + paramtype = "light", + sunlight_propagates = true, + groups = {unbreakable=1, not_in_creative_inventory=1}, +}) +end + +minetest.register_node("maptools:kill", { + description = S("Kill Block"), + drawtype = "airlike", + walkable = false, + pointable = false, + damage_per_second = 20, + paramtype = "light", + sunlight_propagates = true, + groups = {unbreakable=1, not_in_creative_inventory=1}, +}) + +minetest.register_node("maptools:smoke", { + description = S("Smoke Block"), + tiles = {"maptools_smoke.png"}, + drawtype = "allfaces_optional", + walkable = false, + paramtype = "light", + groups = {unbreakable=1, not_in_creative_inventory=1}, + post_effect_color = {a=127, r=127, g=127, b=127}, +}) + +minetest.register_node("maptools:ladder", { + description = S("Fake Ladder"), + drawtype = "signlike", + tiles = {"default_ladder.png"}, + inventory_image = "default_ladder.png", + wield_image = "default_ladder.png", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = { + type = "wallmounted", + }, + groups = {unbreakable=1, not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("maptools:permanent_fire", { + description = S("Permanent Fire"), + drawtype = "plantlike", + paramtype = "light", + tiles = {{ + name="fire_basic_flame_animated.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, + }}, + inventory_image = "fire_basic_flame.png", + light_source = 14, + groups = {unbreakable=1, not_in_creative_inventory=1}, + drop = '', + sunlight_propagates = true, + walkable = false, + damage_per_second = 4, +}) + +minetest.register_node("maptools:fake_fire", { + description = S("Fake Fire"), + drawtype = "plantlike", + paramtype = "light", + tiles = {{ + name="fire_basic_flame_animated.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, + }}, + inventory_image = "fire_basic_flame.png", + light_source = 14, + groups = {unbreakable=1, not_in_creative_inventory=1}, + drop = '', + sunlight_propagates = true, + walkable = false, +}) + +minetest.register_node("maptools:igniter", { + drawtype = "airlike", + description = S("Igniter"), + paramtype = "light", + inventory_image = "fire_basic_flame.png", + groups = {igniter=2, unbreakable=1, not_in_creative_inventory=1}, + drop = '', + sunlight_propagates = true, + pointable = false, + walkable = false, +}) + +-- Items + +minetest.register_craftitem("maptools:copper_coin", { + description = S("Copper Coin"), + inventory_image = "maptools_copper_coin.png", + groups = {not_in_creative_inventory=1}, +}) + +minetest.register_craftitem("maptools:silver_coin", { + description = S("Silver Coin"), + inventory_image = "maptools_silver_coin.png", + groups = {not_in_creative_inventory=1}, +}) + +minetest.register_craftitem("maptools:gold_coin", { + description = S("Gold Coin"), + inventory_image = "maptools_gold_coin.png", + groups = {not_in_creative_inventory=1}, +}) + +minetest.register_craftitem("maptools:infinitefuel", { + description = S("Infinite Fuel"), + inventory_image = "maptools_infinitefuel.png", +}) + +minetest.register_node("maptools:superapple", { + description = S("Super Apple"), + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"maptools_superapple.png"}, + inventory_image = "maptools_superapple.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + groups = {fleshy=3, dig_immediate=3, not_in_creative_inventory=1}, + on_use = minetest.item_eat(20), + sounds = default.node_sound_defaults(), +}) + +-- Tools + +minetest.register_tool("maptools:pick_admin", { + description = S("Admin Pickaxe"), + inventory_image = "maptools_adminpick.png", + groups = {not_in_creative_inventory=1}, + tool_capabilities = { + full_punch_interval = 0, + max_drop_level=3, + groupcaps= { + unbreakable={times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy={times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + bendy={times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky={times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly={times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + snappy={times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + } + }, +}) + +minetest.register_tool("maptools:pick_admin_with_drops", { + description = S("Admin Pickaxe With Drops"), + inventory_image = "maptools_adminpick.png", + groups = {not_in_creative_inventory=1}, + tool_capabilities = { + full_punch_interval = 0, + max_drop_level=3, + groupcaps= { + unbreakable={times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy={times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + bendy={times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky={times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly={times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + snappy={times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + } + }, +}) + +minetest.register_on_punchnode(function(pos, node, puncher) + if puncher:get_wielded_item():get_name() == "maptools:pick_admin" + and minetest.env: get_node(pos).name ~= "air" then + minetest.env:remove_node(pos) + end +end) diff --git a/locale/es.txt b/locale/es.txt new file mode 100644 index 0000000..1bc96f2 --- /dev/null +++ b/locale/es.txt @@ -0,0 +1,39 @@ +# Translation by kaeza + +[maptools] loaded. = [maptools] cargado. + +Cloud = Nube +Infinite Fuel = Combustible Infinito +Admin Pickaxe = Pico de Administrador +Copper Coin = Moneda de Cobre +Silver Coin = Moneda de Plata +Gold Coin = Moneda de Oro +Super Apple = Super Manzana +Fake Ladder = Escalera Falsa +Smoke Block = Bloque de Humo +Damaging Block: %s = Bloque Dañino: %s +Kill Block = Bloque Mortal +Build Prevention = Bloqueador de Construcción +Interact Prevention = Bloqueador de Interacción +Climb Block = Bloque Escalable +Light Block = Bloqueador de Luz +Light Bulb = Lamparilla +Player Clip = Bloqueo de Jugador +Full Clip = Bloqueo Total + +Unbreakable Stone = Piedra Irrompible +Unbreakable Sand = Arena Irrompible +Unbreakable Desert Stone = Piedra Desértica Irrompible +Unbreakable Desert Sand = Arena Desértica Irrompible +Unbreakable Gravel = Gravilla Irrompible +Unbreakable Dirt = Tierra Irrompible +Unbreakable Dirt with Grass = Hierba Irrompible +Unbreakable Full Grass= Bloque de Hierba Irrompible +Unbreakable Brick = Ladrillos Irrompibles +Unbreakable Wooden Planks = Planchas de Madera Irrompibles +Unbreakable Tree = Tronco de Árbol Irrompible +Unbreakable Glass = Cristal Irrompible +Unbreakable Sandstone = Arenisca Irrompible +Unbreakable Leaves = Foliaje Irrompible +Unbreakable Cobblestone = Guijarros Irrompibles +Unbreakable Mossy Cobblestone = Guijarros Enmohecidos Irrompibles diff --git a/locale/fr.txt b/locale/fr.txt new file mode 100644 index 0000000..d137871 --- /dev/null +++ b/locale/fr.txt @@ -0,0 +1,47 @@ +# Translation by Calinou + +[maptools] loaded. = [maptools] a été chargé. + +Cloud = Nuage +Infinite Fuel = Carburant infini +Admin Pickaxe = Pioche d'administrateur +Admin Pickaxe With Drops = Pioche d'administrateur qui donne des objets +Copper Coin = Pièce de cuivre +Silver Coin = Pièce d'argent +Gold Coin = Pièce d'or +Super Apple = Super pomme +Fake Ladder = Fausse échelle +Smoke Block = Bloc de fumée +Damaging Block: %s = Bloc de dégâts : %s +Kill Block = Bloc qui tue +Build Prevention = Prévention de construction +Interact Prevention = Prévention d'interaction +Climb Block = Bloc à grimper +Light Block = Bloqueur de lumière +Light Bulb = Bloc lumineux +Player Clip = Bloque-joueurs +Player Clip Bottom Face = Face inférieure de bloque-joueurs +Player Clip Top Face = Face supérieure de bloque-joueurs +Full Clip = Bloque-tout +Full Clip Face = Face de bloque-tout +Permanent Fire = Feu permanent +Fake Fire = Faux feu +Igniter = Incendieur +Pusher: %s = Pousseur : %s + +Unbreakable Stone = Pierre incassable +Unbreakable Sand = Sable incassable +Unbreakable Desert Stone = Pierre de désert incassable +Unbreakable Desert Sand = Sable de désert incassable +Unbreakable Gravel = Gravier incassable +Unbreakable Dirt = Terre incassable +Unbreakable Dirt with Grass = Herbe incassable +Unbreakable Full Grass= Bloc d'herbe incassable +Unbreakable Brick = Briques incassables +Unbreakable Wooden Planks = Planches de bois incassables +Unbreakable Tree = Tronc d'arbre incassable +Unbreakable Glass = Verre incassable +Unbreakable Sandstone = Grès incassable +Unbreakable Leaves = Feuillage incassable +Unbreakable Cobblestone = Pierre taillée incassable +Unbreakable Mossy Cobblestone = Pierre taillée mousseusse incassable diff --git a/textures/fire_basic_flame.png b/textures/fire_basic_flame.png new file mode 100644 index 0000000..a5c2afd Binary files /dev/null and b/textures/fire_basic_flame.png differ diff --git a/textures/fire_basic_flame_animated.png b/textures/fire_basic_flame_animated.png new file mode 100644 index 0000000..f044470 Binary files /dev/null and b/textures/fire_basic_flame_animated.png differ diff --git a/textures/invisible.png b/textures/invisible.png new file mode 100644 index 0000000..c2e8752 Binary files /dev/null and b/textures/invisible.png differ diff --git a/textures/maptools_adminpick.png b/textures/maptools_adminpick.png new file mode 100644 index 0000000..deddd5b Binary files /dev/null and b/textures/maptools_adminpick.png differ diff --git a/textures/maptools_copper_coin.png b/textures/maptools_copper_coin.png new file mode 100644 index 0000000..a3b3f81 Binary files /dev/null and b/textures/maptools_copper_coin.png differ diff --git a/textures/maptools_gold_coin.png b/textures/maptools_gold_coin.png new file mode 100644 index 0000000..701ffd9 Binary files /dev/null and b/textures/maptools_gold_coin.png differ diff --git a/textures/maptools_infinitefuel.png b/textures/maptools_infinitefuel.png new file mode 100644 index 0000000..5eda6ff Binary files /dev/null and b/textures/maptools_infinitefuel.png differ diff --git a/textures/maptools_silver_coin.png b/textures/maptools_silver_coin.png new file mode 100644 index 0000000..85072aa Binary files /dev/null and b/textures/maptools_silver_coin.png differ diff --git a/textures/maptools_smoke.png b/textures/maptools_smoke.png new file mode 100644 index 0000000..db082f0 Binary files /dev/null and b/textures/maptools_smoke.png differ diff --git a/textures/maptools_superapple.png b/textures/maptools_superapple.png new file mode 100644 index 0000000..146d151 Binary files /dev/null and b/textures/maptools_superapple.png differ