forked from mff/maptools
		
	Compare commits
	
		
			8 Commits
		
	
	
		
			c523170c86
			...
			c4d54b083a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| c4d54b083a | |||
| 
						 | 
					2100ca04b1 | ||
| 51c2ff4e46 | |||
| 
						 | 
					f3464f5063 | ||
| 176ca6ea8b | |||
| 
						 | 
					d1134c47af | ||
| 
						 | 
					e3ca31cdb9 | ||
| 
						 | 
					9915ec1852 | 
@@ -26,4 +26,6 @@ local function setting(settingtype, name, default)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- Show Map Tools stuff in creative inventory (1 or 0):
 | 
			
		||||
setting("integer", "hide_from_creative_inventory", 0)
 | 
			
		||||
setting("integer", "hide_from_creative_inventory", 1)
 | 
			
		||||
-- Enable crafting recipes for coins (true or false):
 | 
			
		||||
setting("bool", "enable_coin_crafting", false)
 | 
			
		||||
 
 | 
			
		||||
@@ -16,6 +16,14 @@ minetest.register_craftitem("maptools:copper_coin", {
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
if maptools.config and maptools.config.enable_coin_crafting then
 | 
			
		||||
	minetest.register_craft({
 | 
			
		||||
		output = "maptools:copper_coin 10",
 | 
			
		||||
		type = "shapeless",
 | 
			
		||||
		recipe = { "default:copper_ingot", "default:copper_ingot" }
 | 
			
		||||
	})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
minetest.register_craftitem("maptools:silver_coin", {
 | 
			
		||||
	description = S("Silver Coin"),
 | 
			
		||||
	inventory_image = "maptools_silver_coin.png",
 | 
			
		||||
@@ -23,6 +31,16 @@ minetest.register_craftitem("maptools:silver_coin", {
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
if maptools.config and maptools.config.enable_coin_crafting then
 | 
			
		||||
	if minetest.get_modpath("moreores") then
 | 
			
		||||
		minetest.register_craft({
 | 
			
		||||
			output = "maptools:silver_coin 10",
 | 
			
		||||
			type = "shapeless",
 | 
			
		||||
			recipe = { "moreores:silver_ingot", "moreores:silver_ingot" }
 | 
			
		||||
		})
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
minetest.register_craftitem("maptools:gold_coin", {
 | 
			
		||||
	description = S("Gold Coin"),
 | 
			
		||||
	inventory_image = "maptools_gold_coin.png",
 | 
			
		||||
@@ -30,10 +48,18 @@ minetest.register_craftitem("maptools:gold_coin", {
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
if maptools.config and maptools.config.enable_coin_crafting then
 | 
			
		||||
	minetest.register_craft({
 | 
			
		||||
		output = "maptools:gold_coin 10",
 | 
			
		||||
		type = "shapeless",
 | 
			
		||||
		recipe = { "default:gold_ingot", "default:gold_ingot" }
 | 
			
		||||
	})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
minetest.register_craftitem("maptools:infinitefuel", {
 | 
			
		||||
	description = S("Infinite Fuel"),
 | 
			
		||||
	inventory_image = "maptools_infinitefuel.png",
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	stack_max = 65535,
 | 
			
		||||
	groups = {not_in_creative_inventory = maptools.creative},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -6,26 +6,10 @@ Licensed under the zlib license. See LICENSE.md for more information.
 | 
			
		||||
--]]
 | 
			
		||||
 | 
			
		||||
local S = maptools.S
 | 
			
		||||
local register_node = maptools.register_node
 | 
			
		||||
 | 
			
		||||
maptools.creative = maptools.config["hide_from_creative_inventory"]
 | 
			
		||||
 | 
			
		||||
local function register_node(name, def)
 | 
			
		||||
	-- Increase the interaction range when holding Map Tools nodes to make building easier.
 | 
			
		||||
	def.range = 12
 | 
			
		||||
	def.stack_max = 10000
 | 
			
		||||
	def.drop = ""
 | 
			
		||||
	if def.groups then
 | 
			
		||||
		def.groups.unbreakable = 1
 | 
			
		||||
		def.groups.not_in_creative_inventory = maptools.creative
 | 
			
		||||
	else
 | 
			
		||||
		def.groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}
 | 
			
		||||
	end
 | 
			
		||||
	def.on_drop = maptools.drop_msg
 | 
			
		||||
	-- Prevent Map Tools nodes from being exploded by TNT.
 | 
			
		||||
	def.on_blast = function() end
 | 
			
		||||
	minetest.register_node(name, def)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
register_node("maptools:stone", {
 | 
			
		||||
	description = S("Unbreakable Stone"),
 | 
			
		||||
	tiles = {"default_stone.png"},
 | 
			
		||||
 
 | 
			
		||||
@@ -7,8 +7,17 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
 | 
			
		||||
 | 
			
		||||
## [Unreleased]
 | 
			
		||||
 | 
			
		||||
### Fixed
 | 
			
		||||
 | 
			
		||||
- [The Admin Pickaxe can now dig More Ores' mithril blocks with client-side prediction (thanks to `maxlevel` being increased from 3 to 5).](https://github.com/minetest-mods/maptools/pull/30)
 | 
			
		||||
 | 
			
		||||
## [2.2.0] - 2021-06-28
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
 | 
			
		||||
- [Disabled crafting recipes for coins by default.](https://github.com/minetest-mods/maptools/pull/29)
 | 
			
		||||
  - They can be enabled again by setting `maptools.enable_coin_crafting = true`
 | 
			
		||||
    in `minetest.conf`.
 | 
			
		||||
- Map Tools nodes can no longer be exploded by TNT.
 | 
			
		||||
- Switched from Travis CI to GitHub Actions for continuous integration.
 | 
			
		||||
 | 
			
		||||
@@ -48,7 +57,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
 | 
			
		||||
 | 
			
		||||
- Initial versioned release.
 | 
			
		||||
 | 
			
		||||
[Unreleased]: https://github.com/minetest-mods/maptools/compare/v2.1.0...HEAD
 | 
			
		||||
[Unreleased]: https://github.com/minetest-mods/maptools/compare/v2.2.0...HEAD
 | 
			
		||||
[2.2.0]: https://github.com/minetest-mods/maptools/compare/v2.1.0...v2.2.0
 | 
			
		||||
[2.1.0]: https://github.com/minetest-mods/maptools/compare/v2.0.0...v2.1.0
 | 
			
		||||
[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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								init.lua
									
									
									
									
									
								
							@@ -20,6 +20,25 @@ maptools.drop_msg = function(itemstack, player)
 | 
			
		||||
	minetest.chat_send_player(name, S("[maptools] tools/nodes do not drop!"))
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function maptools.register_node(name, def)
 | 
			
		||||
	-- Increase the interaction range when holding Map Tools nodes to make building easier.
 | 
			
		||||
	def.range = 12
 | 
			
		||||
	def.stack_max = 65535
 | 
			
		||||
	def.drop = ""
 | 
			
		||||
	if def.groups then
 | 
			
		||||
		if not def.groups.dig_immediate then
 | 
			
		||||
			def.groups.unbreakable = 1
 | 
			
		||||
		end
 | 
			
		||||
		def.groups.not_in_creative_inventory = maptools.creative
 | 
			
		||||
	else
 | 
			
		||||
		def.groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}
 | 
			
		||||
	end
 | 
			
		||||
	def.on_drop = maptools.drop_msg
 | 
			
		||||
	-- Prevent Map Tools nodes from being exploded by TNT.
 | 
			
		||||
	def.on_blast = function() end
 | 
			
		||||
	minetest.register_node(name, def)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
dofile(modpath .. "/config.lua")
 | 
			
		||||
dofile(modpath .. "/aliases.lua")
 | 
			
		||||
dofile(modpath .. "/craftitems.lua")
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										199
									
								
								nodes.lua
									
									
									
									
									
								
							
							
						
						
									
										199
									
								
								nodes.lua
									
									
									
									
									
								
							@@ -6,63 +6,44 @@ Licensed under the zlib license. See LICENSE.md for more information.
 | 
			
		||||
--]]
 | 
			
		||||
 | 
			
		||||
local S = maptools.S
 | 
			
		||||
local register_node = maptools.register_node
 | 
			
		||||
 | 
			
		||||
maptools.creative = maptools.config["hide_from_creative_inventory"]
 | 
			
		||||
 | 
			
		||||
-- Redefine cloud so that the admin pickaxe can mine it
 | 
			
		||||
minetest.register_node(":default:cloud", {
 | 
			
		||||
register_node(":default:cloud", {
 | 
			
		||||
	description = S("Cloud"),
 | 
			
		||||
	tiles = {"default_cloud.png"},
 | 
			
		||||
	drop = "",
 | 
			
		||||
	groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative},
 | 
			
		||||
	sounds = default.node_sound_defaults(),
 | 
			
		||||
	on_drop = maptools.drop_msg
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Nodes
 | 
			
		||||
 | 
			
		||||
minetest.register_node("maptools:black", {
 | 
			
		||||
register_node("maptools:black", {
 | 
			
		||||
	description = S("Black"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	tiles = {"black.png"},
 | 
			
		||||
	drop = "",
 | 
			
		||||
	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", {
 | 
			
		||||
register_node("maptools:white", {
 | 
			
		||||
	description = S("White"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	tiles = {"white.png"},
 | 
			
		||||
	drop = "",
 | 
			
		||||
	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", {
 | 
			
		||||
register_node("maptools:playerclip", {
 | 
			
		||||
	description = S("Player Clip"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	inventory_image = "default_steel_block.png^dye_green.png",
 | 
			
		||||
	drawtype = "airlike",
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	pointable = false,
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	drop = "",
 | 
			
		||||
	groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative},
 | 
			
		||||
	on_drop = maptools.drop_msg
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("maptools:fake_walkable", {
 | 
			
		||||
register_node("maptools:fake_walkable", {
 | 
			
		||||
	description = S("Player Clip"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	inventory_image = "default_steel_block.png^dye_green.png",
 | 
			
		||||
	drawtype = "airlike",
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
@@ -74,28 +55,18 @@ minetest.register_node("maptools:fake_walkable", {
 | 
			
		||||
			{0, 0, 0, 0, 0, 0},
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	drop = "",
 | 
			
		||||
	groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative},
 | 
			
		||||
	on_drop = maptools.drop_msg
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("maptools:fullclip", {
 | 
			
		||||
register_node("maptools:fullclip", {
 | 
			
		||||
	description = S("Full Clip"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	inventory_image = "default_steel_block.png^dye_blue.png",
 | 
			
		||||
	drawtype = "airlike",
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	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", {
 | 
			
		||||
register_node("maptools:fake_walkable_pointable", {
 | 
			
		||||
	description = S("Player Clip"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	inventory_image = "default_steel_block.png^dye_green.png",
 | 
			
		||||
	drawtype = "airlike",
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
@@ -106,72 +77,47 @@ minetest.register_node("maptools:fake_walkable_pointable", {
 | 
			
		||||
			{0, 0, 0, 0, 0, 0},
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	drop = "",
 | 
			
		||||
	groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative},
 | 
			
		||||
	on_drop = maptools.drop_msg
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("maptools:ignore_like", {
 | 
			
		||||
register_node("maptools:ignore_like", {
 | 
			
		||||
	description = S("Ignore-like"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	inventory_image = "default_steel_block.png^dye_pink.png",
 | 
			
		||||
	tiles = {"invisible.png"},
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	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", {
 | 
			
		||||
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_violet.png",
 | 
			
		||||
	tiles = {"invisible.png"},
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	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_point", {
 | 
			
		||||
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_violet.png",
 | 
			
		||||
	tiles = {"invisible.png"},
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	pointable = false,
 | 
			
		||||
	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", {
 | 
			
		||||
register_node("maptools:ignore_like_no_clip_no_point", {
 | 
			
		||||
	description = S("Ignore-like (no clip, no point)"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	inventory_image = "default_steel_block.png^dye_pink.png",
 | 
			
		||||
	tiles = {"invisible.png"},
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	pointable = false,
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	drop = "",
 | 
			
		||||
	groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative},
 | 
			
		||||
	on_drop = maptools.drop_msg
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("maptools:fullclip_face", {
 | 
			
		||||
register_node("maptools:fullclip_face", {
 | 
			
		||||
	description = S("Full Clip Face"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	inventory_image = "default_steel_block.png^dye_white.png",
 | 
			
		||||
	drawtype = "nodebox",
 | 
			
		||||
	tiles = {"invisible.png"},
 | 
			
		||||
@@ -182,19 +128,13 @@ minetest.register_node("maptools:fullclip_face", {
 | 
			
		||||
		type = "fixed",
 | 
			
		||||
		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,
 | 
			
		||||
	},
 | 
			
		||||
	on_drop = maptools.drop_msg
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("maptools:playerclip_bottom", {
 | 
			
		||||
register_node("maptools:playerclip_bottom", {
 | 
			
		||||
	description = S("Player Clip Bottom Face"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	inventory_image = "default_steel_block.png^dye_orange.png",
 | 
			
		||||
	drawtype = "nodebox",
 | 
			
		||||
	tiles = {"invisible.png"},
 | 
			
		||||
@@ -205,19 +145,13 @@ minetest.register_node("maptools:playerclip_bottom", {
 | 
			
		||||
		type = "fixed",
 | 
			
		||||
		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,
 | 
			
		||||
	},
 | 
			
		||||
	on_drop = maptools.drop_msg
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("maptools:playerclip_top", {
 | 
			
		||||
register_node("maptools:playerclip_top", {
 | 
			
		||||
	description = S("Player Clip Top Face"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	inventory_image = "default_steel_block.png^dye_yellow.png",
 | 
			
		||||
	drawtype = "nodebox",
 | 
			
		||||
	tiles = {"invisible.png"},
 | 
			
		||||
@@ -228,20 +162,14 @@ minetest.register_node("maptools:playerclip_top", {
 | 
			
		||||
		type = "fixed",
 | 
			
		||||
		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,
 | 
			
		||||
	},
 | 
			
		||||
	on_drop = maptools.drop_msg
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
for pusher_num=1,10,1 do
 | 
			
		||||
	minetest.register_node("maptools:pusher_" .. pusher_num, {
 | 
			
		||||
	register_node("maptools:pusher_" .. pusher_num, {
 | 
			
		||||
		description = S("Pusher (%s)"):format(pusher_num),
 | 
			
		||||
		range = 12,
 | 
			
		||||
		stack_max = 10000,
 | 
			
		||||
				inventory_image = "default_steel_block.png^default_apple.png",
 | 
			
		||||
		drawtype = "nodebox",
 | 
			
		||||
		tiles = {"invisible.png"},
 | 
			
		||||
@@ -252,21 +180,15 @@ for pusher_num=1,10,1 do
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			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,
 | 
			
		||||
		},
 | 
			
		||||
		on_drop = maptools.drop_msg
 | 
			
		||||
	})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
minetest.register_node("maptools:lightbulb", {
 | 
			
		||||
register_node("maptools:lightbulb", {
 | 
			
		||||
	description = S("Light Bulb"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	inventory_image = "default_steel_block.png^default_mese_crystal_fragment.png",
 | 
			
		||||
	drawtype = "airlike",
 | 
			
		||||
	walkable = false,
 | 
			
		||||
@@ -274,44 +196,29 @@ minetest.register_node("maptools:lightbulb", {
 | 
			
		||||
	light_source = default.LIGHT_MAX,
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	drop = "",
 | 
			
		||||
	groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative},
 | 
			
		||||
	on_drop = maptools.drop_msg
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("maptools:nobuild", {
 | 
			
		||||
register_node("maptools:nobuild", {
 | 
			
		||||
	description = S("Build Prevention"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	inventory_image = "default_steel_block.png^default_flint.png",
 | 
			
		||||
	drawtype = "airlike",
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	pointable = false,
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	drop = "",
 | 
			
		||||
	groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative},
 | 
			
		||||
	on_drop = maptools.drop_msg
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("maptools:nointeract", {
 | 
			
		||||
register_node("maptools:nointeract", {
 | 
			
		||||
	description = S("Interact Prevention"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	inventory_image = "default_steel_block.png^default_bush_stem.png",
 | 
			
		||||
	drawtype = "airlike",
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	drop = "",
 | 
			
		||||
	groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative},
 | 
			
		||||
	on_drop = maptools.drop_msg
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("maptools:climb", {
 | 
			
		||||
register_node("maptools:climb", {
 | 
			
		||||
	description = S("Climb Block"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	inventory_image = "default_steel_block.png^default_ladder_wood.png",
 | 
			
		||||
	drawtype = "airlike",
 | 
			
		||||
	walkable = false,
 | 
			
		||||
@@ -319,16 +226,11 @@ minetest.register_node("maptools:climb", {
 | 
			
		||||
	pointable = false,
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	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
 | 
			
		||||
minetest.register_node("maptools:damage_" .. damage_num, {
 | 
			
		||||
register_node("maptools:damage_" .. damage_num, {
 | 
			
		||||
	description = S("Damaging Block (%s)"):format(damage_num),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	inventory_image = "default_steel_block.png^farming_cotton_" .. damage_num .. ".png",
 | 
			
		||||
	drawtype = "airlike",
 | 
			
		||||
	walkable = false,
 | 
			
		||||
@@ -336,16 +238,11 @@ minetest.register_node("maptools:damage_" .. damage_num, {
 | 
			
		||||
	damage_per_second = damage_num,
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	drop = "",
 | 
			
		||||
	groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative},
 | 
			
		||||
	on_drop = maptools.drop_msg
 | 
			
		||||
})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
minetest.register_node("maptools:kill", {
 | 
			
		||||
register_node("maptools:kill", {
 | 
			
		||||
	description = S("Kill Block"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	inventory_image = "default_steel_block.png^dye_black.png",
 | 
			
		||||
	drawtype = "airlike",
 | 
			
		||||
	walkable = false,
 | 
			
		||||
@@ -353,29 +250,19 @@ minetest.register_node("maptools:kill", {
 | 
			
		||||
	damage_per_second = 20,
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	drop = "",
 | 
			
		||||
	groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative},
 | 
			
		||||
	on_drop = maptools.drop_msg
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("maptools:smoke", {
 | 
			
		||||
register_node("maptools:smoke", {
 | 
			
		||||
	description = S("Smoke Block"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	tiles = {"maptools_smoke.png"},
 | 
			
		||||
	drawtype = "allfaces_optional",
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	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", {
 | 
			
		||||
register_node("maptools:ladder", {
 | 
			
		||||
	description = S("Fake Ladder"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	drawtype = "signlike",
 | 
			
		||||
	tiles = {"default_ladder_wood.png"},
 | 
			
		||||
	inventory_image = "default_ladder_wood.png",
 | 
			
		||||
@@ -387,16 +274,11 @@ minetest.register_node("maptools:ladder", {
 | 
			
		||||
	selection_box = {
 | 
			
		||||
		type = "wallmounted",
 | 
			
		||||
	},
 | 
			
		||||
	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", {
 | 
			
		||||
register_node("maptools:permanent_fire", {
 | 
			
		||||
	description = S("Permanent Fire"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	drawtype = "plantlike",
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	tiles = {{
 | 
			
		||||
@@ -405,18 +287,13 @@ minetest.register_node("maptools:permanent_fire", {
 | 
			
		||||
	}},
 | 
			
		||||
	inventory_image = "fire_basic_flame.png",
 | 
			
		||||
	light_source = 14,
 | 
			
		||||
	drop = "",
 | 
			
		||||
	groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative},
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	damage_per_second = 4,
 | 
			
		||||
	on_drop = maptools.drop_msg
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("maptools:fake_fire", {
 | 
			
		||||
register_node("maptools:fake_fire", {
 | 
			
		||||
	description = S("Fake Fire"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	drawtype = "plantlike",
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	tiles = {{
 | 
			
		||||
@@ -425,33 +302,24 @@ minetest.register_node("maptools:fake_fire", {
 | 
			
		||||
	}},
 | 
			
		||||
	inventory_image = "fire_basic_flame.png",
 | 
			
		||||
	light_source = 14,
 | 
			
		||||
	drop = "",
 | 
			
		||||
	groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative},
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	on_drop = maptools.drop_msg
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("maptools:igniter", {
 | 
			
		||||
register_node("maptools:igniter", {
 | 
			
		||||
	drawtype = "airlike",
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	description = S("Igniter"),
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	inventory_image = "fire_basic_flame.png",
 | 
			
		||||
	drop = "",
 | 
			
		||||
	groups = {igniter=2, unbreakable = 1, not_in_creative_inventory = maptools.creative},
 | 
			
		||||
	groups = {igniter=2},
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	pointable = false,
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	on_drop = maptools.drop_msg
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("maptools:superapple", {
 | 
			
		||||
register_node("maptools:superapple", {
 | 
			
		||||
	description = S("Super Apple"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 99,
 | 
			
		||||
	drawtype = "nodebox",
 | 
			
		||||
	drawtype = "plantlike",
 | 
			
		||||
	visual_scale = 1.0,
 | 
			
		||||
	tiles = {"maptools_super_apple_top.png","maptools_super_apple_bottom.png","maptools_super_apple_side.png"},
 | 
			
		||||
	inventory_image = "maptools_superapple.png",
 | 
			
		||||
@@ -477,10 +345,8 @@ minetest.register_node("maptools:superapple", {
 | 
			
		||||
	sounds = default.node_sound_defaults(),
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("maptools:drowning", {
 | 
			
		||||
register_node("maptools:drowning", {
 | 
			
		||||
	description = S("Drownable Air"),
 | 
			
		||||
	range = 12,
 | 
			
		||||
	stack_max = 10000,
 | 
			
		||||
	inventory_image = "default_steel_block.png^dye_black.png",
 | 
			
		||||
	drawtype = "airlike",
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
@@ -488,7 +354,4 @@ minetest.register_node("maptools:drowning", {
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	drowning = 1,
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	drop = "",
 | 
			
		||||
	groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative},
 | 
			
		||||
	on_drop = maptools.drop_msg
 | 
			
		||||
})
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								settingtypes.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								settingtypes.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
# If `true`, enables coin crafting recipes. If `false`, disables coin crafting recipes.
 | 
			
		||||
# Takes effect only at load-time; runtime changes to this setting are ignored.
 | 
			
		||||
maptools.enable_coin_crafting (Enable crafting recipes for coins) bool false
 | 
			
		||||
							
								
								
									
										14
									
								
								tools.lua
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								tools.lua
									
									
									
									
									
								
							@@ -13,13 +13,13 @@ local pick_admin_toolcaps = {
 | 
			
		||||
	full_punch_interval = 0.1,
 | 
			
		||||
	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},
 | 
			
		||||
		unbreakable = {times = {[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 5},
 | 
			
		||||
		fleshy = {times = {[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 5},
 | 
			
		||||
		choppy = {times = {[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 5},
 | 
			
		||||
		bendy = {times = {[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 5},
 | 
			
		||||
		cracky = {times = {[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 5},
 | 
			
		||||
		crumbly = {times = {[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 5},
 | 
			
		||||
		snappy = {times = {[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 5},
 | 
			
		||||
	},
 | 
			
		||||
	damage_groups = {fleshy = 1000},
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user