9 Commits

Author SHA1 Message Date
1b7be03956 Bump to version 2.0.0 2019-11-25 13:51:18 +01:00
0e30357190 Link to the WorldEdit mod in NODES_ITEMS.md 2019-10-13 14:15:25 +02:00
ccf94fb78b Make inventory images use textures available in Minetest Game 5.0.0
This closes #9.
2019-10-13 14:13:10 +02:00
f0a3d58a99 Update changelog to mention nodes/items not being droppable anymore 2019-10-04 00:23:02 +02:00
ea85b3e073 Move maptools.drop_msg above dofiles
Maptools tools/items have become droppable again, the function to prevent this is loaded after nodes.lua, leading the on_drop function to be nil.
2019-10-04 00:21:18 +02:00
fa62966bbe Update pre-commit hooks to 2.3.0 2019-09-25 23:06:20 +02:00
65cb89a261 Document the Minetest 5.0.0 version requirement 2019-09-08 22:57:15 +02:00
cb4888a2bb Travis CI: Use the bionic distribution 2019-07-29 00:49:03 +02:00
ae83eea882 Optimize PNG images losslessly
Commands used:

- `parallel optipng -o7 -zm1-9 -strip all ::: **/*.png`
- `parallel advpng -z4 -i5000 ::: **/*.png`
2019-06-19 21:22:29 +02:00
36 changed files with 90 additions and 283 deletions

View File

@ -1,6 +1,6 @@
repos: repos:
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.1.0 rev: v2.3.0
hooks: hooks:
- id: end-of-file-fixer - id: end-of-file-fixer
- id: trailing-whitespace - id: trailing-whitespace

View File

@ -1,15 +1,15 @@
language: generic dist: bionic
language: python
addons: python:
apt: - 3.7.1
packages:
- luarocks
install: install:
- pyenv global 3.6.3 - sudo apt-get update -qq
- pip3 install --user pre-commit - sudo apt-get install -qqq luarocks
- pip3 install pre-commit
- luarocks install --local luacheck - luarocks install --local luacheck
script: script:
- $HOME/.local/bin/pre-commit run --all-files - pre-commit run --all-files
- $HOME/.luarocks/bin/luacheck . - $HOME/.luarocks/bin/luacheck .

View File

@ -7,9 +7,19 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased] ## [Unreleased]
## [2.0.0] - 2019-11-25
### Changed ### Changed
- The minimum supported Minetest version is now 5.0.0. - The minimum supported Minetest version is now 5.0.0.
- Map Tools nodes/items can no longer be dropped to prevent them from falling
into bad hands.
### Fixed
- The inventory images of `no_interact`, `no_build`, `ignore_like_no_clip`
and `ignore_like_no_point` now use textures that are available in
Minetest Game 5.0.0.
## [1.1.0] - 2019-03-23 ## [1.1.0] - 2019-03-23
@ -22,5 +32,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Initial versioned release. - Initial versioned release.
[Unreleased]: https://github.com/minetest-mods/maptools/compare/v1.1.0...HEAD [Unreleased]: https://github.com/minetest-mods/maptools/compare/v2.0.0...HEAD
[2.0.0]: https://github.com/minetest-mods/maptools/compare/v1.1.0...v2.0.0
[1.1.0]: https://github.com/minetest-mods/maptools/compare/v1.0.0...v1.1.0 [1.1.0]: https://github.com/minetest-mods/maptools/compare/v1.0.0...v1.1.0

3
LICENSE.md Executable file → Normal file
View File

@ -1,5 +1,4 @@
zlib license # zlib license
============
Copyright © 2012-2019 Hugo Locurcio and contributors Copyright © 2012-2019 Hugo Locurcio and contributors

View File

@ -9,8 +9,8 @@ use `-1` as the amount.
## Nodes ## Nodes
:warning: denotes an unpointable, unbreakable block; be very careful with them, :warning: denotes an unpointable, unbreakable block; be very careful with them,
as they cannot be removed by hand (they can only be removed with WorldEdit or as they cannot be removed by hand (they can only be removed with
similar). [WorldEdit](https://github.com/Uberi/Minetest-WorldEdit) or similar).
| Item code | Description | | Item code | Description |
| ----------------------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----------------------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

4
README.md Executable file → Normal file
View File

@ -63,9 +63,9 @@ on that line.
## Version compatibility ## Version compatibility
Map Tools is currently primarily tested with Minetest 0.4.17. Map Tools is currently primarily tested with Minetest 5.1.0.
It may or may not work with newer or older versions. Issues arising in older 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 5.0.0 will generally not be fixed.
## License ## License

0
aliases.lua Executable file → Normal file
View File

2
config.lua Executable file → Normal file
View File

@ -26,4 +26,4 @@ local function setting(settingtype, name, default)
end end
-- Show Map Tools stuff in creative inventory (1 or 0): -- Show Map Tools stuff in creative inventory (1 or 0):
setting("integer", "hide_from_creative_inventory", 0) setting("integer", "hide_from_creative_inventory", 1)

0
craftitems.lua Executable file → Normal file
View File

241
default_nodes.lua Executable file → Normal file
View File

@ -220,30 +220,6 @@ minetest.register_node("maptools:sandstone_brick", {
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_drop = maptools.drop_msg 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", { minetest.register_node("maptools:desert_stone", {
description = S("Unbreakable Desert Stone"), description = S("Unbreakable Desert Stone"),
@ -474,220 +450,3 @@ minetest.register_node("maptools:desert_sand_soil_wet", {
sounds = default.node_sound_sand_defaults(), sounds = default.node_sound_sand_defaults(),
on_drop = maptools.drop_msg 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},
})

10
init.lua Executable file → Normal file
View File

@ -16,14 +16,14 @@ local S, NS = dofile(modpath .. "/intllib.lua")
maptools.S = S maptools.S = S
maptools.NS = NS 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 .. "/config.lua")
dofile(modpath .. "/aliases.lua") dofile(modpath .. "/aliases.lua")
dofile(modpath .. "/craftitems.lua") dofile(modpath .. "/craftitems.lua")
dofile(modpath .. "/default_nodes.lua") dofile(modpath .. "/default_nodes.lua")
dofile(modpath .. "/nodes.lua") dofile(modpath .. "/nodes.lua")
dofile(modpath .. "/tools.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

0
locale/es.txt Executable file → Normal file
View File

0
locale/fr.txt Executable file → Normal file
View File

47
locale/it.txt Normal file
View File

@ -0,0 +1,47 @@
# 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

31
nodes.lua Executable file → Normal file
View File

@ -271,7 +271,7 @@ minetest.register_node("maptools:lightbulb", {
drawtype = "airlike", drawtype = "airlike",
walkable = false, walkable = false,
pointable = false, pointable = false,
light_source = default.LIGHT_MAX, light_source = 14,
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
drop = "", drop = "",
@ -283,7 +283,7 @@ minetest.register_node("maptools:nobuild", {
description = S("Build Prevention"), description = S("Build Prevention"),
range = 12, range = 12,
stack_max = 10000, stack_max = 10000,
inventory_image = "default_steel_block.png^bones_bones.png", inventory_image = "default_steel_block.png^default_flint.png",
drawtype = "airlike", drawtype = "airlike",
walkable = false, walkable = false,
pointable = false, pointable = false,
@ -298,7 +298,7 @@ minetest.register_node("maptools:nointeract", {
description = S("Interact Prevention"), description = S("Interact Prevention"),
range = 12, range = 12,
stack_max = 10000, stack_max = 10000,
inventory_image = "default_steel_block.png^default_scorched_stuff.png", inventory_image = "default_steel_block.png^default_bush_stem.png",
drawtype = "airlike", drawtype = "airlike",
walkable = false, walkable = false,
paramtype = "light", paramtype = "light",
@ -450,29 +450,20 @@ minetest.register_node("maptools:igniter", {
minetest.register_node("maptools:superapple", { minetest.register_node("maptools:superapple", {
description = S("Super Apple"), description = S("Super Apple"),
range = 12, range = 12,
stack_max = 99, stack_max = 10000,
drawtype = "nodebox", drawtype = "plantlike",
visual_scale = 1.0, visual_scale = 1.0,
tiles = {"maptools_super_apple_top.png","maptools_super_apple_bottom.png","maptools_super_apple_side.png"}, tiles = {"maptools_superapple.png"},
inventory_image = "maptools_superapple.png", inventory_image = "maptools_superapple.png",
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
walkable = false, selection_box = {
node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2}
{-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, walkable = false,
groups = {fleshy=3, dig_immediate=3, not_in_creative_inventory = 0, flammable = 2, leafdecay = 3, leafdecay_drop = 1}, groups = {fleshy=3, dig_immediate=3, not_in_creative_inventory = maptools.creative},
on_use = minetest.item_eat(20), on_use = minetest.item_eat(20),
sounds = default.node_sound_defaults(), sounds = default.node_sound_defaults(),
on_drop = maptools.drop_msg
}) })

0
textures/black.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 67 B

After

Width:  |  Height:  |  Size: 67 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 B

BIN
textures/fire_basic_flame.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 794 B

After

Width:  |  Height:  |  Size: 695 B

BIN
textures/fire_basic_flame_animated.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

0
textures/invisible.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 68 B

After

Width:  |  Height:  |  Size: 68 B

BIN
textures/maptools_adminpick.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 B

After

Width:  |  Height:  |  Size: 279 B

BIN
textures/maptools_adminpick_with_drops.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 278 B

After

Width:  |  Height:  |  Size: 276 B

0
textures/maptools_copper_coin.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 213 B

After

Width:  |  Height:  |  Size: 213 B

0
textures/maptools_gold_coin.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 213 B

After

Width:  |  Height:  |  Size: 213 B

BIN
textures/maptools_grass_side_12.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 B

After

Width:  |  Height:  |  Size: 549 B

0
textures/maptools_grass_side_4.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 294 B

After

Width:  |  Height:  |  Size: 294 B

BIN
textures/maptools_grass_side_8.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 466 B

After

Width:  |  Height:  |  Size: 442 B

BIN
textures/maptools_infinitefuel.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 B

After

Width:  |  Height:  |  Size: 380 B

0
textures/maptools_silver_coin.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 213 B

After

Width:  |  Height:  |  Size: 213 B

0
textures/maptools_smoke.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 296 B

After

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 342 B

0
textures/maptools_superapple.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 230 B

After

Width:  |  Height:  |  Size: 230 B

0
textures/white.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 67 B

After

Width:  |  Height:  |  Size: 67 B

0
tools.lua Executable file → Normal file
View File