Compare commits
	
		
			156 Commits
		
	
	
		
			1.4
			...
			0463712cbb
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 0463712cbb | |||
| 1745cc0ba3 | |||
| 
						 | 
					3c3733a226 | ||
| 
						 | 
					55f919ab8f | ||
| 
						 | 
					937b40aae4 | ||
| 
						 | 
					97036d9f9a | ||
| 
						 | 
					17a8c5ddd8 | ||
| 
						 | 
					9fb5a93b2b | ||
| 
						 | 
					00a79d26e5 | ||
| 
						 | 
					303aa3ef91 | ||
| 
						 | 
					89059f20b6 | ||
| 
						 | 
					0d2af529ef | ||
| 
						 | 
					7a7bb8dc51 | ||
| 
						 | 
					4241c89c17 | ||
| 
						 | 
					70d38d1c63 | ||
| 
						 | 
					92c5b1ab8e | ||
| 
						 | 
					62d2b302ed | ||
| 
						 | 
					8b4ef8a4b7 | ||
| 
						 | 
					35b2ecfdc1 | ||
| 
						 | 
					edbed14d9b | ||
| 
						 | 
					4e4cb0625c | ||
| 
						 | 
					77dbe040b8 | ||
| 
						 | 
					d6bd17f6b3 | ||
| 
						 | 
					b12502a7da | ||
| 
						 | 
					e707db9ab9 | ||
| 
						 | 
					270dc19ec1 | ||
| 
						 | 
					c9c2bf03de | ||
| 
						 | 
					ee1eac039e | ||
| 
						 | 
					4fb4fe1763 | ||
| 
						 | 
					98a652259b | ||
| 
						 | 
					a8ad0435fa | ||
| 
						 | 
					41021895ce | ||
| 
						 | 
					abd9274798 | ||
| 
						 | 
					e16c23c29c | ||
| 
						 | 
					90adfb42c1 | ||
| 
						 | 
					c32feb44fc | ||
| 
						 | 
					36878ce9a0 | ||
| 
						 | 
					8b5de4f7f7 | ||
| 
						 | 
					9e3997c689 | ||
| 
						 | 
					ce74f49773 | ||
| 
						 | 
					fb4805ccf0 | ||
| 
						 | 
					2d332913c5 | ||
| 
						 | 
					5446e0dbdd | ||
| 
						 | 
					16ceea1aaf | ||
| 
						 | 
					c570fa2337 | ||
| 
						 | 
					5d7bb6de53 | ||
| 
						 | 
					138ac1ae2c | ||
| 
						 | 
					502318fb66 | ||
| 
						 | 
					937f5f0918 | ||
| 
						 | 
					b09870a5b2 | ||
| 
						 | 
					9e48e9ea3e | ||
| 
						 | 
					94637c624e | ||
| 
						 | 
					bb6b3a4ee5 | ||
| 
						 | 
					a50a99836a | ||
| 
						 | 
					e2134e479e | ||
| 
						 | 
					3320fbdd6b | ||
| 
						 | 
					19fb5e2691 | ||
| 
						 | 
					9dd63cd83a | ||
| 
						 | 
					07820fa37c | ||
| 
						 | 
					29f87f2607 | ||
| 
						 | 
					aef1fe0dc6 | ||
| 
						 | 
					22ff82cc89 | ||
| 
						 | 
					dd98cb2cb3 | ||
| 
						 | 
					f184341663 | ||
| 
						 | 
					3f9d7bc12d | ||
| 
						 | 
					60b09a27f7 | ||
| 
						 | 
					a936452e21 | ||
| 
						 | 
					768e06e2d0 | ||
| 
						 | 
					732535c9da | ||
| 
						 | 
					7a8b8d19df | ||
| 
						 | 
					9dcccadfc2 | ||
| 
						 | 
					7c891ff2b6 | ||
| 
						 | 
					06bef9777a | ||
| 
						 | 
					738c2140a7 | ||
| 
						 | 
					2ffef6794a | ||
| 
						 | 
					fb1b0cf869 | ||
| 
						 | 
					59b806c9c4 | ||
| 
						 | 
					db626eaece | ||
| 
						 | 
					3b3da66a0d | ||
| 
						 | 
					84795a6523 | ||
| 
						 | 
					fc3f1fece2 | ||
| 
						 | 
					00a88a320a | ||
| 
						 | 
					19b8e28afb | ||
| 
						 | 
					12e35f80f0 | ||
| 
						 | 
					11da33ca76 | ||
| 
						 | 
					08e758aca5 | ||
| 
						 | 
					727758b816 | ||
| 
						 | 
					b026e94d6e | ||
| 
						 | 
					b8c79d1765 | ||
| 
						 | 
					742627aa8c | ||
| 
						 | 
					bf616f5d21 | ||
| 
						 | 
					22787e41e3 | ||
| 
						 | 
					6b76c8c10f | ||
| 
						 | 
					5f68d2de11 | ||
| 
						 | 
					ea12d5ca14 | ||
| 
						 | 
					3d77ec58b4 | ||
| 
						 | 
					83151cb394 | ||
| 
						 | 
					337ac898cd | ||
| 
						 | 
					cb0200a222 | ||
| 
						 | 
					ae4b15a748 | ||
| 
						 | 
					2fa14ae146 | ||
| 
						 | 
					8b86dfc857 | ||
| 
						 | 
					c468ab22fd | ||
| 
						 | 
					d324c5f1e5 | ||
| 
						 | 
					dfa45789e2 | ||
| 
						 | 
					80a0d67f15 | ||
| 
						 | 
					22c5c9444e | ||
| 
						 | 
					97676d094e | ||
| 
						 | 
					ca18ae0e3a | ||
| 
						 | 
					e710fcd483 | ||
| 
						 | 
					a2e4f20791 | ||
| 
						 | 
					22a85f50c1 | ||
| 66fc47a1c3 | |||
| 
						 | 
					0271f61fc2 | ||
| 
						 | 
					84756af3a1 | ||
| 
						 | 
					9dc656d5a2 | ||
| 
						 | 
					4c0371c5cc | ||
| 
						 | 
					b6181ebd7a | ||
| 
						 | 
					eb7292da7a | ||
| 
						 | 
					9df355b899 | ||
| 
						 | 
					a242f6c61c | ||
| 
						 | 
					c9ebd5c069 | ||
| 054a7ab3af | |||
| 
						 | 
					b1a67eb632 | ||
| 
						 | 
					e0e57b45ea | ||
| 
						 | 
					3f7ad71e00 | ||
| 
						 | 
					eb2a81b8b5 | ||
| 
						 | 
					92daae3e95 | ||
| 
						 | 
					799c0c7038 | ||
| 
						 | 
					8b79f32150 | ||
| 
						 | 
					183a9ff7a1 | ||
| 
						 | 
					cdc8e410b6 | ||
| 
						 | 
					7219a6096b | ||
| 
						 | 
					7f44517701 | ||
| 
						 | 
					5e4a362a15 | ||
| 
						 | 
					058cd05ed7 | ||
| 
						 | 
					fa30a0d076 | ||
| 
						 | 
					92cf2307db | ||
| 
						 | 
					bfe99092db | ||
| 
						 | 
					97e6eceb75 | ||
| 
						 | 
					d6432f53bb | ||
| 
						 | 
					c62994f9af | ||
| 
						 | 
					8f6f8dda7e | ||
| 
						 | 
					40b5f8725a | ||
| 
						 | 
					0956e86d73 | ||
| 
						 | 
					07bc14e516 | ||
| 
						 | 
					b3bba5c2ff | ||
| 
						 | 
					4560457504 | ||
| 
						 | 
					3f44ae00d2 | ||
| 
						 | 
					1ba1e41dcd | ||
| 
						 | 
					3cf4bef83a | ||
| 
						 | 
					c4272d8d24 | ||
| 
						 | 
					aac3e3f693 | ||
| 
						 | 
					fc2d2e585c | ||
| 
						 | 
					e37f1df6d3 | ||
| 
						 | 
					d6542a2697 | 
@@ -7,4 +7,12 @@ read_globals = {
 | 
				
			|||||||
	"sfinv",
 | 
						"sfinv",
 | 
				
			||||||
	"sfinv_buttons",
 | 
						"sfinv_buttons",
 | 
				
			||||||
	"vector",
 | 
						"vector",
 | 
				
			||||||
 | 
						"string",
 | 
				
			||||||
 | 
						"table",
 | 
				
			||||||
 | 
						"ItemStack",
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					globals = {
 | 
				
			||||||
 | 
						"craftguide",
 | 
				
			||||||
 | 
						"core",
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										214
									
								
								API.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,214 @@
 | 
				
			|||||||
 | 
					## API
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Custom recipes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Custom recipes are nonconventional crafts outside the main crafting grid.
 | 
				
			||||||
 | 
					They can be registered in-game dynamically and have a size beyond 3x3 items.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Note:** the registration format differs from the default registration format in everything.
 | 
				
			||||||
 | 
					The width is automatically calculated depending where you place the commas. Look at the examples attentively.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Registering a custom crafting type (example)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```Lua
 | 
				
			||||||
 | 
					craftguide.register_craft_type("digging", {
 | 
				
			||||||
 | 
						description = "Digging",
 | 
				
			||||||
 | 
						icon = "default_tool_steelpick.png",
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Registering a custom crafting recipe (examples)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```Lua
 | 
				
			||||||
 | 
					craftguide.register_craft({
 | 
				
			||||||
 | 
						type   = "digging",
 | 
				
			||||||
 | 
						result = "default:cobble 2",
 | 
				
			||||||
 | 
						items  = {"default:stone"},
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```Lua
 | 
				
			||||||
 | 
					craftguide.register_craft({
 | 
				
			||||||
 | 
						result = "default:cobble 16",
 | 
				
			||||||
 | 
						items = {
 | 
				
			||||||
 | 
							"default:stone, default:stone, default:stone",
 | 
				
			||||||
 | 
							"default:stone,              , default:stone",
 | 
				
			||||||
 | 
							"default:stone, default:stone, default:stone",
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Recipes can be registered in a Minecraft-like way:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```Lua
 | 
				
			||||||
 | 
					craftguide.register_craft({
 | 
				
			||||||
 | 
						grid = {
 | 
				
			||||||
 | 
							"X  #",
 | 
				
			||||||
 | 
							" ## ",
 | 
				
			||||||
 | 
							"X#X#",
 | 
				
			||||||
 | 
							"X  X",
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						key = {
 | 
				
			||||||
 | 
							['#'] = "default:wood",
 | 
				
			||||||
 | 
							['X'] = "default:glass",
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						result = "default:mese 3",
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Multiples recipes can also be registered:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```Lua
 | 
				
			||||||
 | 
					craftguide.register_craft({
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							result = "default:mese",
 | 
				
			||||||
 | 
							items = {
 | 
				
			||||||
 | 
								"default:mese_crystal, default:mese_crystal",
 | 
				
			||||||
 | 
								"default:mese_crystal, default:mese_crystal",
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						big = {
 | 
				
			||||||
 | 
							result = "default:mese 4",
 | 
				
			||||||
 | 
							items = {
 | 
				
			||||||
 | 
								"default:mese_crystal, default:mese_crystal",
 | 
				
			||||||
 | 
								"default:mese_crystal, default:mese_crystal",
 | 
				
			||||||
 | 
								"default:mese_crystal, default:mese_crystal",
 | 
				
			||||||
 | 
								"default:mese_crystal, default:mese_crystal",
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Recipes can be registered from a given URL containing a JSON file (HTTP support is required¹):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```Lua
 | 
				
			||||||
 | 
					craftguide.register_craft({
 | 
				
			||||||
 | 
						url = "https://raw.githubusercontent.com/minetest-mods/craftguide/master/test.json"
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Recipe filters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Recipe filters can be used to filter the recipes shown to players. Progressive
 | 
				
			||||||
 | 
					mode is implemented as a recipe filter.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### `craftguide.add_recipe_filter(name, function(recipes, player))`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Adds a recipe filter with the given name. The filter function should return the
 | 
				
			||||||
 | 
					recipes to be displayed, given the available recipes and an `ObjectRef` to the
 | 
				
			||||||
 | 
					user. Each recipe is a table of the form returned by
 | 
				
			||||||
 | 
					`minetest.get_craft_recipe`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Example function to hide recipes for items from a mod called "secretstuff":
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```lua
 | 
				
			||||||
 | 
					craftguide.add_recipe_filter("Hide secretstuff", function(recipes)
 | 
				
			||||||
 | 
						local filtered = {}
 | 
				
			||||||
 | 
						for _, recipe in ipairs(recipes) do
 | 
				
			||||||
 | 
							if recipe.output:sub(1,12) ~= "secretstuff:" then
 | 
				
			||||||
 | 
								filtered[#filtered + 1] = recipe
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return filtered
 | 
				
			||||||
 | 
					end)
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### `craftguide.set_recipe_filter(name, function(recipe, player))`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Removes all recipe filters and adds a new one.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### `craftguide.remove_recipe_filter(name)`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Removes the recipe filter with the given name.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### `craftguide.get_recipe_filters()`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Returns a map of recipe filters, indexed by name.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Search filters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Search filters are used to perform specific searches inside the search field.
 | 
				
			||||||
 | 
					They can be used like so: `<optional name>+<filter name>=<value1>,<value2>,<...>`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Examples:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `+groups=cracky,crumbly`: search for groups `cracky` and `crumbly` in all items.
 | 
				
			||||||
 | 
					- `sand+groups=falling_node`: search for group `falling_node` for items which contain `sand` in their names.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Notes:
 | 
				
			||||||
 | 
					- If `optional name` is omitted, the search filter will apply to all items, without pre-filtering.
 | 
				
			||||||
 | 
					- Filters can be combined.
 | 
				
			||||||
 | 
					- The `groups` filter is currently implemented by default.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### `craftguide.add_search_filter(name, function(item, values))`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Adds a search filter with the given name.
 | 
				
			||||||
 | 
					The search function should return a boolean value (whether the given item should be listed or not).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Example function to show items which contain at least a recipe of given width(s):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```lua
 | 
				
			||||||
 | 
					craftguide.add_search_filter("widths", function(item, widths)
 | 
				
			||||||
 | 
						local has_width
 | 
				
			||||||
 | 
						local recipes = recipes_cache[item]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if recipes then
 | 
				
			||||||
 | 
							for i = 1, #recipes do
 | 
				
			||||||
 | 
								local recipe_width = recipes[i].width
 | 
				
			||||||
 | 
								for j = 1, #widths do
 | 
				
			||||||
 | 
									local width = tonumber(widths[j])
 | 
				
			||||||
 | 
									if width == recipe_width then
 | 
				
			||||||
 | 
										has_width = true
 | 
				
			||||||
 | 
										break
 | 
				
			||||||
 | 
									end
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return has_width
 | 
				
			||||||
 | 
					end)
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### `craftguide.remove_search_filter(name)`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Removes the search filter with the given name.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### `craftguide.get_search_filters()`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Returns a map of search filters, indexed by name.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Miscellaneous
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### `craftguide.show(player_name, item, show_usages)`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Opens the Crafting Guide with the current filter applied.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   * `player_name`: string param.
 | 
				
			||||||
 | 
					   * `item`: optional, string param. If set, this item is pre-selected. If the item does not exist or has no recipe, use the player's previous selection. By default, player's previous selection is used
 | 
				
			||||||
 | 
					   * `show_usages`: optional, boolean param. If true, show item usages.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### `craftguide.group_stereotypes`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This is the table indexing the item groups by stereotypes.
 | 
				
			||||||
 | 
					You can add a stereotype like so:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```Lua
 | 
				
			||||||
 | 
					craftguide.group_stereotypes.radioactive = "mod:item"
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### `craftguide.export_url`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If set, the mod will export all the cached recipes and usages in a JSON format
 | 
				
			||||||
 | 
					to the given URL (HTTP support is required¹).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**¹** Add `craftguide` to the `secure.http_mods` or `secure.trusted_mods` setting in `minetest.conf`.
 | 
				
			||||||
							
								
								
									
										68
									
								
								README.md
									
									
									
									
									
								
							
							
						
						@@ -6,7 +6,7 @@
 | 
				
			|||||||
This crafting guide is a blue book named *"Crafting Guide"* or a wooden sign.
 | 
					This crafting guide is a blue book named *"Crafting Guide"* or a wooden sign.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This crafting guide features a **progressive mode**.
 | 
					This crafting guide features a **progressive mode**.
 | 
				
			||||||
The progressive mode is a Terraria-like system that only shows recipes you can craft
 | 
					This mode is a Terraria-like system that shows recipes you can craft
 | 
				
			||||||
from items you ever had in your inventory. To enable it: `craftguide_progressive_mode = true` in `minetest.conf`.
 | 
					from items you ever had in your inventory. To enable it: `craftguide_progressive_mode = true` in `minetest.conf`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
`craftguide` is also integrated in `sfinv` (Minetest Game inventory). To enable it:
 | 
					`craftguide` is also integrated in `sfinv` (Minetest Game inventory). To enable it:
 | 
				
			||||||
@@ -14,69 +14,9 @@ from items you ever had in your inventory. To enable it: `craftguide_progressive
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Use the command `/craft` to show the recipe(s) of the pointed node.
 | 
					Use the command `/craft` to show the recipe(s) of the pointed node.
 | 
				
			||||||
 | 
					
 | 
				
			||||||

 | 
					For developers, `craftguide` also has a [modding API](https://github.com/minetest-mods/craftguide/blob/master/API.md). 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
---
 | 
					Love this mod? Donations are appreciated: https://www.paypal.me/jpg84240
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## API
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Custom recipes
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
#### Registering a custom crafting type
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```Lua
 | 
					 | 
				
			||||||
craftguide.register_craft_type("digging", {
 | 
					 | 
				
			||||||
	description = "Digging",
 | 
					 | 
				
			||||||
	icon = "default_tool_steelpick.png",
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#### Registering a custom crafting recipe
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```Lua
 | 
					 | 
				
			||||||
craftguide.register_craft({
 | 
					 | 
				
			||||||
	type   = "digging",
 | 
					 | 
				
			||||||
	width  = 1,
 | 
					 | 
				
			||||||
	output = "default:cobble 2",
 | 
					 | 
				
			||||||
	items  = {"default:stone"},
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Recipe filters
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Recipe filters can be used to filter the recipes shown to players. Progressive
 | 
					 | 
				
			||||||
mode is implemented as a recipe filter.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#### `craftguide.add_recipe_filter(name, function(recipes, player))`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Adds a recipe filter with the given name. The filter function should return the
 | 
					 | 
				
			||||||
recipes to be displayed, given the available recipes and an `ObjectRef` to the
 | 
					 | 
				
			||||||
user. Each recipe is a table of the form returned by
 | 
					 | 
				
			||||||
`minetest.get_craft_recipe`.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Example function to hide recipes for items from a mod called "secretstuff":
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```lua
 | 
					 | 
				
			||||||
craftguide.add_recipe_filter("Hide secretstuff", function(recipes)
 | 
					 | 
				
			||||||
	local filtered = {}
 | 
					 | 
				
			||||||
	for _, recipe in ipairs(recipes) do
 | 
					 | 
				
			||||||
		if recipe.output:sub(1,12) ~= "secretstuff:" then
 | 
					 | 
				
			||||||
			filtered[#filtered + 1] = recipe
 | 
					 | 
				
			||||||
		end
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return filtered
 | 
					 | 
				
			||||||
end)
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#### `craftguide.remove_recipe_filter(name)`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Removes the recipe filter with the given name.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#### `craftguide.set_recipe_filter(name, function(recipe, player))`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Removes all recipe filters and adds a new one.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#### `craftguide.get_recipe_filters()`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Returns a map of recipe filters, indexed by name.
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +0,0 @@
 | 
				
			|||||||
sfinv?
 | 
					 | 
				
			||||||
sfinv_buttons?
 | 
					 | 
				
			||||||
intllib?
 | 
					 | 
				
			||||||
@@ -1,2 +0,0 @@
 | 
				
			|||||||
The most comprehensive Crafting Guide
 | 
					 | 
				
			||||||
on Minetest.
 | 
					 | 
				
			||||||
							
								
								
									
										45
									
								
								intllib.lua
									
									
									
									
									
								
							
							
						
						@@ -1,45 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
-- Fallback functions for when `intllib` is not installed.
 | 
					 | 
				
			||||||
-- Code released under Unlicense <http://unlicense.org>.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- Get the latest version of this file at:
 | 
					 | 
				
			||||||
--   https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local function format(str, ...)
 | 
					 | 
				
			||||||
	local args = { ... }
 | 
					 | 
				
			||||||
	local function repl(escape, open, num, close)
 | 
					 | 
				
			||||||
		if escape == "" then
 | 
					 | 
				
			||||||
			local replacement = tostring(args[tonumber(num)])
 | 
					 | 
				
			||||||
			if open == "" then
 | 
					 | 
				
			||||||
				replacement = replacement..close
 | 
					 | 
				
			||||||
			end
 | 
					 | 
				
			||||||
			return replacement
 | 
					 | 
				
			||||||
		else
 | 
					 | 
				
			||||||
			return "@"..open..num..close
 | 
					 | 
				
			||||||
		end
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
	return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl))
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local gettext, ngettext
 | 
					 | 
				
			||||||
if minetest.get_modpath("intllib") then
 | 
					 | 
				
			||||||
	if intllib.make_gettext_pair then
 | 
					 | 
				
			||||||
		-- New method using gettext.
 | 
					 | 
				
			||||||
		gettext, ngettext = intllib.make_gettext_pair()
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		-- Old method using text files.
 | 
					 | 
				
			||||||
		gettext = intllib.Getter()
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- Fill in missing functions.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
gettext = gettext or function(msgid, ...)
 | 
					 | 
				
			||||||
	return format(msgid, ...)
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ngettext = ngettext or function(msgid, msgid_plural, n, ...)
 | 
					 | 
				
			||||||
	return format(n==1 and msgid or msgid_plural, ...)
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
return gettext, ngettext
 | 
					 | 
				
			||||||
							
								
								
									
										19
									
								
								locale/craftguide.de.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					# textdomain: craftguide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Craft Guide=Rezeptbuch
 | 
				
			||||||
 | 
					Crafting Guide=Rezeptbuch
 | 
				
			||||||
 | 
					Crafting Guide Sign=Rezepttafel
 | 
				
			||||||
 | 
					Usage @1 of @2=Verwendung @1 von @2
 | 
				
			||||||
 | 
					Recipe @1 of @2=Rezept @1 von @2
 | 
				
			||||||
 | 
					Burning time: @1=Brennzeit: @1
 | 
				
			||||||
 | 
					Cooking time: @1=Kochzeit: @1
 | 
				
			||||||
 | 
					Any item belonging to the group(s): @1=Beliebiger Gegenstand aus Gruppe(n): @1
 | 
				
			||||||
 | 
					Recipe's too big to be displayed (@1x@2)=Rezept ist zu groß für die Anzeige (@1×@2)
 | 
				
			||||||
 | 
					Shapeless=Formlos
 | 
				
			||||||
 | 
					Cooking=Kochen
 | 
				
			||||||
 | 
					No item to show=Nichts anzuzeigen
 | 
				
			||||||
 | 
					Collect items to reveal more recipes=Gegenstände aufsammeln, um mehr Rezepte aufzudecken
 | 
				
			||||||
 | 
					Show recipe(s) of the pointed node=Rezept(e) des gezeigten Blocks anzeigen
 | 
				
			||||||
 | 
					No node pointed=Auf keinen Block gezeigt
 | 
				
			||||||
 | 
					You don't know a recipe for this node=Sie kennen kein Rezept für diesen Block
 | 
				
			||||||
 | 
					No recipe for this node=Kein Rezept für diesen Block
 | 
				
			||||||
							
								
								
									
										22
									
								
								locale/craftguide.fr.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					# textdomain: craftguide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Craft Guide=Guide de recettes
 | 
				
			||||||
 | 
					Crafting Guide=Guide de recettes
 | 
				
			||||||
 | 
					Usage @1 of @2=Usage @1 de @2
 | 
				
			||||||
 | 
					Recipe @1 of @2=Recette @1 de @2
 | 
				
			||||||
 | 
					Burning time: @1=Temps de combustion : @1
 | 
				
			||||||
 | 
					Cooking time: @1=Temps de cuisson : @1
 | 
				
			||||||
 | 
					Replaced by @1 on smelting=Remplacé par @1 lors de la cuisson
 | 
				
			||||||
 | 
					Replaced by @1 on burning=Remplacé par @1 lors de la combustion
 | 
				
			||||||
 | 
					Replaced by @1 on crafting=Remplacé par @1 lors de la fabrication
 | 
				
			||||||
 | 
					Repairable by step of @1=Réparable par étape de @1
 | 
				
			||||||
 | 
					Any item belonging to the group(s): @1=Tout item appartenant au(x) groupe(s) : @1
 | 
				
			||||||
 | 
					Recipe's too big to be displayed (@1x@2)=La recette est trop grande pour être affichée (@1x@2)
 | 
				
			||||||
 | 
					Shapeless=Sans forme
 | 
				
			||||||
 | 
					Cooking=Cuisson
 | 
				
			||||||
 | 
					No item to show=Aucun item à afficher
 | 
				
			||||||
 | 
					Collect items to reveal more recipes=Collecte des items pour révéler plus de recettes
 | 
				
			||||||
 | 
					Show recipe(s) of the pointed node=Affiche les recettes du bloc visé
 | 
				
			||||||
 | 
					No node pointed=Aucun bloc visé
 | 
				
			||||||
 | 
					You don't know a recipe for this node=Tu ne connais aucune recette pour ce bloc
 | 
				
			||||||
 | 
					No recipe for this node=Aucune recette pour ce bloc
 | 
				
			||||||
							
								
								
									
										26
									
								
								locale/craftguide.it.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					# textdomain: craftguide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Craft Guide=Guida di assemblaggio
 | 
				
			||||||
 | 
					Crafting Guide=Guida d'assemblaggio
 | 
				
			||||||
 | 
					Crafting Guide Sign=Cartello della guida d'assemblaggio
 | 
				
			||||||
 | 
					Usage @1 of @2=Utilizzo @1 di @2
 | 
				
			||||||
 | 
					Recipe @1 of @2=Ricetta @1 di @2
 | 
				
			||||||
 | 
					Burning time: @1=Tempo di bruciatura: @1
 | 
				
			||||||
 | 
					Cooking time: @1=Tempo di cottura: @1
 | 
				
			||||||
 | 
					Replaced by @1 on smelting=Sostituito da @1 alla fusione
 | 
				
			||||||
 | 
					Replaced by @1 on burning=Sostituito da @1 alla bruciatura
 | 
				
			||||||
 | 
					Replaced by @1 on crafting=Sostituito da @1 all'assemblaggio
 | 
				
			||||||
 | 
					Repairable by step of @1=Riparabile per passo di @1
 | 
				
			||||||
 | 
					Any item belonging to the group(s): @1=Qualunque oggetto appartenente al gruppo: @1
 | 
				
			||||||
 | 
					Recipe's too big to be displayed (@1x@2)=La ricetta è troppo grande per essere mostrata (@1x@2)
 | 
				
			||||||
 | 
					Shapeless=Senza forma
 | 
				
			||||||
 | 
					Cooking=Cottura
 | 
				
			||||||
 | 
					No item to show=Nessun oggetto da mostrare
 | 
				
			||||||
 | 
					Collect items to reveal more recipes=Raccogli oggetti per svelare più ricette
 | 
				
			||||||
 | 
					Show recipe(s) of the pointed node=Mostra la ricetta del nodo puntato
 | 
				
			||||||
 | 
					No node pointed=Nessun nodo puntato
 | 
				
			||||||
 | 
					You don't know a recipe for this node=Non conosci una ricetta per questo nodo
 | 
				
			||||||
 | 
					No recipe for this node=Nessuna ricetta per questo nodo
 | 
				
			||||||
 | 
					Digging=Scavando
 | 
				
			||||||
 | 
					Digging Chance=Probabilità di scavare
 | 
				
			||||||
 | 
					@1 of chance to drop=@1 di probabilità di rilascio
 | 
				
			||||||
							
								
								
									
										19
									
								
								locale/craftguide.ru.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					# textdomain: craftguide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Craft Guide=книга рецептов крафта
 | 
				
			||||||
 | 
					Crafting Guide=книга рецептов крафта
 | 
				
			||||||
 | 
					Crafting Guide Sign=Знак с книгой рецептов
 | 
				
			||||||
 | 
					Usage @1 of @2=использование  @1 из @2
 | 
				
			||||||
 | 
					Recipe @1 of @2=Рецепт @1 из @2
 | 
				
			||||||
 | 
					Burning time: @1=Время горения: @1
 | 
				
			||||||
 | 
					Cooking time: @1=Время преготовления: @1
 | 
				
			||||||
 | 
					Any item belonging to the group(s): @1=Любой элемент из группы: @1
 | 
				
			||||||
 | 
					Recipe's too big to be displayed (@1x@2)=Рецепт слишком большой для показа (@1x@2)
 | 
				
			||||||
 | 
					Shapeless=Бесформенный
 | 
				
			||||||
 | 
					Cooking=Приготовление
 | 
				
			||||||
 | 
					No item to show=Нет элемента для показа
 | 
				
			||||||
 | 
					Collect items to reveal more recipes=Собирайте предметы, чтобы раскрыть больше рецептов
 | 
				
			||||||
 | 
					Show recipe(s) of the pointed node=Показать рецепт(ы) выбранной ноды
 | 
				
			||||||
 | 
					No node pointed=Не указана нода
 | 
				
			||||||
 | 
					You don't know a recipe for this node=Вы не знаете рецепт для этой ноды
 | 
				
			||||||
 | 
					No recipe for this node=Нет рецептов для этой ноды
 | 
				
			||||||
							
								
								
									
										90
									
								
								locale/de.po
									
									
									
									
									
								
							
							
						
						@@ -1,90 +0,0 @@
 | 
				
			|||||||
# German translation for craftguide mod.
 | 
					 | 
				
			||||||
# Copyright (C) 2018
 | 
					 | 
				
			||||||
# This file is distributed under the same license as the craftguide package.
 | 
					 | 
				
			||||||
# codexp <codexp@gmx.net>, 2018.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#, fuzzy
 | 
					 | 
				
			||||||
msgid ""
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
"Project-Id-Version: 1.27\n"
 | 
					 | 
				
			||||||
"Report-Msgid-Bugs-To: \n"
 | 
					 | 
				
			||||||
"POT-Creation-Date: 2018-03-23 00:17+0100\n"
 | 
					 | 
				
			||||||
"PO-Revision-Date: \n"
 | 
					 | 
				
			||||||
"Last-Translator: \n"
 | 
					 | 
				
			||||||
"Language-Team: \n"
 | 
					 | 
				
			||||||
"Language: German\n"
 | 
					 | 
				
			||||||
"MIME-Version: 1.0\n"
 | 
					 | 
				
			||||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
					 | 
				
			||||||
"Content-Transfer-Encoding: 8bit\n"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Unknown Item (@1)"
 | 
					 | 
				
			||||||
msgstr "Unbekannter Gegenstand (@1)"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Any item belonging to the group(s)"
 | 
					 | 
				
			||||||
msgstr "Beliebiger Gegenstand aus der Gruppe"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Cooking time"
 | 
					 | 
				
			||||||
msgstr "Kochzeit"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Burning time"
 | 
					 | 
				
			||||||
msgstr "Brennzeit"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Alternate"
 | 
					 | 
				
			||||||
msgstr "Andere"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Recipe @1 of @2"
 | 
					 | 
				
			||||||
msgstr "Rezept @1 von @2"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid ""
 | 
					 | 
				
			||||||
"Recipe is too big to\n"
 | 
					 | 
				
			||||||
"be displayed (@1x@2)"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
"Rezept ist zu groß\n"
 | 
					 | 
				
			||||||
"für die Anzeige (@1x@2)"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Search"
 | 
					 | 
				
			||||||
msgstr "Suche"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Reset"
 | 
					 | 
				
			||||||
msgstr "Zurücksetzen"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Increase window size"
 | 
					 | 
				
			||||||
msgstr "Fenster vergrößern"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Decrease window size"
 | 
					 | 
				
			||||||
msgstr "Fenster verkleinern"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Previous page"
 | 
					 | 
				
			||||||
msgstr "Vorherige Seite"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Next page"
 | 
					 | 
				
			||||||
msgstr "Nächste Seite"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "No item to show"
 | 
					 | 
				
			||||||
msgstr "Nichts anzuzeigen"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Crafting Guide"
 | 
					 | 
				
			||||||
msgstr "Rezeptbuch"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Crafting Guide Sign"
 | 
					 | 
				
			||||||
msgstr "Rezepttafel"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Shows a list of available crafting recipes, cooking recipes and fuels"
 | 
					 | 
				
			||||||
msgstr "Zeigt eine Liste von verfügbaren Rezepten, Kochrezepten und Brennmaterialien"
 | 
					 | 
				
			||||||
							
								
								
									
										91
									
								
								locale/ms.po
									
									
									
									
									
								
							
							
						
						@@ -1,91 +0,0 @@
 | 
				
			|||||||
# SOME DESCRIPTIVE TITLE.
 | 
					 | 
				
			||||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 | 
					 | 
				
			||||||
# This file is distributed under the same license as the PACKAGE package.
 | 
					 | 
				
			||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
msgid ""
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
"Project-Id-Version: craftguide\n"
 | 
					 | 
				
			||||||
"Report-Msgid-Bugs-To: \n"
 | 
					 | 
				
			||||||
"POT-Creation-Date: 2018-03-23 18:35+0100\n"
 | 
					 | 
				
			||||||
"PO-Revision-Date: 2018-04-18 02:02+0800\n"
 | 
					 | 
				
			||||||
"Language-Team: muhdnurhidayat <mnh48mail@gmail.com>\n"
 | 
					 | 
				
			||||||
"MIME-Version: 1.0\n"
 | 
					 | 
				
			||||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
					 | 
				
			||||||
"Content-Transfer-Encoding: 8bit\n"
 | 
					 | 
				
			||||||
"X-Generator: Poedit 2.0.6\n"
 | 
					 | 
				
			||||||
"Last-Translator: MuhdNurHidayat (MNH48) <mnh48mail@gmail.com>\n"
 | 
					 | 
				
			||||||
"Plural-Forms: nplurals=1; plural=0;\n"
 | 
					 | 
				
			||||||
"Language: ms\n"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Unknown Item (@1)"
 | 
					 | 
				
			||||||
msgstr "Item Tidak Diketahui (@1)"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Any item belonging to the group(s)"
 | 
					 | 
				
			||||||
msgstr "Sebarang item dari kumpulan"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Cooking time"
 | 
					 | 
				
			||||||
msgstr "Tempoh memasak"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Burning time"
 | 
					 | 
				
			||||||
msgstr "Tempoh pembakaran"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Alternate"
 | 
					 | 
				
			||||||
msgstr "Resipi lain"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Recipe @1 of @2"
 | 
					 | 
				
			||||||
msgstr "Resipi @1 dari @2"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid ""
 | 
					 | 
				
			||||||
"Recipe is too big to\n"
 | 
					 | 
				
			||||||
"be displayed (@1x@2)"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
"Resipi terlalu besar\n"
 | 
					 | 
				
			||||||
"untuk paparan (@1x@2)"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Search"
 | 
					 | 
				
			||||||
msgstr "Cari"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Reset"
 | 
					 | 
				
			||||||
msgstr "Set semula"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Increase window size"
 | 
					 | 
				
			||||||
msgstr "Besarkan saiz tetingkap"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Decrease window size"
 | 
					 | 
				
			||||||
msgstr "Kecilkan saiz tetingkap"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Previous page"
 | 
					 | 
				
			||||||
msgstr "Halaman sebelumnya"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Next page"
 | 
					 | 
				
			||||||
msgstr "Halaman seterusnya"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "No item to show"
 | 
					 | 
				
			||||||
msgstr "Tiada item untuk dipaparkan"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Crafting Guide"
 | 
					 | 
				
			||||||
msgstr "Panduan Pertukangan"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Crafting Guide Sign"
 | 
					 | 
				
			||||||
msgstr "Papan Tanda Panduan Pertukangan"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Shows a list of available crafting recipes, cooking recipes and fuels"
 | 
					 | 
				
			||||||
msgstr "Menunjukkan senarai resipi pertukangan, resipi memasak dan bahan api yang ada"
 | 
					 | 
				
			||||||
							
								
								
									
										90
									
								
								locale/ru.po
									
									
									
									
									
								
							
							
						
						@@ -1,90 +0,0 @@
 | 
				
			|||||||
# Russian translation for craftguide mod.
 | 
					 | 
				
			||||||
# Copyright (C) 2018
 | 
					 | 
				
			||||||
# This file is distributed under the same license as the craftguide package.
 | 
					 | 
				
			||||||
# codexp <codexp@gmx.net>, 2018.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#, fuzzy
 | 
					 | 
				
			||||||
msgid ""
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
"Project-Id-Version: 1.27\n"
 | 
					 | 
				
			||||||
"Report-Msgid-Bugs-To: \n"
 | 
					 | 
				
			||||||
"POT-Creation-Date: 2018-03-23 00:17+0100\n"
 | 
					 | 
				
			||||||
"PO-Revision-Date: \n"
 | 
					 | 
				
			||||||
"Last-Translator: \n"
 | 
					 | 
				
			||||||
"Language-Team: \n"
 | 
					 | 
				
			||||||
"Language: Russian\n"
 | 
					 | 
				
			||||||
"MIME-Version: 1.0\n"
 | 
					 | 
				
			||||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
					 | 
				
			||||||
"Content-Transfer-Encoding: 8bit\n"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Unknown Item (@1)"
 | 
					 | 
				
			||||||
msgstr "Неизвестный элемент (@1)"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Any item belonging to the group(s)"
 | 
					 | 
				
			||||||
msgstr "Любой элемент из группы"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Cooking time"
 | 
					 | 
				
			||||||
msgstr "Время преготовления"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Burning time"
 | 
					 | 
				
			||||||
msgstr "Время горения"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Alternate"
 | 
					 | 
				
			||||||
msgstr "Другой"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Recipe @1 of @2"
 | 
					 | 
				
			||||||
msgstr "Рецепт @1 из @2"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid ""
 | 
					 | 
				
			||||||
"Recipe is too big to\n"
 | 
					 | 
				
			||||||
"be displayed (@1x@2)"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
"Рецепт слишком большой\n"
 | 
					 | 
				
			||||||
"для показа (@1x@2)"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Search"
 | 
					 | 
				
			||||||
msgstr "Поиск"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Reset"
 | 
					 | 
				
			||||||
msgstr "Сброс"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Increase window size"
 | 
					 | 
				
			||||||
msgstr "Увеличить окно"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Decrease window size"
 | 
					 | 
				
			||||||
msgstr "Уменьшить окно"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Previous page"
 | 
					 | 
				
			||||||
msgstr "Предыдущая страница"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Next page"
 | 
					 | 
				
			||||||
msgstr "Следущая страница"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "No item to show"
 | 
					 | 
				
			||||||
msgstr "Нет элемента для показа"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Crafting Guide"
 | 
					 | 
				
			||||||
msgstr "книга рецептов крафта"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Crafting Guide Sign"
 | 
					 | 
				
			||||||
msgstr "табличка рецептов крафта"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Shows a list of available crafting recipes, cooking recipes and fuels"
 | 
					 | 
				
			||||||
msgstr "Показывает список рецептов крафта, преготовления и топливо"
 | 
					 | 
				
			||||||
							
								
								
									
										28
									
								
								locale/template
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					# textdomain: craftguide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Craft Guide=
 | 
				
			||||||
 | 
					Crafting Guide=
 | 
				
			||||||
 | 
					Crafting Guide Sign=
 | 
				
			||||||
 | 
					Usage @1 of @2=
 | 
				
			||||||
 | 
					Recipe @1 of @2=
 | 
				
			||||||
 | 
					No recipes=
 | 
				
			||||||
 | 
					No usages=
 | 
				
			||||||
 | 
					Burning time: @1=
 | 
				
			||||||
 | 
					Cooking time: @1=
 | 
				
			||||||
 | 
					Replaced by @1 on smelting=
 | 
				
			||||||
 | 
					Replaced by @1 on burning=
 | 
				
			||||||
 | 
					Replaced by @1 on crafting=
 | 
				
			||||||
 | 
					Repairable by step of @1=
 | 
				
			||||||
 | 
					Any item belonging to the group(s): @1=
 | 
				
			||||||
 | 
					Recipe's too big to be displayed (@1x@2)=
 | 
				
			||||||
 | 
					Shapeless=
 | 
				
			||||||
 | 
					Cooking=
 | 
				
			||||||
 | 
					No item to show=
 | 
				
			||||||
 | 
					Collect items to reveal more recipes=
 | 
				
			||||||
 | 
					Show recipe(s) of the pointed node=
 | 
				
			||||||
 | 
					No node pointed=
 | 
				
			||||||
 | 
					You don't know a recipe or usage for this item=
 | 
				
			||||||
 | 
					No recipe or usage for this item=
 | 
				
			||||||
 | 
					Digging=
 | 
				
			||||||
 | 
					Digging Chance=
 | 
				
			||||||
 | 
					@1 of chance to drop=
 | 
				
			||||||
@@ -1,88 +0,0 @@
 | 
				
			|||||||
# SOME DESCRIPTIVE TITLE.
 | 
					 | 
				
			||||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 | 
					 | 
				
			||||||
# This file is distributed under the same license as the PACKAGE package.
 | 
					 | 
				
			||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#, fuzzy
 | 
					 | 
				
			||||||
msgid ""
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
"Project-Id-Version: PACKAGE VERSION\n"
 | 
					 | 
				
			||||||
"Report-Msgid-Bugs-To: \n"
 | 
					 | 
				
			||||||
"POT-Creation-Date: 2018-03-23 18:35+0100\n"
 | 
					 | 
				
			||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 | 
					 | 
				
			||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 | 
					 | 
				
			||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
 | 
					 | 
				
			||||||
"Language: \n"
 | 
					 | 
				
			||||||
"MIME-Version: 1.0\n"
 | 
					 | 
				
			||||||
"Content-Type: text/plain; charset=CHARSET\n"
 | 
					 | 
				
			||||||
"Content-Transfer-Encoding: 8bit\n"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Unknown Item (@1)"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Any item belonging to the group(s)"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Cooking time"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Burning time"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Alternate"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Recipe @1 of @2"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid ""
 | 
					 | 
				
			||||||
"Recipe is too big to\n"
 | 
					 | 
				
			||||||
"be displayed (@1x@2)"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Search"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Reset"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Increase window size"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Decrease window size"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Previous page"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Next page"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "No item to show"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Crafting Guide"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Crafting Guide Sign"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: init.lua
 | 
					 | 
				
			||||||
msgid "Shows a list of available crafting recipes, cooking recipes and fuels"
 | 
					 | 
				
			||||||
msgstr ""
 | 
					 | 
				
			||||||
							
								
								
									
										2
									
								
								mod.conf
									
									
									
									
									
								
							
							
						
						@@ -1 +1,3 @@
 | 
				
			|||||||
name = craftguide
 | 
					name = craftguide
 | 
				
			||||||
 | 
					optional_depends = sfinv, sfinv_buttons
 | 
				
			||||||
 | 
					description = The most comprehensive Crafting Guide on Minetest
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
#For enabling some options of craftguide.
 | 
					# The progressive mode shows recipes you can craft from items you ever had in your inventory.
 | 
				
			||||||
 | 
					 | 
				
			||||||
craftguide_progressive_mode	(Progressive Mode)	bool false
 | 
					craftguide_progressive_mode	(Progressive Mode)	bool false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Integration in the default Minetest Game inventory.
 | 
				
			||||||
craftguide_sfinv_only		(Sfinv only)		bool false
 | 
					craftguide_sfinv_only		(Sfinv only)		bool false
 | 
				
			||||||
							
								
								
									
										8
									
								
								test.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
						"items": [
 | 
				
			||||||
 | 
							"default:stone, default:stone, default:stone",
 | 
				
			||||||
 | 
							"default:stone,              , default:stone",
 | 
				
			||||||
 | 
							"default:stone, default:stone, default:stone"
 | 
				
			||||||
 | 
						],
 | 
				
			||||||
 | 
						"result": "default:cobble 16"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 169 B After Width: | Height: | Size: 68 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/craftguide_bg_full.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								textures/craftguide_clear_icon_hover.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								textures/craftguide_next_icon_hover.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.8 KiB  | 
| 
		 Before Width: | Height: | Size: 728 B  | 
| 
		 Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 5.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								textures/craftguide_search_icon_hover.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 7.1 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								textures/craftguide_selected.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 912 B  | 
| 
		 Before Width: | Height: | Size: 685 B After Width: | Height: | Size: 2.3 KiB  | 
| 
		 Before Width: | Height: | Size: 685 B  | 
| 
		 Before Width: | Height: | Size: 3.5 KiB  | 
| 
		 Before Width: | Height: | Size: 2.9 KiB  |