4 コミット

作成者 SHA1 メッセージ 日付
sys4-fr
70dbd3519e Ajout de nouveaux blocs indestructibles 2018-12-23 13:50:30 +01:00
sys4-fr
4a4dfb77c4 Merge branch 'master' of yunohost:nalc/maptools into merge-master 2018-12-22 12:04:32 +01:00
sys4-fr
e519f0cd31 Corrige un alias et nom de textures. 2018-09-16 18:56:45 +02:00
sys4-fr
48b8f8a726 Version MFF. 2018-09-08 00:31:40 +02:00
42個のファイルの変更443行の追加346行の削除

ファイルの表示

@@ -1,13 +0,0 @@
root = true
[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.{lua,luacheckrc}]
indent_style = tab
indent_size = 4

ファイルの表示

@@ -1,29 +0,0 @@
std = "lua51+minetest"
unused_args = false
allow_defined_top = true
max_line_length = 90
stds.minetest = {
read_globals = {
"DIR_DELIM",
"minetest",
"core",
"dump",
"vector",
"nodeupdate",
"VoxelManip",
"VoxelArea",
"PseudoRandom",
"ItemStack",
"default",
table = {
fields = {
"copy",
},
},
}
}
read_globals = {
"intllib",
}

ファイルの表示

@@ -1,9 +0,0 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.1.0
hooks:
- id: end-of-file-fixer
- id: trailing-whitespace
- id: mixed-line-ending
args: [--fix=lf]

ファイルの表示

@@ -1,15 +0,0 @@
language: generic
addons:
apt:
packages:
- luarocks
install:
- pyenv global 3.6.3
- pip3 install --user pre-commit
- luarocks install --local luacheck
script:
- $HOME/.local/bin/pre-commit run --all-files
- $HOME/.luarocks/bin/luacheck .

ファイルの表示

@@ -7,16 +7,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased]
## [1.1.0] - 2019-03-23
### Changed
- Increased the range of the Admin Pickaxe from 12 to 20 nodes.
- Updated intllib support to avoid using deprecated functions.
## 1.0.0 - 2017-02-19
- Initial versioned release.
[Unreleased]: https://github.com/minetest-mods/maptools/compare/v1.1.0...HEAD
[1.1.0]: https://github.com/minetest-mods/maptools/compare/v1.0.0...v1.1.0
[Unreleased]: https://github.com/minetest-mods/maptools/compare/v1.0.0...HEAD

5
LICENSE.md ノーマルファイル → 実行可能ファイル
ファイルの表示

@@ -1,6 +1,7 @@
# zlib license
zlib license
============
Copyright © 2012-2019 Hugo Locurcio and contributors
Copyright (c) 2012-2015 Calinou and contributors
**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.**

0
NODES.md ノーマルファイル → 実行可能ファイル
ファイルの表示

19
README.md ノーマルファイル → 実行可能ファイル
ファイルの表示

@@ -12,15 +12,15 @@ world block sandbox game.
To install Map Tools, clone this Git repository into your Minetest's `mods/`
directory:
```bash
```
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
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** required, as the mod won't work otherwise.
**absolutely** necessary to do, else, it won't work!
### Enable the mod
@@ -43,30 +43,29 @@ This is the easiest way to enable Map Tools when playing in singleplayer
This is the recommended way to enable the mod on a server without using a GUI.
1. Make sure Minetest is not currently running (otherwise, it will overwrite
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:
```text
```
load_mod_maptools = true
```
If the line is already present in the file, then replace `false` with `true`
on that line.
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.17.
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.17 will generally not be fixed.
versions than 0.4.16 will generally not be fixed.
## License
Copyright © 2012-2019 Hugo Locurcio and contributors
Copyright © 2012-2017 Hugo Locurcio and contributors
- Map Tools code is licensed under the zlib license, see
[`LICENSE.md`](LICENSE.md) for details.

2
aliases.lua ノーマルファイル → 実行可能ファイル
ファイルの表示

@@ -1,7 +1,7 @@
--[[
Map Tools: alias definitions
Copyright © 2012-2019 Hugo Locurcio and contributors.
Copyright (c) 2012-2015 Calinou and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]

4
config.lua ノーマルファイル → 実行可能ファイル
ファイルの表示

@@ -1,7 +1,7 @@
--[[
Map Tools: configuration handling
Copyright © 2012-2019 Hugo Locurcio and contributors.
Copyright (c) 2012-2015 Calinou and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
@@ -26,4 +26,4 @@ local function setting(settingtype, name, default)
end
-- Show Map Tools stuff in creative inventory (1 or 0):
setting("integer", "hide_from_creative_inventory", 1)
setting("integer", "hide_from_creative_inventory", 0)

50
craftitems.lua ノーマルファイル → 実行可能ファイル
ファイルの表示

@@ -1,11 +1,11 @@
--[[
Map Tools: item definitions
Copyright © 2012-2019 Hugo Locurcio and contributors.
Copyright (c) 2012-2015 Calinou and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
local S = maptools.S
local S = maptools.intllib
maptools.creative = maptools.config["hide_from_creative_inventory"]
@@ -45,3 +45,49 @@ minetest.register_craft({
recipe = "maptools:infinitefuel",
burntime = 1000000000,
})
-- Coin based craft recipes
-- //MFF_BEG(Mg|07/24/15)
-- //MFF_BEG(Darcidride|07/06/16)
--[[
-- 9CC -> 1SC
minetest.register_craft({
output = "maptools:silver_coin",
recipe = {
{"maptools:copper_coin", "maptools:copper_coin", "maptools:copper_coin"},
{"maptools:copper_coin", "maptools:copper_coin", "maptools:copper_coin"},
{"maptools:copper_coin", "maptools:copper_coin", "maptools:copper_coin"},
}
})
-- 9SC -> 1GC
minetest.register_craft({
output = "maptools:gold_coin",
recipe = {
{"maptools:silver_coin", "maptools:silver_coin", "maptools:silver_coin"},
{"maptools:silver_coin", "maptools:silver_coin", "maptools:silver_coin"},
{"maptools:silver_coin", "maptools:silver_coin", "maptools:silver_coin"},
}
})
-- 1GC -> 9SC
minetest.register_craft({
output = "maptools:silver_coin 9",
recipe = {
{"maptools:gold_coin"}
}
})
-- 1SC -> 9CC
minetest.register_craft({
output = "maptools:copper_coin 9",
recipe = {
{"maptools:silver_coin"}
}
})
--
-- //MFF_END(Mg|07/24/15)
-- //MFF_END(Darcidride|07/06/16)
--]]

288
default_nodes.lua ノーマルファイル → 実行可能ファイル
ファイルの表示

@@ -1,11 +1,11 @@
--[[
Map Tools: unbreakable default nodes
Copyright © 2012-2019 Hugo Locurcio and contributors.
Copyright (c) 2012-2015 Calinou and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
local S = maptools.S
local S = maptools.intllib
maptools.creative = maptools.config["hide_from_creative_inventory"]
@@ -47,11 +47,7 @@ minetest.register_node("maptools:jungletree", {
description = S("Unbreakable Jungle Tree"),
range = 12,
stack_max = 10000,
tiles = {
"default_jungletree_top.png",
"default_jungletree_top.png",
"default_jungletree.png",
},
tiles = {"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"},
drop = "",
groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative},
sounds = default.node_sound_wood_defaults(),
@@ -220,6 +216,30 @@ minetest.register_node("maptools:sandstone_brick", {
sounds = default.node_sound_stone_defaults(),
on_drop = maptools.drop_msg
})
-- Compatibility for change made there ^
minetest.register_alias("maptools:sandstonebrick","maptools:sandstone_brick")
minetest.register_node("maptools:desert_sandstone_brick", {
description = S("Unbreakable Desert Sandstone Brick"),
range = 12,
stack_max = 10000,
tiles = {"default_desert_sandstone_brick.png"},
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:silver_sandstone_brick", {
description = S("Unbreakable Silver Sandstone Brick"),
range = 12,
stack_max = 10000,
tiles = {"default_silver_sandstone_brick.png"},
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", {
description = S("Unbreakable Desert Stone"),
@@ -258,11 +278,7 @@ minetest.register_node("maptools:grass", {
description = S("Unbreakable Dirt with Grass"),
range = 12,
stack_max = 10000,
tiles = {
"default_grass.png",
"default_dirt.png",
"default_dirt.png^default_grass_side.png",
},
tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
paramtype2 = "facedir",
drop = "",
groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative},
@@ -290,11 +306,7 @@ for slab_num = 1,3,1 do
description = S("Grass Slab"),
range = 12,
stack_max = 10000,
tiles = {
"default_grass.png",
"default_dirt.png",
"default_dirt.png^maptools_grass_side_" .. slab_num * 4 .. ".png",
},
tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^maptools_grass_side_" .. slab_num * 4 .. ".png"},
drawtype = "nodebox",
node_box = {
type = "fixed",
@@ -305,9 +317,7 @@ for slab_num = 1,3,1 do
paramtype2 = "facedir",
drop = "",
groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative},
sounds = default.node_sound_dirt_defaults(
{footstep = {name="default_grass_footstep", gain = 0.4}}
),
sounds = default.node_sound_dirt_defaults({footstep = {name="default_grass_footstep", gain = 0.4}}),
on_drop = maptools.drop_msg
})
end
@@ -418,18 +428,9 @@ minetest.register_node("maptools:soil_wet", {
description = "Wet Soil",
range = 12,
stack_max = 10000,
tiles = {
"default_dirt.png^farming_soil_wet.png",
"default_dirt.png^farming_soil_wet_side.png",
},
tiles = {"farming_soil_wet.png", "farming_soil_wet_side.png"},
drop = "",
groups = {
unbreakable = 1,
not_in_creative_inventory = maptools.creative,
soil = 3,
wet = 1,
grassland = 1,
},
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
})
@@ -440,13 +441,224 @@ minetest.register_node("maptools:desert_sand_soil_wet", {
stack_max = 10000,
drop = "",
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,
},
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
})
-- Fence:
local function dockable(nodename)
if nodename == "default:wood" or nodename == "default:brick" or nodename == "default:cobble" or nodename == "default:dirt" or nodename == "default:sandstone" or nodename == "default:stone" or string.find(nodename, "fences:fence_wood") or string.find(nodename, "fences:fencegate") then
return true
end
end
local function find_dock(pos, second)
if pos == nil then
return false
end
local h1 = minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z})
local v1 = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z})
local r1 = minetest.get_node({x=pos.x, y=pos.y, z=pos.z+1})
local l1 = minetest.get_node({x=pos.x, y=pos.y, z=pos.z-1})
local code = 0
if dockable(l1.name) then
code = code+1
if second < 2 then
minetest.punch_node({x=pos.x, y=pos.y, z=pos.z-1})
end
end
if dockable(r1.name) then
code = code+2
if second < 2 then
minetest.punch_node({x=pos.x, y=pos.y, z=pos.z+1})
end
end
if dockable(v1.name) then
code = code+11
if second < 2 then
minetest.punch_node({x=pos.x-1, y=pos.y, z=pos.z})
end
end
if dockable(h1.name) then
code = code+21
if second < 2 then
minetest.punch_node({x=pos.x+1, y=pos.y, z=pos.z})
end
end
local me = minetest.get_node(pos)
if code > 0 then
local tmp_name = "fences:fence_wood_"..code
--minetest.chat_send_all(tmp_name)
local tmp_node = {name=tmp_name, param1=me.param1, param2=me.param2}
if second > 0 then
local tmp_node = {name=tmp_name, param1=me.param1, param2=me.param2}
minetest.set_node(pos, tmp_node)
end
elseif code == 0 then
if second == 2 then
local tmp_node = {name="fences:fence_wood", param1=me.param1, param2=me.param2}
minetest.set_node(pos, tmp_node)
end
end
end
local p0 = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16}
local p1 = {-2/16, 1/2, -2/16, -2/16, 1/2+8/16, -2/16}
local p2 = {-2/16, 1/2, 2/16, -2/16, 1/2+8/16, 2/16}
local p3 = {0, 0, 0, 0, 0, 0}
local p4 = {2/16, 1/2, -2/16, 2/16, 1/2+8/16, -2/16}
local p5 = {2/16, 1/2, 2/16, 2/16, 1/2+8/16, 2/16}
minetest.register_node(":fences:fence_wood", {
description = S("Unbreakable Wooden Fence"),
range = 12,
stack_max = 10000,
tiles = {"default_wood.png"},
inventory_image = "default_wood.png",
wield_image = "default_wood.png",
paramtype = "light",
groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative},
sounds = default.node_sound_wood_defaults(),
drop = "",
sunlight_propagates = true,
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {p0,p1,p2,p3,p4,p5,}
},
selection_box = {
type = "fixed",
fixed = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16},
},
on_construct = function(pos)
find_dock(pos, 1)
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
find_dock(pos, -1)
end
})
-- carts:
minetest.register_node(":maptools:unbreakable_rail", {
description = "Unbreakable Rail",
drawtype = "raillike",
tiles = {"carts_rail_straight.png", "carts_rail_curved.png", "carts_rail_t_junction.png", "carts_rail_crossing.png"},
inventory_image = "carts_rail_straight.png",
wield_image = "carts_rail_straight.png",
paramtype = "light",
stack_max = 10000,
sunlight_propagates = true,
is_ground_content = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
groups = {snappy = 1, rail = 1, connect_to_raillike = 1, unbreakable = 1, not_in_creative_inventory = maptools.creative},
mesecons = {
effector = {
action_off = function(pos, node)
minetest.get_meta(pos):set_string("cart_acceleration", "0.5")
end,
action_on = function(pos, node)
minetest.get_meta(pos):set_string("cart_acceleration", "0")
end,
},
},
})
minetest.register_node(":maptools:unbreakable_rail_copper", {
description = "Unbreakable Copper Rail",
drawtype = "raillike",
tiles = {"carts_rail_straight_cp.png", "carts_rail_curved_cp.png", "carts_rail_t_junction_cp.png", "carts_rail_crossing_cp.png"},
inventory_image = "carts_rail_straight_cp.png",
wield_image = "carts_rail_straight_cp.png",
paramtype = "light",
stack_max = 10000,
sunlight_propagates = true,
is_ground_content = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
groups = {rail = 1, connect_to_raillike = 1, unbreakable = 1, not_in_creative_inventory = maptools.creative},
after_place_node = function(pos, placer, itemstack)
if not mesecon then
minetest.get_meta(pos):set_string("cart_acceleration", "0.5")
end
end,
mesecons = {
effector = {
action_off = function(pos, node)
minetest.get_meta(pos):set_string("cart_acceleration", "0.5")
end,
action_on = function(pos, node)
minetest.get_meta(pos):set_string("cart_acceleration", "0")
end,
},
},
})
minetest.register_node("maptools:unbreakable_rail_power", {
description = "Unbreakable Powered Rail",
drawtype = "raillike",
tiles = {"carts_rail_straight_pwr.png", "carts_rail_curved_pwr.png", "carts_rail_t_junction_pwr.png", "carts_rail_crossing_pwr.png"},
inventory_image = "carts_rail_straight_pwr.png",
wield_image = "carts_rail_straight_pwr.png",
paramtype = "light",
stack_max = 10000,
sunlight_propagates = true,
is_ground_content = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
groups = {rail = 1, connect_to_raillike = 1, unbreakable = 1, not_in_creative_inventory = maptools.creative},
after_place_node = function(pos, placer, itemstack)
if not mesecon then
minetest.get_meta(pos):set_string("cart_acceleration", "0.5")
end
end,
mesecons = {
effector = {
action_off = function(pos, node)
minetest.get_meta(pos):set_string("cart_acceleration", "0.5")
end,
action_on = function(pos, node)
minetest.get_meta(pos):set_string("cart_acceleration", "0")
end,
},
},
})
local chestdef = minetest.registered_nodes["default:chest"]
minetest.register_node("maptools:chest",{
description = "Chest",
tiles = chestdef.tiles,
stack_max = 1000,
paramtype2 = "facedir",
on_construct = chestdef.on_construct,
on_metadata_inventory_move = chestdef.on_metadata_inventory_move,
on_metadata_inventory_put = chestdef.on_metadata_inventory_put,
on_metadata_inventory_take = chestdef.on_metadata_inventory_take,
groups = {unbreakable = 1, not_in_creative_inventory = 1},
})

1
depends.txt ノーマルファイル → 実行可能ファイル
ファイルの表示

@@ -1 +1,2 @@
default
fire

ファイルの表示

@@ -1 +0,0 @@
Adds various special versions of normal blocks, tools, and other map maintainer tools.

25
init.lua ノーマルファイル → 実行可能ファイル
ファイルの表示

@@ -3,18 +3,27 @@
** Map Tools **
By Calinou.
Copyright © 2012-2019 Hugo Locurcio and contributors.
Copyright (c) 2012-2015 Calinou and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
=====================================================================
--]]
maptools = {}
local S
if minetest.get_modpath("intllib") then
S = intllib.Getter()
else
S = function(s) return s end
end
maptools.intllib = S
local modpath = minetest.get_modpath("maptools")
local S, NS = dofile(modpath .. "/intllib.lua")
maptools.S = S
maptools.NS = NS
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")
@@ -23,10 +32,10 @@ dofile(modpath .. "/default_nodes.lua")
dofile(modpath .. "/nodes.lua")
dofile(modpath .. "/tools.lua")
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
--[[
Map Tools by Calinou
Licensed under the zlib license for code and CC BY-SA 3.0 for textures, see LICENSE.txt for info.
--]]
if minetest.setting_getbool("log_mods") then
minetest.log("action", S("[maptools] loaded."))

ファイルの表示

@@ -1,44 +0,0 @@
-- Fallback functions for when `intllib` is not installed.
-- Code released under Unlicense <http://unlicense.org>.
-- Get the latest version of this file at:
-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua
local function format(str, ...)
local args = { ... }
local function repl(escape, open, num, close)
if escape == "" then
local replacement = tostring(args[tonumber(num)])
if open == "" then
replacement = replacement..close
end
return replacement
else
return "@"..open..num..close
end
end
return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl))
end
local gettext, ngettext
if minetest.get_modpath("intllib") then
if intllib.make_gettext_pair then
-- New method using gettext.
gettext, ngettext = intllib.make_gettext_pair()
else
-- Old method using text files.
gettext = intllib.Getter()
end
end
-- Fill in missing functions.
gettext = gettext or function(msgid, ...)
return format(msgid, ...)
end
ngettext = ngettext or function(msgid, msgid_plural, n, ...)
return format(n==1 and msgid or msgid_plural, ...)
end
return gettext, ngettext

0
locale/es.txt ノーマルファイル → 実行可能ファイル
ファイルの表示

0
locale/fr.txt ノーマルファイル → 実行可能ファイル
ファイルの表示

ファイルの表示

@@ -1,47 +0,0 @@
# Translation by Emon
[maptools] loaded. = [maptools] caricato.
Cloud = Nuvola
Infinite Fuel = Combustibile infinito
Admin Pickaxe = Piccone della amministrazione
Admin Pickaxe With Drops = Piccone della amministrazione che lascia cadere a terra
Copper Coin = Moneta di rame
Silver Coin = Moneta di argento
Gold Coin = Moneta di oro
Super Apple = Super mela
Fake Ladder = Finta scala a pioli
Smoke Block = Blocco di fumo
Damaging Block: %s = Blocco che danneggia : %s
Kill Block = Blocco che uccide
Build Prevention = Impedimento alla costruzione
Interact Prevention = Impedimento alla interazione
Climb Block = Blocco su cui ci si può arrampicare
Light Block = Blocco di luce
Light Bulb = Lampadina
Player Clip = Blocca giocatori
Player Clip Bottom Face = Blocca giocatori - faccia inferiore
Player Clip Top Face = Glocca giocatori - faccia superiore
Full Clip = Blocca tutti
Full Clip Face = Faccia del blocca tutti
Permanent Fire = Fuoco eterno
Fake Fire = Fuoco finto
Igniter = Accendino
Pusher: %s = Che ha spinto : %s
Unbreakable Stone = Pietra infrangibile
Unbreakable Sand = Sabbia infrangibile
Unbreakable Desert Stone = Pietra del deserto infrangibile
Unbreakable Desert Sand = Sabbia del deserto infrangibile
Unbreakable Gravel = Ghiaia infrangibile
Unbreakable Dirt = Terra infrangibile
Unbreakable Dirt with Grass = Erba infrangibile
Unbreakable Full Grass= Blocco d'erba infrangibile
Unbreakable Brick = Mattoni infrangibile
Unbreakable Wooden Planks = Assi in legno infrangibili
Unbreakable Tree = Albero infrangibile
Unbreakable Glass = Vetro infrangibile
Unbreakable Sandstone = Arenaria infrangibile
Unbreakable Leaves = Foglie infrangibili
Unbreakable Cobblestone = Ciottolo infrangibile
Unbreakable Mossy Cobblestone = Ciottolo muschioso infrangibile

ファイルの表示

@@ -1 +0,0 @@
name = maptools

68
nodes.lua ノーマルファイル → 実行可能ファイル
ファイルの表示

@@ -1,15 +1,15 @@
--[[
Map Tools: node definitions
Copyright © 2012-2019 Hugo Locurcio and contributors.
Copyright (c) 2012-2015 Calinou and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
local S = maptools.S
local S = maptools.intllib
maptools.creative = maptools.config["hide_from_creative_inventory"]
-- Redefine cloud so that the admin pickaxe can mine it
-- Redefine cloud so that the admin pickaxe can mine it:
minetest.register_node(":default:cloud", {
description = S("Cloud"),
tiles = {"default_cloud.png"},
@@ -20,6 +20,7 @@ minetest.register_node(":default:cloud", {
})
-- Nodes
-- =====
minetest.register_node("maptools:black", {
description = S("Black"),
@@ -61,6 +62,7 @@ minetest.register_node("maptools:playerclip", {
minetest.register_node("maptools:fake_walkable", {
description = S("Player Clip"),
drawtype = "nodebox",
range = 12,
stack_max = 10000,
inventory_image = "default_steel_block.png^dye_green.png",
@@ -94,6 +96,7 @@ minetest.register_node("maptools:fullclip", {
minetest.register_node("maptools:fake_walkable_pointable", {
description = S("Player Clip"),
drawtype = "nodebox",
range = 12,
stack_max = 10000,
inventory_image = "default_steel_block.png^dye_green.png",
@@ -128,7 +131,7 @@ minetest.register_node("maptools:ignore_like_no_clip", {
description = S("Ignore-like (no clip)"),
range = 12,
stack_max = 10000,
inventory_image = "default_steel_block.png^dye_purple.png",
inventory_image = "default_steel_block.png^dye_violet.png",
tiles = {"invisible.png"},
paramtype = "light",
walkable = false,
@@ -143,7 +146,7 @@ minetest.register_node("maptools:ignore_like_no_point", {
description = S("Ignore-like (no point)"),
range = 12,
stack_max = 10000,
inventory_image = "default_steel_block.png^dye_purple.png",
inventory_image = "default_steel_block.png^dye_violet.png",
tiles = {"invisible.png"},
paramtype = "light",
pointable = false,
@@ -183,11 +186,7 @@ minetest.register_node("maptools:fullclip_face", {
fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5},
},
drop = "",
groups = {
unbreakable = 1,
not_in_creative_inventory = maptools.creative,
fall_damage_add_percent = -100,
},
groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100},
on_drop = maptools.drop_msg
})
@@ -206,11 +205,7 @@ minetest.register_node("maptools:playerclip_bottom", {
fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5},
},
drop = "",
groups = {
unbreakable = 1,
not_in_creative_inventory = maptools.creative,
fall_damage_add_percent = -100,
},
groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100},
on_drop = maptools.drop_msg
})
@@ -229,11 +224,7 @@ minetest.register_node("maptools:playerclip_top", {
fixed = {-0.5, 0.4999, -0.5, 0.5, 0.5, 0.5},
},
drop = "",
groups = {
unbreakable = 1,
not_in_creative_inventory = maptools.creative,
fall_damage_add_percent = -100,
},
groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100},
on_drop = maptools.drop_msg
})
@@ -253,12 +244,7 @@ for pusher_num=1,10,1 do
fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5},
},
drop = "",
groups = {
unbreakable = 1,
not_in_creative_inventory = maptools.creative,
fall_damage_add_percent = -100,
bouncy = pusher_num * 100,
},
groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100, bouncy=pusher_num*100},
on_drop = maptools.drop_msg
})
end
@@ -271,7 +257,7 @@ minetest.register_node("maptools:lightbulb", {
drawtype = "airlike",
walkable = false,
pointable = false,
light_source = 14,
light_source = default.LIGHT_MAX,
paramtype = "light",
sunlight_propagates = true,
drop = "",
@@ -436,6 +422,7 @@ minetest.register_node("maptools:igniter", {
drawtype = "airlike",
range = 12,
stack_max = 10000,
inventory_image = "default_steel_block.png^crosshair.png",
description = S("Igniter"),
paramtype = "light",
inventory_image = "fire_basic_flame.png",
@@ -450,20 +437,29 @@ minetest.register_node("maptools:igniter", {
minetest.register_node("maptools:superapple", {
description = S("Super Apple"),
range = 12,
stack_max = 10000,
drawtype = "plantlike",
stack_max = 99,
drawtype = "nodebox",
visual_scale = 1.0,
tiles = {"maptools_superapple.png"},
tiles = {"maptools_super_apple_top.png","maptools_super_apple_bottom.png","maptools_super_apple_side.png"},
inventory_image = "maptools_superapple.png",
paramtype = "light",
sunlight_propagates = true,
selection_box = {
type = "fixed",
fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2}
},
walkable = false,
groups = {fleshy=3, dig_immediate=3, not_in_creative_inventory = maptools.creative},
node_box = {
type = "fixed",
fixed = {
{-3/16, -7/16, -3/16, 3/16, 1/16, 3/16},
{-4/16, -6/16, -3/16, 4/16, 0, 3/16},
{-3/16, -6/16, -4/16, 3/16, 0, 4/16},
{-1/32, 1/16, -1/32, 1/32, 4/16, 1/32},
{-1/16, 1.6/16, 0, 1/16, 1.8/16, 1/16},
{-2/16, 1.4/16, 1/16, 1/16, 1.6/16, 2/16},
{-2/16, 1.2/16, 2/16, 0, 1.4/16, 3/16},
{-1.5/16, 1/16, .5/16, 0.5/16, 1.2/16, 2.5/16},
}
},
is_ground_content = true,
groups = {fleshy=3, dig_immediate=3, not_in_creative_inventory = 0, flammable = 2, leafdecay = 3, leafdecay_drop = 1},
on_use = minetest.item_eat(20),
sounds = default.node_sound_defaults(),
on_drop = maptools.drop_msg
})

0
textures/black.png ノーマルファイル → 実行可能ファイル
ファイルの表示

変更前

幅:  |  高さ:  |  サイズ: 67 B

変更後

幅:  |  高さ:  |  サイズ: 67 B

バイナリ
textures/bones_bones.png 実行可能ファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 162 B

0
textures/fire_basic_flame.png ノーマルファイル → 実行可能ファイル
ファイルの表示

変更前

幅:  |  高さ:  |  サイズ: 794 B

変更後

幅:  |  高さ:  |  サイズ: 794 B

バイナリ
textures/fire_basic_flame_animated.png ノーマルファイル → 実行可能ファイル

バイナリファイルは表示されません。

変更前

幅:  |  高さ:  |  サイズ: 1.2 KiB

変更後

幅:  |  高さ:  |  サイズ: 1.2 KiB

0
textures/invisible.png ノーマルファイル → 実行可能ファイル
ファイルの表示

変更前

幅:  |  高さ:  |  サイズ: 68 B

変更後

幅:  |  高さ:  |  サイズ: 68 B

バイナリ
textures/maptools_adminpick.png ノーマルファイル → 実行可能ファイル

バイナリファイルは表示されません。

変更前

幅:  |  高さ:  |  サイズ: 283 B

変更後

幅:  |  高さ:  |  サイズ: 281 B

0
textures/maptools_adminpick_with_drops.png ノーマルファイル → 実行可能ファイル
ファイルの表示

変更前

幅:  |  高さ:  |  サイズ: 278 B

変更後

幅:  |  高さ:  |  サイズ: 278 B

バイナリ
textures/maptools_copper_coin.png ノーマルファイル → 実行可能ファイル

バイナリファイルは表示されません。

変更前

幅:  |  高さ:  |  サイズ: 213 B

変更後

幅:  |  高さ:  |  サイズ: 214 B

バイナリ
textures/maptools_gold_coin.png ノーマルファイル → 実行可能ファイル

バイナリファイルは表示されません。

変更前

幅:  |  高さ:  |  サイズ: 213 B

変更後

幅:  |  高さ:  |  サイズ: 215 B

0
textures/maptools_grass_side_12.png ノーマルファイル → 実行可能ファイル
ファイルの表示

変更前

幅:  |  高さ:  |  サイズ: 561 B

変更後

幅:  |  高さ:  |  サイズ: 561 B

0
textures/maptools_grass_side_4.png ノーマルファイル → 実行可能ファイル
ファイルの表示

変更前

幅:  |  高さ:  |  サイズ: 294 B

変更後

幅:  |  高さ:  |  サイズ: 294 B

0
textures/maptools_grass_side_8.png ノーマルファイル → 実行可能ファイル
ファイルの表示

変更前

幅:  |  高さ:  |  サイズ: 466 B

変更後

幅:  |  高さ:  |  サイズ: 466 B

バイナリ
textures/maptools_infinitefuel.png ノーマルファイル → 実行可能ファイル

バイナリファイルは表示されません。

変更前

幅:  |  高さ:  |  サイズ: 381 B

変更後

幅:  |  高さ:  |  サイズ: 387 B

バイナリ
textures/maptools_silver_coin.png ノーマルファイル → 実行可能ファイル

バイナリファイルは表示されません。

変更前

幅:  |  高さ:  |  サイズ: 213 B

変更後

幅:  |  高さ:  |  サイズ: 215 B

バイナリ
textures/maptools_smoke.png ノーマルファイル → 実行可能ファイル

バイナリファイルは表示されません。

変更前

幅:  |  高さ:  |  サイズ: 296 B

変更後

幅:  |  高さ:  |  サイズ: 303 B

バイナリ
textures/maptools_super_apple_bottom.png 実行可能ファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 298 B

バイナリ
textures/maptools_super_apple_side.png 実行可能ファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 285 B

バイナリ
textures/maptools_super_apple_top.png 実行可能ファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 342 B

バイナリ
textures/maptools_superapple.png ノーマルファイル → 実行可能ファイル

バイナリファイルは表示されません。

変更前

幅:  |  高さ:  |  サイズ: 230 B

変更後

幅:  |  高さ:  |  サイズ: 231 B

0
textures/white.png ノーマルファイル → 実行可能ファイル
ファイルの表示

変更前

幅:  |  高さ:  |  サイズ: 67 B

変更後

幅:  |  高さ:  |  サイズ: 67 B

58
tools.lua ノーマルファイル → 実行可能ファイル
ファイルの表示

@@ -1,15 +1,20 @@
--[[
Map Tools: tool definitions
Copyright © 2012-2019 Hugo Locurcio and contributors.
Copyright (c) 2012-2015 Calinou and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
local S = maptools.S
local S = maptools.intllib
maptools.creative = maptools.config["hide_from_creative_inventory"]
local pick_admin_toolcaps = {
minetest.register_tool("maptools:pick_admin", {
description = S("Admin Pickaxe"),
range = 12,
inventory_image = "maptools_adminpick.png",
groups = {not_in_creative_inventory = maptools.creative},
tool_capabilities = {
full_punch_interval = 0.1,
max_drop_level = 3,
groupcaps= {
@@ -22,42 +27,37 @@ local pick_admin_toolcaps = {
snappy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3},
},
damage_groups = {fleshy = 1000},
}
minetest.register_tool("maptools:pick_admin", {
description = S("Admin Pickaxe"),
range = 20,
inventory_image = "maptools_adminpick.png",
groups = {not_in_creative_inventory = maptools.creative},
tool_capabilities = pick_admin_toolcaps,
on_drop = maptools.drop_msg,
},
on_drop = maptools.drop_msg
})
minetest.register_tool("maptools:pick_admin_with_drops", {
description = S("Admin Pickaxe with Drops"),
range = 20,
range = 12,
inventory_image = "maptools_adminpick_with_drops.png",
groups = {not_in_creative_inventory = maptools.creative},
tool_capabilities = pick_admin_toolcaps,
on_drop = maptools.drop_msg,
tool_capabilities = {
full_punch_interval = 0.35,
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},
},
damage_groups = {fleshy = 1000},
},
on_drop = maptools.drop_msg
})
minetest.register_on_punchnode(function(pos, node, puncher)
if puncher:get_wielded_item():get_name() == "maptools:pick_admin"
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."
)
-- The node is removed directly, which means it even works
-- on non-empty containers and group-less nodes
minetest.remove_node(pos)
-- Run node update actions like falling nodes
minetest.check_for_falling(pos)
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.
minetest.check_for_falling(pos) -- Run node update actions like falling nodes.
end
end)