forked from mff/maptools
		
	Compare commits
	
		
			9 Commits
		
	
	
		
			176ca6ea8b
			...
			5da0dc08cf
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 5da0dc08cf | |||
| 
						 | 
					b9e69b70c4 | ||
| f28ddc1385 | |||
| 
						 | 
					ce8a6aec22 | ||
| 
						 | 
					1949d88b06 | ||
| c4d54b083a | |||
| 
						 | 
					2100ca04b1 | ||
| 51c2ff4e46 | |||
| 
						 | 
					f3464f5063 | 
							
								
								
									
										20
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							@@ -4,8 +4,18 @@ jobs:
 | 
			
		||||
  lint:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@master
 | 
			
		||||
      - name: lint
 | 
			
		||||
        uses: Roang-zero1/factorio-mod-luacheck@master
 | 
			
		||||
        with:
 | 
			
		||||
          luacheckrc_url: ""
 | 
			
		||||
      - uses: actions/checkout@v3
 | 
			
		||||
      - uses: actions/setup-python@v4
 | 
			
		||||
 | 
			
		||||
      - name: Install LuaRocks
 | 
			
		||||
        run: |
 | 
			
		||||
          sudo apt-get update -qq
 | 
			
		||||
          sudo apt-get install -qqq luarocks
 | 
			
		||||
      - name: Install pre-commit and LuaCheck
 | 
			
		||||
        run: |
 | 
			
		||||
          pip3 install pre-commit
 | 
			
		||||
          luarocks install --local luacheck
 | 
			
		||||
      - name: Run LuaCheck with pre-commit
 | 
			
		||||
        run: |
 | 
			
		||||
          pre-commit run --all-files
 | 
			
		||||
          $HOME/.luarocks/bin/luacheck .
 | 
			
		||||
 
 | 
			
		||||
@@ -59,7 +59,7 @@ 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,6 +7,10 @@ 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
 | 
			
		||||
 
 | 
			
		||||
@@ -12,15 +12,20 @@ use `-1` as the amount.
 | 
			
		||||
as they cannot be removed by hand (they can only be removed with
 | 
			
		||||
[WorldEdit](https://github.com/Uberi/Minetest-WorldEdit) or similar).
 | 
			
		||||
 | 
			
		||||
> **Note**
 | 
			
		||||
>
 | 
			
		||||
> All of the nodes mentioned below have aliases which can be used as well.\
 | 
			
		||||
> Here's the full aliases list: <https://github.com/minetest-mods/maptools/blob/master/aliases.lua>
 | 
			
		||||
 | 
			
		||||
| Item code               | Description                                                                                                                                                            |
 | 
			
		||||
| ----------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
 | 
			
		||||
| `maptools:{block}_u`    | Unbreakable, non-flammable, non-falling, non-decaying blocks. Most common default blocks have an unbreakable form available (`maptools:stone_u`, `maptools:wood_u`, …) |
 | 
			
		||||
| `maptools:full_grass`   | Unbreakable block with the grass texture on all sides.                                                                                                                 |
 | 
			
		||||
| `maptools:player_clip`  | :warning: Invisible, non-pointable block that blocks players and entities.                                                                                             |
 | 
			
		||||
| `maptools:full_clip`    | Invisible, pointable block that blocks players and entities. Also available as a thin face (`maptools:full_clip_face`).                                                |
 | 
			
		||||
| `maptools:playerclip`  | :warning: Invisible, non-pointable block that blocks players and entities.                                                                                              |
 | 
			
		||||
| `maptools:fullclip`    | Invisible, pointable block that blocks players and entities. Also available as a thin face (`maptools:fullclip_face`).                                                  |
 | 
			
		||||
| `maptools:smoke`        | Some smoke. Decreases visibility, but doesn't damage players or entities).                                                                                             |
 | 
			
		||||
| `maptools:no_build`     | :warning: Very basic building prevention.                                                                                                                              |
 | 
			
		||||
| `maptools:no_interact`  | Prevents interacting through the block (opening chests, furnaces, attacking entities, …), but can still be walked through.                                             |
 | 
			
		||||
| `maptools:nobuild`     | :warning: Very basic building prevention.                                                                                                                               |
 | 
			
		||||
| `maptools:nointeract`  | Prevents interacting through the block (opening chests, furnaces, attacking entities, …), but can still be walked through.                                              |
 | 
			
		||||
| `maptools:damage_{1…5}` | :warning: Damaging blocks which damage players by 1 to 5 HP per second.                                                                                                |
 | 
			
		||||
| `maptools:kill`         | :warning: Instant kill blocks (damages players by 20 HP per second).                                                                                                   |
 | 
			
		||||
| `maptools:drowning`     | :warning: Simulates drowning in water.                                                                                                                                 |
 | 
			
		||||
@@ -31,10 +36,10 @@ as they cannot be removed by hand (they can only be removed with
 | 
			
		||||
 | 
			
		||||
| Item code                        | Description                                                                                                                                       |
 | 
			
		||||
| -------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------ |
 | 
			
		||||
| `maptools:admin_pick`            | A bright magenta pickaxe with infinite durability, digs everything including unbreakable blocks instantly. No drops are given when digging nodes. |
 | 
			
		||||
| `maptools:admin_pick_with_drops` | Same as the admin pickaxe, but drops are given when digging nodes.                                                                                |
 | 
			
		||||
| `maptools:infinite_fuel`         | Fuel lasting for a near-infinite time (about 50 real-life years).                                                                                 |
 | 
			
		||||
| `maptools:super_apple`           | A yellow apple which heals the player by 20 HP when used.                                                                                         |
 | 
			
		||||
| `maptools:pick_admin`            | A bright magenta pickaxe with infinite durability, digs everything including unbreakable blocks instantly. No drops are given when digging nodes. |
 | 
			
		||||
| `maptools:pick_admin_with_drops` | Same as the admin pickaxe, but drops are given when digging nodes.                                                                                |
 | 
			
		||||
| `maptools:infinitefuel`         | Fuel lasting for a near-infinite time (about 50 real-life years).                                                                                  |
 | 
			
		||||
| `maptools:superapple`           | A yellow apple which heals the player by 20 HP when used.                                                                                          |
 | 
			
		||||
| `maptools:copper_coin`           | Decorative item (can be used in mini-games).                                                                                                      |
 | 
			
		||||
| `maptools:silver_coin`           | Decorative item (can be used in mini-games).                                                                                                      |
 | 
			
		||||
| `maptools:gold_coin`             | Decorative item (can be used in mini-games).                                                                                                      |
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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")
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										208
									
								
								nodes.lua
									
									
									
									
									
								
							
							
						
						
									
										208
									
								
								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,167 +77,125 @@ 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
 | 
			
		||||
	use_texture_alpha = "clip",
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
	use_texture_alpha = "clip",
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
	use_texture_alpha = "clip",
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
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"},
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	paramtype2 = "facedir",
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	use_texture_alpha = "clip",
 | 
			
		||||
	node_box = {
 | 
			
		||||
		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"},
 | 
			
		||||
	pointable = false,
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	use_texture_alpha = "clip",
 | 
			
		||||
	node_box = {
 | 
			
		||||
		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"},
 | 
			
		||||
	pointable = false,
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	use_texture_alpha = "clip",
 | 
			
		||||
	node_box = {
 | 
			
		||||
		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",
 | 
			
		||||
				inventory_image = "default_steel_block.png^default_apple.png",
 | 
			
		||||
		drawtype = "nodebox",
 | 
			
		||||
		tiles = {"invisible.png"},
 | 
			
		||||
		paramtype = "light",
 | 
			
		||||
		paramtype2 = "facedir",
 | 
			
		||||
		sunlight_propagates = true,
 | 
			
		||||
		use_texture_alpha = "clip",
 | 
			
		||||
		node_box = {
 | 
			
		||||
			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 +203,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 +233,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 +245,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 +257,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 +281,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 +294,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 +309,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 +352,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 +361,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
 | 
			
		||||
})
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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