Compare commits
	
		
			82 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 93a49f082c | ||
|  | a00ff24df9 | ||
|  | 0f369b43fe | ||
|  | f87c3d05ae | ||
|  | 1c413ede9a | ||
|  | 8c9821b227 | ||
|  | ce1eaeebbe | ||
|  | f2a07b0a51 | ||
|  | c800398593 | ||
|  | 05375c0fd4 | ||
|  | 23ceb30e88 | ||
|  | 106c36da33 | ||
|  | 86a55d3584 | ||
|  | b31795dd04 | ||
|  | 3f7cd062c3 | ||
|  | 09bed49b5a | ||
|  | 00f9287075 | ||
|  | cbb0529ace | ||
|  | b4c7522248 | ||
|  | c42a525ce8 | ||
|  | 1f7ea89cb6 | ||
|  | 888383a812 | ||
|  | 88114a74e9 | ||
|  | e4adb01fbf | ||
|  | ea992bdace | ||
|  | bb9279ccb8 | ||
|  | d99a176b69 | ||
|  | 7e16ec7a2f | ||
|  | e8097c9e87 | ||
|  | 5c3e4b1d20 | ||
|  | 553b0f9d72 | ||
|  | 7269711911 | ||
|  | 3a3f71aa50 | ||
|  | fac8f390b1 | ||
|  | 4eadf80634 | ||
|  | e5ebb36cd5 | ||
|  | 2063fcd075 | ||
|  | a2254bd0af | ||
|  | 7f830124f7 | ||
|  | a5bde8e9ba | ||
|  | 6716fc74ec | ||
|  | c32b8adaa3 | ||
|  | 4282a93a02 | ||
|  | d16612c1cb | ||
|  | 9fe877ef99 | ||
|  | a81a7e0c78 | ||
|  | 9b226c7045 | ||
|  | 773011fd85 | ||
|  | c3403936d3 | ||
|  | b701e500aa | ||
|  | 37710866f0 | ||
|  | bfb84da39c | ||
|  | 3bca295da8 | ||
|  | 83fb6fe872 | ||
|  | 95aaec6670 | ||
|  | 5b1d5819e5 | ||
|  | 3d530e0c25 | ||
|  | e7be81242b | ||
|  | a6a719967a | ||
|  | 54bb0afe7f | ||
|  | 0f771a27c3 | ||
|  | ca7c131133 | ||
|  | 61bfac0fa2 | ||
|  | e19f42d648 | ||
|  | 76a08a7058 | ||
|  | 80c10cee15 | ||
|  | aee5ba64f9 | ||
|  | 5c48c76aa2 | ||
|  | f21bab2ff9 | ||
|  | 0291c6b210 | ||
|  | b20725026e | ||
|  | 88d79881b8 | ||
|  | efd090228d | ||
|  | dfe6fd6560 | ||
|  | dd3f3b2032 | ||
|  | 8b5e0a914b | ||
|  | e3cd961a15 | ||
|  | eaf6eac723 | ||
|  | 02e2cab375 | ||
|  | b853c8a509 | ||
|  | 891f00e9db | ||
|  | b38b5b2357 | 
| @@ -1,12 +1,11 @@ | |||||||
| language: generic | language: generic | ||||||
| sudo: false |  | ||||||
| addons: | addons: | ||||||
|   apt: |   apt: | ||||||
|     packages: |     packages: | ||||||
|     - luarocks |     - luarocks | ||||||
| before_install: | before_install: | ||||||
|   - luarocks install --local luacheck |   - luarocks install --local luacheck | ||||||
| script:  | script: | ||||||
| - $HOME/.luarocks/bin/luacheck --no-color ./mods | - $HOME/.luarocks/bin/luacheck ./mods | ||||||
| notifications: | notifications: | ||||||
|   email: false |   email: false | ||||||
|   | |||||||
							
								
								
									
										34
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,34 @@ | |||||||
|  | # Minetest Game | ||||||
|  |  | ||||||
|  | The default game bundled in the Minetest engine.   | ||||||
|  |  | ||||||
|  | For further information, check [this forum topic](https://forum.minetest.net/viewtopic.php?f=15&t=9724).    | ||||||
|  | Also see the [Minetest Wiki](https://wiki.minetest.net/Subgames/Minetest_Game) for more information. | ||||||
|  |  | ||||||
|  | ## Installation | ||||||
|  |  | ||||||
|  | - Unzip the archive, rename the folder to minetest_game and | ||||||
|  | place it in .. minetest/games/ | ||||||
|  |  | ||||||
|  | - GNU/Linux: If you use a system-wide installation place | ||||||
|  |     it in ~/.minetest/games/. | ||||||
|  |  | ||||||
|  | The Minetest engine can be found at | ||||||
|  | 	[GitHub](https://github.com/minetest/minetest). | ||||||
|  |  | ||||||
|  | For further information or help, see:   | ||||||
|  | https://wiki.minetest.net/Installing_Mods | ||||||
|  |  | ||||||
|  | ## Compatibility | ||||||
|  |  | ||||||
|  | The Minetest Game GitHub master HEAD is generally compatible with the GitHub | ||||||
|  | master HEAD of the Minetest engine.   | ||||||
|  | Additionally, when the Minetest engine is tagged to be a certain version (e.g. | ||||||
|  | 0.4.10), Minetest Game is tagged with the version too. | ||||||
|  |  | ||||||
|  | When stable releases are made, Minetest Game and the Minetest engine is packaged and made available at | ||||||
|  | 	https://minetest.net/downloads/ | ||||||
|  |  | ||||||
|  | ## Licensing | ||||||
|  |  | ||||||
|  | See `LICENSE.txt` | ||||||
							
								
								
									
										28
									
								
								README.txt
									
									
									
									
									
								
							
							
						
						| @@ -1,28 +0,0 @@ | |||||||
| Minetest Game [minetest_game] |  | ||||||
| ============================= |  | ||||||
| The main game for the Minetest engine |  | ||||||
| ===================================== |  | ||||||
|  |  | ||||||
| To use this game with the Minetest engine, insert this repository as |  | ||||||
| 	/games/minetest_game |  | ||||||
|  |  | ||||||
| The Minetest engine can be found in: |  | ||||||
| 	https://github.com/minetest/minetest/ |  | ||||||
|  |  | ||||||
| Compatibility |  | ||||||
| -------------- |  | ||||||
| The Minetest Game github master HEAD is generally compatible with the github |  | ||||||
| master HEAD of the Minetest engine. |  | ||||||
|  |  | ||||||
| Additionally, when the Minetest engine is tagged to be a certain version (eg. |  | ||||||
| 0.4.10), Minetest Game is tagged with the version too. |  | ||||||
|  |  | ||||||
| When stable releases are made, Minetest Game is packaged and made available in |  | ||||||
| 	http://minetest.net/downloads/ |  | ||||||
| and in case the repository has grown too much, it may be reset. In that sense, |  | ||||||
| this is not a "real" git repository. (Package maintainers please note!) |  | ||||||
|  |  | ||||||
| Licensing |  | ||||||
| --------- |  | ||||||
|  |  | ||||||
| See LICENSE.txt |  | ||||||
| @@ -1,3 +1,3 @@ | |||||||
| name = Minetest Game | name = Minetest Game | ||||||
| author = minetest | author = Minetest | ||||||
| description = Bundled by default with Minetest, and aims to be lightweight, moddable, and fairly playable without mods. | description = Bundled by default with Minetest, and aims to be lightweight, moddable, and fairly playable without mods. | ||||||
|   | |||||||
							
								
								
									
										34
									
								
								game_api.txt
									
									
									
									
									
								
							
							
						
						| @@ -214,6 +214,8 @@ The doors mod allows modders to register custom doors and trapdoors. | |||||||
| 	inventory_image = "mod_door_inv.png", | 	inventory_image = "mod_door_inv.png", | ||||||
| 	groups = {choppy = 2}, | 	groups = {choppy = 2}, | ||||||
| 	tiles = {"mod_door.png"}, -- UV map. | 	tiles = {"mod_door.png"}, -- UV map. | ||||||
|  | 	-- The front and back of the door must be identical in appearence as they swap on | ||||||
|  | 	-- open/close. | ||||||
| 	recipe = craftrecipe, | 	recipe = craftrecipe, | ||||||
| 	sounds = default.node_sound_wood_defaults(), -- optional | 	sounds = default.node_sound_wood_defaults(), -- optional | ||||||
| 	sound_open = sound play for open door, -- optional | 	sound_open = sound play for open door, -- optional | ||||||
| @@ -228,7 +230,12 @@ The doors mod allows modders to register custom doors and trapdoors. | |||||||
| 	inventory_image = "mod_trapdoor_inv.png", | 	inventory_image = "mod_trapdoor_inv.png", | ||||||
| 	groups = {choppy = 2}, | 	groups = {choppy = 2}, | ||||||
| 	tile_front = "doors_trapdoor.png", -- the texture for the front and back of the trapdoor | 	tile_front = "doors_trapdoor.png", -- the texture for the front and back of the trapdoor | ||||||
| 	tile_side = "doors_trapdoor_side.png", -- the tiles of the four side parts of the trapdoor | 	tile_side = "doors_trapdoor_side.png", | ||||||
|  | 	-- The texture for the four sides of the trapdoor. | ||||||
|  | 	-- The texture should have the trapdoor side drawn twice, in the lowest and highest | ||||||
|  | 	-- 1/8ths of the texture, both upright. The area between is not used. | ||||||
|  | 	-- The lower 1/8th will be used for the closed trapdoor, the higher 1/8th will be used | ||||||
|  | 	-- for the open trapdoor. | ||||||
| 	sounds = default.node_sound_wood_defaults(), -- optional | 	sounds = default.node_sound_wood_defaults(), -- optional | ||||||
| 	sound_open = sound play for open door, -- optional | 	sound_open = sound play for open door, -- optional | ||||||
| 	sound_close = sound play for close door, -- optional | 	sound_close = sound play for close door, -- optional | ||||||
| @@ -269,7 +276,7 @@ The mod that places chests with loot in dungeons provides an API to register add | |||||||
| 	name = "item:name", | 	name = "item:name", | ||||||
| 	chance = 0.5, | 	chance = 0.5, | ||||||
| 	-- ^ chance value from 0.0 to 1.0 that the item will appear in the chest when chosen | 	-- ^ chance value from 0.0 to 1.0 that the item will appear in the chest when chosen | ||||||
| 	--   due to an extra step in the selection process, 0.5 does not(!) mean that | 	--   Due to an extra step in the selection process, 0.5 does not(!) mean that | ||||||
| 	--   on average every second chest will have this item | 	--   on average every second chest will have this item | ||||||
| 	count = {1, 4}, | 	count = {1, 4}, | ||||||
| 	-- ^ table with minimum and maximum amounts of this item | 	-- ^ table with minimum and maximum amounts of this item | ||||||
| @@ -279,7 +286,8 @@ The mod that places chests with loot in dungeons provides an API to register add | |||||||
| 	--   optional, defaults to no height restrictions | 	--   optional, defaults to no height restrictions | ||||||
| 	types = {"desert"}, | 	types = {"desert"}, | ||||||
| 	-- ^ table with types of dungeons this item can be found in | 	-- ^ table with types of dungeons this item can be found in | ||||||
| 	--   supported types: "normal" (the cobble/mossycobble one), "sandstone", "desert" | 	--   supported types: "normal" (the cobble/mossycobble one), "sandstone" | ||||||
|  | 	--   "desert" and "ice" | ||||||
| 	--   optional, defaults to no type restrictions | 	--   optional, defaults to no type restrictions | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -351,6 +359,8 @@ The farming API allows you to easily register plants and hoes. | |||||||
|  |  | ||||||
| 	{ | 	{ | ||||||
| 		description = "",                      -- Description of seed item | 		description = "",                      -- Description of seed item | ||||||
|  | 		harvest_description = "",              -- Description of harvest item | ||||||
|  | 		                                       -- (optional, derived automatically if not provided) | ||||||
| 		inventory_image = "unknown_item.png",  -- Image to be used as seed's wield- and inventory image | 		inventory_image = "unknown_item.png",  -- Image to be used as seed's wield- and inventory image | ||||||
| 		steps = 8,                             -- How many steps the plant has to grow, until it can be harvested | 		steps = 8,                             -- How many steps the plant has to grow, until it can be harvested | ||||||
| 		-- ^ Always provide a plant texture for each step, format: modname_plantname_i.png (i = stepnumber) | 		-- ^ Always provide a plant texture for each step, format: modname_plantname_i.png (i = stepnumber) | ||||||
| @@ -362,6 +372,8 @@ The farming API allows you to easily register plants and hoes. | |||||||
| Fire API | Fire API | ||||||
| -------- | -------- | ||||||
|  |  | ||||||
|  | Add group flammable when registering a node to make fire seek for it. | ||||||
|  | Add it to an item to make it burn up when dropped in lava or fire. | ||||||
| New node def property: | New node def property: | ||||||
|  |  | ||||||
| `on_burn(pos)` | `on_burn(pos)` | ||||||
| @@ -716,27 +728,29 @@ delivered with Minetest Game, to keep them compatible with other mods. | |||||||
|  * `sounds`: See [#Default sounds] |  * `sounds`: See [#Default sounds] | ||||||
|  * `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition] |  * `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition] | ||||||
|  |  | ||||||
| `stairs.register_stair_inner(subname, recipeitem, groups, images, description, sounds, worldaligntex)` | `stairs.register_stair_inner(subname, recipeitem, groups, images, description, sounds, worldaligntex, full_description)` | ||||||
|  |  | ||||||
|  * Registers an inner corner stair |  * Registers an inner corner stair | ||||||
|  * `subname`: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_inner_subname" |  * `subname`: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_inner_subname" | ||||||
|  * `recipeitem`: Item used in the craft recipe, e.g. "default:cobble", may be `nil` |  * `recipeitem`: Item used in the craft recipe, e.g. "default:cobble", may be `nil` | ||||||
|  * `groups`: See [Known damage and digging time defining groups] |  * `groups`: See [Known damage and digging time defining groups] | ||||||
|  * `images`: See [Tile definition] |  * `images`: See [Tile definition] | ||||||
|  * `description`: Used for the description field in the stair's definition |  * `description`: Used for the description field in the stair's definition with "Inner" prepended | ||||||
|  * `sounds`: See [#Default sounds] |  * `sounds`: See [#Default sounds] | ||||||
|  * `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition] |  * `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition] | ||||||
|  |  * `full_description`: Overrides the description, bypassing string concatenation. This is useful for translation. (optional) | ||||||
|  |  | ||||||
| `stairs.register_stair_outer(subname, recipeitem, groups, images, description, sounds, worldaligntex)` | `stairs.register_stair_outer(subname, recipeitem, groups, images, description, sounds, worldaligntex, full_description)` | ||||||
|  |  | ||||||
|  * Registers an outer corner stair |  * Registers an outer corner stair | ||||||
|  * `subname`: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_outer_subname" |  * `subname`: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_outer_subname" | ||||||
|  * `recipeitem`: Item used in the craft recipe, e.g. "default:cobble", may be `nil` |  * `recipeitem`: Item used in the craft recipe, e.g. "default:cobble", may be `nil` | ||||||
|  * `groups`: See [Known damage and digging time defining groups] |  * `groups`: See [Known damage and digging time defining groups] | ||||||
|  * `images`: See [Tile definition] |  * `images`: See [Tile definition] | ||||||
|  * `description`: Used for the description field in the stair's definition |  * `description`: Used for the description field in the stair's definition with "Outer" prepended | ||||||
|  * `sounds`: See [#Default sounds] |  * `sounds`: See [#Default sounds] | ||||||
|  * `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition] |  * `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition] | ||||||
|  |  * `full_description`: Overrides the description, bypassing string concatenation. This is useful for translation. (optional) | ||||||
|  |  | ||||||
| `stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, sounds, worldaligntex)` | `stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, sounds, worldaligntex)` | ||||||
|  |  | ||||||
| @@ -759,7 +773,11 @@ Creates panes that automatically connect to each other | |||||||
| ### Pane definition | ### Pane definition | ||||||
|  |  | ||||||
| 	{ | 	{ | ||||||
| 		textures = {"texture for sides", (unused), "texture for top and bottom"}, -- More tiles aren't supported | 		textures = { | ||||||
|  | 			"texture for front and back", | ||||||
|  | 			(unused), | ||||||
|  | 			"texture for the 4 edges" | ||||||
|  | 		}, -- More tiles aren't supported | ||||||
| 		groups = {group = rating}, -- Uses the known node groups, see [Known damage and digging time defining groups] | 		groups = {group = rating}, -- Uses the known node groups, see [Known damage and digging time defining groups] | ||||||
| 		sounds = SoundSpec,        -- See [#Default sounds] | 		sounds = SoundSpec,        -- See [#Default sounds] | ||||||
| 		recipe = {{"","","","","","","","",""}}, -- Recipe field only | 		recipe = {{"","","","","","","","",""}}, -- Recipe field only | ||||||
|   | |||||||
| @@ -60,7 +60,14 @@ default:torch 99,default:cobble 99 | |||||||
| # Default value is true. | # Default value is true. | ||||||
| #enable_bed_night_skip = true | #enable_bed_night_skip = true | ||||||
|  |  | ||||||
|  | # If enabled, fences and walls cannot be jumped over. | ||||||
|  | #enable_fence_tall = false | ||||||
|  |  | ||||||
| # Whether the engine's spawn search, which does not check for a suitable | # Whether the engine's spawn search, which does not check for a suitable | ||||||
| # starting biome, is used. | # starting biome, is used. | ||||||
| # Default value is false. | # Default value is false. | ||||||
| #engine_spawn = false | #engine_spawn = false | ||||||
|  |  | ||||||
|  | # Whether river water source nodes create flowing sounds. | ||||||
|  | # Helps rivers create more sound, especially on level sections. | ||||||
|  | #river_source_sounds = false | ||||||
|   | |||||||
| @@ -15,11 +15,11 @@ BlockMen (CC BY-SA 3.0) | |||||||
| TumeniNodes (CC BY-SA 3.0) | TumeniNodes (CC BY-SA 3.0) | ||||||
|  beds_bed_under.png |  beds_bed_under.png | ||||||
|  |  | ||||||
| This mod adds a bed to Minetest which allows to skip the night. | This mod adds a bed to Minetest which allows players to skip the night. | ||||||
| To sleep, rightclick the bed. If playing in singleplayer mode the night gets skipped | To sleep, right click on the bed. If playing in singleplayer mode the night gets skipped | ||||||
| immediately. If playing multiplayer you get shown how many other players are in bed too, | immediately. If playing multiplayer you get shown how many other players are in bed too, | ||||||
| if all players are sleeping the night gets skipped. The night skip can be forced if more | if all players are sleeping the night gets skipped. The night skip can be forced if more | ||||||
| than 50% of the players are lying in bed and use this option. | than half of the players are lying in bed and use this option. | ||||||
|  |  | ||||||
| Another feature is a controlled respawning. If you have slept in bed (not just lying in | Another feature is a controlled respawning. If you have slept in bed (not just lying in | ||||||
| it) your respawn point is set to the beds location and you will respawn there after | it) your respawn point is set to the beds location and you will respawn there after | ||||||
|   | |||||||
| @@ -1,7 +1,12 @@ | |||||||
|  | -- beds/beds.lua | ||||||
|  |  | ||||||
|  | -- support for MT game translation. | ||||||
|  | local S = beds.get_translator | ||||||
|  |  | ||||||
| -- Fancy shaped bed | -- Fancy shaped bed | ||||||
|  |  | ||||||
| beds.register_bed("beds:fancy_bed", { | beds.register_bed("beds:fancy_bed", { | ||||||
| 	description = "Fancy Bed", | 	description = S("Fancy Bed"), | ||||||
| 	inventory_image = "beds_bed_fancy.png", | 	inventory_image = "beds_bed_fancy.png", | ||||||
| 	wield_image = "beds_bed_fancy.png", | 	wield_image = "beds_bed_fancy.png", | ||||||
| 	tiles = { | 	tiles = { | ||||||
| @@ -52,7 +57,7 @@ beds.register_bed("beds:fancy_bed", { | |||||||
| -- Simple shaped bed | -- Simple shaped bed | ||||||
|  |  | ||||||
| beds.register_bed("beds:bed", { | beds.register_bed("beds:bed", { | ||||||
| 	description = "Simple Bed", | 	description = S("Simple Bed"), | ||||||
| 	inventory_image = "beds_bed.png", | 	inventory_image = "beds_bed.png", | ||||||
| 	wield_image = "beds_bed.png", | 	wield_image = "beds_bed.png", | ||||||
| 	tiles = { | 	tiles = { | ||||||
|   | |||||||
| @@ -1,2 +0,0 @@ | |||||||
| default |  | ||||||
| wool |  | ||||||
| @@ -1,11 +1,13 @@ | |||||||
| local pi = math.pi | local pi = math.pi | ||||||
| local player_in_bed = 0 |  | ||||||
| local is_sp = minetest.is_singleplayer() | local is_sp = minetest.is_singleplayer() | ||||||
| local enable_respawn = minetest.settings:get_bool("enable_bed_respawn") | local enable_respawn = minetest.settings:get_bool("enable_bed_respawn") | ||||||
| if enable_respawn == nil then | if enable_respawn == nil then | ||||||
| 	enable_respawn = true | 	enable_respawn = true | ||||||
| end | end | ||||||
|  |  | ||||||
|  | -- support for MT game translation. | ||||||
|  | local S = beds.get_translator | ||||||
|  |  | ||||||
| -- Helper functions | -- Helper functions | ||||||
|  |  | ||||||
| local function get_look_yaw(pos) | local function get_look_yaw(pos) | ||||||
| @@ -59,11 +61,8 @@ local function lay_down(player, pos, bed_pos, state, skip) | |||||||
| 	-- stand up | 	-- stand up | ||||||
| 	if state ~= nil and not state then | 	if state ~= nil and not state then | ||||||
| 		local p = beds.pos[name] or nil | 		local p = beds.pos[name] or nil | ||||||
| 		if beds.player[name] ~= nil then | 		beds.player[name] = nil | ||||||
| 			beds.player[name] = nil | 		beds.bed_position[name] = nil | ||||||
| 			beds.bed_position[name] = nil |  | ||||||
| 			player_in_bed = player_in_bed - 1 |  | ||||||
| 		end |  | ||||||
| 		-- skip here to prevent sending player specific changes (used for leaving players) | 		-- skip here to prevent sending player specific changes (used for leaving players) | ||||||
| 		if skip then | 		if skip then | ||||||
| 			return | 			return | ||||||
| @@ -82,10 +81,9 @@ local function lay_down(player, pos, bed_pos, state, skip) | |||||||
|  |  | ||||||
| 	-- lay down | 	-- lay down | ||||||
| 	else | 	else | ||||||
| 		beds.player[name] = 1 |  | ||||||
| 		beds.pos[name] = pos | 		beds.pos[name] = pos | ||||||
| 		beds.bed_position[name] = bed_pos | 		beds.bed_position[name] = bed_pos | ||||||
| 		player_in_bed = player_in_bed + 1 | 		beds.player[name] = 1 | ||||||
|  |  | ||||||
| 		-- physics, eye_offset, etc | 		-- physics, eye_offset, etc | ||||||
| 		player:set_eye_offset({x = 0, y = -13, z = 0}, {x = 0, y = 0, z = 0}) | 		player:set_eye_offset({x = 0, y = -13, z = 0}, {x = 0, y = 0, z = 0}) | ||||||
| @@ -103,18 +101,29 @@ local function lay_down(player, pos, bed_pos, state, skip) | |||||||
| 	player:hud_set_flags(hud_flags) | 	player:hud_set_flags(hud_flags) | ||||||
| end | end | ||||||
|  |  | ||||||
|  | local function get_player_in_bed_count() | ||||||
|  | 	local c = 0 | ||||||
|  | 	for _, _ in pairs(beds.player) do | ||||||
|  | 		c = c + 1 | ||||||
|  | 	end | ||||||
|  | 	return c | ||||||
|  | end | ||||||
|  |  | ||||||
| local function update_formspecs(finished) | local function update_formspecs(finished) | ||||||
| 	local ges = #minetest.get_connected_players() | 	local ges = #minetest.get_connected_players() | ||||||
| 	local form_n | 	local player_in_bed = get_player_in_bed_count() | ||||||
| 	local is_majority = (ges / 2) < player_in_bed | 	local is_majority = (ges / 2) < player_in_bed | ||||||
|  |  | ||||||
|  | 	local form_n | ||||||
|  | 	local esc = minetest.formspec_escape | ||||||
| 	if finished then | 	if finished then | ||||||
| 		form_n = beds.formspec .. "label[2.7,9; Good morning.]" | 		form_n = beds.formspec .. "label[2.7,9;" .. esc(S("Good morning.")) .. "]" | ||||||
| 	else | 	else | ||||||
| 		form_n = beds.formspec .. "label[2.2,9;" .. tostring(player_in_bed) .. | 		form_n = beds.formspec .. "label[2.2,9;" .. | ||||||
| 			" of " .. tostring(ges) .. " players are in bed]" | 			esc(S("@1 of @2 players are in bed", player_in_bed, ges)) .. "]" | ||||||
| 		if is_majority and is_night_skip_enabled() then | 		if is_majority and is_night_skip_enabled() then | ||||||
| 			form_n = form_n .. "button_exit[2,6;4,0.75;force;Force night skip]" | 			form_n = form_n .. "button_exit[2,6;4,0.75;force;" .. | ||||||
|  | 				esc(S("Force night skip")) .. "]" | ||||||
| 		end | 		end | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
| @@ -146,7 +155,7 @@ function beds.on_rightclick(pos, player) | |||||||
| 		if beds.player[name] then | 		if beds.player[name] then | ||||||
| 			lay_down(player, nil, nil, false) | 			lay_down(player, nil, nil, false) | ||||||
| 		end | 		end | ||||||
| 		minetest.chat_send_player(name, "You can only sleep at night.") | 		minetest.chat_send_player(name, S("You can only sleep at night.")) | ||||||
| 		return | 		return | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
| @@ -223,7 +232,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) | |||||||
| 	-- Because "Force night skip" button is a button_exit, it will set fields.quit | 	-- Because "Force night skip" button is a button_exit, it will set fields.quit | ||||||
| 	-- and lay_down call will change value of player_in_bed, so it must be taken | 	-- and lay_down call will change value of player_in_bed, so it must be taken | ||||||
| 	-- earlier. | 	-- earlier. | ||||||
| 	local last_player_in_bed = player_in_bed | 	local last_player_in_bed = get_player_in_bed_count() | ||||||
|  |  | ||||||
| 	if fields.quit or fields.leave then | 	if fields.quit or fields.leave then | ||||||
| 		lay_down(player, nil, nil, false) | 		lay_down(player, nil, nil, false) | ||||||
|   | |||||||
| @@ -1,13 +1,20 @@ | |||||||
|  | -- beds/init.lua | ||||||
|  |  | ||||||
|  | -- Load support for MT game translation. | ||||||
|  | local S = minetest.get_translator("beds") | ||||||
|  |  | ||||||
|  |  | ||||||
| beds = {} | beds = {} | ||||||
| beds.player = {} | beds.player = {} | ||||||
| beds.bed_position = {} | beds.bed_position = {} | ||||||
| beds.pos = {} | beds.pos = {} | ||||||
| beds.spawn = {} | beds.spawn = {} | ||||||
|  | beds.get_translator = S | ||||||
|  |  | ||||||
| beds.formspec = "size[8,11;true]" .. | beds.formspec = "size[8,11;true]" .. | ||||||
| 	"no_prepend[]" .. | 	"no_prepend[]" .. | ||||||
| 	"bgcolor[#080808BB;true]" .. | 	"bgcolor[#080808BB;true]" .. | ||||||
| 	"button_exit[2,10;4,0.75;leave;Leave Bed]" | 	"button_exit[2,10;4,0.75;leave;" .. S("Leave Bed") .. "]" | ||||||
|  |  | ||||||
| local modpath = minetest.get_modpath("beds") | local modpath = minetest.get_modpath("beds") | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								mods/beds/locale/beds.de.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,8 @@ | |||||||
|  | # textdomain: beds | ||||||
|  | Fancy Bed=Schickes Bett | ||||||
|  | Simple Bed=Schlichtes Bett | ||||||
|  | Leave Bed=Bett verlassen | ||||||
|  | Good morning.=Guten Morgen. | ||||||
|  | @1 of @2 players are in bed=@1 von @2 Spielern sind im Bett | ||||||
|  | Force night skip=Überspringen der Nacht erzwingen | ||||||
|  | You can only sleep at night.=Sie können nur nachts schlafen. | ||||||
							
								
								
									
										8
									
								
								mods/beds/locale/beds.es.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,8 @@ | |||||||
|  | # textdomain: beds | ||||||
|  | Fancy Bed=Cama de lujo | ||||||
|  | Simple Bed=Cama sencilla | ||||||
|  | Leave Bed=Abandonar cama | ||||||
|  | Good morning.=Buenos días. | ||||||
|  | @1 of @2 players are in bed=@1 de @2 jugadores están en cama | ||||||
|  | Force night skip=Forzar evitar noche | ||||||
|  | You can only sleep at night.=Sólo puedes dormir por la noche. | ||||||
							
								
								
									
										8
									
								
								mods/beds/locale/beds.fr.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,8 @@ | |||||||
|  | # textdomain: beds | ||||||
|  | Fancy Bed=Lit chic | ||||||
|  | Simple Bed=Lit simple | ||||||
|  | Leave Bed=Se lever du lit | ||||||
|  | Good morning.=Bonjour. | ||||||
|  | @1 of @2 players are in bed=@1 joueur(s) sur @2 sont au lit | ||||||
|  | Force night skip=Forcer le passage de la nuit | ||||||
|  | You can only sleep at night.=Vous ne pouvez dormir que la nuit. | ||||||
							
								
								
									
										4
									
								
								mods/beds/locale/beds.it.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,4 @@ | |||||||
|  | # textdomain: beds | ||||||
|  | Fancy Bed=Letto decorato | ||||||
|  | Simple Bed=Letto semplice | ||||||
|  | Leave Bed=Alzati dal letto | ||||||
							
								
								
									
										8
									
								
								mods/beds/locale/template.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,8 @@ | |||||||
|  | # textdomain: beds | ||||||
|  | Fancy Bed= | ||||||
|  | Simple Bed= | ||||||
|  | Leave Bed= | ||||||
|  | Good morning.= | ||||||
|  | @1 of @2 players are in bed= | ||||||
|  | Force night skip= | ||||||
|  | You can only sleep at night.= | ||||||
							
								
								
									
										3
									
								
								mods/beds/mod.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | |||||||
|  | name = beds | ||||||
|  | description = Minetest Game mod: beds | ||||||
|  | depends = default, wool | ||||||
| @@ -1,2 +0,0 @@ | |||||||
| default |  | ||||||
| creative? |  | ||||||
| @@ -1,7 +1,12 @@ | |||||||
|  | -- binoculars/init.lua | ||||||
|  |  | ||||||
| -- Mod global namespace | -- Mod global namespace | ||||||
|  |  | ||||||
| binoculars = {} | binoculars = {} | ||||||
|  |  | ||||||
|  | -- Load support for MT game translation. | ||||||
|  | local S = minetest.get_translator("binoculars") | ||||||
|  |  | ||||||
|  |  | ||||||
| -- Detect creative mod | -- Detect creative mod | ||||||
| local creative_mod = minetest.get_modpath("creative") | local creative_mod = minetest.get_modpath("creative") | ||||||
| @@ -54,7 +59,7 @@ minetest.after(4.7, cyclic_update) | |||||||
| -- Binoculars item | -- Binoculars item | ||||||
|  |  | ||||||
| minetest.register_craftitem("binoculars:binoculars", { | minetest.register_craftitem("binoculars:binoculars", { | ||||||
| 	description = "Binoculars\nUse with 'Zoom' key", | 	description = S("Binoculars") .. "\n" .. S("Use with 'Zoom' key"), | ||||||
| 	inventory_image = "binoculars_binoculars.png", | 	inventory_image = "binoculars_binoculars.png", | ||||||
| 	stack_max = 1, | 	stack_max = 1, | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								mods/binoculars/locale/binoculars.de.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | |||||||
|  | # textdomain: binoculars | ||||||
|  | Binoculars=Fernglas | ||||||
|  | Use with 'Zoom' key=Mit „Zoom“-Taste benutzen | ||||||
							
								
								
									
										3
									
								
								mods/binoculars/locale/binoculars.es.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | |||||||
|  | # textdomain: binoculars | ||||||
|  | Binoculars=Prismáticos | ||||||
|  | Use with 'Zoom' key=Usar con la tecla 'Zoom' | ||||||
							
								
								
									
										3
									
								
								mods/binoculars/locale/binoculars.fr.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | |||||||
|  | # textdomain: binoculars | ||||||
|  | Binoculars=Jumelles | ||||||
|  | Use with 'Zoom' key=Utiliser avec le bouton « Zoom » | ||||||
							
								
								
									
										3
									
								
								mods/binoculars/locale/binoculars.it.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | |||||||
|  | # textdomain: binoculars | ||||||
|  | Binoculars=Binocolo | ||||||
|  | Use with 'Zoom' key=Usalo col tasto 'Ingrandimento' | ||||||
							
								
								
									
										3
									
								
								mods/binoculars/locale/template.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | |||||||
|  | # textdomain: binoculars | ||||||
|  | Binoculars= | ||||||
|  | Use with 'Zoom' key= | ||||||
							
								
								
									
										4
									
								
								mods/binoculars/mod.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,4 @@ | |||||||
|  | name = binoculars | ||||||
|  | description = Minetest Game mod: binoculars | ||||||
|  | depends = default | ||||||
|  | optional_depends = creative | ||||||
| @@ -1,2 +0,0 @@ | |||||||
| default |  | ||||||
| player_api |  | ||||||
| @@ -1,3 +1,8 @@ | |||||||
|  | -- boats/init.lua | ||||||
|  |  | ||||||
|  | -- Load support for MT game translation. | ||||||
|  | local S = minetest.get_translator("boats") | ||||||
|  |  | ||||||
| -- | -- | ||||||
| -- Helper functions | -- Helper functions | ||||||
| -- | -- | ||||||
| @@ -149,13 +154,13 @@ function boat.on_step(self, dtime) | |||||||
| 			if ctrl.up and ctrl.down then | 			if ctrl.up and ctrl.down then | ||||||
| 				if not self.auto then | 				if not self.auto then | ||||||
| 					self.auto = true | 					self.auto = true | ||||||
| 					minetest.chat_send_player(self.driver, "[boats] Cruise on") | 					minetest.chat_send_player(self.driver, S("Boat cruise mode on")) | ||||||
| 				end | 				end | ||||||
| 			elseif ctrl.down then | 			elseif ctrl.down then | ||||||
| 				self.v = self.v - dtime * 1.8 | 				self.v = self.v - dtime * 1.8 | ||||||
| 				if self.auto then | 				if self.auto then | ||||||
| 					self.auto = false | 					self.auto = false | ||||||
| 					minetest.chat_send_player(self.driver, "[boats] Cruise off") | 					minetest.chat_send_player(self.driver, S("Boat cruise mode off")) | ||||||
| 				end | 				end | ||||||
| 			elseif ctrl.up or self.auto then | 			elseif ctrl.up or self.auto then | ||||||
| 				self.v = self.v + dtime * 1.8 | 				self.v = self.v + dtime * 1.8 | ||||||
| @@ -242,7 +247,7 @@ minetest.register_entity("boats:boat", boat) | |||||||
|  |  | ||||||
|  |  | ||||||
| minetest.register_craftitem("boats:boat", { | minetest.register_craftitem("boats:boat", { | ||||||
| 	description = "Boat", | 	description = S("Boat"), | ||||||
| 	inventory_image = "boats_inventory.png", | 	inventory_image = "boats_inventory.png", | ||||||
| 	wield_image = "boats_wield.png", | 	wield_image = "boats_wield.png", | ||||||
| 	wield_scale = {x = 2, y = 2, z = 1}, | 	wield_scale = {x = 2, y = 2, z = 1}, | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								mods/boats/locale/boats.de.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,4 @@ | |||||||
|  | # textdomain: boats | ||||||
|  | Boat cruise mode on=Schneller Bootsmodus an | ||||||
|  | Boat cruise mode off=Schneller Bootsmodus aus | ||||||
|  | Boat=Boot | ||||||
							
								
								
									
										4
									
								
								mods/boats/locale/boats.es.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,4 @@ | |||||||
|  | # textdomain: boats | ||||||
|  | Boat cruise mode on=Modo crucero en bote activado | ||||||
|  | Boat cruise mode off=Modo crucero en bote desactivado | ||||||
|  | Boat=Bote | ||||||
							
								
								
									
										4
									
								
								mods/boats/locale/boats.fr.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,4 @@ | |||||||
|  | # textdomain: boats | ||||||
|  | Boat cruise mode on=Bateau mode rapide activé | ||||||
|  | Boat cruise mode off=Bateau mode rapide désactivé | ||||||
|  | Boat=Bateau | ||||||
							
								
								
									
										4
									
								
								mods/boats/locale/boats.it.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,4 @@ | |||||||
|  | # textdomain: boats | ||||||
|  | Boat cruise mode on=Modalità movimento automatico barca attivata | ||||||
|  | Boat cruise mode off=Modalità movimento automatico barca disattivata | ||||||
|  | Boat=Barca | ||||||
							
								
								
									
										4
									
								
								mods/boats/locale/template.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,4 @@ | |||||||
|  | # textdomain: boats | ||||||
|  | Boat cruise mode on= | ||||||
|  | Boat cruise mode off= | ||||||
|  | Boat= | ||||||
							
								
								
									
										3
									
								
								mods/boats/mod.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | |||||||
|  | name = boats | ||||||
|  | description = Minetest Game mod: boats | ||||||
|  | depends = default, player_api | ||||||
| @@ -1 +0,0 @@ | |||||||
| default |  | ||||||
| @@ -1,6 +1,11 @@ | |||||||
|  | -- bones/init.lua | ||||||
|  |  | ||||||
| -- Minetest 0.4 mod: bones | -- Minetest 0.4 mod: bones | ||||||
| -- See README.txt for licensing and other information. | -- See README.txt for licensing and other information. | ||||||
|  |  | ||||||
|  | -- Load support for MT game translation. | ||||||
|  | local S = minetest.get_translator("bones") | ||||||
|  |  | ||||||
| bones = {} | bones = {} | ||||||
|  |  | ||||||
| local function is_owner(pos, name) | local function is_owner(pos, name) | ||||||
| @@ -24,7 +29,7 @@ local share_bones_time = tonumber(minetest.settings:get("share_bones_time")) or | |||||||
| local share_bones_time_early = tonumber(minetest.settings:get("share_bones_time_early")) or share_bones_time / 4 | local share_bones_time_early = tonumber(minetest.settings:get("share_bones_time_early")) or share_bones_time / 4 | ||||||
|  |  | ||||||
| minetest.register_node("bones:bones", { | minetest.register_node("bones:bones", { | ||||||
| 	description = "Bones", | 	description = S("Bones"), | ||||||
| 	tiles = { | 	tiles = { | ||||||
| 		"bones_top.png^[transform2", | 		"bones_top.png^[transform2", | ||||||
| 		"bones_bottom.png", | 		"bones_bottom.png", | ||||||
| @@ -116,7 +121,7 @@ minetest.register_node("bones:bones", { | |||||||
| 		local meta = minetest.get_meta(pos) | 		local meta = minetest.get_meta(pos) | ||||||
| 		local time = meta:get_int("time") + elapsed | 		local time = meta:get_int("time") + elapsed | ||||||
| 		if time >= share_bones_time then | 		if time >= share_bones_time then | ||||||
| 			meta:set_string("infotext", meta:get_string("owner") .. "'s old bones") | 			meta:set_string("infotext", S("@1's old bones", meta:get_string("owner"))) | ||||||
| 			meta:set_string("owner", "") | 			meta:set_string("owner", "") | ||||||
| 		else | 		else | ||||||
| 			meta:set_int("time", time) | 			meta:set_int("time", time) | ||||||
| @@ -194,7 +199,7 @@ minetest.register_on_dieplayer(function(player) | |||||||
| 		minetest.log("action", player_name .. " dies at " .. pos_string .. | 		minetest.log("action", player_name .. " dies at " .. pos_string .. | ||||||
| 			". No bones placed") | 			". No bones placed") | ||||||
| 		if bones_position_message then | 		if bones_position_message then | ||||||
| 			minetest.chat_send_player(player_name, player_name .. " died at " .. pos_string .. ".") | 			minetest.chat_send_player(player_name, S("@1 died at @2.", player_name, pos_string)) | ||||||
| 		end | 		end | ||||||
| 		return | 		return | ||||||
| 	end | 	end | ||||||
| @@ -204,7 +209,7 @@ minetest.register_on_dieplayer(function(player) | |||||||
| 		minetest.log("action", player_name .. " dies at " .. pos_string .. | 		minetest.log("action", player_name .. " dies at " .. pos_string .. | ||||||
| 			". No bones placed") | 			". No bones placed") | ||||||
| 		if bones_position_message then | 		if bones_position_message then | ||||||
| 			minetest.chat_send_player(player_name, player_name .. " died at " .. pos_string .. ".") | 			minetest.chat_send_player(player_name, S("@1 died at @2.", player_name, pos_string)) | ||||||
| 		end | 		end | ||||||
| 		return | 		return | ||||||
| 	end | 	end | ||||||
| @@ -230,8 +235,7 @@ minetest.register_on_dieplayer(function(player) | |||||||
| 		minetest.log("action", player_name .. " dies at " .. pos_string .. | 		minetest.log("action", player_name .. " dies at " .. pos_string .. | ||||||
| 			". Inventory dropped") | 			". Inventory dropped") | ||||||
| 		if bones_position_message then | 		if bones_position_message then | ||||||
| 			minetest.chat_send_player(player_name, player_name .. " died at " .. pos_string .. | 			minetest.chat_send_player(player_name, S("@1 died at @2, and dropped their inventory.", player_name, pos_string)) | ||||||
| 				", and dropped their inventory.") |  | ||||||
| 		end | 		end | ||||||
| 		return | 		return | ||||||
| 	end | 	end | ||||||
| @@ -242,8 +246,7 @@ minetest.register_on_dieplayer(function(player) | |||||||
| 	minetest.log("action", player_name .. " dies at " .. pos_string .. | 	minetest.log("action", player_name .. " dies at " .. pos_string .. | ||||||
| 		". Bones placed") | 		". Bones placed") | ||||||
| 	if bones_position_message then | 	if bones_position_message then | ||||||
| 		minetest.chat_send_player(player_name, player_name .. " died at " .. pos_string .. | 		minetest.chat_send_player(player_name, S("@1 died at @2, and bones were placed.", player_name, pos_string)) | ||||||
| 			", and bones were placed.") |  | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
| 	local meta = minetest.get_meta(pos) | 	local meta = minetest.get_meta(pos) | ||||||
| @@ -266,7 +269,7 @@ minetest.register_on_dieplayer(function(player) | |||||||
| 	meta:set_string("owner", player_name) | 	meta:set_string("owner", player_name) | ||||||
|  |  | ||||||
| 	if share_bones_time ~= 0 then | 	if share_bones_time ~= 0 then | ||||||
| 		meta:set_string("infotext", player_name .. "'s fresh bones") | 		meta:set_string("infotext", S("@1's fresh bones", player_name)) | ||||||
|  |  | ||||||
| 		if share_bones_time_early == 0 or not minetest.is_protected(pos, player_name) then | 		if share_bones_time_early == 0 or not minetest.is_protected(pos, player_name) then | ||||||
| 			meta:set_int("time", 0) | 			meta:set_int("time", 0) | ||||||
| @@ -276,6 +279,6 @@ minetest.register_on_dieplayer(function(player) | |||||||
|  |  | ||||||
| 		minetest.get_node_timer(pos):start(10) | 		minetest.get_node_timer(pos):start(10) | ||||||
| 	else | 	else | ||||||
| 		meta:set_string("infotext", player_name.."'s bones") | 		meta:set_string("infotext", S("@1's bones", player_name)) | ||||||
| 	end | 	end | ||||||
| end) | end) | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								mods/bones/locale/bones.de.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,8 @@ | |||||||
|  | # textdomain: bones | ||||||
|  | Bones=Knochen | ||||||
|  | @1's old bones=Alte Knochen von @1 | ||||||
|  | @1 died at @2.=@1 starb bei @2. | ||||||
|  | @1 died at @2, and dropped their inventory.=@1 starb bei @2 und ließ das Inventar fallen. | ||||||
|  | @1 died at @2, and bones were placed.=@1 starb bei @2 und Knochen wurden platziert. | ||||||
|  | @1's fresh bones=Frische Knochen von @1 | ||||||
|  | @1's bones=Knochen von @1 | ||||||
							
								
								
									
										8
									
								
								mods/bones/locale/bones.es.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,8 @@ | |||||||
|  | # textdomain: bones | ||||||
|  | Bones=Huesos | ||||||
|  | @1's old bones=Huesos antiguos de @1 | ||||||
|  | @1 died at @2.=@1 murió en @2. | ||||||
|  | @1 died at @2, and dropped their inventory.=@1 murió en @2, y su inventario se desprendió. | ||||||
|  | @1 died at @2, and bones were placed.=@1 murió en @2, y sus huesos fueron depositados. | ||||||
|  | @1's fresh bones=Huesos recientes de @1 | ||||||
|  | @1's bones=Huesos de @1 | ||||||
							
								
								
									
										8
									
								
								mods/bones/locale/bones.fr.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,8 @@ | |||||||
|  | # textdomain: bones | ||||||
|  | Bones=Os | ||||||
|  | @1's old bones=Vieux os de @1 | ||||||
|  | @1 died at @2.=@1 est mort à @2. | ||||||
|  | @1 died at @2, and dropped their inventory.=@1 est mort à @2 et a laissé tomber son inventaire. | ||||||
|  | @1 died at @2, and bones were placed.=@1 est mort à @2 et ses os ont été placés. | ||||||
|  | @1's fresh bones=Os frais de @1 | ||||||
|  | @1's bones=Os de @1 | ||||||
							
								
								
									
										8
									
								
								mods/bones/locale/bones.it.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,8 @@ | |||||||
|  | # textdomain: bones | ||||||
|  | Bones=Ossa | ||||||
|  | @1's old bones=Ossa vecchie di @1 | ||||||
|  | @1 died at @2.=@1 è morto alla posizione @2. | ||||||
|  | @1 died at @2, and dropped their inventory.=@1 è morto alla posizione @2, e ha lasciato a terra il contenuto del suo inventario. | ||||||
|  | @1 died at @2, and bones were placed.=@1 è morto alla posizione @2, e vi sono state posizionate delle ossa. | ||||||
|  | @1's fresh bones=Ossa fresche di @1 | ||||||
|  | @1's bones=Ossa di @1 | ||||||
							
								
								
									
										8
									
								
								mods/bones/locale/template.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,8 @@ | |||||||
|  | # textdomain: bones | ||||||
|  | Bones= | ||||||
|  | @1's old bones= | ||||||
|  | @1 died at @2.= | ||||||
|  | @1 died at @2, and dropped their inventory.= | ||||||
|  | @1 died at @2, and bones were placed.= | ||||||
|  | @1's fresh bones= | ||||||
|  | @1's bones= | ||||||
							
								
								
									
										3
									
								
								mods/bones/mod.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | |||||||
|  | name = bones | ||||||
|  | description = Minetest Game mod: bones | ||||||
|  | depends = default | ||||||
| @@ -1,2 +0,0 @@ | |||||||
| default |  | ||||||
|  |  | ||||||
| @@ -1,15 +1,19 @@ | |||||||
| -- Minetest 0.4 mod: bucket | -- Minetest 0.4 mod: bucket | ||||||
| -- See README.txt for licensing and other information. | -- See README.txt for licensing and other information. | ||||||
|  |  | ||||||
|  | -- Load support for MT game translation. | ||||||
|  | local S = minetest.get_translator("bucket") | ||||||
|  |  | ||||||
|  |  | ||||||
| minetest.register_alias("bucket", "bucket:bucket_empty") | minetest.register_alias("bucket", "bucket:bucket_empty") | ||||||
| minetest.register_alias("bucket_water", "bucket:bucket_water") | minetest.register_alias("bucket_water", "bucket:bucket_water") | ||||||
| minetest.register_alias("bucket_lava", "bucket:bucket_lava") | minetest.register_alias("bucket_lava", "bucket:bucket_lava") | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'bucket:bucket_empty 1', | 	output = "bucket:bucket_empty 1", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:steel_ingot', '', 'default:steel_ingot'}, | 		{"default:steel_ingot", "", "default:steel_ingot"}, | ||||||
| 		{'', 'default:steel_ingot', ''}, | 		{"", "default:steel_ingot", ""}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -111,9 +115,9 @@ function bucket.register_liquid(source, flowing, itemname, inventory_image, name | |||||||
| end | end | ||||||
|  |  | ||||||
| minetest.register_craftitem("bucket:bucket_empty", { | minetest.register_craftitem("bucket:bucket_empty", { | ||||||
| 	description = "Empty Bucket", | 	description = S("Empty Bucket"), | ||||||
| 	inventory_image = "bucket.png", | 	inventory_image = "bucket.png", | ||||||
| 	stack_max = 99, | 	groups = {tool = 1}, | ||||||
| 	liquids_pointable = true, | 	liquids_pointable = true, | ||||||
| 	on_use = function(itemstack, user, pointed_thing) | 	on_use = function(itemstack, user, pointed_thing) | ||||||
| 		if pointed_thing.type == "object" then | 		if pointed_thing.type == "object" then | ||||||
| @@ -185,8 +189,8 @@ bucket.register_liquid( | |||||||
| 	"default:water_flowing", | 	"default:water_flowing", | ||||||
| 	"bucket:bucket_water", | 	"bucket:bucket_water", | ||||||
| 	"bucket_water.png", | 	"bucket_water.png", | ||||||
| 	"Water Bucket", | 	S("Water Bucket"), | ||||||
| 	{water_bucket = 1} | 	{tool = 1, water_bucket = 1} | ||||||
| ) | ) | ||||||
|  |  | ||||||
| -- River water source is 'liquid_renewable = false' to avoid horizontal spread | -- River water source is 'liquid_renewable = false' to avoid horizontal spread | ||||||
| @@ -200,8 +204,8 @@ bucket.register_liquid( | |||||||
| 	"default:river_water_flowing", | 	"default:river_water_flowing", | ||||||
| 	"bucket:bucket_river_water", | 	"bucket:bucket_river_water", | ||||||
| 	"bucket_river_water.png", | 	"bucket_river_water.png", | ||||||
| 	"River Water Bucket", | 	S("River Water Bucket"), | ||||||
| 	{water_bucket = 1}, | 	{tool = 1, water_bucket = 1}, | ||||||
| 	true | 	true | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @@ -210,7 +214,8 @@ bucket.register_liquid( | |||||||
| 	"default:lava_flowing", | 	"default:lava_flowing", | ||||||
| 	"bucket:bucket_lava", | 	"bucket:bucket_lava", | ||||||
| 	"bucket_lava.png", | 	"bucket_lava.png", | ||||||
| 	"Lava Bucket" | 	S("Lava Bucket"), | ||||||
|  | 	{tool = 1} | ||||||
| ) | ) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								mods/bucket/locale/bucket.de.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,5 @@ | |||||||
|  | # textdomain: bucket | ||||||
|  | Empty Bucket=Leerer Eimer | ||||||
|  | Water Bucket=Wassereimer | ||||||
|  | River Water Bucket=Flusswassereimer | ||||||
|  | Lava Bucket=Lavaeimer | ||||||
							
								
								
									
										5
									
								
								mods/bucket/locale/bucket.es.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,5 @@ | |||||||
|  | # textdomain: bucket | ||||||
|  | Empty Bucket=Cubo vacío | ||||||
|  | Water Bucket=Cubo con agua | ||||||
|  | River Water Bucket=Cubo con agua de río | ||||||
|  | Lava Bucket=Cubo con lava | ||||||
							
								
								
									
										5
									
								
								mods/bucket/locale/bucket.fr.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,5 @@ | |||||||
|  | # textdomain: bucket | ||||||
|  | Empty Bucket=Seau vide | ||||||
|  | Water Bucket=Seau d'eau | ||||||
|  | River Water Bucket=Seau d'eau de rivière | ||||||
|  | Lava Bucket=Seau de lave | ||||||
							
								
								
									
										5
									
								
								mods/bucket/locale/bucket.it.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,5 @@ | |||||||
|  | # textdomain: bucket | ||||||
|  | Empty Bucket=Secchio vuoto | ||||||
|  | Water Bucket=Secchio d'acqua | ||||||
|  | River Water Bucket=Secchio d'acqua di fiume | ||||||
|  | Lava Bucket=Secchio di lava | ||||||
							
								
								
									
										5
									
								
								mods/bucket/locale/template.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,5 @@ | |||||||
|  | # textdomain: bucket | ||||||
|  | Empty Bucket= | ||||||
|  | Water Bucket= | ||||||
|  | River Water Bucket= | ||||||
|  | Lava Bucket= | ||||||
							
								
								
									
										3
									
								
								mods/bucket/mod.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | |||||||
|  | name = bucket | ||||||
|  | description = Minetest Game mod: bucket | ||||||
|  | depends = default | ||||||
| @@ -1,2 +0,0 @@ | |||||||
| default |  | ||||||
| flowers |  | ||||||
| @@ -1,8 +1,13 @@ | |||||||
|  | -- butterflies/init.lua | ||||||
|  |  | ||||||
|  | -- Load support for MT game translation. | ||||||
|  | local S = minetest.get_translator("butterflies") | ||||||
|  |  | ||||||
| -- register butterflies | -- register butterflies | ||||||
| local butter_list = { | local butter_list = { | ||||||
| 	{"white", "White"}, | 	{"white",  S("White Butterfly")}, | ||||||
| 	{"red", "Red"}, | 	{"red",    S("Red Butterfly")}, | ||||||
| 	{"violet", "Violet"} | 	{"violet", S("Violet Butterfly")} | ||||||
| } | } | ||||||
|  |  | ||||||
| for i in ipairs (butter_list) do | for i in ipairs (butter_list) do | ||||||
| @@ -10,7 +15,7 @@ for i in ipairs (butter_list) do | |||||||
| 	local desc = butter_list[i][2] | 	local desc = butter_list[i][2] | ||||||
|  |  | ||||||
| 	minetest.register_node("butterflies:butterfly_"..name, { | 	minetest.register_node("butterflies:butterfly_"..name, { | ||||||
| 		description = desc.." Butterfly", | 		description = desc, | ||||||
| 		drawtype = "plantlike", | 		drawtype = "plantlike", | ||||||
| 		tiles = {{ | 		tiles = {{ | ||||||
| 			name = "butterflies_butterfly_"..name.."_animated.png", | 			name = "butterflies_butterfly_"..name.."_animated.png", | ||||||
| @@ -56,10 +61,9 @@ for i in ipairs (butter_list) do | |||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| 	minetest.register_node("butterflies:hidden_butterfly_"..name, { | 	minetest.register_node("butterflies:hidden_butterfly_"..name, { | ||||||
| 		description = "Hidden "..desc.." Butterfly", |  | ||||||
| 		drawtype = "airlike", | 		drawtype = "airlike", | ||||||
| 		inventory_image = "insects_butterfly_"..name..".png", | 		inventory_image = "butterflies_butterfly_"..name..".png", | ||||||
| 		wield_image =  "insects_butterfly_"..name..".png", | 		wield_image =  "butterflies_butterfly_"..name..".png", | ||||||
| 		paramtype = "light", | 		paramtype = "light", | ||||||
| 		sunlight_propagates = true, | 		sunlight_propagates = true, | ||||||
| 		walkable = false, | 		walkable = false, | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								mods/butterflies/locale/butterflies.de.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,4 @@ | |||||||
|  | # textdomain: butterflies | ||||||
|  | White Butterfly=Weißer Schmetterling | ||||||
|  | Red Butterfly=Roter Schmetterling | ||||||
|  | Violet Butterfly=Violetter Schmetterling | ||||||
							
								
								
									
										4
									
								
								mods/butterflies/locale/butterflies.es.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,4 @@ | |||||||
|  | # textdomain: butterflies | ||||||
|  | White Butterfly=Mariposa blanca | ||||||
|  | Red Butterfly=Mariposa roja | ||||||
|  | Violet Butterfly=Mariposa violeta | ||||||
							
								
								
									
										4
									
								
								mods/butterflies/locale/butterflies.fr.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,4 @@ | |||||||
|  | # textdomain: butterflies | ||||||
|  | White Butterfly=Papillon blanc | ||||||
|  | Red Butterfly=Papillon rouge | ||||||
|  | Violet Butterfly=Papillon violet | ||||||
							
								
								
									
										4
									
								
								mods/butterflies/locale/butterflies.it.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,4 @@ | |||||||
|  | # textdomain: butterflies | ||||||
|  | White Butterfly=Farfalla bianca | ||||||
|  | Red Butterfly=Farfalla rossa | ||||||
|  | Violet Butterfly=Farfalla viola | ||||||
							
								
								
									
										4
									
								
								mods/butterflies/locale/template.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,4 @@ | |||||||
|  | # textdomain: butterflies | ||||||
|  | White Butterfly= | ||||||
|  | Red Butterfly= | ||||||
|  | Violet Butterfly= | ||||||
							
								
								
									
										3
									
								
								mods/butterflies/mod.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | |||||||
|  | name = butterflies | ||||||
|  | description = Minetest Game mod: Butterflies | ||||||
|  | depends = default, flowers | ||||||
| @@ -1,3 +1,8 @@ | |||||||
|  | -- carts/cart_entity.lua | ||||||
|  |  | ||||||
|  | -- support for MT game translation. | ||||||
|  | local S = carts.get_translator | ||||||
|  |  | ||||||
| local cart_entity = { | local cart_entity = { | ||||||
| 	initial_properties = { | 	initial_properties = { | ||||||
| 		physical = false, -- otherwise going uphill breaks | 		physical = false, -- otherwise going uphill breaks | ||||||
| @@ -383,7 +388,7 @@ end | |||||||
| minetest.register_entity("carts:cart", cart_entity) | minetest.register_entity("carts:cart", cart_entity) | ||||||
|  |  | ||||||
| minetest.register_craftitem("carts:cart", { | minetest.register_craftitem("carts:cart", { | ||||||
| 	description = "Cart (Sneak+Click to pick up)", | 	description = S("Cart") .. "\n" .. S("(Sneak+Click to pick up)"), | ||||||
| 	inventory_image = minetest.inventorycube("carts_cart_top.png", "carts_cart_side.png", "carts_cart_side.png"), | 	inventory_image = minetest.inventorycube("carts_cart_top.png", "carts_cart_side.png", "carts_cart_side.png"), | ||||||
| 	wield_image = "carts_cart_side.png", | 	wield_image = "carts_cart_side.png", | ||||||
| 	on_place = function(itemstack, placer, pointed_thing) | 	on_place = function(itemstack, placer, pointed_thing) | ||||||
|   | |||||||
| @@ -1,2 +0,0 @@ | |||||||
| default |  | ||||||
| player_api |  | ||||||
| @@ -1,7 +1,12 @@ | |||||||
|  | -- carts/init.lua | ||||||
|  |  | ||||||
|  | -- Load support for MT game translation. | ||||||
|  | local S = minetest.get_translator("carts") | ||||||
|  |  | ||||||
| carts = {} | carts = {} | ||||||
| carts.modpath = minetest.get_modpath("carts") | carts.modpath = minetest.get_modpath("carts") | ||||||
| carts.railparams = {} | carts.railparams = {} | ||||||
|  | carts.get_translator = S | ||||||
|  |  | ||||||
| -- Maximal speed of the cart in m/s (min = -1) | -- Maximal speed of the cart in m/s (min = -1) | ||||||
| carts.speed_max = 7 | carts.speed_max = 7 | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								mods/carts/locale/carts.de.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,6 @@ | |||||||
|  | # textdomain: carts | ||||||
|  | Cart=Lore | ||||||
|  | (Sneak+Click to pick up)=(Schleichen u. Klicken zum Aufheben) | ||||||
|  | Rail=Schiene | ||||||
|  | Powered Rail=Antriebsschiene | ||||||
|  | Brake Rail=Bremsschiene | ||||||
							
								
								
									
										6
									
								
								mods/carts/locale/carts.es.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,6 @@ | |||||||
|  | # textdomain: carts | ||||||
|  | Cart=Vagoneta | ||||||
|  | (Sneak+Click to pick up)=(Agacharse+Clic para recoger) | ||||||
|  | Rail=Raíl | ||||||
|  | Powered Rail=Raíl energizado | ||||||
|  | Brake Rail=Raíl de frenado | ||||||
							
								
								
									
										6
									
								
								mods/carts/locale/carts.fr.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,6 @@ | |||||||
|  | # textdomain: carts | ||||||
|  | Cart=Chariot | ||||||
|  | (Sneak+Click to pick up)=(Se baisser + clic pour ramasser) | ||||||
|  | Rail=Rail | ||||||
|  | Powered Rail=Rail de traction | ||||||
|  | Brake Rail=Rail de freinage | ||||||
							
								
								
									
										6
									
								
								mods/carts/locale/carts.it.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,6 @@ | |||||||
|  | # textdomain: carts | ||||||
|  | Cart=Vagone | ||||||
|  | (Sneak+Click to pick up)=(Strisciare+Click per raccoglierlo) | ||||||
|  | Rail=Binario | ||||||
|  | Powered Rail=Binario alimentato | ||||||
|  | Brake Rail=Binario freno | ||||||
							
								
								
									
										6
									
								
								mods/carts/locale/template.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,6 @@ | |||||||
|  | # textdomain: carts | ||||||
|  | Cart= | ||||||
|  | (Sneak+Click to pick up)= | ||||||
|  | Rail= | ||||||
|  | Powered Rail= | ||||||
|  | Brake Rail= | ||||||
							
								
								
									
										3
									
								
								mods/carts/mod.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | |||||||
|  | name = carts | ||||||
|  | description = Carts (formerly boost_cart) | ||||||
|  | depends = default, player_api | ||||||
| @@ -1,5 +1,10 @@ | |||||||
|  | -- carts/rails.lua | ||||||
|  |  | ||||||
|  | -- support for MT game translation. | ||||||
|  | local S = carts.get_translator | ||||||
|  |  | ||||||
| carts:register_rail("carts:rail", { | carts:register_rail("carts:rail", { | ||||||
| 	description = "Rail", | 	description = S("Rail"), | ||||||
| 	tiles = { | 	tiles = { | ||||||
| 		"carts_rail_straight.png", "carts_rail_curved.png", | 		"carts_rail_straight.png", "carts_rail_curved.png", | ||||||
| 		"carts_rail_t_junction.png", "carts_rail_crossing.png" | 		"carts_rail_t_junction.png", "carts_rail_crossing.png" | ||||||
| @@ -22,7 +27,7 @@ minetest.register_alias("default:rail", "carts:rail") | |||||||
|  |  | ||||||
|  |  | ||||||
| carts:register_rail("carts:powerrail", { | carts:register_rail("carts:powerrail", { | ||||||
| 	description = "Powered Rail", | 	description = S("Powered Rail"), | ||||||
| 	tiles = { | 	tiles = { | ||||||
| 		"carts_rail_straight_pwr.png", "carts_rail_curved_pwr.png", | 		"carts_rail_straight_pwr.png", "carts_rail_curved_pwr.png", | ||||||
| 		"carts_rail_t_junction_pwr.png", "carts_rail_crossing_pwr.png" | 		"carts_rail_t_junction_pwr.png", "carts_rail_crossing_pwr.png" | ||||||
| @@ -41,7 +46,7 @@ minetest.register_craft({ | |||||||
|  |  | ||||||
|  |  | ||||||
| carts:register_rail("carts:brakerail", { | carts:register_rail("carts:brakerail", { | ||||||
| 	description = "Brake Rail", | 	description = S("Brake Rail"), | ||||||
| 	tiles = { | 	tiles = { | ||||||
| 		"carts_rail_straight_brk.png", "carts_rail_curved_brk.png", | 		"carts_rail_straight_brk.png", "carts_rail_curved_brk.png", | ||||||
| 		"carts_rail_t_junction_brk.png", "carts_rail_crossing_brk.png" | 		"carts_rail_t_junction_brk.png", "carts_rail_crossing_brk.png" | ||||||
|   | |||||||
| @@ -1,2 +0,0 @@ | |||||||
| default |  | ||||||
| sfinv |  | ||||||
| @@ -1,4 +1,10 @@ | |||||||
|  | -- creative/init.lua | ||||||
|  |  | ||||||
|  | -- Load support for MT game translation. | ||||||
|  | local S = minetest.get_translator("creative") | ||||||
|  |  | ||||||
| creative = {} | creative = {} | ||||||
|  | creative.get_translator = S | ||||||
|  |  | ||||||
| local function update_sfinv(name) | local function update_sfinv(name) | ||||||
| 	minetest.after(0, function() | 	minetest.after(0, function() | ||||||
| @@ -14,7 +20,7 @@ local function update_sfinv(name) | |||||||
| end | end | ||||||
|  |  | ||||||
| minetest.register_privilege("creative", { | minetest.register_privilege("creative", { | ||||||
| 	description = "Allow player to use creative inventory", | 	description = S("Allow player to use creative inventory"), | ||||||
| 	give_to_singleplayer = false, | 	give_to_singleplayer = false, | ||||||
| 	give_to_admin = false, | 	give_to_admin = false, | ||||||
| 	on_grant = update_sfinv, | 	on_grant = update_sfinv, | ||||||
| @@ -40,10 +46,8 @@ if creative_mode_cache then | |||||||
| 	local digtime = 42 | 	local digtime = 42 | ||||||
| 	local caps = {times = {digtime, digtime, digtime}, uses = 0, maxlevel = 256} | 	local caps = {times = {digtime, digtime, digtime}, uses = 0, maxlevel = 256} | ||||||
|  |  | ||||||
| 	minetest.register_item(":", { | 	-- Override the hand tool | ||||||
| 		type = "none", | 	minetest.override_item("", { | ||||||
| 		wield_image = "wieldhand.png", |  | ||||||
| 		wield_scale = {x = 1, y = 1, z = 2.5}, |  | ||||||
| 		range = 10, | 		range = 10, | ||||||
| 		tool_capabilities = { | 		tool_capabilities = { | ||||||
| 			full_punch_interval = 0.5, | 			full_punch_interval = 0.5, | ||||||
| @@ -54,6 +58,9 @@ if creative_mode_cache then | |||||||
| 				snappy  = caps, | 				snappy  = caps, | ||||||
| 				choppy  = caps, | 				choppy  = caps, | ||||||
| 				oddly_breakable_by_hand = caps, | 				oddly_breakable_by_hand = caps, | ||||||
|  | 				-- dig_immediate group doesn't use value 1. Value 3 is instant dig | ||||||
|  | 				dig_immediate = | ||||||
|  | 					{times = {[2] = digtime, [3] = 0}, uses = 0, maxlevel = 256}, | ||||||
| 			}, | 			}, | ||||||
| 			damage_groups = {fleshy = 10}, | 			damage_groups = {fleshy = 10}, | ||||||
| 		} | 		} | ||||||
|   | |||||||
| @@ -1,3 +1,8 @@ | |||||||
|  | -- creative/inventory.lua | ||||||
|  |  | ||||||
|  | -- support for MT game translation. | ||||||
|  | local S = creative.get_translator | ||||||
|  |  | ||||||
| local player_inventory = {} | local player_inventory = {} | ||||||
| local inventory_cache = {} | local inventory_cache = {} | ||||||
|  |  | ||||||
| @@ -103,30 +108,29 @@ function creative.register_tab(name, title, items) | |||||||
| 			local start_i = inv.start_i or 0 | 			local start_i = inv.start_i or 0 | ||||||
| 			local pagenum = math.floor(start_i / (3*8) + 1) | 			local pagenum = math.floor(start_i / (3*8) + 1) | ||||||
| 			local pagemax = math.ceil(inv.size / (3*8)) | 			local pagemax = math.ceil(inv.size / (3*8)) | ||||||
|  | 			local esc = minetest.formspec_escape | ||||||
| 			return sfinv.make_formspec(player, context, | 			return sfinv.make_formspec(player, context, | ||||||
| 				"label[6.2,3.35;" .. minetest.colorize("#FFFF00", tostring(pagenum)) .. " / " .. tostring(pagemax) .. "]" .. | 				"label[6.2,3.35;" .. minetest.colorize("#FFFF00", tostring(pagenum)) .. " / " .. tostring(pagemax) .. "]" .. | ||||||
| 				[[ | 				[[ | ||||||
| 					image[4.06,3.4;0.8,0.8;creative_trash_icon.png] | 					image[4.06,3.4;0.8,0.8;creative_trash_icon.png] | ||||||
| 					listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF] | 					listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF] | ||||||
| 					list[current_player;main;0,4.7;8,1;] |  | ||||||
| 					list[current_player;main;0,5.85;8,3;8] |  | ||||||
| 					list[detached:creative_trash;main;4,3.3;1,1;] | 					list[detached:creative_trash;main;4,3.3;1,1;] | ||||||
| 					listring[] | 					listring[] | ||||||
| 					image_button[5.4,3.25;0.8,0.8;creative_prev_icon.png;creative_prev;] | 					image_button[5.4,3.25;0.8,0.8;creative_prev_icon.png;creative_prev;] | ||||||
| 					image_button[7.2,3.25;0.8,0.8;creative_next_icon.png;creative_next;] | 					image_button[7.2,3.25;0.8,0.8;creative_next_icon.png;creative_next;] | ||||||
| 					image_button[2.1,3.25;0.8,0.8;creative_search_icon.png;creative_search;] | 					image_button[2.1,3.25;0.8,0.8;creative_search_icon.png;creative_search;] | ||||||
| 					image_button[2.75,3.25;0.8,0.8;creative_clear_icon.png;creative_clear;] | 					image_button[2.75,3.25;0.8,0.8;creative_clear_icon.png;creative_clear;] | ||||||
| 					tooltip[creative_search;Search] |  | ||||||
| 					tooltip[creative_clear;Reset] |  | ||||||
| 					tooltip[creative_prev;Previous page] |  | ||||||
| 					tooltip[creative_next;Next page] |  | ||||||
| 					listring[current_player;main] |  | ||||||
| 					field_close_on_enter[creative_filter;false] |  | ||||||
| 				]] .. | 				]] .. | ||||||
| 				"field[0.3,3.5;2.2,1;creative_filter;;" .. minetest.formspec_escape(inv.filter) .. "]" .. | 				"tooltip[creative_search;" .. esc(S("Search")) .. "]" .. | ||||||
|  | 				"tooltip[creative_clear;" .. esc(S("Reset")) .. "]" .. | ||||||
|  | 				"tooltip[creative_prev;" .. esc(S("Previous page")) .. "]" .. | ||||||
|  | 				"tooltip[creative_next;" .. esc(S("Next page")) .. "]" .. | ||||||
|  | 				"listring[current_player;main]" .. | ||||||
|  | 				"field_close_on_enter[creative_filter;false]" .. | ||||||
|  | 				"field[0.3,3.5;2.2,1;creative_filter;;" .. esc(inv.filter) .. "]" .. | ||||||
| 				"listring[detached:creative_" .. player_name .. ";main]" .. | 				"listring[detached:creative_" .. player_name .. ";main]" .. | ||||||
| 				"list[detached:creative_" .. player_name .. ";main;0,0;8,3;" .. tostring(start_i) .. "]" .. | 				"list[detached:creative_" .. player_name .. ";main;0,0;8,3;" .. tostring(start_i) .. "]" .. | ||||||
| 				default.get_hotbar_bg(0,4.7) .. creative.formspec_add, false) | 				creative.formspec_add, true) | ||||||
| 		end, | 		end, | ||||||
| 		on_enter = function(self, player, context) | 		on_enter = function(self, player, context) | ||||||
| 			local player_name = player:get_player_name() | 			local player_name = player:get_player_name() | ||||||
| @@ -176,10 +180,10 @@ function creative.register_tab(name, title, items) | |||||||
| 	}) | 	}) | ||||||
| end | end | ||||||
|  |  | ||||||
| creative.register_tab("all", "All", minetest.registered_items) | creative.register_tab("all", S("All"), minetest.registered_items) | ||||||
| creative.register_tab("nodes", "Nodes", minetest.registered_nodes) | creative.register_tab("nodes", S("Nodes"), minetest.registered_nodes) | ||||||
| creative.register_tab("tools", "Tools", minetest.registered_tools) | creative.register_tab("tools", S("Tools"), minetest.registered_tools) | ||||||
| creative.register_tab("craftitems", "Items", minetest.registered_craftitems) | creative.register_tab("craftitems", S("Items"), minetest.registered_craftitems) | ||||||
|  |  | ||||||
| local old_homepage_name = sfinv.get_homepage_name | local old_homepage_name = sfinv.get_homepage_name | ||||||
| function sfinv.get_homepage_name(player) | function sfinv.get_homepage_name(player) | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								mods/creative/locale/creative.de.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,10 @@ | |||||||
|  | # textdomain: creative | ||||||
|  | Allow player to use creative inventory=Spieler erlauben, das Kreativinventar zu benutzen | ||||||
|  | Search=Suchen | ||||||
|  | Reset=Zurücksetzen | ||||||
|  | Previous page=Vorherige Seite | ||||||
|  | Next page=Nächste Seite | ||||||
|  | All=Alles | ||||||
|  | Nodes=Blöcke | ||||||
|  | Tools=Werkzeuge | ||||||
|  | Items=Gegenstände | ||||||
							
								
								
									
										10
									
								
								mods/creative/locale/creative.es.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,10 @@ | |||||||
|  | # textdomain: creative | ||||||
|  | Allow player to use creative inventory=Permitir al jugador usar el inventario creativo | ||||||
|  | Search=Buscar | ||||||
|  | Reset=Resetear | ||||||
|  | Previous page=Pág. siguiente | ||||||
|  | Next page=Pág. anterior | ||||||
|  | All=Todos | ||||||
|  | Nodes=Nodos | ||||||
|  | Tools=Herramientas | ||||||
|  | Items=Objetos | ||||||
							
								
								
									
										10
									
								
								mods/creative/locale/creative.fr.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,10 @@ | |||||||
|  | # textdomain: creative | ||||||
|  | Allow player to use creative inventory=Permettre aux joueurs d'utiliser l'inventaire du mode créatif | ||||||
|  | Search=Rechercher | ||||||
|  | Reset=Réinitialiser | ||||||
|  | Previous page=Page précédente | ||||||
|  | Next page=Page suivante | ||||||
|  | All=Tout | ||||||
|  | Nodes=Nœuds | ||||||
|  | Tools=Outils | ||||||
|  | Items=Article | ||||||
							
								
								
									
										10
									
								
								mods/creative/locale/creative.it.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,10 @@ | |||||||
|  | # textdomain: creative | ||||||
|  | Allow player to use creative inventory=Permette al giocatore di usare l'inventario creativo | ||||||
|  | Search=Cerca | ||||||
|  | Reset=Azzera | ||||||
|  | Previous page=Pagina precedente | ||||||
|  | Next page=Pagina successiva | ||||||
|  | All=Tutto | ||||||
|  | Nodes=Nodi | ||||||
|  | Tools=Strumenti | ||||||
|  | Items=Oggetti | ||||||
							
								
								
									
										10
									
								
								mods/creative/locale/template.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,10 @@ | |||||||
|  | # textdomain: creative | ||||||
|  | Allow player to use creative inventory= | ||||||
|  | Search= | ||||||
|  | Reset= | ||||||
|  | Previous page= | ||||||
|  | Next page= | ||||||
|  | All= | ||||||
|  | Nodes= | ||||||
|  | Tools= | ||||||
|  | Items= | ||||||
							
								
								
									
										3
									
								
								mods/creative/mod.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | |||||||
|  | name = creative | ||||||
|  | description = Minetest Game mod: creative | ||||||
|  | depends = default, sfinv | ||||||
| @@ -101,8 +101,7 @@ paramat (CC BY-SA 3.0): | |||||||
|   default_dry_grass.png |   default_dry_grass.png | ||||||
|   default_dry_grass_side.png |   default_dry_grass_side.png | ||||||
|   default_dry_grass_*.png |   default_dry_grass_*.png | ||||||
|   default_grass.png |   default_grass_side.png -- Derived from a texture by TumeniNodes (CC-BY-SA 3.0) | ||||||
|   default_grass_side.png |  | ||||||
|   default_mese_block.png |   default_mese_block.png | ||||||
|   default_silver_sand.png |   default_silver_sand.png | ||||||
|   default_mese_post_light_side.png |   default_mese_post_light_side.png | ||||||
| @@ -129,6 +128,8 @@ TumeniNodes (CC BY-SA 3.0): | |||||||
|   default_desert_cobble.png -- Derived from a texture by brunob.santos (CC BY-SA 3.0) |   default_desert_cobble.png -- Derived from a texture by brunob.santos (CC BY-SA 3.0) | ||||||
|   default_coniferous_litter.png |   default_coniferous_litter.png | ||||||
|   default_coniferous_litter_side.png |   default_coniferous_litter_side.png | ||||||
|  |   default_grass.png | ||||||
|  |   default_dry_dirt.png | ||||||
|  |  | ||||||
| BlockMen (CC BY-SA 3.0): | BlockMen (CC BY-SA 3.0): | ||||||
|   default_aspen_leaves.png -- Derived from Sofar's texture |   default_aspen_leaves.png -- Derived from Sofar's texture | ||||||
|   | |||||||
| @@ -1,5 +1,8 @@ | |||||||
| default.chest = {} | default.chest = {} | ||||||
|  |  | ||||||
|  | -- support for MT game translation. | ||||||
|  | local S = default.get_translator | ||||||
|  |  | ||||||
| function default.chest.get_chest_formspec(pos) | function default.chest.get_chest_formspec(pos) | ||||||
| 	local spos = pos.x .. "," .. pos.y .. "," .. pos.z | 	local spos = pos.x .. "," .. pos.y .. "," .. pos.z | ||||||
| 	local formspec = | 	local formspec = | ||||||
| @@ -84,7 +87,7 @@ function default.chest.register_chest(name, d) | |||||||
| 	if def.protected then | 	if def.protected then | ||||||
| 		def.on_construct = function(pos) | 		def.on_construct = function(pos) | ||||||
| 			local meta = minetest.get_meta(pos) | 			local meta = minetest.get_meta(pos) | ||||||
| 			meta:set_string("infotext", "Locked Chest") | 			meta:set_string("infotext", S("Locked Chest")) | ||||||
| 			meta:set_string("owner", "") | 			meta:set_string("owner", "") | ||||||
| 			local inv = meta:get_inventory() | 			local inv = meta:get_inventory() | ||||||
| 			inv:set_size("main", 8*4) | 			inv:set_size("main", 8*4) | ||||||
| @@ -92,8 +95,7 @@ function default.chest.register_chest(name, d) | |||||||
| 		def.after_place_node = function(pos, placer) | 		def.after_place_node = function(pos, placer) | ||||||
| 			local meta = minetest.get_meta(pos) | 			local meta = minetest.get_meta(pos) | ||||||
| 			meta:set_string("owner", placer:get_player_name() or "") | 			meta:set_string("owner", placer:get_player_name() or "") | ||||||
| 			meta:set_string("infotext", "Locked Chest (owned by " .. | 			meta:set_string("infotext", S("Locked Chest (owned by @1)", meta:get_string("owner"))) | ||||||
| 					meta:get_string("owner") .. ")") |  | ||||||
| 		end | 		end | ||||||
| 		def.can_dig = function(pos,player) | 		def.can_dig = function(pos,player) | ||||||
| 			local meta = minetest.get_meta(pos); | 			local meta = minetest.get_meta(pos); | ||||||
| @@ -171,7 +173,7 @@ function default.chest.register_chest(name, d) | |||||||
| 			-- verify placer is owner of lockable chest | 			-- verify placer is owner of lockable chest | ||||||
| 			if owner ~= pn then | 			if owner ~= pn then | ||||||
| 				minetest.record_protection_violation(pos, pn) | 				minetest.record_protection_violation(pos, pn) | ||||||
| 				minetest.chat_send_player(pn, "You do not own this chest.") | 				minetest.chat_send_player(pn, S("You do not own this chest.")) | ||||||
| 				return nil | 				return nil | ||||||
| 			end | 			end | ||||||
|  |  | ||||||
| @@ -181,12 +183,12 @@ function default.chest.register_chest(name, d) | |||||||
| 				meta:set_string("key_lock_secret", secret) | 				meta:set_string("key_lock_secret", secret) | ||||||
| 			end | 			end | ||||||
|  |  | ||||||
| 			return secret, "a locked chest", owner | 			return secret, S("a locked chest"), owner | ||||||
| 		end | 		end | ||||||
| 	else | 	else | ||||||
| 		def.on_construct = function(pos) | 		def.on_construct = function(pos) | ||||||
| 			local meta = minetest.get_meta(pos) | 			local meta = minetest.get_meta(pos) | ||||||
| 			meta:set_string("infotext", "Chest") | 			meta:set_string("infotext", S("Chest")) | ||||||
| 			local inv = meta:get_inventory() | 			local inv = meta:get_inventory() | ||||||
| 			inv:set_size("main", 8*4) | 			inv:set_size("main", 8*4) | ||||||
| 		end | 		end | ||||||
| @@ -285,7 +287,7 @@ function default.chest.register_chest(name, d) | |||||||
| end | end | ||||||
|  |  | ||||||
| default.chest.register_chest("chest", { | default.chest.register_chest("chest", { | ||||||
| 	description = "Chest", | 	description = S("Chest"), | ||||||
| 	tiles = { | 	tiles = { | ||||||
| 		"default_chest_top.png", | 		"default_chest_top.png", | ||||||
| 		"default_chest_top.png", | 		"default_chest_top.png", | ||||||
| @@ -301,7 +303,7 @@ default.chest.register_chest("chest", { | |||||||
| }) | }) | ||||||
|  |  | ||||||
| default.chest.register_chest("chest_locked", { | default.chest.register_chest("chest_locked", { | ||||||
| 	description = "Locked Chest", | 	description = S("Locked Chest"), | ||||||
| 	tiles = { | 	tiles = { | ||||||
| 		"default_chest_top.png", | 		"default_chest_top.png", | ||||||
| 		"default_chest_top.png", | 		"default_chest_top.png", | ||||||
|   | |||||||
| @@ -1,51 +1,51 @@ | |||||||
| -- mods/default/crafting.lua | -- mods/default/crafting.lua | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:wood 4', | 	output = "default:wood 4", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:tree'}, | 		{"default:tree"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:junglewood 4', | 	output = "default:junglewood 4", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:jungletree'}, | 		{"default:jungletree"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:pine_wood 4', | 	output = "default:pine_wood 4", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:pine_tree'}, | 		{"default:pine_tree"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:acacia_wood 4', | 	output = "default:acacia_wood 4", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:acacia_tree'}, | 		{"default:acacia_tree"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:aspen_wood 4', | 	output = "default:aspen_wood 4", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:aspen_tree'}, | 		{"default:aspen_tree"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:wood', | 	output = "default:wood", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:bush_stem'}, | 		{"default:bush_stem"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:acacia_wood', | 	output = "default:acacia_wood", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:acacia_bush_stem'}, | 		{"default:acacia_bush_stem"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -57,143 +57,143 @@ minetest.register_craft({ | |||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:stick 4', | 	output = "default:stick 4", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'group:wood'}, | 		{"group:wood"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:sign_wall_steel 3', | 	output = "default:sign_wall_steel 3", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, | 		{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, | ||||||
| 		{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, | 		{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, | ||||||
| 		{'', 'group:stick', ''}, | 		{"", "group:stick", ""}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:sign_wall_wood 3', | 	output = "default:sign_wall_wood 3", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'group:wood', 'group:wood', 'group:wood'}, | 		{"group:wood", "group:wood", "group:wood"}, | ||||||
| 		{'group:wood', 'group:wood', 'group:wood'}, | 		{"group:wood", "group:wood", "group:wood"}, | ||||||
| 		{'', 'group:stick', ''}, | 		{"", "group:stick", ""}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:torch 4', | 	output = "default:torch 4", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:coal_lump'}, | 		{"default:coal_lump"}, | ||||||
| 		{'group:stick'}, | 		{"group:stick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:pick_wood', | 	output = "default:pick_wood", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'group:wood', 'group:wood', 'group:wood'}, | 		{"group:wood", "group:wood", "group:wood"}, | ||||||
| 		{'', 'group:stick', ''}, | 		{"", "group:stick", ""}, | ||||||
| 		{'', 'group:stick', ''}, | 		{"", "group:stick", ""}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:pick_stone', | 	output = "default:pick_stone", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'group:stone', 'group:stone', 'group:stone'}, | 		{"group:stone", "group:stone", "group:stone"}, | ||||||
| 		{'', 'group:stick', ''}, | 		{"", "group:stick", ""}, | ||||||
| 		{'', 'group:stick', ''}, | 		{"", "group:stick", ""}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:pick_steel', | 	output = "default:pick_steel", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, | 		{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, | ||||||
| 		{'', 'group:stick', ''}, | 		{"", "group:stick", ""}, | ||||||
| 		{'', 'group:stick', ''}, | 		{"", "group:stick", ""}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:pick_bronze', | 	output = "default:pick_bronze", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, | 		{"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"}, | ||||||
| 		{'', 'group:stick', ''}, | 		{"", "group:stick", ""}, | ||||||
| 		{'', 'group:stick', ''}, | 		{"", "group:stick", ""}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:pick_mese', | 	output = "default:pick_mese", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, | 		{"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"}, | ||||||
| 		{'', 'group:stick', ''}, | 		{"", "group:stick", ""}, | ||||||
| 		{'', 'group:stick', ''}, | 		{"", "group:stick", ""}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:pick_diamond', | 	output = "default:pick_diamond", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:diamond', 'default:diamond', 'default:diamond'}, | 		{"default:diamond", "default:diamond", "default:diamond"}, | ||||||
| 		{'', 'group:stick', ''}, | 		{"", "group:stick", ""}, | ||||||
| 		{'', 'group:stick', ''}, | 		{"", "group:stick", ""}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:shovel_wood', | 	output = "default:shovel_wood", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'group:wood'}, | 		{"group:wood"}, | ||||||
| 		{'group:stick'}, | 		{"group:stick"}, | ||||||
| 		{'group:stick'}, | 		{"group:stick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:shovel_stone', | 	output = "default:shovel_stone", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'group:stone'}, | 		{"group:stone"}, | ||||||
| 		{'group:stick'}, | 		{"group:stick"}, | ||||||
| 		{'group:stick'}, | 		{"group:stick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:shovel_steel', | 	output = "default:shovel_steel", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:steel_ingot'}, | 		{"default:steel_ingot"}, | ||||||
| 		{'group:stick'}, | 		{"group:stick"}, | ||||||
| 		{'group:stick'}, | 		{"group:stick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:shovel_bronze', | 	output = "default:shovel_bronze", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:bronze_ingot'}, | 		{"default:bronze_ingot"}, | ||||||
| 		{'group:stick'}, | 		{"group:stick"}, | ||||||
| 		{'group:stick'}, | 		{"group:stick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:shovel_mese', | 	output = "default:shovel_mese", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:mese_crystal'}, | 		{"default:mese_crystal"}, | ||||||
| 		{'group:stick'}, | 		{"group:stick"}, | ||||||
| 		{'group:stick'}, | 		{"group:stick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:shovel_diamond', | 	output = "default:shovel_diamond", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:diamond'}, | 		{"default:diamond"}, | ||||||
| 		{'group:stick'}, | 		{"group:stick"}, | ||||||
| 		{'group:stick'}, | 		{"group:stick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -201,135 +201,135 @@ minetest.register_craft({ | |||||||
| -- Recipes face left to match appearence in textures and inventory | -- Recipes face left to match appearence in textures and inventory | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:axe_wood', | 	output = "default:axe_wood", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'group:wood', 'group:wood'}, | 		{"group:wood", "group:wood"}, | ||||||
| 		{'group:wood', 'group:stick'}, | 		{"group:wood", "group:stick"}, | ||||||
| 		{'', 'group:stick'}, | 		{"", "group:stick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:axe_stone', | 	output = "default:axe_stone", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'group:stone', 'group:stone'}, | 		{"group:stone", "group:stone"}, | ||||||
| 		{'group:stone', 'group:stick'}, | 		{"group:stone", "group:stick"}, | ||||||
| 		{'', 'group:stick'}, | 		{"", "group:stick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:axe_steel', | 	output = "default:axe_steel", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:steel_ingot', 'default:steel_ingot'}, | 		{"default:steel_ingot", "default:steel_ingot"}, | ||||||
| 		{'default:steel_ingot', 'group:stick'}, | 		{"default:steel_ingot", "group:stick"}, | ||||||
| 		{'', 'group:stick'}, | 		{"", "group:stick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:axe_bronze', | 	output = "default:axe_bronze", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:bronze_ingot', 'default:bronze_ingot'}, | 		{"default:bronze_ingot", "default:bronze_ingot"}, | ||||||
| 		{'default:bronze_ingot', 'group:stick'}, | 		{"default:bronze_ingot", "group:stick"}, | ||||||
| 		{'', 'group:stick'}, | 		{"", "group:stick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:axe_mese', | 	output = "default:axe_mese", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:mese_crystal', 'default:mese_crystal'}, | 		{"default:mese_crystal", "default:mese_crystal"}, | ||||||
| 		{'default:mese_crystal', 'group:stick'}, | 		{"default:mese_crystal", "group:stick"}, | ||||||
| 		{'', 'group:stick'}, | 		{"", "group:stick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:axe_diamond', | 	output = "default:axe_diamond", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:diamond', 'default:diamond'}, | 		{"default:diamond", "default:diamond"}, | ||||||
| 		{'default:diamond', 'group:stick'}, | 		{"default:diamond", "group:stick"}, | ||||||
| 		{'', 'group:stick'}, | 		{"", "group:stick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:sword_wood', | 	output = "default:sword_wood", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'group:wood'}, | 		{"group:wood"}, | ||||||
| 		{'group:wood'}, | 		{"group:wood"}, | ||||||
| 		{'group:stick'}, | 		{"group:stick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:sword_stone', | 	output = "default:sword_stone", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'group:stone'}, | 		{"group:stone"}, | ||||||
| 		{'group:stone'}, | 		{"group:stone"}, | ||||||
| 		{'group:stick'}, | 		{"group:stick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:sword_steel', | 	output = "default:sword_steel", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:steel_ingot'}, | 		{"default:steel_ingot"}, | ||||||
| 		{'default:steel_ingot'}, | 		{"default:steel_ingot"}, | ||||||
| 		{'group:stick'}, | 		{"group:stick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:sword_bronze', | 	output = "default:sword_bronze", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:bronze_ingot'}, | 		{"default:bronze_ingot"}, | ||||||
| 		{'default:bronze_ingot'}, | 		{"default:bronze_ingot"}, | ||||||
| 		{'group:stick'}, | 		{"group:stick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:sword_mese', | 	output = "default:sword_mese", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:mese_crystal'}, | 		{"default:mese_crystal"}, | ||||||
| 		{'default:mese_crystal'}, | 		{"default:mese_crystal"}, | ||||||
| 		{'group:stick'}, | 		{"group:stick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:sword_diamond', | 	output = "default:sword_diamond", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:diamond'}, | 		{"default:diamond"}, | ||||||
| 		{'default:diamond'}, | 		{"default:diamond"}, | ||||||
| 		{'group:stick'}, | 		{"group:stick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:skeleton_key', | 	output = "default:skeleton_key", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:gold_ingot'}, | 		{"default:gold_ingot"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:chest', | 	output = "default:chest", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'group:wood', 'group:wood', 'group:wood'}, | 		{"group:wood", "group:wood", "group:wood"}, | ||||||
| 		{'group:wood', '', 'group:wood'}, | 		{"group:wood", "", "group:wood"}, | ||||||
| 		{'group:wood', 'group:wood', 'group:wood'}, | 		{"group:wood", "group:wood", "group:wood"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:chest_locked', | 	output = "default:chest_locked", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'group:wood', 'group:wood', 'group:wood'}, | 		{"group:wood", "group:wood", "group:wood"}, | ||||||
| 		{'group:wood', 'default:steel_ingot', 'group:wood'}, | 		{"group:wood", "default:steel_ingot", "group:wood"}, | ||||||
| 		{'group:wood', 'group:wood', 'group:wood'}, | 		{"group:wood", "group:wood", "group:wood"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -340,59 +340,59 @@ minetest.register_craft( { | |||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:furnace', | 	output = "default:furnace", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'group:stone', 'group:stone', 'group:stone'}, | 		{"group:stone", "group:stone", "group:stone"}, | ||||||
| 		{'group:stone', '', 'group:stone'}, | 		{"group:stone", "", "group:stone"}, | ||||||
| 		{'group:stone', 'group:stone', 'group:stone'}, | 		{"group:stone", "group:stone", "group:stone"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:coalblock', | 	output = "default:coalblock", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:coal_lump', 'default:coal_lump', 'default:coal_lump'}, | 		{"default:coal_lump", "default:coal_lump", "default:coal_lump"}, | ||||||
| 		{'default:coal_lump', 'default:coal_lump', 'default:coal_lump'}, | 		{"default:coal_lump", "default:coal_lump", "default:coal_lump"}, | ||||||
| 		{'default:coal_lump', 'default:coal_lump', 'default:coal_lump'}, | 		{"default:coal_lump", "default:coal_lump", "default:coal_lump"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:coal_lump 9', | 	output = "default:coal_lump 9", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:coalblock'}, | 		{"default:coalblock"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:steelblock', | 	output = "default:steelblock", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, | 		{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, | ||||||
| 		{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, | 		{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, | ||||||
| 		{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, | 		{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:steel_ingot 9', | 	output = "default:steel_ingot 9", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:steelblock'}, | 		{"default:steelblock"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:copperblock', | 	output = "default:copperblock", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'}, | 		{"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"}, | ||||||
| 		{'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'}, | 		{"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"}, | ||||||
| 		{'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'}, | 		{"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:copper_ingot 9', | 	output = "default:copper_ingot 9", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:copperblock'}, | 		{"default:copperblock"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -422,50 +422,50 @@ minetest.register_craft({ | |||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:bronzeblock', | 	output = "default:bronzeblock", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, | 		{"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"}, | ||||||
| 		{'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, | 		{"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"}, | ||||||
| 		{'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, | 		{"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:bronze_ingot 9', | 	output = "default:bronze_ingot 9", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:bronzeblock'}, | 		{"default:bronzeblock"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:goldblock', | 	output = "default:goldblock", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'}, | 		{"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"}, | ||||||
| 		{'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'}, | 		{"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"}, | ||||||
| 		{'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'}, | 		{"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:gold_ingot 9', | 	output = "default:gold_ingot 9", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:goldblock'}, | 		{"default:goldblock"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:diamondblock', | 	output = "default:diamondblock", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:diamond', 'default:diamond', 'default:diamond'}, | 		{"default:diamond", "default:diamond", "default:diamond"}, | ||||||
| 		{'default:diamond', 'default:diamond', 'default:diamond'}, | 		{"default:diamond", "default:diamond", "default:diamond"}, | ||||||
| 		{'default:diamond', 'default:diamond', 'default:diamond'}, | 		{"default:diamond", "default:diamond", "default:diamond"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:diamond 9', | 	output = "default:diamond 9", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:diamondblock'}, | 		{"default:diamondblock"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -566,57 +566,57 @@ minetest.register_craft({ | |||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:clay', | 	output = "default:clay", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:clay_lump', 'default:clay_lump'}, | 		{"default:clay_lump", "default:clay_lump"}, | ||||||
| 		{'default:clay_lump', 'default:clay_lump'}, | 		{"default:clay_lump", "default:clay_lump"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:clay_lump 4', | 	output = "default:clay_lump 4", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:clay'}, | 		{"default:clay"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:brick', | 	output = "default:brick", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:clay_brick', 'default:clay_brick'}, | 		{"default:clay_brick", "default:clay_brick"}, | ||||||
| 		{'default:clay_brick', 'default:clay_brick'}, | 		{"default:clay_brick", "default:clay_brick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:clay_brick 4', | 	output = "default:clay_brick 4", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:brick'}, | 		{"default:brick"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:paper', | 	output = "default:paper", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:papyrus', 'default:papyrus', 'default:papyrus'}, | 		{"default:papyrus", "default:papyrus", "default:papyrus"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:book', | 	output = "default:book", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:paper'}, | 		{"default:paper"}, | ||||||
| 		{'default:paper'}, | 		{"default:paper"}, | ||||||
| 		{'default:paper'}, | 		{"default:paper"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:bookshelf', | 	output = "default:bookshelf", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'group:wood', 'group:wood', 'group:wood'}, | 		{"group:wood", "group:wood", "group:wood"}, | ||||||
| 		{'default:book', 'default:book', 'default:book'}, | 		{"default:book", "default:book", "default:book"}, | ||||||
| 		{'group:wood', 'group:wood', 'group:wood'}, | 		{"group:wood", "group:wood", "group:wood"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -630,34 +630,34 @@ minetest.register_craft({ | |||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:ladder_steel 15', | 	output = "default:ladder_steel 15", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:steel_ingot', '', 'default:steel_ingot'}, | 		{"default:steel_ingot", "", "default:steel_ingot"}, | ||||||
| 		{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, | 		{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, | ||||||
| 		{'default:steel_ingot', '', 'default:steel_ingot'}, | 		{"default:steel_ingot", "", "default:steel_ingot"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:mese', | 	output = "default:mese", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, | 		{"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"}, | ||||||
| 		{'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, | 		{"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"}, | ||||||
| 		{'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, | 		{"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:mese_crystal 9', | 	output = "default:mese_crystal 9", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:mese'}, | 		{"default:mese"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:mese_crystal_fragment 9', | 	output = "default:mese_crystal_fragment 9", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:mese_crystal'}, | 		{"default:mese_crystal"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -671,10 +671,10 @@ minetest.register_craft({ | |||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:meselamp', | 	output = "default:meselamp", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:glass'}, | 		{"default:glass"}, | ||||||
| 		{'default:mese_crystal'}, | 		{"default:mese_crystal"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -688,85 +688,85 @@ minetest.register_craft({ | |||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:obsidian_shard 9', | 	output = "default:obsidian_shard 9", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:obsidian'} | 		{"default:obsidian"} | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:obsidian', | 	output = "default:obsidian", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:obsidian_shard', 'default:obsidian_shard', 'default:obsidian_shard'}, | 		{"default:obsidian_shard", "default:obsidian_shard", "default:obsidian_shard"}, | ||||||
| 		{'default:obsidian_shard', 'default:obsidian_shard', 'default:obsidian_shard'}, | 		{"default:obsidian_shard", "default:obsidian_shard", "default:obsidian_shard"}, | ||||||
| 		{'default:obsidian_shard', 'default:obsidian_shard', 'default:obsidian_shard'}, | 		{"default:obsidian_shard", "default:obsidian_shard", "default:obsidian_shard"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:obsidianbrick 4', | 	output = "default:obsidianbrick 4", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:obsidian', 'default:obsidian'}, | 		{"default:obsidian", "default:obsidian"}, | ||||||
| 		{'default:obsidian', 'default:obsidian'} | 		{"default:obsidian", "default:obsidian"} | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:obsidian_block 9', | 	output = "default:obsidian_block 9", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:obsidian', 'default:obsidian', 'default:obsidian'}, | 		{"default:obsidian", "default:obsidian", "default:obsidian"}, | ||||||
| 		{'default:obsidian', 'default:obsidian', 'default:obsidian'}, | 		{"default:obsidian", "default:obsidian", "default:obsidian"}, | ||||||
| 		{'default:obsidian', 'default:obsidian', 'default:obsidian'}, | 		{"default:obsidian", "default:obsidian", "default:obsidian"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:stonebrick 4', | 	output = "default:stonebrick 4", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:stone', 'default:stone'}, | 		{"default:stone", "default:stone"}, | ||||||
| 		{'default:stone', 'default:stone'}, | 		{"default:stone", "default:stone"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:stone_block 9', | 	output = "default:stone_block 9", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:stone', 'default:stone', 'default:stone'}, | 		{"default:stone", "default:stone", "default:stone"}, | ||||||
| 		{'default:stone', 'default:stone', 'default:stone'}, | 		{"default:stone", "default:stone", "default:stone"}, | ||||||
| 		{'default:stone', 'default:stone', 'default:stone'}, | 		{"default:stone", "default:stone", "default:stone"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:desert_stonebrick 4', | 	output = "default:desert_stonebrick 4", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:desert_stone', 'default:desert_stone'}, | 		{"default:desert_stone", "default:desert_stone"}, | ||||||
| 		{'default:desert_stone', 'default:desert_stone'}, | 		{"default:desert_stone", "default:desert_stone"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:desert_stone_block 9', | 	output = "default:desert_stone_block 9", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:desert_stone', 'default:desert_stone', 'default:desert_stone'}, | 		{"default:desert_stone", "default:desert_stone", "default:desert_stone"}, | ||||||
| 		{'default:desert_stone', 'default:desert_stone', 'default:desert_stone'}, | 		{"default:desert_stone", "default:desert_stone", "default:desert_stone"}, | ||||||
| 		{'default:desert_stone', 'default:desert_stone', 'default:desert_stone'}, | 		{"default:desert_stone", "default:desert_stone", "default:desert_stone"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:snowblock', | 	output = "default:snowblock", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:snow', 'default:snow', 'default:snow'}, | 		{"default:snow", "default:snow", "default:snow"}, | ||||||
| 		{'default:snow', 'default:snow', 'default:snow'}, | 		{"default:snow", "default:snow", "default:snow"}, | ||||||
| 		{'default:snow', 'default:snow', 'default:snow'}, | 		{"default:snow", "default:snow", "default:snow"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'default:snow 9', | 	output = "default:snow 9", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{'default:snowblock'}, | 		{"default:snowblock"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -864,16 +864,16 @@ minetest.register_craft({ | |||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	type = 'cooking', | 	type = "cooking", | ||||||
| 	output = 'default:gold_ingot', | 	output = "default:gold_ingot", | ||||||
| 	recipe = 'default:skeleton_key', | 	recipe = "default:skeleton_key", | ||||||
| 	cooktime = 5, | 	cooktime = 5, | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	type = 'cooking', | 	type = "cooking", | ||||||
| 	output = 'default:gold_ingot', | 	output = "default:gold_ingot", | ||||||
| 	recipe = 'default:key', | 	recipe = "default:key", | ||||||
| 	cooktime = 5, | 	cooktime = 5, | ||||||
| }) | }) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,13 +1,16 @@ | |||||||
| -- mods/default/craftitems.lua | -- mods/default/craftitems.lua | ||||||
|  |  | ||||||
|  | -- support for MT game translation. | ||||||
|  | local S = default.get_translator | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:stick", { | minetest.register_craftitem("default:stick", { | ||||||
| 	description = "Stick", | 	description = S("Stick"), | ||||||
| 	inventory_image = "default_stick.png", | 	inventory_image = "default_stick.png", | ||||||
| 	groups = {stick = 1, flammable = 2}, | 	groups = {stick = 1, flammable = 2}, | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:paper", { | minetest.register_craftitem("default:paper", { | ||||||
| 	description = "Paper", | 	description = S("Paper"), | ||||||
| 	inventory_image = "default_paper.png", | 	inventory_image = "default_paper.png", | ||||||
| 	groups = {flammable = 3}, | 	groups = {flammable = 3}, | ||||||
| }) | }) | ||||||
| @@ -49,23 +52,24 @@ local function book_on_use(itemstack, user) | |||||||
| 	end | 	end | ||||||
|  |  | ||||||
| 	local formspec | 	local formspec | ||||||
|  | 	local esc = minetest.formspec_escape | ||||||
| 	if owner == player_name then | 	if owner == player_name then | ||||||
| 		formspec = "size[8,8]" .. | 		formspec = "size[8,8]" .. | ||||||
| 			"field[0.5,1;7.5,0;title;Title:;" .. | 			"field[0.5,1;7.5,0;title;" .. esc(S("Title:")) .. ";" .. | ||||||
| 				minetest.formspec_escape(title) .. "]" .. | 				esc(title) .. "]" .. | ||||||
| 			"textarea[0.5,1.5;7.5,7;text;Contents:;" .. | 			"textarea[0.5,1.5;7.5,7;text;" .. esc(S("Contents:")) .. ";" .. | ||||||
| 				minetest.formspec_escape(text) .. "]" .. | 				esc(text) .. "]" .. | ||||||
| 			"button_exit[2.5,7.5;3,1;save;Save]" | 			"button_exit[2.5,7.5;3,1;save;" .. esc(S("Save")) .. "]" | ||||||
| 	else | 	else | ||||||
| 		formspec = "size[8,8]" .. | 		formspec = "size[8,8]" .. | ||||||
| 			"label[0.5,0.5;by " .. owner .. "]" .. | 			"label[0.5,0.5;" .. esc(S("by @1", owner)) .. "]" .. | ||||||
| 			"tablecolumns[color;text]" .. | 			"tablecolumns[color;text]" .. | ||||||
| 			"tableoptions[background=#00000000;highlight=#00000000;border=false]" .. | 			"tableoptions[background=#00000000;highlight=#00000000;border=false]" .. | ||||||
| 			"table[0.4,0;7,0.5;title;#FFFF00," .. minetest.formspec_escape(title) .. "]" .. | 			"table[0.4,0;7,0.5;title;#FFFF00," .. esc(title) .. "]" .. | ||||||
| 			"textarea[0.5,1.5;7.5,7;;" .. | 			"textarea[0.5,1.5;7.5,7;;" .. | ||||||
| 				minetest.formspec_escape(string ~= "" and string or text) .. ";]" .. | 				minetest.formspec_escape(string ~= "" and string or text) .. ";]" .. | ||||||
| 			"button[2.4,7.6;0.8,0.8;book_prev;<]" .. | 			"button[2.4,7.6;0.8,0.8;book_prev;<]" .. | ||||||
| 			"label[3.2,7.7;Page " .. page .. " of " .. page_max .. "]" .. | 			"label[3.2,7.7;" .. esc(S("Page @1 of @2", page, page_max)) .. "]" .. | ||||||
| 			"button[4.9,7.6;0.8,0.8;book_next;>]" | 			"button[4.9,7.6;0.8,0.8;book_next;>]" | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
| @@ -108,7 +112,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) | |||||||
| 		if #short_title > short_title_size + 3 then | 		if #short_title > short_title_size + 3 then | ||||||
| 			short_title = short_title:sub(1, short_title_size) .. "..." | 			short_title = short_title:sub(1, short_title_size) .. "..." | ||||||
| 		end | 		end | ||||||
| 		data.description = "\""..short_title.."\" by "..data.owner | 		data.description = S("\"@1\" by @2", short_title, data.owner) | ||||||
| 		data.text = fields.text:sub(1, max_text_size) | 		data.text = fields.text:sub(1, max_text_size) | ||||||
| 		data.text = data.text:gsub("\r\n", "\n"):gsub("\r", "\n") | 		data.text = data.text:gsub("\r\n", "\n"):gsub("\r", "\n") | ||||||
| 		data.page = 1 | 		data.page = 1 | ||||||
| @@ -155,14 +159,14 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) | |||||||
| end) | end) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:book", { | minetest.register_craftitem("default:book", { | ||||||
| 	description = "Book", | 	description = S("Book"), | ||||||
| 	inventory_image = "default_book.png", | 	inventory_image = "default_book.png", | ||||||
| 	groups = {book = 1, flammable = 3}, | 	groups = {book = 1, flammable = 3}, | ||||||
| 	on_use = book_on_use, | 	on_use = book_on_use, | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:book_written", { | minetest.register_craftitem("default:book_written", { | ||||||
| 	description = "Book With Text", | 	description = S("Book with Text"), | ||||||
| 	inventory_image = "default_book_written.png", | 	inventory_image = "default_book_written.png", | ||||||
| 	groups = {book = 1, not_in_creative_inventory = 1, flammable = 3}, | 	groups = {book = 1, not_in_creative_inventory = 1, flammable = 3}, | ||||||
| 	stack_max = 1, | 	stack_max = 1, | ||||||
| @@ -199,7 +203,7 @@ minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv | |||||||
| end) | end) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:skeleton_key", { | minetest.register_craftitem("default:skeleton_key", { | ||||||
| 	description = "Skeleton Key", | 	description = S("Skeleton Key"), | ||||||
| 	inventory_image = "default_key_skeleton.png", | 	inventory_image = "default_key_skeleton.png", | ||||||
| 	groups = {key = 1}, | 	groups = {key = 1}, | ||||||
| 	on_use = function(itemstack, user, pointed_thing) | 	on_use = function(itemstack, user, pointed_thing) | ||||||
| @@ -238,8 +242,8 @@ minetest.register_craftitem("default:skeleton_key", { | |||||||
| 			local new_stack = ItemStack("default:key") | 			local new_stack = ItemStack("default:key") | ||||||
| 			local meta = new_stack:get_meta() | 			local meta = new_stack:get_meta() | ||||||
| 			meta:set_string("secret", secret) | 			meta:set_string("secret", secret) | ||||||
| 			meta:set_string("description", "Key to "..user:get_player_name().."'s " | 			meta:set_string("description", S("Key to @1's @2", user:get_player_name(), | ||||||
| 				..minetest.registered_nodes[node.name].description) | 				minetest.registered_nodes[node.name].description)) | ||||||
|  |  | ||||||
| 			if itemstack:get_count() == 0 then | 			if itemstack:get_count() == 0 then | ||||||
| 				itemstack = new_stack | 				itemstack = new_stack | ||||||
| @@ -255,93 +259,94 @@ minetest.register_craftitem("default:skeleton_key", { | |||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:coal_lump", { | minetest.register_craftitem("default:coal_lump", { | ||||||
| 	description = "Coal Lump", | 	description = S("Coal Lump"), | ||||||
| 	inventory_image = "default_coal_lump.png", | 	inventory_image = "default_coal_lump.png", | ||||||
| 	groups = {coal = 1, flammable = 1} | 	groups = {coal = 1, flammable = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:iron_lump", { | minetest.register_craftitem("default:iron_lump", { | ||||||
| 	description = "Iron Lump", | 	description = S("Iron Lump"), | ||||||
| 	inventory_image = "default_iron_lump.png", | 	inventory_image = "default_iron_lump.png" | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:copper_lump", { | minetest.register_craftitem("default:copper_lump", { | ||||||
| 	description = "Copper Lump", | 	description = S("Copper Lump"), | ||||||
| 	inventory_image = "default_copper_lump.png", | 	inventory_image = "default_copper_lump.png" | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:tin_lump", { | minetest.register_craftitem("default:tin_lump", { | ||||||
| 	description = "Tin Lump", | 	description = S("Tin Lump"), | ||||||
| 	inventory_image = "default_tin_lump.png", | 	inventory_image = "default_tin_lump.png" | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:mese_crystal", { | minetest.register_craftitem("default:mese_crystal", { | ||||||
| 	description = "Mese Crystal", | 	description = S("Mese Crystal"), | ||||||
| 	inventory_image = "default_mese_crystal.png", | 	inventory_image = "default_mese_crystal.png", | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:gold_lump", { | minetest.register_craftitem("default:gold_lump", { | ||||||
| 	description = "Gold Lump", | 	description = S("Gold Lump"), | ||||||
| 	inventory_image = "default_gold_lump.png", | 	inventory_image = "default_gold_lump.png" | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:diamond", { | minetest.register_craftitem("default:diamond", { | ||||||
| 	description = "Diamond", | 	description = S("Diamond"), | ||||||
| 	inventory_image = "default_diamond.png", | 	inventory_image = "default_diamond.png", | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:clay_lump", { | minetest.register_craftitem("default:clay_lump", { | ||||||
| 	description = "Clay Lump", | 	description = S("Clay Lump"), | ||||||
| 	inventory_image = "default_clay_lump.png", | 	inventory_image = "default_clay_lump.png", | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:steel_ingot", { | minetest.register_craftitem("default:steel_ingot", { | ||||||
| 	description = "Steel Ingot", | 	description = S("Steel Ingot"), | ||||||
| 	inventory_image = "default_steel_ingot.png", | 	inventory_image = "default_steel_ingot.png" | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:copper_ingot", { | minetest.register_craftitem("default:copper_ingot", { | ||||||
| 	description = "Copper Ingot", | 	description = S("Copper Ingot"), | ||||||
| 	inventory_image = "default_copper_ingot.png", | 	inventory_image = "default_copper_ingot.png" | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:tin_ingot", { | minetest.register_craftitem("default:tin_ingot", { | ||||||
| 	description = "Tin Ingot", | 	description = S("Tin Ingot"), | ||||||
| 	inventory_image = "default_tin_ingot.png", | 	inventory_image = "default_tin_ingot.png" | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:bronze_ingot", { | minetest.register_craftitem("default:bronze_ingot", { | ||||||
| 	description = "Bronze Ingot", | 	description = S("Bronze Ingot"), | ||||||
| 	inventory_image = "default_bronze_ingot.png", | 	inventory_image = "default_bronze_ingot.png" | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:gold_ingot", { | minetest.register_craftitem("default:gold_ingot", { | ||||||
| 	description = "Gold Ingot", | 	description = S("Gold Ingot"), | ||||||
| 	inventory_image = "default_gold_ingot.png" | 	inventory_image = "default_gold_ingot.png" | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:mese_crystal_fragment", { | minetest.register_craftitem("default:mese_crystal_fragment", { | ||||||
| 	description = "Mese Crystal Fragment", | 	description = S("Mese Crystal Fragment"), | ||||||
| 	inventory_image = "default_mese_crystal_fragment.png", | 	inventory_image = "default_mese_crystal_fragment.png", | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:clay_brick", { | minetest.register_craftitem("default:clay_brick", { | ||||||
| 	description = "Clay Brick", | 	description = S("Clay Brick"), | ||||||
| 	inventory_image = "default_clay_brick.png", | 	inventory_image = "default_clay_brick.png", | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:obsidian_shard", { | minetest.register_craftitem("default:obsidian_shard", { | ||||||
| 	description = "Obsidian Shard", | 	description = S("Obsidian Shard"), | ||||||
| 	inventory_image = "default_obsidian_shard.png", | 	inventory_image = "default_obsidian_shard.png", | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:flint", { | minetest.register_craftitem("default:flint", { | ||||||
| 	description = "Flint", | 	description = S("Flint"), | ||||||
| 	inventory_image = "default_flint.png" | 	inventory_image = "default_flint.png" | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem("default:blueberries", { | minetest.register_craftitem("default:blueberries", { | ||||||
| 	description = "Blueberries", | 	description = S("Blueberries"), | ||||||
| 	inventory_image = "default_blueberries.png", | 	inventory_image = "default_blueberries.png", | ||||||
|  | 	groups = {food_blueberries = 1, food_berry = 1}, | ||||||
| 	on_use = minetest.item_eat(2), | 	on_use = minetest.item_eat(2), | ||||||
| }) | }) | ||||||
|   | |||||||
| @@ -1 +0,0 @@ | |||||||
| player_api? |  | ||||||
| @@ -273,6 +273,7 @@ end | |||||||
| -- | -- | ||||||
| -- Fence registration helper | -- Fence registration helper | ||||||
| -- | -- | ||||||
|  | local fence_collision_extra = minetest.settings:get_bool("enable_fence_tall") and 3/8 or 0 | ||||||
|  |  | ||||||
| function default.register_fence(name, def) | function default.register_fence(name, def) | ||||||
| 	minetest.register_craft({ | 	minetest.register_craft({ | ||||||
| @@ -291,17 +292,27 @@ function default.register_fence(name, def) | |||||||
| 		drawtype = "nodebox", | 		drawtype = "nodebox", | ||||||
| 		node_box = { | 		node_box = { | ||||||
| 			type = "connected", | 			type = "connected", | ||||||
| 			fixed = {{-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}}, | 			fixed = {-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}, | ||||||
| 			-- connect_top = | 			-- connect_top = | ||||||
| 			-- connect_bottom = | 			-- connect_bottom = | ||||||
| 			connect_front = {{-1/16,3/16,-1/2,1/16,5/16,-1/8}, | 			connect_front = {{-1/16,  3/16, -1/2,   1/16,  5/16, -1/8 }, | ||||||
| 				{-1/16,-5/16,-1/2,1/16,-3/16,-1/8}}, | 				         {-1/16, -5/16, -1/2,   1/16, -3/16, -1/8 }}, | ||||||
| 			connect_left = {{-1/2,3/16,-1/16,-1/8,5/16,1/16}, | 			connect_left =  {{-1/2,   3/16, -1/16, -1/8,   5/16,  1/16}, | ||||||
| 				{-1/2,-5/16,-1/16,-1/8,-3/16,1/16}}, | 				         {-1/2,  -5/16, -1/16, -1/8,  -3/16,  1/16}}, | ||||||
| 			connect_back = {{-1/16,3/16,1/8,1/16,5/16,1/2}, | 			connect_back =  {{-1/16,  3/16,  1/8,   1/16,  5/16,  1/2 }, | ||||||
| 				{-1/16,-5/16,1/8,1/16,-3/16,1/2}}, | 				         {-1/16, -5/16,  1/8,   1/16, -3/16,  1/2 }}, | ||||||
| 			connect_right = {{1/8,3/16,-1/16,1/2,5/16,1/16}, | 			connect_right = {{ 1/8,   3/16, -1/16,  1/2,   5/16,  1/16}, | ||||||
| 				{1/8,-5/16,-1/16,1/2,-3/16,1/16}}, | 				         { 1/8,  -5/16, -1/16,  1/2,  -3/16,  1/16}} | ||||||
|  | 		}, | ||||||
|  | 		collision_box = { | ||||||
|  | 			type = "connected", | ||||||
|  | 			fixed = {-1/8, -1/2, -1/8, 1/8, 1/2 + fence_collision_extra, 1/8}, | ||||||
|  | 			-- connect_top = | ||||||
|  | 			-- connect_bottom = | ||||||
|  | 			connect_front = {-1/8, -1/2, -1/2,  1/8, 1/2 + fence_collision_extra, -1/8}, | ||||||
|  | 			connect_left =  {-1/2, -1/2, -1/8, -1/8, 1/2 + fence_collision_extra,  1/8}, | ||||||
|  | 			connect_back =  {-1/8, -1/2,  1/8,  1/8, 1/2 + fence_collision_extra,  1/2}, | ||||||
|  | 			connect_right = { 1/8, -1/2, -1/8,  1/2, 1/2 + fence_collision_extra,  1/8} | ||||||
| 		}, | 		}, | ||||||
| 		connects_to = {"group:fence", "group:wood", "group:tree", "group:wall"}, | 		connects_to = {"group:fence", "group:wood", "group:tree", "group:wall"}, | ||||||
| 		inventory_image = fence_texture, | 		inventory_image = fence_texture, | ||||||
| @@ -349,24 +360,28 @@ function default.register_fence_rail(name, def) | |||||||
| 		drawtype = "nodebox", | 		drawtype = "nodebox", | ||||||
| 		node_box = { | 		node_box = { | ||||||
| 			type = "connected", | 			type = "connected", | ||||||
| 			fixed = { | 			fixed = {{-1/16,  3/16, -1/16, 1/16,  5/16, 1/16}, | ||||||
| 				{-1/16,  3/16, -1/16, 1/16,  5/16, 1/16}, | 				 {-1/16, -3/16, -1/16, 1/16, -5/16, 1/16}}, | ||||||
| 				{-1/16, -3/16, -1/16, 1/16, -5/16, 1/16} |  | ||||||
| 			}, |  | ||||||
| 			-- connect_top = | 			-- connect_top = | ||||||
| 			-- connect_bottom = | 			-- connect_bottom = | ||||||
| 			connect_front = { | 			connect_front = {{-1/16,  3/16, -1/2,   1/16,  5/16, -1/16}, | ||||||
| 				{-1/16,  3/16, -1/2, 1/16,  5/16, -1/16}, | 				         {-1/16, -5/16, -1/2,   1/16, -3/16, -1/16}}, | ||||||
| 				{-1/16, -5/16, -1/2, 1/16, -3/16, -1/16}}, | 			connect_left =  {{-1/2,   3/16, -1/16, -1/16,  5/16,  1/16}, | ||||||
| 			connect_left = { | 				         {-1/2,  -5/16, -1/16, -1/16, -3/16,  1/16}}, | ||||||
| 				{-1/2,  3/16, -1/16, -1/16,  5/16, 1/16}, | 			connect_back =  {{-1/16,  3/16,  1/16,  1/16,  5/16,  1/2 }, | ||||||
| 				{-1/2, -5/16, -1/16, -1/16, -3/16, 1/16}}, | 				         {-1/16, -5/16,  1/16,  1/16, -3/16,  1/2 }}, | ||||||
| 			connect_back = { | 			connect_right = {{ 1/16,  3/16, -1/16,  1/2,   5/16,  1/16}, | ||||||
| 				{-1/16,  3/16, 1/16, 1/16,  5/16, 1/2}, | 		                         { 1/16, -5/16, -1/16,  1/2,  -3/16,  1/16}} | ||||||
| 				{-1/16, -5/16, 1/16, 1/16, -3/16, 1/2}}, | 		}, | ||||||
| 			connect_right = { | 		collision_box = { | ||||||
| 				{1/16,  3/16, -1/16, 1/2,  5/16, 1/16}, | 			type = "connected", | ||||||
| 				{1/16, -5/16, -1/16, 1/2, -3/16, 1/16}}, | 			fixed = {-1/8, -1/2, -1/8, 1/8, 1/2 + fence_collision_extra, 1/8}, | ||||||
|  | 			-- connect_top = | ||||||
|  | 			-- connect_bottom = | ||||||
|  | 			connect_front = {-1/8, -1/2, -1/2,  1/8, 1/2 + fence_collision_extra, -1/8}, | ||||||
|  | 			connect_left =  {-1/2, -1/2, -1/8, -1/8, 1/2 + fence_collision_extra,  1/8}, | ||||||
|  | 			connect_back =  {-1/8, -1/2,  1/8,  1/8, 1/2 + fence_collision_extra,  1/2}, | ||||||
|  | 			connect_right = { 1/8, -1/2, -1/8,  1/2, 1/2 + fence_collision_extra,  1/8} | ||||||
| 		}, | 		}, | ||||||
| 		connects_to = {"group:fence", "group:wall"}, | 		connects_to = {"group:fence", "group:wall"}, | ||||||
| 		inventory_image = fence_rail_texture, | 		inventory_image = fence_rail_texture, | ||||||
| @@ -399,7 +414,7 @@ end | |||||||
| -- Prevent decay of placed leaves | -- Prevent decay of placed leaves | ||||||
|  |  | ||||||
| default.after_place_leaves = function(pos, placer, itemstack, pointed_thing) | default.after_place_leaves = function(pos, placer, itemstack, pointed_thing) | ||||||
| 	if placer and placer:is_player() and not placer:get_player_control().sneak then | 	if placer and placer:is_player() then | ||||||
| 		local node = minetest.get_node(pos) | 		local node = minetest.get_node(pos) | ||||||
| 		node.param2 = 1 | 		node.param2 = 1 | ||||||
| 		minetest.set_node(pos, node) | 		minetest.set_node(pos, node) | ||||||
| @@ -412,7 +427,7 @@ local function leafdecay_after_destruct(pos, oldnode, def) | |||||||
| 			vector.add(pos, def.radius), def.leaves)) do | 			vector.add(pos, def.radius), def.leaves)) do | ||||||
| 		local node = minetest.get_node(v) | 		local node = minetest.get_node(v) | ||||||
| 		local timer = minetest.get_node_timer(v) | 		local timer = minetest.get_node_timer(v) | ||||||
| 		if node.param2 == 0 and not timer:is_started() then | 		if node.param2 ~= 1 and not timer:is_started() then | ||||||
| 			timer:start(math.random(20, 120) / 10) | 			timer:start(math.random(20, 120) / 10) | ||||||
| 		end | 		end | ||||||
| 	end | 	end | ||||||
| @@ -477,7 +492,6 @@ minetest.register_abm({ | |||||||
| 	neighbors = { | 	neighbors = { | ||||||
| 		"air", | 		"air", | ||||||
| 		"group:grass", | 		"group:grass", | ||||||
| 		"group:dry_grass", |  | ||||||
| 		"default:snow", | 		"default:snow", | ||||||
| 	}, | 	}, | ||||||
| 	interval = 6, | 	interval = 6, | ||||||
| @@ -504,11 +518,8 @@ minetest.register_abm({ | |||||||
| 		-- Snow check is cheapest, so comes first | 		-- Snow check is cheapest, so comes first | ||||||
| 		if name == "default:snow" then | 		if name == "default:snow" then | ||||||
| 			minetest.set_node(pos, {name = "default:dirt_with_snow"}) | 			minetest.set_node(pos, {name = "default:dirt_with_snow"}) | ||||||
| 		-- Most likely case first |  | ||||||
| 		elseif minetest.get_item_group(name, "grass") ~= 0 then | 		elseif minetest.get_item_group(name, "grass") ~= 0 then | ||||||
| 			minetest.set_node(pos, {name = "default:dirt_with_grass"}) | 			minetest.set_node(pos, {name = "default:dirt_with_grass"}) | ||||||
| 		elseif minetest.get_item_group(name, "dry_grass") ~= 0 then |  | ||||||
| 			minetest.set_node(pos, {name = "default:dirt_with_dry_grass"}) |  | ||||||
| 		end | 		end | ||||||
| 	end | 	end | ||||||
| }) | }) | ||||||
| @@ -520,7 +531,7 @@ minetest.register_abm({ | |||||||
|  |  | ||||||
| minetest.register_abm({ | minetest.register_abm({ | ||||||
| 	label = "Grass covered", | 	label = "Grass covered", | ||||||
| 	nodenames = {"group:spreading_dirt_type"}, | 	nodenames = {"group:spreading_dirt_type", "default:dry_dirt_with_dry_grass"}, | ||||||
| 	interval = 8, | 	interval = 8, | ||||||
| 	chance = 50, | 	chance = 50, | ||||||
| 	catch_up = false, | 	catch_up = false, | ||||||
| @@ -531,7 +542,11 @@ minetest.register_abm({ | |||||||
| 		if name ~= "ignore" and nodedef and not ((nodedef.sunlight_propagates or | 		if name ~= "ignore" and nodedef and not ((nodedef.sunlight_propagates or | ||||||
| 				nodedef.paramtype == "light") and | 				nodedef.paramtype == "light") and | ||||||
| 				nodedef.liquidtype == "none") then | 				nodedef.liquidtype == "none") then | ||||||
| 			minetest.set_node(pos, {name = "default:dirt"}) | 			if node.name == "default:dry_dirt_with_dry_grass" then | ||||||
|  | 				minetest.set_node(pos, {name = "default:dry_dirt"}) | ||||||
|  | 			else | ||||||
|  | 				minetest.set_node(pos, {name = "default:dirt"}) | ||||||
|  | 			end | ||||||
| 		end | 		end | ||||||
| 	end | 	end | ||||||
| }) | }) | ||||||
| @@ -541,22 +556,27 @@ minetest.register_abm({ | |||||||
| -- Moss growth on cobble near water | -- Moss growth on cobble near water | ||||||
| -- | -- | ||||||
|  |  | ||||||
|  | local moss_correspondences = { | ||||||
|  | 	["default:cobble"] = "default:mossycobble", | ||||||
|  | 	["stairs:slab_cobble"] = "stairs:slab_mossycobble", | ||||||
|  | 	["stairs:stair_cobble"] = "stairs:stair_mossycobble", | ||||||
|  | 	["stairs:stair_inner_cobble"] = "stairs:stair_inner_mossycobble", | ||||||
|  | 	["stairs:stair_outer_cobble"] = "stairs:stair_outer_mossycobble", | ||||||
|  | 	["walls:cobble"] = "walls:mossycobble", | ||||||
|  | } | ||||||
| minetest.register_abm({ | minetest.register_abm({ | ||||||
| 	label = "Moss growth", | 	label = "Moss growth", | ||||||
| 	nodenames = {"default:cobble", "stairs:slab_cobble", "stairs:stair_cobble", "walls:cobble"}, | 	nodenames = {"default:cobble", "stairs:slab_cobble", "stairs:stair_cobble", | ||||||
|  | 		"stairs:stair_inner_cobble", "stairs:stair_outer_cobble", | ||||||
|  | 		"walls:cobble"}, | ||||||
| 	neighbors = {"group:water"}, | 	neighbors = {"group:water"}, | ||||||
| 	interval = 16, | 	interval = 16, | ||||||
| 	chance = 200, | 	chance = 200, | ||||||
| 	catch_up = false, | 	catch_up = false, | ||||||
| 	action = function(pos, node) | 	action = function(pos, node) | ||||||
| 		if node.name == "default:cobble" then | 		node.name = moss_correspondences[node.name] | ||||||
| 			minetest.set_node(pos, {name = "default:mossycobble"}) | 		if node.name then | ||||||
| 		elseif node.name == "stairs:slab_cobble" then | 			minetest.set_node(pos, node) | ||||||
| 			minetest.set_node(pos, {name = "stairs:slab_mossycobble", param2 = node.param2}) |  | ||||||
| 		elseif node.name == "stairs:stair_cobble" then |  | ||||||
| 			minetest.set_node(pos, {name = "stairs:stair_mossycobble", param2 = node.param2}) |  | ||||||
| 		elseif node.name == "walls:cobble" then |  | ||||||
| 			minetest.set_node(pos, {name = "walls:mossycobble", param2 = node.param2}) |  | ||||||
| 		end | 		end | ||||||
| 	end | 	end | ||||||
| }) | }) | ||||||
| @@ -568,7 +588,7 @@ minetest.register_abm({ | |||||||
| -- | -- | ||||||
|  |  | ||||||
| function default.can_interact_with_node(player, pos) | function default.can_interact_with_node(player, pos) | ||||||
| 	if player then | 	if player and player:is_player() then | ||||||
| 		if minetest.check_player_privs(player, "protection_bypass") then | 		if minetest.check_player_privs(player, "protection_bypass") then | ||||||
| 			return true | 			return true | ||||||
| 		end | 		end | ||||||
|   | |||||||
| @@ -1,3 +1,7 @@ | |||||||
|  | -- default/furnace.lua | ||||||
|  |  | ||||||
|  | -- support for MT game translation. | ||||||
|  | local S = default.get_translator | ||||||
|  |  | ||||||
| -- | -- | ||||||
| -- Formspecs | -- Formspecs | ||||||
| @@ -8,7 +12,7 @@ function default.get_furnace_active_formspec(fuel_percent, item_percent) | |||||||
| 		"list[context;src;2.75,0.5;1,1;]".. | 		"list[context;src;2.75,0.5;1,1;]".. | ||||||
| 		"list[context;fuel;2.75,2.5;1,1;]".. | 		"list[context;fuel;2.75,2.5;1,1;]".. | ||||||
| 		"image[2.75,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. | 		"image[2.75,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. | ||||||
| 		(100-fuel_percent)..":default_furnace_fire_fg.png]".. | 		(fuel_percent)..":default_furnace_fire_fg.png]".. | ||||||
| 		"image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:".. | 		"image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:".. | ||||||
| 		(item_percent)..":gui_furnace_arrow_fg.png^[transformR270]".. | 		(item_percent)..":gui_furnace_arrow_fg.png^[transformR270]".. | ||||||
| 		"list[context;dst;4.75,0.96;2,2;]".. | 		"list[context;dst;4.75,0.96;2,2;]".. | ||||||
| @@ -60,7 +64,7 @@ local function allow_metadata_inventory_put(pos, listname, index, stack, player) | |||||||
| 	if listname == "fuel" then | 	if listname == "fuel" then | ||||||
| 		if minetest.get_craft_result({method="fuel", width=1, items={stack}}).time ~= 0 then | 		if minetest.get_craft_result({method="fuel", width=1, items={stack}}).time ~= 0 then | ||||||
| 			if inv:is_empty("src") then | 			if inv:is_empty("src") then | ||||||
| 				meta:set_string("infotext", "Furnace is empty") | 				meta:set_string("infotext", S("Furnace is empty")) | ||||||
| 			end | 			end | ||||||
| 			return stack:get_count() | 			return stack:get_count() | ||||||
| 		else | 		else | ||||||
| @@ -98,7 +102,7 @@ end | |||||||
|  |  | ||||||
| local function furnace_node_timer(pos, elapsed) | local function furnace_node_timer(pos, elapsed) | ||||||
| 	-- | 	-- | ||||||
| 	-- Inizialize metadata | 	-- Initialize metadata | ||||||
| 	-- | 	-- | ||||||
| 	local meta = minetest.get_meta(pos) | 	local meta = minetest.get_meta(pos) | ||||||
| 	local fuel_time = meta:get_float("fuel_time") or 0 | 	local fuel_time = meta:get_float("fuel_time") or 0 | ||||||
| @@ -107,6 +111,7 @@ local function furnace_node_timer(pos, elapsed) | |||||||
|  |  | ||||||
| 	local inv = meta:get_inventory() | 	local inv = meta:get_inventory() | ||||||
| 	local srclist, fuellist | 	local srclist, fuellist | ||||||
|  | 	local dst_full = false | ||||||
|  |  | ||||||
| 	local cookable, cooked | 	local cookable, cooked | ||||||
| 	local fuel | 	local fuel | ||||||
| @@ -146,6 +151,8 @@ local function furnace_node_timer(pos, elapsed) | |||||||
| 						inv:set_stack("src", 1, aftercooked.items[1]) | 						inv:set_stack("src", 1, aftercooked.items[1]) | ||||||
| 						src_time = src_time - cooked.time | 						src_time = src_time - cooked.time | ||||||
| 						update = true | 						update = true | ||||||
|  | 					else | ||||||
|  | 						dst_full = true | ||||||
| 					end | 					end | ||||||
| 				else | 				else | ||||||
| 					-- Item could not be cooked: probably missing fuel | 					-- Item could not be cooked: probably missing fuel | ||||||
| @@ -166,6 +173,16 @@ local function furnace_node_timer(pos, elapsed) | |||||||
| 				else | 				else | ||||||
| 					-- Take fuel from fuel list | 					-- Take fuel from fuel list | ||||||
| 					inv:set_stack("fuel", 1, afterfuel.items[1]) | 					inv:set_stack("fuel", 1, afterfuel.items[1]) | ||||||
|  | 					-- Put replacements in dst list or drop them on the furnace. | ||||||
|  | 					local replacements = fuel.replacements | ||||||
|  | 					if replacements[1] then | ||||||
|  | 						local leftover = inv:add_item("dst", replacements[1]) | ||||||
|  | 						if not leftover:is_empty() then | ||||||
|  | 							local above = vector.new(pos.x, pos.y + 1, pos.z) | ||||||
|  | 							local drop_pos = minetest.find_node_near(above, 1, {"air"}) or above | ||||||
|  | 							minetest.item_drop(replacements[1], nil, drop_pos) | ||||||
|  | 						end | ||||||
|  | 					end | ||||||
| 					update = true | 					update = true | ||||||
| 					fuel_totaltime = fuel.time + (fuel_totaltime - fuel_time) | 					fuel_totaltime = fuel.time + (fuel_totaltime - fuel_time) | ||||||
| 				end | 				end | ||||||
| @@ -183,7 +200,7 @@ local function furnace_node_timer(pos, elapsed) | |||||||
| 	if fuel and fuel_totaltime > fuel.time then | 	if fuel and fuel_totaltime > fuel.time then | ||||||
| 		fuel_totaltime = fuel.time | 		fuel_totaltime = fuel.time | ||||||
| 	end | 	end | ||||||
| 	if srclist[1]:is_empty() then | 	if srclist and srclist[1]:is_empty() then | ||||||
| 		src_time = 0 | 		src_time = 0 | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
| @@ -195,34 +212,34 @@ local function furnace_node_timer(pos, elapsed) | |||||||
| 	local item_percent = 0 | 	local item_percent = 0 | ||||||
| 	if cookable then | 	if cookable then | ||||||
| 		item_percent = math.floor(src_time / cooked.time * 100) | 		item_percent = math.floor(src_time / cooked.time * 100) | ||||||
| 		if item_percent > 100 then | 		if dst_full then | ||||||
| 			item_state = "100% (output full)" | 			item_state = S("100% (output full)") | ||||||
| 		else | 		else | ||||||
| 			item_state = item_percent .. "%" | 			item_state = S("@1%", item_percent) | ||||||
| 		end | 		end | ||||||
| 	else | 	else | ||||||
| 		if srclist[1]:is_empty() then | 		if srclist and not srclist[1]:is_empty() then | ||||||
| 			item_state = "Empty" | 			item_state = S("Not cookable") | ||||||
| 		else | 		else | ||||||
| 			item_state = "Not cookable" | 			item_state = S("Empty") | ||||||
| 		end | 		end | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
| 	local fuel_state = "Empty" | 	local fuel_state = S("Empty") | ||||||
| 	local active = "inactive" | 	local active = false | ||||||
| 	local result = false | 	local result = false | ||||||
|  |  | ||||||
| 	if fuel_totaltime ~= 0 then | 	if fuel_totaltime ~= 0 then | ||||||
| 		active = "active" | 		active = true | ||||||
| 		local fuel_percent = math.floor(fuel_time / fuel_totaltime * 100) | 		local fuel_percent = 100 - math.floor(fuel_time / fuel_totaltime * 100) | ||||||
| 		fuel_state = fuel_percent .. "%" | 		fuel_state = S("@1%", fuel_percent) | ||||||
| 		formspec = default.get_furnace_active_formspec(fuel_percent, item_percent) | 		formspec = default.get_furnace_active_formspec(fuel_percent, item_percent) | ||||||
| 		swap_node(pos, "default:furnace_active") | 		swap_node(pos, "default:furnace_active") | ||||||
| 		-- make sure timer restarts automatically | 		-- make sure timer restarts automatically | ||||||
| 		result = true | 		result = true | ||||||
| 	else | 	else | ||||||
| 		if not fuellist[1]:is_empty() then | 		if fuellist and not fuellist[1]:is_empty() then | ||||||
| 			fuel_state = "0%" | 			fuel_state = S("@1%", 0) | ||||||
| 		end | 		end | ||||||
| 		formspec = default.get_furnace_inactive_formspec() | 		formspec = default.get_furnace_inactive_formspec() | ||||||
| 		swap_node(pos, "default:furnace") | 		swap_node(pos, "default:furnace") | ||||||
| @@ -230,8 +247,14 @@ local function furnace_node_timer(pos, elapsed) | |||||||
| 		minetest.get_node_timer(pos):stop() | 		minetest.get_node_timer(pos):stop() | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
| 	local infotext = "Furnace " .. active .. "\n(Item: " .. item_state .. |  | ||||||
| 		"; Fuel: " .. fuel_state .. ")" | 	local infotext | ||||||
|  | 	if active then | ||||||
|  | 		infotext = S("Furnace active") | ||||||
|  | 	else | ||||||
|  | 		infotext = S("Furnace inactive") | ||||||
|  | 	end | ||||||
|  | 	infotext = infotext .. "\n" .. S("(Item: @1; Fuel: @2)", item_state, fuel_state) | ||||||
|  |  | ||||||
| 	-- | 	-- | ||||||
| 	-- Set meta values | 	-- Set meta values | ||||||
| @@ -250,7 +273,7 @@ end | |||||||
| -- | -- | ||||||
|  |  | ||||||
| minetest.register_node("default:furnace", { | minetest.register_node("default:furnace", { | ||||||
| 	description = "Furnace", | 	description = S("Furnace"), | ||||||
| 	tiles = { | 	tiles = { | ||||||
| 		"default_furnace_top.png", "default_furnace_bottom.png", | 		"default_furnace_top.png", "default_furnace_bottom.png", | ||||||
| 		"default_furnace_side.png", "default_furnace_side.png", | 		"default_furnace_side.png", "default_furnace_side.png", | ||||||
| @@ -268,11 +291,11 @@ minetest.register_node("default:furnace", { | |||||||
|  |  | ||||||
| 	on_construct = function(pos) | 	on_construct = function(pos) | ||||||
| 		local meta = minetest.get_meta(pos) | 		local meta = minetest.get_meta(pos) | ||||||
| 		meta:set_string("formspec", default.get_furnace_inactive_formspec()) |  | ||||||
| 		local inv = meta:get_inventory() | 		local inv = meta:get_inventory() | ||||||
| 		inv:set_size('src', 1) | 		inv:set_size('src', 1) | ||||||
| 		inv:set_size('fuel', 1) | 		inv:set_size('fuel', 1) | ||||||
| 		inv:set_size('dst', 4) | 		inv:set_size('dst', 4) | ||||||
|  | 		furnace_node_timer(pos, 0) | ||||||
| 	end, | 	end, | ||||||
|  |  | ||||||
| 	on_metadata_inventory_move = function(pos) | 	on_metadata_inventory_move = function(pos) | ||||||
| @@ -298,7 +321,7 @@ minetest.register_node("default:furnace", { | |||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_node("default:furnace_active", { | minetest.register_node("default:furnace_active", { | ||||||
| 	description = "Furnace", | 	description = S("Furnace"), | ||||||
| 	tiles = { | 	tiles = { | ||||||
| 		"default_furnace_top.png", "default_furnace_bottom.png", | 		"default_furnace_top.png", "default_furnace_bottom.png", | ||||||
| 		"default_furnace_side.png", "default_furnace_side.png", | 		"default_furnace_side.png", "default_furnace_side.png", | ||||||
|   | |||||||
| @@ -3,16 +3,21 @@ | |||||||
|  |  | ||||||
| -- The API documentation in here was moved into game_api.txt | -- The API documentation in here was moved into game_api.txt | ||||||
|  |  | ||||||
|  | -- Load support for MT game translation. | ||||||
|  | local S = minetest.get_translator("default") | ||||||
|  |  | ||||||
| -- Definitions made by this mod that other mods can use too | -- Definitions made by this mod that other mods can use too | ||||||
| default = {} | default = {} | ||||||
|  |  | ||||||
| default.LIGHT_MAX = 14 | default.LIGHT_MAX = 14 | ||||||
|  | default.get_translator = S | ||||||
|  |  | ||||||
| -- GUI related stuff | -- GUI related stuff | ||||||
| minetest.register_on_joinplayer(function(player) | minetest.register_on_joinplayer(function(player) | ||||||
| 	player:set_formspec_prepend([[ | 	player:set_formspec_prepend([[ | ||||||
| 			bgcolor[#080808BB;true] | 			bgcolor[#080808BB;true] | ||||||
| 			background[5,5;1,1;gui_formbg.png;true] | 			background[5,5;1,1;gui_formbg.png;true] | ||||||
|  | 			background9[5,5;1,1;gui_formbg.png;true;10] | ||||||
| 			listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF] ]]) | 			listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF] ]]) | ||||||
| end) | end) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -45,5 +45,5 @@ default.register_chest = default.chest.register_chest | |||||||
| function default.intersects_protection(minp, maxp, player_name, interval) | function default.intersects_protection(minp, maxp, player_name, interval) | ||||||
| 	minetest.log("warning", "default.intersects_protection() is " .. | 	minetest.log("warning", "default.intersects_protection() is " .. | ||||||
| 		"deprecated, use minetest.is_area_protected() instead.") | 		"deprecated, use minetest.is_area_protected() instead.") | ||||||
| 	minetest.is_area_protected(minp, maxp, player_name, interval) | 	return minetest.is_area_protected(minp, maxp, player_name, interval) | ||||||
| end | end | ||||||
|   | |||||||
							
								
								
									
										211
									
								
								mods/default/locale/default.de.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,211 @@ | |||||||
|  | # textdomain: default | ||||||
|  | Locked Chest=Abgeschlossene Truhe | ||||||
|  | Locked Chest (owned by @1)=Abgeschlossene Truhe (Eigentum von @1) | ||||||
|  | You do not own this chest.=Ihnen gehört diese Truhe nicht. | ||||||
|  | a locked chest=eine abgeschlossene Truhe | ||||||
|  | Chest=Truhe | ||||||
|  | Stick=Stock | ||||||
|  | Paper=Papier | ||||||
|  | "@1" by @2=„@1“ von @2 | ||||||
|  | Book=Buch | ||||||
|  | Book with Text=Buch mit Text | ||||||
|  | Skeleton Key=Skelettschlüssel | ||||||
|  | Key to @1's @2=Schlüssel für @2 von @1 | ||||||
|  | Coal Lump=Kohleklumpen | ||||||
|  | Iron Lump=Eisenklumpen | ||||||
|  | Copper Lump=Kupferklumpen | ||||||
|  | Tin Lump=Zinnklumpen | ||||||
|  | Mese Crystal=Mesekristall | ||||||
|  | Gold Lump=Goldklumpen | ||||||
|  | Diamond=Diamant | ||||||
|  | Clay Lump=Tonklumpen | ||||||
|  | Steel Ingot=Stahlbarren | ||||||
|  | Copper Ingot=Kupferbarren | ||||||
|  | Tin Ingot=Zinnbarren | ||||||
|  | Bronze Ingot=Bronzebarren | ||||||
|  | Gold Ingot=Goldbarren | ||||||
|  | Mese Crystal Fragment=Mesekristallfragment | ||||||
|  | Clay Brick=Tonziegel | ||||||
|  | Obsidian Shard=Obsidianscherbe | ||||||
|  | Flint=Feuerstein | ||||||
|  | Blueberries=Blaubeeren | ||||||
|  | Furnace is empty=Ofen ist leer | ||||||
|  | 100% (output full)=100% (Ausgabe voll) | ||||||
|  | @1%=@1% | ||||||
|  | Empty=Leer | ||||||
|  | Not cookable=Nicht kochbar | ||||||
|  | Furnace active=Ofen aktiv | ||||||
|  | Furnace inactive=Ofen inaktiv | ||||||
|  | (Item: @1; Fuel: @2)=(Gegenstand: @1; Brennstoff: @2) | ||||||
|  | Furnace=Ofen | ||||||
|  | Stone=Stein | ||||||
|  | Cobblestone=Kopfsteinpflaster | ||||||
|  | Stone Brick=Steinziegel | ||||||
|  | Stone Block=Steinblock | ||||||
|  | Mossy Cobblestone=Mosiges Kopfsteinpflaster | ||||||
|  | Desert Stone=Wüstenstein | ||||||
|  | Desert Cobblestone=Wüstenkopfsteinpflaster | ||||||
|  | Desert Stone Brick=Wüstensteinziegel | ||||||
|  | Desert Stone Block=Wüstensteinblock | ||||||
|  | Sandstone=Sandstein | ||||||
|  | Sandstone Brick=Sandsteinziegel | ||||||
|  | Sandstone Block=Sandsteinblock | ||||||
|  | Desert Sandstone=Wüstensandstein | ||||||
|  | Desert Sandstone Brick=Wüstensandsteinziegel | ||||||
|  | Desert Sandstone Block=Wüstensandsteinblock | ||||||
|  | Silver Sandstone=Silbersandstein | ||||||
|  | Silver Sandstone Brick=Silbersandsteinziegel | ||||||
|  | Silver Sandstone Block=Silbersandsteinblock | ||||||
|  | Obsidian=Obsidian | ||||||
|  | Obsidian Brick=Obsidianziegel | ||||||
|  | Obsidian Block=Obsidianblock | ||||||
|  | Dirt=Erde | ||||||
|  | Dirt with Grass=Erde mit Gras | ||||||
|  | Dirt with Grass and Footsteps=Erde mit Gras und Fußstapfen | ||||||
|  | Dirt with Dry Grass=Erde mit trockenem Gras | ||||||
|  | Dirt with Snow=Erde mit Schnee | ||||||
|  | Dirt with Rainforest Litter=Erde mit Regenwaldboden | ||||||
|  | Dirt with Coniferous Litter=Erde mit Nadelwaldboden | ||||||
|  | Dry Dirt=Trockene Erde | ||||||
|  | Dry Dirt with Dry Grass=Trockene Erde mit trockenem Gras | ||||||
|  | Permafrost=Permafrost | ||||||
|  | Permafrost with Stones=Permafrost mit Steinen | ||||||
|  | Permafrost with Moss=Permafrost mit Moos | ||||||
|  | Sand=Sand | ||||||
|  | Desert Sand=Wüstensand | ||||||
|  | Silver Sand=Silbersand | ||||||
|  | Gravel=Kies | ||||||
|  | Clay=Ton | ||||||
|  | Snow=Schnee | ||||||
|  | Snow Block=Schneeblock | ||||||
|  | Ice=Eis | ||||||
|  | Cave Ice=Höhleneis | ||||||
|  | Apple Tree=Apfelbaum | ||||||
|  | Apple Wood Planks=Apfelbaumplanken | ||||||
|  | Apple Tree Sapling=Apfelbaumsetzling | ||||||
|  | Apple Tree Leaves=Apfelbaumblätter | ||||||
|  | Apple=Apfel | ||||||
|  | Apple Marker=Apfelmarkierung | ||||||
|  | Jungle Tree=Dschungelbaum | ||||||
|  | Jungle Wood Planks=Dschungelholzplanken | ||||||
|  | Jungle Tree Leaves=Dschungelbaumblätter | ||||||
|  | Jungle Tree Sapling=Dschungelbaumsetzling | ||||||
|  | Emergent Jungle Tree Sapling=Hervorstehender Dschungelbaumsetzling | ||||||
|  | Pine Tree=Kiefernbaum | ||||||
|  | Pine Wood Planks=Kiefernholzplanken | ||||||
|  | Pine Needles=Kiefernnadeln | ||||||
|  | Pine Tree Sapling=Kiefernbaumsetzling | ||||||
|  | Acacia Tree=Akazienbaum | ||||||
|  | Acacia Wood Planks=Akazienholzplanken | ||||||
|  | Acacia Tree Leaves=Akazienbaumblätter | ||||||
|  | Acacia Tree Sapling=Akazienbaumsetzling | ||||||
|  | Aspen Tree=Espenbaum | ||||||
|  | Aspen Wood Planks=Espenholzplanken | ||||||
|  | Aspen Tree Leaves=Espenbaumblätter | ||||||
|  | Aspen Tree Sapling=Esepenbaumsetzling | ||||||
|  | Coal Ore=Kohleerz | ||||||
|  | Coal Block=Kohleblock | ||||||
|  | Iron Ore=Eisenerz | ||||||
|  | Steel Block=Stahlblock | ||||||
|  | Copper Ore=Kupfererz | ||||||
|  | Copper Block=Kupferblock | ||||||
|  | Tin Ore=Zinnerz | ||||||
|  | Tin Block=Zinnblock | ||||||
|  | Bronze Block=Bronzeblock | ||||||
|  | Mese Ore=Meseerz | ||||||
|  | Mese Block=Meseblock | ||||||
|  | Gold Ore=Golderz | ||||||
|  | Gold Block=Goldblock | ||||||
|  | Diamond Ore=Diamanterz | ||||||
|  | Diamond Block=Diamantblock | ||||||
|  | Cactus=Kaktus | ||||||
|  | Large Cactus Seedling=Großer Kaktussämling | ||||||
|  | Papyrus=Papyrus | ||||||
|  | Dry Shrub=Trockener Busch | ||||||
|  | Jungle Grass=Dschungelgras | ||||||
|  | Grass=Gras | ||||||
|  | Dry Grass=Trockenes Gras | ||||||
|  | Fern=Farn | ||||||
|  | Marram Grass=Dünengras | ||||||
|  | Bush Stem=Buschstamm | ||||||
|  | Bush Leaves=Buschblätter | ||||||
|  | Bush Sapling=Buschsetzling | ||||||
|  | Blueberry Bush Leaves with Berries=Blaubeerbuschblätter mit Beeren | ||||||
|  | Blueberry Bush Leaves=Blaubeerbuschblätter | ||||||
|  | Blueberry Bush Sapling=Blaubeerbuschsetzling | ||||||
|  | Acacia Bush Stem=Akazienbuschstamm | ||||||
|  | Acacia Bush Leaves=Akazienbuschblätter | ||||||
|  | Acacia Bush Sapling=Akazienbuschsetzling | ||||||
|  | Pine Bush Stem=Kiefernbuschstamm | ||||||
|  | Pine Bush Needles=Kiefernbuschnadeln | ||||||
|  | Pine Bush Sapling=Kiefernbuschsetzling | ||||||
|  | Kelp=Seetang | ||||||
|  | Green Coral=Grüne Koralle | ||||||
|  | Pink Coral=Rosa Koralle | ||||||
|  | Cyan Coral=Türkise Koralle | ||||||
|  | Brown Coral=Braune Koralle | ||||||
|  | Orange Coral=Orange Koralle | ||||||
|  | Coral Skeleton=Korallenskelett | ||||||
|  | Water Source=Wasserquelle | ||||||
|  | Flowing Water=Fließendes Wasser | ||||||
|  | River Water Source=Flusswasserquelle | ||||||
|  | Flowing River Water=Fließendes Flusswasser | ||||||
|  | Lava Source=Lavaquelle | ||||||
|  | Flowing Lava=Fließende Lava | ||||||
|  | Empty Bookshelf=Leeres Bücherregal | ||||||
|  | Bookshelf (@1 written, @2 empty books)=Bücherregal (@1 beschriebene, @2 leere Bücher) | ||||||
|  | Bookshelf=Bücherregal | ||||||
|  | Text too long=Text zu lang | ||||||
|  | Wooden Sign=Holzschild | ||||||
|  | Steel Sign=Stahlschild | ||||||
|  | Wooden Ladder=Holzleiter | ||||||
|  | Steel Ladder=Stahlleiter | ||||||
|  | Apple Wood Fence=Apfelholzzaun | ||||||
|  | Acacia Wood Fence=Akazienholzzaun | ||||||
|  | Jungle Wood Fence=Dschungelholzzaun | ||||||
|  | Pine Wood Fence=Kiefernholzzaun | ||||||
|  | Aspen Wood Fence=Espenholzzaun | ||||||
|  | Apple Wood Fence Rail=Apfelholzzaungeländer | ||||||
|  | Acacia Wood Fence Rail=Akazienholzzaungeländer | ||||||
|  | Jungle Wood Fence Rail=Dschungelholzzaungeländer | ||||||
|  | Pine Wood Fence Rail=Kiefernholzzaungeländer | ||||||
|  | Aspen Wood Fence Rail=Espenholzzaungeländer | ||||||
|  | Glass=Glas | ||||||
|  | Obsidian Glass=Obsidianglas | ||||||
|  | Brick Block=Ziegelblock | ||||||
|  | Mese Lamp=Meselampe | ||||||
|  | Mese Post Light=Mesestandlampe | ||||||
|  | Cloud=Wolke | ||||||
|  | Wooden Pickaxe=Holzspitzhacke | ||||||
|  | Stone Pickaxe=Steinspitzhacke | ||||||
|  | Bronze Pickaxe=Bronzespitzhacke | ||||||
|  | Steel Pickaxe=Stahlspitzhacke | ||||||
|  | Mese Pickaxe=Mesespitzhacke | ||||||
|  | Diamond Pickaxe=Diamantspitzhacke | ||||||
|  | Wooden Shovel=Holzschaufel | ||||||
|  | Stone Shovel=Steinschaufel | ||||||
|  | Bronze Shovel=Bronzeschaufel | ||||||
|  | Steel Shovel=Stahlschaufel | ||||||
|  | Mese Shovel=Meseschaufel | ||||||
|  | Diamond Shovel=Diamantschaufel | ||||||
|  | Wooden Axe=Holzaxt | ||||||
|  | Stone Axe=Steinaxt | ||||||
|  | Bronze Axe=Bronzeaxt | ||||||
|  | Steel Axe=Stahlaxt | ||||||
|  | Mese Axe=Meseaxt | ||||||
|  | Diamond Axe=Diamantaxt | ||||||
|  | Wooden Sword=Holzschwert | ||||||
|  | Stone Sword=Steinschwert | ||||||
|  | Bronze Sword=Bronzeschwert | ||||||
|  | Steel Sword=Stahlschwert | ||||||
|  | Mese Sword=Meseschwert | ||||||
|  | Diamond Sword=Diamantschwert | ||||||
|  | Key=Schlüssel | ||||||
|  | Torch=Fackel | ||||||
|  | @1 will intersect protection on growth.=@1 wird bei Wachstum mit geschützter Zone überlappen. | ||||||
|  | Title:=Titel: | ||||||
|  | Contents:=Inhalt: | ||||||
|  | Save=Speichern | ||||||
|  | by @1=von @1 | ||||||
|  | Page @1 of @2=Seite @1 von @2 | ||||||
|  | "@1"=„@1“ | ||||||
							
								
								
									
										211
									
								
								mods/default/locale/default.es.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,211 @@ | |||||||
|  | # textdomain: default | ||||||
|  | Locked Chest=Cofre cerrado | ||||||
|  | Locked Chest (owned by @1)=Cofre cerrado (propiedad de @1) | ||||||
|  | You do not own this chest.=Este cofre no te pertenece. | ||||||
|  | a locked chest=un cofre cerrado | ||||||
|  | Chest=Cofre | ||||||
|  | Stick=Palo | ||||||
|  | Paper=Papel | ||||||
|  | "@1" by @2="@1" por @2 | ||||||
|  | Book=Libro | ||||||
|  | Book with Text=Libro escrito | ||||||
|  | Skeleton Key=Llave esqueleto | ||||||
|  | Key to @1's @2=Llave para @2 de @1 | ||||||
|  | Coal Lump=Fragmento de carbón | ||||||
|  | Iron Lump=Pepita de hierro | ||||||
|  | Copper Lump=Pepita de cobre | ||||||
|  | Tin Lump=Pepita de estaño | ||||||
|  | Mese Crystal=Cristal de mese | ||||||
|  | Gold Lump=Pepita de oro | ||||||
|  | Diamond=Diamante | ||||||
|  | Clay Lump=Fragmento de arcilla | ||||||
|  | Steel Ingot=Lingote de acero | ||||||
|  | Copper Ingot=Lingote de cobre | ||||||
|  | Tin Ingot=Lingote de estaño | ||||||
|  | Bronze Ingot=Lingote de bronce | ||||||
|  | Gold Ingot=Lingote de oro | ||||||
|  | Mese Crystal Fragment=Fragmento de cristal de mese | ||||||
|  | Clay Brick=Ladrillo de arcilla | ||||||
|  | Obsidian Shard=Esquirla de obsidiana | ||||||
|  | Flint=Pedernal | ||||||
|  | Blueberries=Arándanos | ||||||
|  | Furnace is empty=El horno está vacío | ||||||
|  | 100% (output full)=100% (salida completa) | ||||||
|  | @1%=@1% | ||||||
|  | Empty=Vacío | ||||||
|  | Not cookable=No se puede cocinar | ||||||
|  | Furnace active=Horno activado | ||||||
|  | Furnace inactive=Horno desactivado | ||||||
|  | (Item: @1; Fuel: @2)=(Objeto: @1; Combustible: @2) | ||||||
|  | Furnace=Horno | ||||||
|  | Stone=Piedra | ||||||
|  | Cobblestone=Adoquín | ||||||
|  | Stone Brick=Ladrillo de piedra | ||||||
|  | Stone Block=Bloque de piedra | ||||||
|  | Mossy Cobblestone=Adoquín musgoso | ||||||
|  | Desert Stone=Piedra desértica | ||||||
|  | Desert Cobblestone=Adoquín desértico | ||||||
|  | Desert Stone Brick=Ladrillo de piedra desértica | ||||||
|  | Desert Stone Block=Bloque de piedra desértica | ||||||
|  | Sandstone=Piedra arenisca | ||||||
|  | Sandstone Brick=Ladrillo de arenisca | ||||||
|  | Sandstone Block=Bloque de arenisca | ||||||
|  | Desert Sandstone=Piedra arenisca desértica | ||||||
|  | Desert Sandstone Brick=Ladrillo de arenisca desértica | ||||||
|  | Desert Sandstone Block=Bloque de arenisca deśertica | ||||||
|  | Silver Sandstone=Piedra arenisca plateada | ||||||
|  | Silver Sandstone Brick=Ladrillo de arenisca plateada | ||||||
|  | Silver Sandstone Block=Bloque de arenisca plateada | ||||||
|  | Obsidian=Obsidiana | ||||||
|  | Obsidian Brick=Ladrillo de obsidiana | ||||||
|  | Obsidian Block=Bloque de obsidiana | ||||||
|  | Dirt=Tierra | ||||||
|  | Dirt with Grass=Tierra con pasto | ||||||
|  | Dirt with Grass and Footsteps=Tierra con pasto y pisadas | ||||||
|  | Dirt with Dry Grass=Tierra con pasto seco | ||||||
|  | Dirt with Snow=Tierra con nieve | ||||||
|  | Dirt with Rainforest Litter=Tierra con hojarasca de selva tropical | ||||||
|  | Dirt with Coniferous Litter=Tierra con hojarasca de coníferas | ||||||
|  | Dry Dirt=Tierra Seca | ||||||
|  | Dry Dirt with Dry Grass=Tierra seca con pasto seco | ||||||
|  | Permafrost=Permafrost | ||||||
|  | Permafrost with Stones=Permafrost pedregoso | ||||||
|  | Permafrost with Moss=Permafrost musgoso | ||||||
|  | Sand=Arena | ||||||
|  | Desert Sand=Arena desértica | ||||||
|  | Silver Sand=Arena plateada | ||||||
|  | Gravel=Gravilla | ||||||
|  | Clay=Arcilla | ||||||
|  | Snow=Nieve | ||||||
|  | Snow Block=Bloque de nieve | ||||||
|  | Ice=Hielo | ||||||
|  | Cave Ice=Hielo de cueva | ||||||
|  | Apple Tree=Madera de manzano | ||||||
|  | Apple Wood Planks=Tablas de manzano | ||||||
|  | Apple Tree Sapling=Retoño de manzano | ||||||
|  | Apple Tree Leaves=Hojas de manzano | ||||||
|  | Apple=Manzana | ||||||
|  | Apple Marker=Marcador de manzano | ||||||
|  | Jungle Tree=Madera de árbol tropical | ||||||
|  | Jungle Wood Planks=Tablas de madera tropical | ||||||
|  | Jungle Tree Leaves=Hojas de árbol tropical | ||||||
|  | Jungle Tree Sapling=Retoño de árbol tropical | ||||||
|  | Emergent Jungle Tree Sapling=Retoño de árbol tropical | ||||||
|  | Pine Tree=Madera de pino | ||||||
|  | Pine Wood Planks=Tablas de pino | ||||||
|  | Pine Needles=Agujas de pino | ||||||
|  | Pine Tree Sapling=Retoño de pino | ||||||
|  | Acacia Tree=Madera de acacia | ||||||
|  | Acacia Wood Planks=Tablas de acacia | ||||||
|  | Acacia Tree Leaves=Hojas de acacia | ||||||
|  | Acacia Tree Sapling=Retoño de acacia | ||||||
|  | Aspen Tree=Madera de álamo | ||||||
|  | Aspen Wood Planks=Tablas de álamo | ||||||
|  | Aspen Tree Leaves=Hojas de álamo | ||||||
|  | Aspen Tree Sapling=Retoño de álamo | ||||||
|  | Coal Ore=Mineral de carbón | ||||||
|  | Coal Block=Bloque de carbón | ||||||
|  | Iron Ore=Mineral de hierro | ||||||
|  | Steel Block=Bloque de acero | ||||||
|  | Copper Ore=Mineral de cobre | ||||||
|  | Copper Block=Bloque de cobre | ||||||
|  | Tin Ore=Mineral de estaño | ||||||
|  | Tin Block=Bloque de estaño | ||||||
|  | Bronze Block=Bloque de bronce | ||||||
|  | Mese Ore=Mineral de mese | ||||||
|  | Mese Block=Bloque de mese | ||||||
|  | Gold Ore=Mineral de oro | ||||||
|  | Gold Block=Bloque de oro | ||||||
|  | Diamond Ore=Mineral de diamante | ||||||
|  | Diamond Block=Bloque de diamante | ||||||
|  | Cactus=Cáctus | ||||||
|  | Large Cactus Seedling=Vástago grande de cactus | ||||||
|  | Papyrus=Papiro | ||||||
|  | Dry Shrub=Arbusto seco | ||||||
|  | Jungle Grass=Pasto de jungla | ||||||
|  | Grass=Pasto | ||||||
|  | Dry Grass=Pasto seco | ||||||
|  | Fern=Helecho | ||||||
|  | Marram Grass=Carrizo | ||||||
|  | Bush Stem=Tallo de arbusto | ||||||
|  | Bush Leaves=Hojas de arbusto | ||||||
|  | Bush Sapling=Retoño de arbusto | ||||||
|  | Blueberry Bush Leaves with Berries=Hojas de arbusto de arándano con bayas | ||||||
|  | Blueberry Bush Leaves=Hojas de arbusto de arándano | ||||||
|  | Blueberry Bush Sapling=Retoño de arbusto de arándano | ||||||
|  | Acacia Bush Stem=Tallo de arbusto de acacia | ||||||
|  | Acacia Bush Leaves=Hojas de arbusto de acacia | ||||||
|  | Acacia Bush Sapling=Retoño de arbusto de acacia | ||||||
|  | Pine Bush Stem=Tallo de arbusto de pino | ||||||
|  | Pine Bush Needles=Agujas de arbusto de pino | ||||||
|  | Pine Bush Sapling=Retoño de arbusto de pino | ||||||
|  | Kelp=Alga marina | ||||||
|  | Green Coral=Coral verde | ||||||
|  | Pink Coral=Coral rosa | ||||||
|  | Cyan Coral=Coral cián | ||||||
|  | Brown Coral=Coral café | ||||||
|  | Orange Coral=Coral naranja | ||||||
|  | Coral Skeleton=Esqueleto de coral | ||||||
|  | Water Source=Fuente de agua | ||||||
|  | Flowing Water=Fluído de agua | ||||||
|  | River Water Source=Fuente de agua de río | ||||||
|  | Flowing River Water=Fluído de agua de río | ||||||
|  | Lava Source=Fuente de lava | ||||||
|  | Flowing Lava=Fluído de lava | ||||||
|  | Empty Bookshelf=Librería vacía | ||||||
|  | Bookshelf (@1 written, @2 empty books)=Librería(@1 escritos, @2 libros en blanco) | ||||||
|  | Bookshelf=Librería | ||||||
|  | Text too long=Texto demasiado largo | ||||||
|  | Wooden Sign=Cartel de madera | ||||||
|  | Steel Sign=Cartel de acero | ||||||
|  | Wooden Ladder=Escalera de madera | ||||||
|  | Steel Ladder=Escalera de acero | ||||||
|  | Apple Wood Fence=Cerca de manzano | ||||||
|  | Acacia Wood Fence=Cerca de acacia | ||||||
|  | Jungle Wood Fence=Cerca de madera tropical | ||||||
|  | Pine Wood Fence=Cerca de pino | ||||||
|  | Aspen Wood Fence=Cerca de álamo | ||||||
|  | Apple Wood Fence Rail=Listones de manzano para cerca | ||||||
|  | Acacia Wood Fence Rail=Listones de acacia para cerca | ||||||
|  | Jungle Wood Fence Rail=Listones de madera tropical para cerca | ||||||
|  | Pine Wood Fence Rail=Listones de pino para cerca | ||||||
|  | Aspen Wood Fence Rail=Listones de álamo para cerca | ||||||
|  | Glass=Vidrio | ||||||
|  | Obsidian Glass=Vidrio de obsidiana | ||||||
|  | Brick Block=Bloque de ladrillo | ||||||
|  | Mese Lamp=Lámpara de mese | ||||||
|  | Mese Post Light=Poste de luz de mese | ||||||
|  | Cloud=Nube | ||||||
|  | Wooden Pickaxe=Pico de madera | ||||||
|  | Stone Pickaxe=Pico de piedra | ||||||
|  | Bronze Pickaxe=Pico de bronce | ||||||
|  | Steel Pickaxe=Pico de acero | ||||||
|  | Mese Pickaxe=Pico de mese | ||||||
|  | Diamond Pickaxe=Pico de diamante | ||||||
|  | Wooden Shovel=Pala de madera | ||||||
|  | Stone Shovel=Pala de piedra | ||||||
|  | Bronze Shovel=Pala de bronce | ||||||
|  | Steel Shovel=Pala de acero | ||||||
|  | Mese Shovel=Pala de mese | ||||||
|  | Diamond Shovel=Pala de diamante | ||||||
|  | Wooden Axe=Hacha de madera | ||||||
|  | Stone Axe=Hacha de piedra | ||||||
|  | Bronze Axe=Hacha de bronce | ||||||
|  | Steel Axe=Hacha de acero | ||||||
|  | Mese Axe=Hacha de mese | ||||||
|  | Diamond Axe=Hacha de diamante | ||||||
|  | Wooden Sword=Espada de madera | ||||||
|  | Stone Sword=Espada de piedra | ||||||
|  | Bronze Sword=Espada de bronce | ||||||
|  | Steel Sword=Espada de acero | ||||||
|  | Mese Sword=Espada de mese | ||||||
|  | Diamond Sword=Espada de diamante | ||||||
|  | Key=Llave | ||||||
|  | Torch=Antorcha | ||||||
|  | @1 will intersect protection on growth.=@1 intersectará con protección cuando crezca. | ||||||
|  | Title:=Título: | ||||||
|  | Contents:=Contenidos: | ||||||
|  | Save=Guardar | ||||||
|  | by @1=por @1 | ||||||
|  | Page @1 of @2=Página @1 de @2 | ||||||
|  | "@1"="@1" | ||||||
							
								
								
									
										211
									
								
								mods/default/locale/default.fr.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,211 @@ | |||||||
|  | # textdomain: default | ||||||
|  | Locked Chest=Coffre verrouillé | ||||||
|  | Locked Chest (owned by @1)=Coffre verrouillé (possédé par @1) | ||||||
|  | You do not own this chest.=Ce coffre ne vous appartient pas. | ||||||
|  | a locked chest=un coffre verrouillé | ||||||
|  | Chest=Coffre | ||||||
|  | Stick=Baton | ||||||
|  | Paper=Papier | ||||||
|  | "@1" by @2=« @1 » de @2 | ||||||
|  | Book=Livre | ||||||
|  | Book with Text=Livre avec du texte | ||||||
|  | Skeleton Key=Squelette | ||||||
|  | Key to @1's @2=Clé pour @2 de @1 | ||||||
|  | Coal Lump=Morceau de charbon | ||||||
|  | Iron Lump=Morceau de fer | ||||||
|  | Copper Lump=Morceau de cuivre | ||||||
|  | Tin Lump=Morceau d'étain | ||||||
|  | Mese Crystal=Cristal de Mese | ||||||
|  | Gold Lump=Morceau d'or | ||||||
|  | Diamond=Diamant | ||||||
|  | Clay Lump=Morceau d'argile | ||||||
|  | Steel Ingot=Lingot d'acier | ||||||
|  | Copper Ingot=Lingot de cuivre | ||||||
|  | Tin Ingot=Lingot d'étain | ||||||
|  | Bronze Ingot=Lingot de bronze | ||||||
|  | Gold Ingot=Lingot d'or | ||||||
|  | Mese Crystal Fragment=Fragment de cristal de Mese | ||||||
|  | Clay Brick=Brique d'argile | ||||||
|  | Obsidian Shard=Tesson d'obsidienne | ||||||
|  | Flint=Silex | ||||||
|  | Blueberries=Myrtille | ||||||
|  | Furnace is empty=Le four est vide | ||||||
|  | 100% (output full)=100% (Sortie pleine) | ||||||
|  | @1%=@1% | ||||||
|  | Empty=Vide | ||||||
|  | Not cookable=Ne se cuit pas | ||||||
|  | Furnace active=Four actif | ||||||
|  | Furnace inactive=Four inactif | ||||||
|  | (Item: @1; Fuel: @2)=(Article: @1; Carburant: @2) | ||||||
|  | Furnace=Four | ||||||
|  | Stone=Pierre | ||||||
|  | Cobblestone=Pavé | ||||||
|  | Stone Brick=Brique de pierre | ||||||
|  | Stone Block=Bloc de pierre | ||||||
|  | Mossy Cobblestone=Pavé moussu | ||||||
|  | Desert Stone=Pierre du désert | ||||||
|  | Desert Cobblestone=Pavé de pierre du désert | ||||||
|  | Desert Stone Brick=Brique de pierre du désert | ||||||
|  | Desert Stone Block=Bloc de pierre du désert | ||||||
|  | Sandstone=Grès | ||||||
|  | Sandstone Brick=Brique de grès | ||||||
|  | Sandstone Block=Bloc de grès | ||||||
|  | Desert Sandstone=Grès du désert | ||||||
|  | Desert Sandstone Brick=Brique de grès du désert | ||||||
|  | Desert Sandstone Block=Bloc de grès du désert | ||||||
|  | Silver Sandstone=Grès argenté | ||||||
|  | Silver Sandstone Brick=Brique de grès argenté | ||||||
|  | Silver Sandstone Block=Bloc de grès argenté | ||||||
|  | Obsidian=Obsidienne | ||||||
|  | Obsidian Brick=Brique d'obsidienne | ||||||
|  | Obsidian Block=Block d'obsidienne | ||||||
|  | Dirt=Terre | ||||||
|  | Dirt with Grass=Terre avec de l'herbe | ||||||
|  | Dirt with Grass and Footsteps=Terre avec de l'herbe et des traces de pas | ||||||
|  | Dirt with Dry Grass=Terre avec de l'herbe sèche | ||||||
|  | Dirt with Snow=Terre avec de la neige | ||||||
|  | Dirt with Rainforest Litter=Terre avec sol de forêt humide | ||||||
|  | Dirt with Coniferous Litter=Terre avec sol de forêt de conifère | ||||||
|  | Dry Dirt=Terre sèche | ||||||
|  | Dry Dirt with Dry Grass=Terre sèche avec de l'herbe sèche | ||||||
|  | Permafrost=Pergélisol | ||||||
|  | Permafrost with Stones=Pergélisol avec de la pierre | ||||||
|  | Permafrost with Moss=Pergélisol avec de la mousse | ||||||
|  | Sand=Sable | ||||||
|  | Desert Sand=Sable du désert | ||||||
|  | Silver Sand=Sable argenté | ||||||
|  | Gravel=Gravier | ||||||
|  | Clay=Argile | ||||||
|  | Snow=Neige | ||||||
|  | Snow Block=Bloc de neige | ||||||
|  | Ice=Glace | ||||||
|  | Cave Ice=Glace de grotte | ||||||
|  | Apple Tree=Pommier | ||||||
|  | Apple Wood Planks=Planche de pommier | ||||||
|  | Apple Tree Sapling=Pousse de pommier | ||||||
|  | Apple Tree Leaves=Feuilles de pommier | ||||||
|  | Apple=Pomme | ||||||
|  | Apple Marker=Marqueur de pomme | ||||||
|  | Jungle Tree=Arbre de la jungle | ||||||
|  | Jungle Wood Planks=Planche d'arbre de la jungle | ||||||
|  | Jungle Tree Leaves=Feuilles d'arbre de la jungle | ||||||
|  | Jungle Tree Sapling=Pousse d'arbre de la jungle | ||||||
|  | Emergent Jungle Tree Sapling=Pousse d'arbre de la jungle émergent | ||||||
|  | Pine Tree=Pin | ||||||
|  | Pine Wood Planks=Planche de pin | ||||||
|  | Pine Needles=Aiguilles de pin | ||||||
|  | Pine Tree Sapling=Pousse de pin | ||||||
|  | Acacia Tree=Acacia | ||||||
|  | Acacia Wood Planks=Planche d'acacia | ||||||
|  | Acacia Tree Leaves=Feuilles d'acacia | ||||||
|  | Acacia Tree Sapling=Pousse d'acacia | ||||||
|  | Aspen Tree=Tremble | ||||||
|  | Aspen Wood Planks=Planche de tremble | ||||||
|  | Aspen Tree Leaves=Feuilles de tremble | ||||||
|  | Aspen Tree Sapling=Pousse de tremble | ||||||
|  | Coal Ore=Minerai de charbon | ||||||
|  | Coal Block=Bloc de charbon | ||||||
|  | Iron Ore=Bloc de fer | ||||||
|  | Steel Block=Bloc d'acier | ||||||
|  | Copper Ore=Minerai de cuivre | ||||||
|  | Copper Block=Bloc de cuivre | ||||||
|  | Tin Ore=Minerai d'étain | ||||||
|  | Tin Block=Bloc d'étain | ||||||
|  | Bronze Block=Bloc de bronze | ||||||
|  | Mese Ore=Minerai de Mese | ||||||
|  | Mese Block=Bloc de Mese | ||||||
|  | Gold Ore=Minerai d'or | ||||||
|  | Gold Block=Bloc d'or | ||||||
|  | Diamond Ore=Minerai de diamant | ||||||
|  | Diamond Block=Bloc de diamant | ||||||
|  | Cactus=Cactus | ||||||
|  | Large Cactus Seedling=Grand plan de cactus | ||||||
|  | Papyrus=Papyrus | ||||||
|  | Dry Shrub=Arbuste sec | ||||||
|  | Jungle Grass=Herbe de la jungle | ||||||
|  | Grass=Herbe | ||||||
|  | Dry Grass=Herbe sèche | ||||||
|  | Fern=Fougère | ||||||
|  | Marram Grass=Ammophile | ||||||
|  | Bush Stem=Tige de buisson | ||||||
|  | Bush Leaves=Feuilles de buisson | ||||||
|  | Bush Sapling=Pousse de buisson | ||||||
|  | Blueberry Bush Leaves with Berries=Buisson de myrtille avec des myrtilles | ||||||
|  | Blueberry Bush Leaves=Feuilles de buisson à myrtilles | ||||||
|  | Blueberry Bush Sapling=Pousse de buisson à myrtilles | ||||||
|  | Acacia Bush Stem=Tige de buisson d'acacia | ||||||
|  | Acacia Bush Leaves=Feuilles de buisson d'acacia | ||||||
|  | Acacia Bush Sapling=Pousses de buisson d'acacia | ||||||
|  | Pine Bush Stem=Tige de buisson de pin | ||||||
|  | Pine Bush Needles=Aiguilles de buisson de pin | ||||||
|  | Pine Bush Sapling=Pousse de buisson de pin | ||||||
|  | Kelp=Varech | ||||||
|  | Green Coral=Corail vert | ||||||
|  | Pink Coral=Corail rose | ||||||
|  | Cyan Coral=Corail cyan | ||||||
|  | Brown Coral=Corail marron | ||||||
|  | Orange Coral=Corail orange | ||||||
|  | Coral Skeleton=Squelette de corail  | ||||||
|  | Water Source=Source d'eau | ||||||
|  | Flowing Water=Ecoulement d'eau | ||||||
|  | River Water Source=Source d'eau de rivière | ||||||
|  | Flowing River Water=Ecoulement d'eau de rivière | ||||||
|  | Lava Source=Source de lave | ||||||
|  | Flowing Lava=Ecoulement de lave | ||||||
|  | Empty Bookshelf=Bibliothèque vide | ||||||
|  | Bookshelf (@1 written, @2 empty books)=Bibliothèque (@1 écrits, @2 livres vides) | ||||||
|  | Bookshelf=Bibliothèque | ||||||
|  | Text too long=Texte trop longue | ||||||
|  | Wooden Sign=Panneau en bois | ||||||
|  | Steel Sign=Panneau en acier | ||||||
|  | Wooden Ladder=Echelle en bois | ||||||
|  | Steel Ladder=Echelle en acier | ||||||
|  | Apple Wood Fence=Barrière de bois de pommier | ||||||
|  | Acacia Wood Fence=Barrière de bois d'acacia | ||||||
|  | Jungle Wood Fence=Barrière de bois de la jungle | ||||||
|  | Pine Wood Fence=Barrière de bois de pin | ||||||
|  | Aspen Wood Fence=Barrière de bois de tremble | ||||||
|  | Apple Wood Fence Rail=Clôture de bois de pommier | ||||||
|  | Acacia Wood Fence Rail=Clôture de bois d'acacia | ||||||
|  | Jungle Wood Fence Rail=Clôture de bois de la jungle | ||||||
|  | Pine Wood Fence Rail=Clôture de bois de pin | ||||||
|  | Aspen Wood Fence Rail=Clôture de bois de tremble | ||||||
|  | Glass=Verre | ||||||
|  | Obsidian Glass=Verre d'obsidienne | ||||||
|  | Brick Block=Bloc de brique | ||||||
|  | Mese Lamp=Lampe de Mese | ||||||
|  | Mese Post Light=Réverbère de Mese | ||||||
|  | Cloud=Nuage | ||||||
|  | Wooden Pickaxe=Pioche en bois | ||||||
|  | Stone Pickaxe=Pioche en pierre | ||||||
|  | Bronze Pickaxe=Pioche en bronze | ||||||
|  | Steel Pickaxe=Pioche en acier | ||||||
|  | Mese Pickaxe=Pioche de Mese | ||||||
|  | Diamond Pickaxe=Pioche en diamant | ||||||
|  | Wooden Shovel=Pelle en bois | ||||||
|  | Stone Shovel=Pelle en pierre | ||||||
|  | Bronze Shovel=Pelle en bronze | ||||||
|  | Steel Shovel=Pelle en acier | ||||||
|  | Mese Shovel=Pelle en Mese | ||||||
|  | Diamond Shovel=Pelle en diamant | ||||||
|  | Wooden Axe=Hache en bois | ||||||
|  | Stone Axe=Hache en pierre | ||||||
|  | Bronze Axe=Hache en bronze | ||||||
|  | Steel Axe=Hache en acier | ||||||
|  | Mese Axe=Hache en Mese | ||||||
|  | Diamond Axe=Hache en diamant | ||||||
|  | Wooden Sword=Epée en bois | ||||||
|  | Stone Sword=Epée en pierre | ||||||
|  | Bronze Sword=Epée en bronze | ||||||
|  | Steel Sword=Epée en acier | ||||||
|  | Mese Sword=Epée en Mese | ||||||
|  | Diamond Sword=Epée en diamant | ||||||
|  | Key=Clé | ||||||
|  | Torch=Torche | ||||||
|  | @1 will intersect protection on growth.=@1 chevauchera la zone protégée avec la croissance. | ||||||
|  | Title:=Titre : | ||||||
|  | Contents:=Contenu : | ||||||
|  | Save=Sauvegarder | ||||||
|  | by @1=de @1 | ||||||
|  | Page @1 of @2=Page @1 sur @2 | ||||||
|  | "@1"=« @1 » | ||||||
							
								
								
									
										205
									
								
								mods/default/locale/default.it.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,205 @@ | |||||||
|  | # textdomain: default | ||||||
|  | Locked Chest=Baule chiuso a chiave | ||||||
|  | Locked Chest (owned by @1)=Baule chiuso a chiave (di proprietà di @1) | ||||||
|  | You do not own this chest.=Questo baule non ti appartiene. | ||||||
|  | a locked chest=un baule chiuso a chiave | ||||||
|  | Chest=Baule | ||||||
|  | Stick=Bastone | ||||||
|  | Paper=Carta | ||||||
|  | "@1" by @2="@1" di @2 | ||||||
|  | Book=Libro | ||||||
|  | Book with Text=Libro con testo | ||||||
|  | Skeleton Key=Chiave dello Scheletro | ||||||
|  | Key to @1's @2=Chiave per @2 di @1 | ||||||
|  | Coal Lump=Grumo di carbone | ||||||
|  | Iron Lump=Grumo di ferro | ||||||
|  | Copper Lump=Grumo di rame | ||||||
|  | Tin Lump=Grumo di stagno | ||||||
|  | Mese Crystal=Cristallo di mese | ||||||
|  | Gold Lump=Grumo d'oro | ||||||
|  | Diamond=Diamante | ||||||
|  | Clay Lump=Grumo d'argilla | ||||||
|  | Steel Ingot=Lingotto d'acciaio | ||||||
|  | Copper Ingot=Lingotto di rame | ||||||
|  | Tin Ingot=Lingotto di stagno | ||||||
|  | Bronze Ingot=Lingotto di bronzo | ||||||
|  | Gold Ingot=Lingotto d'oro | ||||||
|  | Mese Crystal Fragment=Frammento di cristallo di mese | ||||||
|  | Clay Brick=Mattone d'argilla | ||||||
|  | Obsidian Shard=Scheggia d'ossidiana | ||||||
|  | Flint=Selce | ||||||
|  | Blueberries=Mirtilli | ||||||
|  | Furnace is empty=La fornace è vuota | ||||||
|  | 100% (output full)=100% (uscita piena) | ||||||
|  | @1%=@1% | ||||||
|  | Empty=Vuota | ||||||
|  | Not cookable=Non cucinabile | ||||||
|  | Furnace active=Fornace attiva | ||||||
|  | Furnace inactive=Fornace inattiva | ||||||
|  | (Item: @1; Fuel: @2)=(Oggetto: @1; Combustibile: @2) | ||||||
|  | Furnace=Fornace | ||||||
|  | Stone=Pietra | ||||||
|  | Cobblestone=Ciottoli | ||||||
|  | Stone Brick=Mattone di pietra | ||||||
|  | Stone Block=Blocco di pietra | ||||||
|  | Mossy Cobblestone=Ciottoli muschiosi | ||||||
|  | Desert Stone=Pietra del deserto | ||||||
|  | Desert Cobblestone=Ciottoli del deserto | ||||||
|  | Desert Stone Brick=Mattone di pietra del deserto | ||||||
|  | Desert Stone Block=Blocco di pietra del deserto | ||||||
|  | Sandstone=Arenaria | ||||||
|  | Sandstone Brick=Mattone d'arenaria | ||||||
|  | Sandstone Block=Blocco d'arenaria | ||||||
|  | Desert Sandstone=Arenaria del deserto | ||||||
|  | Desert Sandstone Brick=Mattone d'arenaria del deserto | ||||||
|  | Desert Sandstone Block=Blocco d'arenaria del deserto | ||||||
|  | Silver Sandstone=Arenaria argentata | ||||||
|  | Silver Sandstone Brick=Mattone d'arenaria argentata | ||||||
|  | Silver Sandstone Block=Blocco d'arenaria argentata | ||||||
|  | Obsidian=Ossidiana | ||||||
|  | Obsidian Brick=Mattone d'ossidiana | ||||||
|  | Obsidian Block=Blocco d'ossidiana | ||||||
|  | Dirt=Terra | ||||||
|  | Dirt with Grass=Terra con erba | ||||||
|  | Dirt with Grass and Footsteps=Terra con erba e impronte | ||||||
|  | Dirt with Dry Grass=Terra con erba secca | ||||||
|  | Dirt with Snow=Terra con neve | ||||||
|  | Dirt with Rainforest Litter=Terra con detriti della foresta pluviale | ||||||
|  | Dirt with Coniferous Litter=Terra con detriti di conifera | ||||||
|  | Dry Dirt=Terra asciutta | ||||||
|  | Dry Dirt with Dry Grass=Terra asciutta con erba secca | ||||||
|  | Permafrost=Permafrost | ||||||
|  | Permafrost with Stones=Permafrost con pietra | ||||||
|  | Permafrost with Moss=Permafrost con muschio | ||||||
|  | Sand=Sabbia | ||||||
|  | Desert Sand=Sabbia del deserto | ||||||
|  | Silver Sand=Sabbia argentata | ||||||
|  | Gravel=Ghiaia | ||||||
|  | Clay=Argilla | ||||||
|  | Snow=Neve | ||||||
|  | Snow Block=Blocco di neve | ||||||
|  | Ice=Ghiaccio | ||||||
|  | Cave Ice=Ghiaccio di caverna | ||||||
|  | Apple Tree=Melo | ||||||
|  | Apple Wood Planks=Assi di melo | ||||||
|  | Apple Tree Sapling=Alberello di melo | ||||||
|  | Apple Tree Leaves=Foglie di melo | ||||||
|  | Apple=Mela | ||||||
|  | Apple Marker=Marcatore mela | ||||||
|  | Jungle Tree=Albero della giungla | ||||||
|  | Jungle Wood Planks=Assi di legno della giungla | ||||||
|  | Jungle Tree Leaves=Foglie di albero della giungla | ||||||
|  | Jungle Tree Sapling=Alberello della giungla | ||||||
|  | Emergent Jungle Tree Sapling=Alberello della giungla emergente | ||||||
|  | Pine Tree=Pino | ||||||
|  | Pine Wood Planks=Assi di legno di pino | ||||||
|  | Pine Needles=Aghi di pino | ||||||
|  | Pine Tree Sapling=Alberello di pino | ||||||
|  | Acacia Tree=Acacia | ||||||
|  | Acacia Wood Planks=Assi di legno d'acacia | ||||||
|  | Acacia Tree Leaves=Foglie d'acacia | ||||||
|  | Acacia Tree Sapling=Alberello d'acacia | ||||||
|  | Aspen Tree=Pioppo | ||||||
|  | Aspen Wood Planks=Assi di legno di pioppo | ||||||
|  | Aspen Tree Leaves=Foglie di pioppo | ||||||
|  | Aspen Tree Sapling=Alberello di pioppo | ||||||
|  | Coal Ore=Minerale di carbone | ||||||
|  | Coal Block=Blocco di carbone | ||||||
|  | Iron Ore=Minerale di ferro | ||||||
|  | Steel Block=Blocco d'acciaio | ||||||
|  | Copper Ore=Minerale di rame | ||||||
|  | Copper Block=Blocco di rame | ||||||
|  | Tin Ore=Minerale di stagno | ||||||
|  | Tin Block=Blocco di stagno | ||||||
|  | Bronze Block=Blocco di bronzo | ||||||
|  | Mese Ore=Minerale di mese | ||||||
|  | Mese Block=Blocco di mese | ||||||
|  | Gold Ore=Minerale d'oro | ||||||
|  | Gold Block=Blocco d'oro | ||||||
|  | Diamond Ore=Minerale di diamante | ||||||
|  | Diamond Block=Blocco di diamante | ||||||
|  | Cactus=Cactus | ||||||
|  | Large Cactus Seedling=Piantina di cactus grande | ||||||
|  | Papyrus=Papiro | ||||||
|  | Dry Shrub=Arbusto secco | ||||||
|  | Jungle Grass=Erba della giungla | ||||||
|  | Grass=Erba | ||||||
|  | Dry Grass=Erba secca | ||||||
|  | Fern=Felce | ||||||
|  | Marram Grass=Ammofila arenaria | ||||||
|  | Bush Stem=Fusto di cespuglio | ||||||
|  | Bush Leaves=Foglie di cespuglio | ||||||
|  | Bush Sapling=Alberello di cespuglio | ||||||
|  | Blueberry Bush Leaves with Berries=Foglie di cespuglio di mirtilli con bacche | ||||||
|  | Blueberry Bush Leaves=Foglie di cespuglio di mirtilli | ||||||
|  | Blueberry Bush Sapling=Alberello di cespuglio di mirtilli | ||||||
|  | Acacia Bush Stem=Fusto di cespuglio d'acacia | ||||||
|  | Acacia Bush Leaves=Foglie di cespuglio d'acacia | ||||||
|  | Acacia Bush Sapling=Alberello di cespuglio d'acacia | ||||||
|  | Pine Bush Stem=Fusto di cespuglio di pino | ||||||
|  | Pine Bush Needles=Aghi di cespuglio di pino | ||||||
|  | Pine Bush Sapling=Alberello di cespuglio di pino | ||||||
|  | Kelp=Alga | ||||||
|  | Green Coral=Corallo verde | ||||||
|  | Pink Coral=Corallo rosa | ||||||
|  | Cyan Coral=Corallo ciano | ||||||
|  | Brown Coral=Corallo marrone | ||||||
|  | Orange Coral=Corallo arancione | ||||||
|  | Coral Skeleton=Scheletro di corallo | ||||||
|  | Water Source=Fonte d'acqua | ||||||
|  | Flowing Water=Acqua corrente | ||||||
|  | River Water Source=Fonte d'acqua di fiume | ||||||
|  | Flowing River Water=Acqua corrente di fiume | ||||||
|  | Lava Source=Fonte di lava | ||||||
|  | Flowing Lava=Lava corrente | ||||||
|  | Empty Bookshelf=Libreria vuota | ||||||
|  | Bookshelf (@1 written, @2 empty books)=Libreria (@1 scritti, @2 vuoti) | ||||||
|  | Bookshelf=Libreria | ||||||
|  | Text too long=Testo troppo lungo | ||||||
|  | Wooden Sign=Cartello di legno | ||||||
|  | Steel Sign=Cartello d'acciaio | ||||||
|  | Wooden Ladder=Scala a pioli di legno | ||||||
|  | Steel Ladder=Scala a pioli d'acciaio | ||||||
|  | Apple Wood Fence=Recinzione di legno di melo | ||||||
|  | Acacia Wood Fence=Recinzione di legno d'acacia | ||||||
|  | Jungle Wood Fence=Recinzione di legno della giungla | ||||||
|  | Pine Wood Fence=Recinzione di legno di pino | ||||||
|  | Aspen Wood Fence=Recinzione di legno di pioppo | ||||||
|  | Apple Wood Fence Rail=Ringhiera della recinzione di legno di melo | ||||||
|  | Acacia Wood Fence Rail=Ringhiera della recinzione di legno d'acacia | ||||||
|  | Jungle Wood Fence Rail=Ringhiera della recinzione di legno della giungla | ||||||
|  | Pine Wood Fence Rail=Ringhiera della recinzione di legno di pino | ||||||
|  | Aspen Wood Fence Rail=Ringhiera della recinzione di legno di pioppo | ||||||
|  | Glass=Vetro | ||||||
|  | Obsidian Glass=Vetro d'ossidiana | ||||||
|  | Brick Block=Blocco di mattone | ||||||
|  | Mese Lamp=Lampada di mese | ||||||
|  | Mese Post Light=Lampioncino di mese | ||||||
|  | Cloud=Nuvola | ||||||
|  | Wooden Pickaxe=Piccone di legno | ||||||
|  | Stone Pickaxe=Piccone di pietra | ||||||
|  | Bronze Pickaxe=Piccone di bronzo | ||||||
|  | Steel Pickaxe=Piccone d'acciaio | ||||||
|  | Mese Pickaxe=Piccone di mese | ||||||
|  | Diamond Pickaxe=Piccone di diamante | ||||||
|  | Wooden Shovel=Pala di legno | ||||||
|  | Stone Shovel=Pala di pietra | ||||||
|  | Bronze Shovel=Pala di bronzo | ||||||
|  | Steel Shovel=Pala d'acciaio | ||||||
|  | Mese Shovel=Pala di mese | ||||||
|  | Diamond Shovel=Pala di diamante | ||||||
|  | Wooden Axe=Ascia di legno | ||||||
|  | Stone Axe=Ascia di pietra | ||||||
|  | Bronze Axe=Ascia di bronzo | ||||||
|  | Steel Axe=Ascia d'acciaio | ||||||
|  | Mese Axe=Ascia di mese | ||||||
|  | Diamond Axe=Ascia di diamante | ||||||
|  | Wooden Sword=Spada di legno | ||||||
|  | Stone Sword=Spada di pietra | ||||||
|  | Bronze Sword=Spada di bronzo | ||||||
|  | Steel Sword=Spada d'acciaio | ||||||
|  | Mese Sword=Spada di mese | ||||||
|  | Diamond Sword=Spada di diamante | ||||||
|  | Key=Chiave | ||||||
|  | Torch=Torcia | ||||||
|  | @1 will intersect protection on growth.=@1 crescendo attraverserà la protezione. | ||||||
							
								
								
									
										211
									
								
								mods/default/locale/template.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,211 @@ | |||||||
|  | # textdomain: default | ||||||
|  | Locked Chest= | ||||||
|  | Locked Chest (owned by @1)= | ||||||
|  | You do not own this chest.= | ||||||
|  | a locked chest= | ||||||
|  | Chest= | ||||||
|  | Stick= | ||||||
|  | Paper= | ||||||
|  | "@1" by @2= | ||||||
|  | Book= | ||||||
|  | Book with Text= | ||||||
|  | Skeleton Key= | ||||||
|  | Key to @1's @2= | ||||||
|  | Coal Lump= | ||||||
|  | Iron Lump= | ||||||
|  | Copper Lump= | ||||||
|  | Tin Lump= | ||||||
|  | Mese Crystal= | ||||||
|  | Gold Lump= | ||||||
|  | Diamond= | ||||||
|  | Clay Lump= | ||||||
|  | Steel Ingot= | ||||||
|  | Copper Ingot= | ||||||
|  | Tin Ingot= | ||||||
|  | Bronze Ingot= | ||||||
|  | Gold Ingot= | ||||||
|  | Mese Crystal Fragment= | ||||||
|  | Clay Brick= | ||||||
|  | Obsidian Shard= | ||||||
|  | Flint= | ||||||
|  | Blueberries= | ||||||
|  | Furnace is empty= | ||||||
|  | 100% (output full)= | ||||||
|  | @1%= | ||||||
|  | Empty= | ||||||
|  | Not cookable= | ||||||
|  | Furnace active= | ||||||
|  | Furnace inactive= | ||||||
|  | (Item: @1; Fuel: @2)= | ||||||
|  | Furnace= | ||||||
|  | Stone= | ||||||
|  | Cobblestone= | ||||||
|  | Stone Brick= | ||||||
|  | Stone Block= | ||||||
|  | Mossy Cobblestone= | ||||||
|  | Desert Stone= | ||||||
|  | Desert Cobblestone= | ||||||
|  | Desert Stone Brick= | ||||||
|  | Desert Stone Block= | ||||||
|  | Sandstone= | ||||||
|  | Sandstone Brick= | ||||||
|  | Sandstone Block= | ||||||
|  | Desert Sandstone= | ||||||
|  | Desert Sandstone Brick= | ||||||
|  | Desert Sandstone Block= | ||||||
|  | Silver Sandstone= | ||||||
|  | Silver Sandstone Brick= | ||||||
|  | Silver Sandstone Block= | ||||||
|  | Obsidian= | ||||||
|  | Obsidian Brick= | ||||||
|  | Obsidian Block= | ||||||
|  | Dirt= | ||||||
|  | Dirt with Grass= | ||||||
|  | Dirt with Grass and Footsteps= | ||||||
|  | Dirt with Dry Grass= | ||||||
|  | Dirt with Snow= | ||||||
|  | Dirt with Rainforest Litter= | ||||||
|  | Dirt with Coniferous Litter= | ||||||
|  | Dry Dirt= | ||||||
|  | Dry Dirt with Dry Grass= | ||||||
|  | Permafrost= | ||||||
|  | Permafrost with Stones= | ||||||
|  | Permafrost with Moss= | ||||||
|  | Sand= | ||||||
|  | Desert Sand= | ||||||
|  | Silver Sand= | ||||||
|  | Gravel= | ||||||
|  | Clay= | ||||||
|  | Snow= | ||||||
|  | Snow Block= | ||||||
|  | Ice= | ||||||
|  | Cave Ice= | ||||||
|  | Apple Tree= | ||||||
|  | Apple Wood Planks= | ||||||
|  | Apple Tree Sapling= | ||||||
|  | Apple Tree Leaves= | ||||||
|  | Apple= | ||||||
|  | Apple Marker= | ||||||
|  | Jungle Tree= | ||||||
|  | Jungle Wood Planks= | ||||||
|  | Jungle Tree Leaves= | ||||||
|  | Jungle Tree Sapling= | ||||||
|  | Emergent Jungle Tree Sapling= | ||||||
|  | Pine Tree= | ||||||
|  | Pine Wood Planks= | ||||||
|  | Pine Needles= | ||||||
|  | Pine Tree Sapling= | ||||||
|  | Acacia Tree= | ||||||
|  | Acacia Wood Planks= | ||||||
|  | Acacia Tree Leaves= | ||||||
|  | Acacia Tree Sapling= | ||||||
|  | Aspen Tree= | ||||||
|  | Aspen Wood Planks= | ||||||
|  | Aspen Tree Leaves= | ||||||
|  | Aspen Tree Sapling= | ||||||
|  | Coal Ore= | ||||||
|  | Coal Block= | ||||||
|  | Iron Ore= | ||||||
|  | Steel Block= | ||||||
|  | Copper Ore= | ||||||
|  | Copper Block= | ||||||
|  | Tin Ore= | ||||||
|  | Tin Block= | ||||||
|  | Bronze Block= | ||||||
|  | Mese Ore= | ||||||
|  | Mese Block= | ||||||
|  | Gold Ore= | ||||||
|  | Gold Block= | ||||||
|  | Diamond Ore= | ||||||
|  | Diamond Block= | ||||||
|  | Cactus= | ||||||
|  | Large Cactus Seedling= | ||||||
|  | Papyrus= | ||||||
|  | Dry Shrub= | ||||||
|  | Jungle Grass= | ||||||
|  | Grass= | ||||||
|  | Dry Grass= | ||||||
|  | Fern= | ||||||
|  | Marram Grass= | ||||||
|  | Bush Stem= | ||||||
|  | Bush Leaves= | ||||||
|  | Bush Sapling= | ||||||
|  | Blueberry Bush Leaves with Berries= | ||||||
|  | Blueberry Bush Leaves= | ||||||
|  | Blueberry Bush Sapling= | ||||||
|  | Acacia Bush Stem= | ||||||
|  | Acacia Bush Leaves= | ||||||
|  | Acacia Bush Sapling= | ||||||
|  | Pine Bush Stem= | ||||||
|  | Pine Bush Needles= | ||||||
|  | Pine Bush Sapling= | ||||||
|  | Kelp= | ||||||
|  | Green Coral= | ||||||
|  | Pink Coral= | ||||||
|  | Cyan Coral= | ||||||
|  | Brown Coral= | ||||||
|  | Orange Coral= | ||||||
|  | Coral Skeleton= | ||||||
|  | Water Source= | ||||||
|  | Flowing Water= | ||||||
|  | River Water Source= | ||||||
|  | Flowing River Water= | ||||||
|  | Lava Source= | ||||||
|  | Flowing Lava= | ||||||
|  | Empty Bookshelf= | ||||||
|  | Bookshelf (@1 written, @2 empty books)= | ||||||
|  | Bookshelf= | ||||||
|  | Text too long= | ||||||
|  | Wooden Sign= | ||||||
|  | Steel Sign= | ||||||
|  | Wooden Ladder= | ||||||
|  | Steel Ladder= | ||||||
|  | Apple Wood Fence= | ||||||
|  | Acacia Wood Fence= | ||||||
|  | Jungle Wood Fence= | ||||||
|  | Pine Wood Fence= | ||||||
|  | Aspen Wood Fence= | ||||||
|  | Apple Wood Fence Rail= | ||||||
|  | Acacia Wood Fence Rail= | ||||||
|  | Jungle Wood Fence Rail= | ||||||
|  | Pine Wood Fence Rail= | ||||||
|  | Aspen Wood Fence Rail= | ||||||
|  | Glass= | ||||||
|  | Obsidian Glass= | ||||||
|  | Brick Block= | ||||||
|  | Mese Lamp= | ||||||
|  | Mese Post Light= | ||||||
|  | Cloud= | ||||||
|  | Wooden Pickaxe= | ||||||
|  | Stone Pickaxe= | ||||||
|  | Bronze Pickaxe= | ||||||
|  | Steel Pickaxe= | ||||||
|  | Mese Pickaxe= | ||||||
|  | Diamond Pickaxe= | ||||||
|  | Wooden Shovel= | ||||||
|  | Stone Shovel= | ||||||
|  | Bronze Shovel= | ||||||
|  | Steel Shovel= | ||||||
|  | Mese Shovel= | ||||||
|  | Diamond Shovel= | ||||||
|  | Wooden Axe= | ||||||
|  | Stone Axe= | ||||||
|  | Bronze Axe= | ||||||
|  | Steel Axe= | ||||||
|  | Mese Axe= | ||||||
|  | Diamond Axe= | ||||||
|  | Wooden Sword= | ||||||
|  | Stone Sword= | ||||||
|  | Bronze Sword= | ||||||
|  | Steel Sword= | ||||||
|  | Mese Sword= | ||||||
|  | Diamond Sword= | ||||||
|  | Key= | ||||||
|  | Torch= | ||||||
|  | @1 will intersect protection on growth.= | ||||||
|  | Title:= | ||||||
|  | Contents:= | ||||||
|  | Save= | ||||||
|  | by @1= | ||||||
|  | Page @1 of @2= | ||||||
|  | "@1"= | ||||||
| @@ -2,13 +2,18 @@ | |||||||
| -- Aliases for map generators | -- Aliases for map generators | ||||||
| -- | -- | ||||||
|  |  | ||||||
|  | -- All mapgens | ||||||
|  |  | ||||||
| minetest.register_alias("mapgen_stone", "default:stone") | minetest.register_alias("mapgen_stone", "default:stone") | ||||||
|  | minetest.register_alias("mapgen_water_source", "default:water_source") | ||||||
|  | minetest.register_alias("mapgen_river_water_source", "default:river_water_source") | ||||||
|  |  | ||||||
|  | -- Additional aliases needed for mapgen v6 | ||||||
|  |  | ||||||
|  | minetest.register_alias("mapgen_lava_source", "default:lava_source") | ||||||
| minetest.register_alias("mapgen_dirt", "default:dirt") | minetest.register_alias("mapgen_dirt", "default:dirt") | ||||||
| minetest.register_alias("mapgen_dirt_with_grass", "default:dirt_with_grass") | minetest.register_alias("mapgen_dirt_with_grass", "default:dirt_with_grass") | ||||||
| minetest.register_alias("mapgen_sand", "default:sand") | minetest.register_alias("mapgen_sand", "default:sand") | ||||||
| minetest.register_alias("mapgen_water_source", "default:water_source") |  | ||||||
| minetest.register_alias("mapgen_river_water_source", "default:river_water_source") |  | ||||||
| minetest.register_alias("mapgen_lava_source", "default:lava_source") |  | ||||||
| minetest.register_alias("mapgen_gravel", "default:gravel") | minetest.register_alias("mapgen_gravel", "default:gravel") | ||||||
| minetest.register_alias("mapgen_desert_stone", "default:desert_stone") | minetest.register_alias("mapgen_desert_stone", "default:desert_stone") | ||||||
| minetest.register_alias("mapgen_desert_sand", "default:desert_sand") | minetest.register_alias("mapgen_desert_sand", "default:desert_sand") | ||||||
| @@ -16,9 +21,6 @@ minetest.register_alias("mapgen_dirt_with_snow", "default:dirt_with_snow") | |||||||
| minetest.register_alias("mapgen_snowblock", "default:snowblock") | minetest.register_alias("mapgen_snowblock", "default:snowblock") | ||||||
| minetest.register_alias("mapgen_snow", "default:snow") | minetest.register_alias("mapgen_snow", "default:snow") | ||||||
| minetest.register_alias("mapgen_ice", "default:ice") | minetest.register_alias("mapgen_ice", "default:ice") | ||||||
| minetest.register_alias("mapgen_sandstone", "default:sandstone") |  | ||||||
|  |  | ||||||
| -- Flora |  | ||||||
|  |  | ||||||
| minetest.register_alias("mapgen_tree", "default:tree") | minetest.register_alias("mapgen_tree", "default:tree") | ||||||
| minetest.register_alias("mapgen_leaves", "default:leaves") | minetest.register_alias("mapgen_leaves", "default:leaves") | ||||||
| @@ -29,14 +31,10 @@ minetest.register_alias("mapgen_junglegrass", "default:junglegrass") | |||||||
| minetest.register_alias("mapgen_pine_tree", "default:pine_tree") | minetest.register_alias("mapgen_pine_tree", "default:pine_tree") | ||||||
| minetest.register_alias("mapgen_pine_needles", "default:pine_needles") | minetest.register_alias("mapgen_pine_needles", "default:pine_needles") | ||||||
|  |  | ||||||
| -- Dungeons |  | ||||||
|  |  | ||||||
| minetest.register_alias("mapgen_cobble", "default:cobble") | minetest.register_alias("mapgen_cobble", "default:cobble") | ||||||
| minetest.register_alias("mapgen_stair_cobble", "stairs:stair_cobble") | minetest.register_alias("mapgen_stair_cobble", "stairs:stair_cobble") | ||||||
| minetest.register_alias("mapgen_mossycobble", "default:mossycobble") | minetest.register_alias("mapgen_mossycobble", "default:mossycobble") | ||||||
| minetest.register_alias("mapgen_stair_desert_stone", "stairs:stair_desert_stone") | minetest.register_alias("mapgen_stair_desert_stone", "stairs:stair_desert_stone") | ||||||
| minetest.register_alias("mapgen_sandstonebrick", "default:sandstonebrick") |  | ||||||
| minetest.register_alias("mapgen_stair_sandstone_block", "stairs:stair_sandstone_block") |  | ||||||
|  |  | ||||||
|  |  | ||||||
| -- | -- | ||||||
| @@ -554,14 +552,6 @@ function default.register_ores() | |||||||
| 			octaves = 1, | 			octaves = 1, | ||||||
| 			persist = 0.0 | 			persist = 0.0 | ||||||
| 		}, | 		}, | ||||||
| 		biomes = {"icesheet_ocean", "tundra", "tundra_beach", "tundra_ocean", |  | ||||||
| 			"taiga", "taiga_ocean", "snowy_grassland", "snowy_grassland_ocean", |  | ||||||
| 			"grassland", "grassland_dunes", "grassland_ocean", "coniferous_forest", |  | ||||||
| 			"coniferous_forest_dunes", "coniferous_forest_ocean", "deciduous_forest", |  | ||||||
| 			"deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert", |  | ||||||
| 			"cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean", |  | ||||||
| 			"rainforest", "rainforest_swamp", "rainforest_ocean", "underground", |  | ||||||
| 			"floatland_coniferous_forest", "floatland_coniferous_forest_ocean"} |  | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| 	-- Dirt | 	-- Dirt | ||||||
| @@ -583,9 +573,10 @@ function default.register_ores() | |||||||
| 			octaves = 1, | 			octaves = 1, | ||||||
| 			persist = 0.0 | 			persist = 0.0 | ||||||
| 		}, | 		}, | ||||||
|  | 		-- Only where default:dirt is present as surface material | ||||||
| 		biomes = {"taiga", "snowy_grassland", "grassland", "coniferous_forest", | 		biomes = {"taiga", "snowy_grassland", "grassland", "coniferous_forest", | ||||||
| 			"deciduous_forest", "deciduous_forest_shore", "savanna", "savanna_shore", | 				"deciduous_forest", "deciduous_forest_shore", "rainforest", | ||||||
| 			"rainforest", "rainforest_swamp", "floatland_coniferous_forest"} | 				"rainforest_swamp", "floatland_coniferous_forest"} | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| 	-- Gravel | 	-- Gravel | ||||||
| @@ -607,14 +598,6 @@ function default.register_ores() | |||||||
| 			octaves = 1, | 			octaves = 1, | ||||||
| 			persist = 0.0 | 			persist = 0.0 | ||||||
| 		}, | 		}, | ||||||
| 		biomes = {"icesheet_ocean", "tundra", "tundra_beach", "tundra_ocean", |  | ||||||
| 			"taiga", "taiga_ocean", "snowy_grassland", "snowy_grassland_ocean", |  | ||||||
| 			"grassland", "grassland_dunes", "grassland_ocean", "coniferous_forest", |  | ||||||
| 			"coniferous_forest_dunes", "coniferous_forest_ocean", "deciduous_forest", |  | ||||||
| 			"deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert", |  | ||||||
| 			"cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean", |  | ||||||
| 			"rainforest", "rainforest_swamp", "rainforest_ocean", "underground", |  | ||||||
| 			"floatland_coniferous_forest", "floatland_coniferous_forest_ocean"} |  | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| 	-- Scatter ores | 	-- Scatter ores | ||||||
| @@ -924,6 +907,8 @@ function default.register_biomes(upper_limit) | |||||||
| 		node_river_water = "default:ice", | 		node_river_water = "default:ice", | ||||||
| 		node_riverbed = "default:gravel", | 		node_riverbed = "default:gravel", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_dungeon = "default:ice", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_ice", | ||||||
| 		y_max = upper_limit, | 		y_max = upper_limit, | ||||||
| 		y_min = -8, | 		y_min = -8, | ||||||
| 		heat_point = 0, | 		heat_point = 0, | ||||||
| @@ -939,8 +924,24 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
| 		node_water_top = "default:ice", | 		node_water_top = "default:ice", | ||||||
| 		depth_water_top = 10, | 		depth_water_top = 10, | ||||||
|  | 		node_cave_liquid = "default:water_source", | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		y_max = -9, | 		y_max = -9, | ||||||
| 		y_min = -112, | 		y_min = -255, | ||||||
|  | 		heat_point = 0, | ||||||
|  | 		humidity_point = 73, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	minetest.register_biome({ | ||||||
|  | 		name = "icesheet_under", | ||||||
|  | 		node_cave_liquid = {"default:water_source", "default:lava_source"}, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
|  | 		y_max = -256, | ||||||
|  | 		y_min = -31000, | ||||||
| 		heat_point = 0, | 		heat_point = 0, | ||||||
| 		humidity_point = 73, | 		humidity_point = 73, | ||||||
| 	}) | 	}) | ||||||
| @@ -952,6 +953,9 @@ function default.register_biomes(upper_limit) | |||||||
| 		node_dust = "default:snow", | 		node_dust = "default:snow", | ||||||
| 		node_riverbed = "default:gravel", | 		node_riverbed = "default:gravel", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		y_max = upper_limit, | 		y_max = upper_limit, | ||||||
| 		y_min = 47, | 		y_min = 47, | ||||||
| 		heat_point = 0, | 		heat_point = 0, | ||||||
| @@ -966,6 +970,9 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 1, | 		depth_filler = 1, | ||||||
| 		node_riverbed = "default:gravel", | 		node_riverbed = "default:gravel", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		vertical_blend = 4, | 		vertical_blend = 4, | ||||||
| 		y_max = 46, | 		y_max = 46, | ||||||
| 		y_min = 2, | 		y_min = 2, | ||||||
| @@ -981,6 +988,9 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 2, | 		depth_filler = 2, | ||||||
| 		node_riverbed = "default:gravel", | 		node_riverbed = "default:gravel", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		vertical_blend = 1, | 		vertical_blend = 1, | ||||||
| 		y_max = 1, | 		y_max = 1, | ||||||
| 		y_min = -3, | 		y_min = -3, | ||||||
| @@ -996,9 +1006,25 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
| 		node_riverbed = "default:gravel", | 		node_riverbed = "default:gravel", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_cave_liquid = "default:water_source", | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		vertical_blend = 1, | 		vertical_blend = 1, | ||||||
| 		y_max = -4, | 		y_max = -4, | ||||||
| 		y_min = -112, | 		y_min = -255, | ||||||
|  | 		heat_point = 0, | ||||||
|  | 		humidity_point = 40, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	minetest.register_biome({ | ||||||
|  | 		name = "tundra_under", | ||||||
|  | 		node_cave_liquid = {"default:water_source", "default:lava_source"}, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
|  | 		y_max = -256, | ||||||
|  | 		y_min = -31000, | ||||||
| 		heat_point = 0, | 		heat_point = 0, | ||||||
| 		humidity_point = 40, | 		humidity_point = 40, | ||||||
| 	}) | 	}) | ||||||
| @@ -1014,6 +1040,9 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		y_max = upper_limit, | 		y_max = upper_limit, | ||||||
| 		y_min = 4, | 		y_min = 4, | ||||||
| 		heat_point = 25, | 		heat_point = 25, | ||||||
| @@ -1029,9 +1058,25 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_cave_liquid = "default:water_source", | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		vertical_blend = 1, | 		vertical_blend = 1, | ||||||
| 		y_max = 3, | 		y_max = 3, | ||||||
| 		y_min = -112, | 		y_min = -255, | ||||||
|  | 		heat_point = 25, | ||||||
|  | 		humidity_point = 70, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	minetest.register_biome({ | ||||||
|  | 		name = "taiga_under", | ||||||
|  | 		node_cave_liquid = {"default:water_source", "default:lava_source"}, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
|  | 		y_max = -256, | ||||||
|  | 		y_min = -31000, | ||||||
| 		heat_point = 25, | 		heat_point = 25, | ||||||
| 		humidity_point = 70, | 		humidity_point = 70, | ||||||
| 	}) | 	}) | ||||||
| @@ -1047,6 +1092,9 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 1, | 		depth_filler = 1, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		y_max = upper_limit, | 		y_max = upper_limit, | ||||||
| 		y_min = 4, | 		y_min = 4, | ||||||
| 		heat_point = 20, | 		heat_point = 20, | ||||||
| @@ -1062,9 +1110,25 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_cave_liquid = "default:water_source", | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		vertical_blend = 1, | 		vertical_blend = 1, | ||||||
| 		y_max = 3, | 		y_max = 3, | ||||||
| 		y_min = -112, | 		y_min = -255, | ||||||
|  | 		heat_point = 20, | ||||||
|  | 		humidity_point = 35, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	minetest.register_biome({ | ||||||
|  | 		name = "snowy_grassland_under", | ||||||
|  | 		node_cave_liquid = {"default:water_source", "default:lava_source"}, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
|  | 		y_max = -256, | ||||||
|  | 		y_min = -31000, | ||||||
| 		heat_point = 20, | 		heat_point = 20, | ||||||
| 		humidity_point = 35, | 		humidity_point = 35, | ||||||
| 	}) | 	}) | ||||||
| @@ -1079,6 +1143,9 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 1, | 		depth_filler = 1, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		y_max = upper_limit, | 		y_max = upper_limit, | ||||||
| 		y_min = 6, | 		y_min = 6, | ||||||
| 		heat_point = 50, | 		heat_point = 50, | ||||||
| @@ -1093,6 +1160,9 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 2, | 		depth_filler = 2, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		vertical_blend = 1, | 		vertical_blend = 1, | ||||||
| 		y_max = 5, | 		y_max = 5, | ||||||
| 		y_min = 4, | 		y_min = 4, | ||||||
| @@ -1108,8 +1178,24 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_cave_liquid = "default:water_source", | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		y_max = 3, | 		y_max = 3, | ||||||
| 		y_min = -112, | 		y_min = -255, | ||||||
|  | 		heat_point = 50, | ||||||
|  | 		humidity_point = 35, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	minetest.register_biome({ | ||||||
|  | 		name = "grassland_under", | ||||||
|  | 		node_cave_liquid = {"default:water_source", "default:lava_source"}, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
|  | 		y_max = -256, | ||||||
|  | 		y_min = -31000, | ||||||
| 		heat_point = 50, | 		heat_point = 50, | ||||||
| 		humidity_point = 35, | 		humidity_point = 35, | ||||||
| 	}) | 	}) | ||||||
| @@ -1124,6 +1210,9 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		y_max = upper_limit, | 		y_max = upper_limit, | ||||||
| 		y_min = 6, | 		y_min = 6, | ||||||
| 		heat_point = 45, | 		heat_point = 45, | ||||||
| @@ -1138,6 +1227,9 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		vertical_blend = 1, | 		vertical_blend = 1, | ||||||
| 		y_max = 5, | 		y_max = 5, | ||||||
| 		y_min = 4, | 		y_min = 4, | ||||||
| @@ -1153,8 +1245,24 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_cave_liquid = "default:water_source", | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		y_max = 3, | 		y_max = 3, | ||||||
| 		y_min = -112, | 		y_min = -255, | ||||||
|  | 		heat_point = 45, | ||||||
|  | 		humidity_point = 70, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	minetest.register_biome({ | ||||||
|  | 		name = "coniferous_forest_under", | ||||||
|  | 		node_cave_liquid = {"default:water_source", "default:lava_source"}, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
|  | 		y_max = -256, | ||||||
|  | 		y_min = -31000, | ||||||
| 		heat_point = 45, | 		heat_point = 45, | ||||||
| 		humidity_point = 70, | 		humidity_point = 70, | ||||||
| 	}) | 	}) | ||||||
| @@ -1169,6 +1277,9 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		y_max = upper_limit, | 		y_max = upper_limit, | ||||||
| 		y_min = 1, | 		y_min = 1, | ||||||
| 		heat_point = 60, | 		heat_point = 60, | ||||||
| @@ -1183,6 +1294,9 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		y_max = 0, | 		y_max = 0, | ||||||
| 		y_min = -1, | 		y_min = -1, | ||||||
| 		heat_point = 60, | 		heat_point = 60, | ||||||
| @@ -1197,9 +1311,25 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_cave_liquid = "default:water_source", | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		vertical_blend = 1, | 		vertical_blend = 1, | ||||||
| 		y_max = -2, | 		y_max = -2, | ||||||
| 		y_min = -112, | 		y_min = -255, | ||||||
|  | 		heat_point = 60, | ||||||
|  | 		humidity_point = 68, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	minetest.register_biome({ | ||||||
|  | 		name = "deciduous_forest_under", | ||||||
|  | 		node_cave_liquid = {"default:water_source", "default:lava_source"}, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
|  | 		y_max = -256, | ||||||
|  | 		y_min = -31000, | ||||||
| 		heat_point = 60, | 		heat_point = 60, | ||||||
| 		humidity_point = 68, | 		humidity_point = 68, | ||||||
| 	}) | 	}) | ||||||
| @@ -1215,6 +1345,8 @@ function default.register_biomes(upper_limit) | |||||||
| 		node_stone = "default:desert_stone", | 		node_stone = "default:desert_stone", | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_dungeon = "default:desert_stone", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_desert_stone", | ||||||
| 		y_max = upper_limit, | 		y_max = upper_limit, | ||||||
| 		y_min = 4, | 		y_min = 4, | ||||||
| 		heat_point = 92, | 		heat_point = 92, | ||||||
| @@ -1230,9 +1362,24 @@ function default.register_biomes(upper_limit) | |||||||
| 		node_stone = "default:desert_stone", | 		node_stone = "default:desert_stone", | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_cave_liquid = "default:water_source", | ||||||
|  | 		node_dungeon = "default:desert_stone", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_desert_stone", | ||||||
| 		vertical_blend = 1, | 		vertical_blend = 1, | ||||||
| 		y_max = 3, | 		y_max = 3, | ||||||
| 		y_min = -112, | 		y_min = -255, | ||||||
|  | 		heat_point = 92, | ||||||
|  | 		humidity_point = 16, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	minetest.register_biome({ | ||||||
|  | 		name = "desert_under", | ||||||
|  | 		node_cave_liquid = {"default:water_source", "default:lava_source"}, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
|  | 		y_max = -256, | ||||||
|  | 		y_min = -31000, | ||||||
| 		heat_point = 92, | 		heat_point = 92, | ||||||
| 		humidity_point = 16, | 		humidity_point = 16, | ||||||
| 	}) | 	}) | ||||||
| @@ -1248,6 +1395,8 @@ function default.register_biomes(upper_limit) | |||||||
| 		node_stone = "default:sandstone", | 		node_stone = "default:sandstone", | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_dungeon = "default:sandstonebrick", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_sandstone_block", | ||||||
| 		y_max = upper_limit, | 		y_max = upper_limit, | ||||||
| 		y_min = 4, | 		y_min = 4, | ||||||
| 		heat_point = 60, | 		heat_point = 60, | ||||||
| @@ -1263,8 +1412,23 @@ function default.register_biomes(upper_limit) | |||||||
| 		node_stone = "default:sandstone", | 		node_stone = "default:sandstone", | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_cave_liquid = "default:water_source", | ||||||
|  | 		node_dungeon = "default:sandstonebrick", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_sandstone_block", | ||||||
| 		y_max = 3, | 		y_max = 3, | ||||||
| 		y_min = -112, | 		y_min = -255, | ||||||
|  | 		heat_point = 60, | ||||||
|  | 		humidity_point = 0, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	minetest.register_biome({ | ||||||
|  | 		name = "sandstone_desert_under", | ||||||
|  | 		node_cave_liquid = {"default:water_source", "default:lava_source"}, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
|  | 		y_max = -256, | ||||||
|  | 		y_min = -31000, | ||||||
| 		heat_point = 60, | 		heat_point = 60, | ||||||
| 		humidity_point = 0, | 		humidity_point = 0, | ||||||
| 	}) | 	}) | ||||||
| @@ -1279,6 +1443,9 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 1, | 		depth_filler = 1, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		y_max = upper_limit, | 		y_max = upper_limit, | ||||||
| 		y_min = 4, | 		y_min = 4, | ||||||
| 		heat_point = 40, | 		heat_point = 40, | ||||||
| @@ -1293,9 +1460,25 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_cave_liquid = "default:water_source", | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		vertical_blend = 1, | 		vertical_blend = 1, | ||||||
| 		y_max = 3, | 		y_max = 3, | ||||||
| 		y_min = -112, | 		y_min = -255, | ||||||
|  | 		heat_point = 40, | ||||||
|  | 		humidity_point = 0, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	minetest.register_biome({ | ||||||
|  | 		name = "cold_desert_under", | ||||||
|  | 		node_cave_liquid = {"default:water_source", "default:lava_source"}, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
|  | 		y_max = -256, | ||||||
|  | 		y_min = -31000, | ||||||
| 		heat_point = 40, | 		heat_point = 40, | ||||||
| 		humidity_point = 0, | 		humidity_point = 0, | ||||||
| 	}) | 	}) | ||||||
| @@ -1304,12 +1487,15 @@ function default.register_biomes(upper_limit) | |||||||
|  |  | ||||||
| 	minetest.register_biome({ | 	minetest.register_biome({ | ||||||
| 		name = "savanna", | 		name = "savanna", | ||||||
| 		node_top = "default:dirt_with_dry_grass", | 		node_top = "default:dry_dirt_with_dry_grass", | ||||||
| 		depth_top = 1, | 		depth_top = 1, | ||||||
| 		node_filler = "default:dirt", | 		node_filler = "default:dry_dirt", | ||||||
| 		depth_filler = 1, | 		depth_filler = 1, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		y_max = upper_limit, | 		y_max = upper_limit, | ||||||
| 		y_min = 1, | 		y_min = 1, | ||||||
| 		heat_point = 89, | 		heat_point = 89, | ||||||
| @@ -1318,12 +1504,15 @@ function default.register_biomes(upper_limit) | |||||||
|  |  | ||||||
| 	minetest.register_biome({ | 	minetest.register_biome({ | ||||||
| 		name = "savanna_shore", | 		name = "savanna_shore", | ||||||
| 		node_top = "default:dirt", | 		node_top = "default:dry_dirt", | ||||||
| 		depth_top = 1, | 		depth_top = 1, | ||||||
| 		node_filler = "default:dirt", | 		node_filler = "default:dry_dirt", | ||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		y_max = 0, | 		y_max = 0, | ||||||
| 		y_min = -1, | 		y_min = -1, | ||||||
| 		heat_point = 89, | 		heat_point = 89, | ||||||
| @@ -1338,9 +1527,25 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_cave_liquid = "default:water_source", | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		vertical_blend = 1, | 		vertical_blend = 1, | ||||||
| 		y_max = -2, | 		y_max = -2, | ||||||
| 		y_min = -112, | 		y_min = -255, | ||||||
|  | 		heat_point = 89, | ||||||
|  | 		humidity_point = 42, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	minetest.register_biome({ | ||||||
|  | 		name = "savanna_under", | ||||||
|  | 		node_cave_liquid = {"default:water_source", "default:lava_source"}, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
|  | 		y_max = -256, | ||||||
|  | 		y_min = -31000, | ||||||
| 		heat_point = 89, | 		heat_point = 89, | ||||||
| 		humidity_point = 42, | 		humidity_point = 42, | ||||||
| 	}) | 	}) | ||||||
| @@ -1355,6 +1560,9 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		y_max = upper_limit, | 		y_max = upper_limit, | ||||||
| 		y_min = 1, | 		y_min = 1, | ||||||
| 		heat_point = 86, | 		heat_point = 86, | ||||||
| @@ -1369,6 +1577,9 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		y_max = 0, | 		y_max = 0, | ||||||
| 		y_min = -1, | 		y_min = -1, | ||||||
| 		heat_point = 86, | 		heat_point = 86, | ||||||
| @@ -1383,21 +1594,27 @@ function default.register_biomes(upper_limit) | |||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
| 		node_riverbed = "default:sand", | 		node_riverbed = "default:sand", | ||||||
| 		depth_riverbed = 2, | 		depth_riverbed = 2, | ||||||
|  | 		node_cave_liquid = "default:water_source", | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		vertical_blend = 1, | 		vertical_blend = 1, | ||||||
| 		y_max = -2, | 		y_max = -2, | ||||||
| 		y_min = -112, | 		y_min = -255, | ||||||
| 		heat_point = 86, | 		heat_point = 86, | ||||||
| 		humidity_point = 65, | 		humidity_point = 65, | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| 	-- Underground |  | ||||||
|  |  | ||||||
| 	minetest.register_biome({ | 	minetest.register_biome({ | ||||||
| 		name = "underground", | 		name = "rainforest_under", | ||||||
| 		y_max = -113, | 		node_cave_liquid = {"default:water_source", "default:lava_source"}, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
|  | 		y_max = -256, | ||||||
| 		y_min = -31000, | 		y_min = -31000, | ||||||
| 		heat_point = 50, | 		heat_point = 86, | ||||||
| 		humidity_point = 50, | 		humidity_point = 65, | ||||||
| 	}) | 	}) | ||||||
| end | end | ||||||
|  |  | ||||||
| @@ -1414,6 +1631,9 @@ function default.register_floatland_biomes(floatland_level, shadow_limit) | |||||||
| 		depth_top = 1, | 		depth_top = 1, | ||||||
| 		node_filler = "default:dirt", | 		node_filler = "default:dirt", | ||||||
| 		depth_filler = 1, | 		depth_filler = 1, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		y_max = 31000, | 		y_max = 31000, | ||||||
| 		y_min = floatland_level + 2, | 		y_min = floatland_level + 2, | ||||||
| 		heat_point = 50, | 		heat_point = 50, | ||||||
| @@ -1426,6 +1646,9 @@ function default.register_floatland_biomes(floatland_level, shadow_limit) | |||||||
| 		depth_top = 1, | 		depth_top = 1, | ||||||
| 		node_filler = "default:dirt", | 		node_filler = "default:dirt", | ||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		y_max = 31000, | 		y_max = 31000, | ||||||
| 		y_min = floatland_level + 2, | 		y_min = floatland_level + 2, | ||||||
| 		heat_point = 50, | 		heat_point = 50, | ||||||
| @@ -1438,6 +1661,9 @@ function default.register_floatland_biomes(floatland_level, shadow_limit) | |||||||
| 		depth_top = 1, | 		depth_top = 1, | ||||||
| 		node_filler = "default:sand", | 		node_filler = "default:sand", | ||||||
| 		depth_filler = 3, | 		depth_filler = 3, | ||||||
|  | 		node_dungeon = "default:cobble", | ||||||
|  | 		node_dungeon_alt = "default:mossycobble", | ||||||
|  | 		node_dungeon_stair = "stairs:stair_cobble", | ||||||
| 		y_max = floatland_level + 1, | 		y_max = floatland_level + 1, | ||||||
| 		y_min = shadow_limit, | 		y_min = shadow_limit, | ||||||
| 		heat_point = 50, | 		heat_point = 50, | ||||||
| @@ -1572,7 +1798,7 @@ local function register_dry_grass_decoration(offset, scale, length) | |||||||
| 	minetest.register_decoration({ | 	minetest.register_decoration({ | ||||||
| 		name = "default:dry_grass_" .. length, | 		name = "default:dry_grass_" .. length, | ||||||
| 		deco_type = "simple", | 		deco_type = "simple", | ||||||
| 		place_on = {"default:dirt_with_dry_grass"}, | 		place_on = {"default:dry_dirt_with_dry_grass"}, | ||||||
| 		sidelen = 16, | 		sidelen = 16, | ||||||
| 		noise_params = { | 		noise_params = { | ||||||
| 			offset = offset, | 			offset = offset, | ||||||
| @@ -1612,6 +1838,30 @@ end | |||||||
|  |  | ||||||
|  |  | ||||||
| function default.register_decorations() | function default.register_decorations() | ||||||
|  | 	-- Savanna bare dirt patches. | ||||||
|  | 	-- Must come before all savanna decorations that are placed on dry grass. | ||||||
|  | 	-- Noise is similar to long dry grass noise, but scale inverted, to appear | ||||||
|  | 	-- where long dry grass is least dense and shortest. | ||||||
|  |  | ||||||
|  | 	minetest.register_decoration({ | ||||||
|  | 		deco_type = "simple", | ||||||
|  | 		place_on = {"default:dry_dirt_with_dry_grass"}, | ||||||
|  | 		sidelen = 4, | ||||||
|  | 		noise_params = { | ||||||
|  | 			offset = -1.5, | ||||||
|  | 			scale = -1.5, | ||||||
|  | 			spread = {x = 200, y = 200, z = 200}, | ||||||
|  | 			seed = 329, | ||||||
|  | 			octaves = 4, | ||||||
|  | 			persist = 1.0 | ||||||
|  | 		}, | ||||||
|  | 		biomes = {"savanna"}, | ||||||
|  | 		y_max = 31000, | ||||||
|  | 		y_min = 1, | ||||||
|  | 		decoration = "default:dry_dirt", | ||||||
|  | 		place_offset_y = -1, | ||||||
|  | 		flags = "force_placement", | ||||||
|  | 	}) | ||||||
|  |  | ||||||
| 	-- Apple tree and log | 	-- Apple tree and log | ||||||
|  |  | ||||||
| @@ -1786,7 +2036,7 @@ function default.register_decorations() | |||||||
| 	minetest.register_decoration({ | 	minetest.register_decoration({ | ||||||
| 		name = "default:acacia_tree", | 		name = "default:acacia_tree", | ||||||
| 		deco_type = "schematic", | 		deco_type = "schematic", | ||||||
| 		place_on = {"default:dirt_with_dry_grass"}, | 		place_on = {"default:dry_dirt_with_dry_grass"}, | ||||||
| 		sidelen = 16, | 		sidelen = 16, | ||||||
| 		noise_params = { | 		noise_params = { | ||||||
| 			offset = 0, | 			offset = 0, | ||||||
| @@ -1807,7 +2057,7 @@ function default.register_decorations() | |||||||
| 	minetest.register_decoration({ | 	minetest.register_decoration({ | ||||||
| 		name = "default:acacia_log", | 		name = "default:acacia_log", | ||||||
| 		deco_type = "schematic", | 		deco_type = "schematic", | ||||||
| 		place_on = {"default:dirt_with_dry_grass"}, | 		place_on = {"default:dry_dirt_with_dry_grass"}, | ||||||
| 		place_offset_y = 1, | 		place_offset_y = 1, | ||||||
| 		sidelen = 16, | 		sidelen = 16, | ||||||
| 		noise_params = { | 		noise_params = { | ||||||
| @@ -1824,7 +2074,7 @@ function default.register_decorations() | |||||||
| 		schematic = minetest.get_modpath("default") .. "/schematics/acacia_log.mts", | 		schematic = minetest.get_modpath("default") .. "/schematics/acacia_log.mts", | ||||||
| 		flags = "place_center_x", | 		flags = "place_center_x", | ||||||
| 		rotation = "random", | 		rotation = "random", | ||||||
| 		spawn_by = "default:dirt_with_dry_grass", | 		spawn_by = "default:dry_dirt_with_dry_grass", | ||||||
| 		num_spawn_by = 8, | 		num_spawn_by = 8, | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| @@ -1992,7 +2242,7 @@ function default.register_decorations() | |||||||
| 	minetest.register_decoration({ | 	minetest.register_decoration({ | ||||||
| 		name = "default:acacia_bush", | 		name = "default:acacia_bush", | ||||||
| 		deco_type = "schematic", | 		deco_type = "schematic", | ||||||
| 		place_on = {"default:dirt_with_dry_grass"}, | 		place_on = {"default:dry_dirt_with_dry_grass"}, | ||||||
| 		sidelen = 16, | 		sidelen = 16, | ||||||
| 		noise_params = { | 		noise_params = { | ||||||
| 			offset = -0.004, | 			offset = -0.004, | ||||||
| @@ -2098,13 +2348,13 @@ function default.register_decorations() | |||||||
| 		place_on = {"default:sand"}, | 		place_on = {"default:sand"}, | ||||||
| 		sidelen = 4, | 		sidelen = 4, | ||||||
| 		noise_params = { | 		noise_params = { | ||||||
| 			offset = -0.4, | 			offset = -0.7, | ||||||
| 			scale = 3.0, | 			scale = 4.0, | ||||||
| 			spread = {x = 16, y = 16, z = 16}, | 			spread = {x = 16, y = 16, z = 16}, | ||||||
| 			seed = 513337, | 			seed = 513337, | ||||||
| 			octaves = 1, | 			octaves = 1, | ||||||
| 			persist = 0.5, | 			persist = 0.0, | ||||||
| 			flags = "absvalue" | 			flags = "absvalue, eased" | ||||||
| 		}, | 		}, | ||||||
| 		biomes = {"coniferous_forest_dunes", "grassland_dunes"}, | 		biomes = {"coniferous_forest_dunes", "grassland_dunes"}, | ||||||
| 		y_max = 6, | 		y_max = 6, | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								mods/default/mod.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | |||||||
|  | name = default | ||||||
|  | description = Minetest Game mod: default | ||||||
|  | optional_depends = player_api | ||||||
							
								
								
									
										
											BIN
										
									
								
								mods/default/textures/default_dry_dirt.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 256 B | 
| Before Width: | Height: | Size: 377 B After Width: | Height: | Size: 461 B | 
| Before Width: | Height: | Size: 779 B After Width: | Height: | Size: 590 B | 
| Before Width: | Height: | Size: 266 B After Width: | Height: | Size: 269 B | 
| @@ -1,5 +1,8 @@ | |||||||
| -- mods/default/tools.lua | -- mods/default/tools.lua | ||||||
|  |  | ||||||
|  | -- support for MT game translation. | ||||||
|  | local S = default.get_translator | ||||||
|  |  | ||||||
| -- The hand | -- The hand | ||||||
| minetest.register_item(":", { | minetest.register_item(":", { | ||||||
| 	type = "none", | 	type = "none", | ||||||
| @@ -22,7 +25,7 @@ minetest.register_item(":", { | |||||||
| -- | -- | ||||||
|  |  | ||||||
| minetest.register_tool("default:pick_wood", { | minetest.register_tool("default:pick_wood", { | ||||||
| 	description = "Wooden Pickaxe", | 	description = S("Wooden Pickaxe"), | ||||||
| 	inventory_image = "default_tool_woodpick.png", | 	inventory_image = "default_tool_woodpick.png", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| 		full_punch_interval = 1.2, | 		full_punch_interval = 1.2, | ||||||
| @@ -32,12 +35,12 @@ minetest.register_tool("default:pick_wood", { | |||||||
| 		}, | 		}, | ||||||
| 		damage_groups = {fleshy=2}, | 		damage_groups = {fleshy=2}, | ||||||
| 	}, | 	}, | ||||||
| 	groups = {flammable = 2}, |  | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {pickaxe = 1, flammable = 2} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:pick_stone", { | minetest.register_tool("default:pick_stone", { | ||||||
| 	description = "Stone Pickaxe", | 	description = S("Stone Pickaxe"), | ||||||
| 	inventory_image = "default_tool_stonepick.png", | 	inventory_image = "default_tool_stonepick.png", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| 		full_punch_interval = 1.3, | 		full_punch_interval = 1.3, | ||||||
| @@ -48,10 +51,11 @@ minetest.register_tool("default:pick_stone", { | |||||||
| 		damage_groups = {fleshy=3}, | 		damage_groups = {fleshy=3}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {pickaxe = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:pick_bronze", { | minetest.register_tool("default:pick_bronze", { | ||||||
| 	description = "Bronze Pickaxe", | 	description = S("Bronze Pickaxe"), | ||||||
| 	inventory_image = "default_tool_bronzepick.png", | 	inventory_image = "default_tool_bronzepick.png", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| 		full_punch_interval = 1.0, | 		full_punch_interval = 1.0, | ||||||
| @@ -62,10 +66,11 @@ minetest.register_tool("default:pick_bronze", { | |||||||
| 		damage_groups = {fleshy=4}, | 		damage_groups = {fleshy=4}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {pickaxe = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:pick_steel", { | minetest.register_tool("default:pick_steel", { | ||||||
| 	description = "Steel Pickaxe", | 	description = S("Steel Pickaxe"), | ||||||
| 	inventory_image = "default_tool_steelpick.png", | 	inventory_image = "default_tool_steelpick.png", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| 		full_punch_interval = 1.0, | 		full_punch_interval = 1.0, | ||||||
| @@ -76,10 +81,11 @@ minetest.register_tool("default:pick_steel", { | |||||||
| 		damage_groups = {fleshy=4}, | 		damage_groups = {fleshy=4}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {pickaxe = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:pick_mese", { | minetest.register_tool("default:pick_mese", { | ||||||
| 	description = "Mese Pickaxe", | 	description = S("Mese Pickaxe"), | ||||||
| 	inventory_image = "default_tool_mesepick.png", | 	inventory_image = "default_tool_mesepick.png", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| 		full_punch_interval = 0.9, | 		full_punch_interval = 0.9, | ||||||
| @@ -90,10 +96,11 @@ minetest.register_tool("default:pick_mese", { | |||||||
| 		damage_groups = {fleshy=5}, | 		damage_groups = {fleshy=5}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {pickaxe = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:pick_diamond", { | minetest.register_tool("default:pick_diamond", { | ||||||
| 	description = "Diamond Pickaxe", | 	description = S("Diamond Pickaxe"), | ||||||
| 	inventory_image = "default_tool_diamondpick.png", | 	inventory_image = "default_tool_diamondpick.png", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| 		full_punch_interval = 0.9, | 		full_punch_interval = 0.9, | ||||||
| @@ -104,6 +111,7 @@ minetest.register_tool("default:pick_diamond", { | |||||||
| 		damage_groups = {fleshy=5}, | 		damage_groups = {fleshy=5}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {pickaxe = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| -- | -- | ||||||
| @@ -111,7 +119,7 @@ minetest.register_tool("default:pick_diamond", { | |||||||
| -- | -- | ||||||
|  |  | ||||||
| minetest.register_tool("default:shovel_wood", { | minetest.register_tool("default:shovel_wood", { | ||||||
| 	description = "Wooden Shovel", | 	description = S("Wooden Shovel"), | ||||||
| 	inventory_image = "default_tool_woodshovel.png", | 	inventory_image = "default_tool_woodshovel.png", | ||||||
| 	wield_image = "default_tool_woodshovel.png^[transformR90", | 	wield_image = "default_tool_woodshovel.png^[transformR90", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| @@ -122,12 +130,12 @@ minetest.register_tool("default:shovel_wood", { | |||||||
| 		}, | 		}, | ||||||
| 		damage_groups = {fleshy=2}, | 		damage_groups = {fleshy=2}, | ||||||
| 	}, | 	}, | ||||||
| 	groups = {flammable = 2}, |  | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {shovel = 1, flammable = 2} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:shovel_stone", { | minetest.register_tool("default:shovel_stone", { | ||||||
| 	description = "Stone Shovel", | 	description = S("Stone Shovel"), | ||||||
| 	inventory_image = "default_tool_stoneshovel.png", | 	inventory_image = "default_tool_stoneshovel.png", | ||||||
| 	wield_image = "default_tool_stoneshovel.png^[transformR90", | 	wield_image = "default_tool_stoneshovel.png^[transformR90", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| @@ -139,10 +147,11 @@ minetest.register_tool("default:shovel_stone", { | |||||||
| 		damage_groups = {fleshy=2}, | 		damage_groups = {fleshy=2}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {shovel = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:shovel_bronze", { | minetest.register_tool("default:shovel_bronze", { | ||||||
| 	description = "Bronze Shovel", | 	description = S("Bronze Shovel"), | ||||||
| 	inventory_image = "default_tool_bronzeshovel.png", | 	inventory_image = "default_tool_bronzeshovel.png", | ||||||
| 	wield_image = "default_tool_bronzeshovel.png^[transformR90", | 	wield_image = "default_tool_bronzeshovel.png^[transformR90", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| @@ -154,10 +163,11 @@ minetest.register_tool("default:shovel_bronze", { | |||||||
| 		damage_groups = {fleshy=3}, | 		damage_groups = {fleshy=3}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {shovel = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:shovel_steel", { | minetest.register_tool("default:shovel_steel", { | ||||||
| 	description = "Steel Shovel", | 	description = S("Steel Shovel"), | ||||||
| 	inventory_image = "default_tool_steelshovel.png", | 	inventory_image = "default_tool_steelshovel.png", | ||||||
| 	wield_image = "default_tool_steelshovel.png^[transformR90", | 	wield_image = "default_tool_steelshovel.png^[transformR90", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| @@ -169,10 +179,11 @@ minetest.register_tool("default:shovel_steel", { | |||||||
| 		damage_groups = {fleshy=3}, | 		damage_groups = {fleshy=3}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {shovel = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:shovel_mese", { | minetest.register_tool("default:shovel_mese", { | ||||||
| 	description = "Mese Shovel", | 	description = S("Mese Shovel"), | ||||||
| 	inventory_image = "default_tool_meseshovel.png", | 	inventory_image = "default_tool_meseshovel.png", | ||||||
| 	wield_image = "default_tool_meseshovel.png^[transformR90", | 	wield_image = "default_tool_meseshovel.png^[transformR90", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| @@ -184,10 +195,11 @@ minetest.register_tool("default:shovel_mese", { | |||||||
| 		damage_groups = {fleshy=4}, | 		damage_groups = {fleshy=4}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {shovel = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:shovel_diamond", { | minetest.register_tool("default:shovel_diamond", { | ||||||
| 	description = "Diamond Shovel", | 	description = S("Diamond Shovel"), | ||||||
| 	inventory_image = "default_tool_diamondshovel.png", | 	inventory_image = "default_tool_diamondshovel.png", | ||||||
| 	wield_image = "default_tool_diamondshovel.png^[transformR90", | 	wield_image = "default_tool_diamondshovel.png^[transformR90", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| @@ -199,6 +211,7 @@ minetest.register_tool("default:shovel_diamond", { | |||||||
| 		damage_groups = {fleshy=4}, | 		damage_groups = {fleshy=4}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {shovel = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| -- | -- | ||||||
| @@ -206,7 +219,7 @@ minetest.register_tool("default:shovel_diamond", { | |||||||
| -- | -- | ||||||
|  |  | ||||||
| minetest.register_tool("default:axe_wood", { | minetest.register_tool("default:axe_wood", { | ||||||
| 	description = "Wooden Axe", | 	description = S("Wooden Axe"), | ||||||
| 	inventory_image = "default_tool_woodaxe.png", | 	inventory_image = "default_tool_woodaxe.png", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| 		full_punch_interval = 1.0, | 		full_punch_interval = 1.0, | ||||||
| @@ -216,12 +229,12 @@ minetest.register_tool("default:axe_wood", { | |||||||
| 		}, | 		}, | ||||||
| 		damage_groups = {fleshy=2}, | 		damage_groups = {fleshy=2}, | ||||||
| 	}, | 	}, | ||||||
| 	groups = {flammable = 2}, |  | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {axe = 1, flammable = 2} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:axe_stone", { | minetest.register_tool("default:axe_stone", { | ||||||
| 	description = "Stone Axe", | 	description = S("Stone Axe"), | ||||||
| 	inventory_image = "default_tool_stoneaxe.png", | 	inventory_image = "default_tool_stoneaxe.png", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| 		full_punch_interval = 1.2, | 		full_punch_interval = 1.2, | ||||||
| @@ -232,10 +245,11 @@ minetest.register_tool("default:axe_stone", { | |||||||
| 		damage_groups = {fleshy=3}, | 		damage_groups = {fleshy=3}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {axe = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:axe_bronze", { | minetest.register_tool("default:axe_bronze", { | ||||||
| 	description = "Bronze Axe", | 	description = S("Bronze Axe"), | ||||||
| 	inventory_image = "default_tool_bronzeaxe.png", | 	inventory_image = "default_tool_bronzeaxe.png", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| 		full_punch_interval = 1.0, | 		full_punch_interval = 1.0, | ||||||
| @@ -246,10 +260,11 @@ minetest.register_tool("default:axe_bronze", { | |||||||
| 		damage_groups = {fleshy=4}, | 		damage_groups = {fleshy=4}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {axe = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:axe_steel", { | minetest.register_tool("default:axe_steel", { | ||||||
| 	description = "Steel Axe", | 	description = S("Steel Axe"), | ||||||
| 	inventory_image = "default_tool_steelaxe.png", | 	inventory_image = "default_tool_steelaxe.png", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| 		full_punch_interval = 1.0, | 		full_punch_interval = 1.0, | ||||||
| @@ -260,10 +275,11 @@ minetest.register_tool("default:axe_steel", { | |||||||
| 		damage_groups = {fleshy=4}, | 		damage_groups = {fleshy=4}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {axe = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:axe_mese", { | minetest.register_tool("default:axe_mese", { | ||||||
| 	description = "Mese Axe", | 	description = S("Mese Axe"), | ||||||
| 	inventory_image = "default_tool_meseaxe.png", | 	inventory_image = "default_tool_meseaxe.png", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| 		full_punch_interval = 0.9, | 		full_punch_interval = 0.9, | ||||||
| @@ -274,10 +290,11 @@ minetest.register_tool("default:axe_mese", { | |||||||
| 		damage_groups = {fleshy=6}, | 		damage_groups = {fleshy=6}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {axe = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:axe_diamond", { | minetest.register_tool("default:axe_diamond", { | ||||||
| 	description = "Diamond Axe", | 	description = S("Diamond Axe"), | ||||||
| 	inventory_image = "default_tool_diamondaxe.png", | 	inventory_image = "default_tool_diamondaxe.png", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| 		full_punch_interval = 0.9, | 		full_punch_interval = 0.9, | ||||||
| @@ -288,6 +305,7 @@ minetest.register_tool("default:axe_diamond", { | |||||||
| 		damage_groups = {fleshy=7}, | 		damage_groups = {fleshy=7}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {axe = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| -- | -- | ||||||
| @@ -295,7 +313,7 @@ minetest.register_tool("default:axe_diamond", { | |||||||
| -- | -- | ||||||
|  |  | ||||||
| minetest.register_tool("default:sword_wood", { | minetest.register_tool("default:sword_wood", { | ||||||
| 	description = "Wooden Sword", | 	description = S("Wooden Sword"), | ||||||
| 	inventory_image = "default_tool_woodsword.png", | 	inventory_image = "default_tool_woodsword.png", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| 		full_punch_interval = 1, | 		full_punch_interval = 1, | ||||||
| @@ -305,12 +323,12 @@ minetest.register_tool("default:sword_wood", { | |||||||
| 		}, | 		}, | ||||||
| 		damage_groups = {fleshy=2}, | 		damage_groups = {fleshy=2}, | ||||||
| 	}, | 	}, | ||||||
| 	groups = {flammable = 2}, |  | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {sword = 1, flammable = 2} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:sword_stone", { | minetest.register_tool("default:sword_stone", { | ||||||
| 	description = "Stone Sword", | 	description = S("Stone Sword"), | ||||||
| 	inventory_image = "default_tool_stonesword.png", | 	inventory_image = "default_tool_stonesword.png", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| 		full_punch_interval = 1.2, | 		full_punch_interval = 1.2, | ||||||
| @@ -321,10 +339,11 @@ minetest.register_tool("default:sword_stone", { | |||||||
| 		damage_groups = {fleshy=4}, | 		damage_groups = {fleshy=4}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {sword = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:sword_bronze", { | minetest.register_tool("default:sword_bronze", { | ||||||
| 	description = "Bronze Sword", | 	description = S("Bronze Sword"), | ||||||
| 	inventory_image = "default_tool_bronzesword.png", | 	inventory_image = "default_tool_bronzesword.png", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| 		full_punch_interval = 0.8, | 		full_punch_interval = 0.8, | ||||||
| @@ -335,10 +354,11 @@ minetest.register_tool("default:sword_bronze", { | |||||||
| 		damage_groups = {fleshy=6}, | 		damage_groups = {fleshy=6}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {sword = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:sword_steel", { | minetest.register_tool("default:sword_steel", { | ||||||
| 	description = "Steel Sword", | 	description = S("Steel Sword"), | ||||||
| 	inventory_image = "default_tool_steelsword.png", | 	inventory_image = "default_tool_steelsword.png", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| 		full_punch_interval = 0.8, | 		full_punch_interval = 0.8, | ||||||
| @@ -349,10 +369,11 @@ minetest.register_tool("default:sword_steel", { | |||||||
| 		damage_groups = {fleshy=6}, | 		damage_groups = {fleshy=6}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {sword = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:sword_mese", { | minetest.register_tool("default:sword_mese", { | ||||||
| 	description = "Mese Sword", | 	description = S("Mese Sword"), | ||||||
| 	inventory_image = "default_tool_mesesword.png", | 	inventory_image = "default_tool_mesesword.png", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| 		full_punch_interval = 0.7, | 		full_punch_interval = 0.7, | ||||||
| @@ -363,10 +384,11 @@ minetest.register_tool("default:sword_mese", { | |||||||
| 		damage_groups = {fleshy=7}, | 		damage_groups = {fleshy=7}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {sword = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:sword_diamond", { | minetest.register_tool("default:sword_diamond", { | ||||||
| 	description = "Diamond Sword", | 	description = S("Diamond Sword"), | ||||||
| 	inventory_image = "default_tool_diamondsword.png", | 	inventory_image = "default_tool_diamondsword.png", | ||||||
| 	tool_capabilities = { | 	tool_capabilities = { | ||||||
| 		full_punch_interval = 0.7, | 		full_punch_interval = 0.7, | ||||||
| @@ -377,10 +399,11 @@ minetest.register_tool("default:sword_diamond", { | |||||||
| 		damage_groups = {fleshy=8}, | 		damage_groups = {fleshy=8}, | ||||||
| 	}, | 	}, | ||||||
| 	sound = {breaks = "default_tool_breaks"}, | 	sound = {breaks = "default_tool_breaks"}, | ||||||
|  | 	groups = {sword = 1} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_tool("default:key", { | minetest.register_tool("default:key", { | ||||||
| 	description = "Key", | 	description = S("Key"), | ||||||
| 	inventory_image = "default_key.png", | 	inventory_image = "default_key.png", | ||||||
| 	groups = {key = 1, not_in_creative_inventory = 1}, | 	groups = {key = 1, not_in_creative_inventory = 1}, | ||||||
| 	stack_max = 1, | 	stack_max = 1, | ||||||
|   | |||||||
| @@ -1,3 +1,8 @@ | |||||||
|  | -- default/torch.lua | ||||||
|  |  | ||||||
|  | -- support for MT game translation. | ||||||
|  | local S = default.get_translator | ||||||
|  |  | ||||||
| local function on_flood(pos, oldnode, newnode) | local function on_flood(pos, oldnode, newnode) | ||||||
| 	minetest.add_item(pos, ItemStack("default:torch 1")) | 	minetest.add_item(pos, ItemStack("default:torch 1")) | ||||||
| 	-- Play flame-extinguish sound if liquid is not an 'igniter' | 	-- Play flame-extinguish sound if liquid is not an 'igniter' | ||||||
| @@ -14,7 +19,7 @@ local function on_flood(pos, oldnode, newnode) | |||||||
| end | end | ||||||
|  |  | ||||||
| minetest.register_node("default:torch", { | minetest.register_node("default:torch", { | ||||||
| 	description = "Torch", | 	description = S("Torch"), | ||||||
| 	drawtype = "mesh", | 	drawtype = "mesh", | ||||||
| 	mesh = "torch_floor.obj", | 	mesh = "torch_floor.obj", | ||||||
| 	inventory_image = "default_torch_on_floor.png", | 	inventory_image = "default_torch_on_floor.png", | ||||||
|   | |||||||