Compare commits

..

214 Commits
1.3 ... 1.11.2

Author SHA1 Message Date
251a8b1bc9 Show fav icon only once 2020-02-03 00:31:14 +01:00
4dd40e06f5 New favorite icons 2020-02-02 21:39:56 +01:00
f9f9988868 Fix crash in progressive mode 2020-01-23 00:22:05 +01:00
dcb479dc44 Fix color in HUD 2020-01-22 00:06:47 +01:00
82bb95387e style 2020-01-12 23:30:57 +01:00
8626584dbd Check formspec_version instead of CORE_VERSION 2020-01-12 23:06:53 +01:00
f7ccd282be Drop MT <= 5.0 support and fix positioning 2020-01-12 22:30:12 +01:00
c9773f1ee9 Fix crash 2020-01-12 10:01:52 +01:00
001176b124 Add forgotte files 2020-01-07 01:48:17 +01:00
2c2dbc9efc Update License 2020-01-07 01:12:04 +01:00
24d8faec59 Minor style cleaning 2020-01-07 00:33:55 +01:00
58b2f49c8c Add bookmarks 2020-01-07 00:17:00 +01:00
a823a200b7 . 2020-01-01 22:10:06 +01:00
3c3733a226 Minor cleaning 2019-12-17 02:09:40 +01:00
55f919ab8f Minor fix 2019-12-17 01:51:55 +01:00
937b40aae4 Remove recipe from caches after calling clear_craft() 2019-12-17 01:46:22 +01:00
97036d9f9a New formspec style 2019-12-17 01:33:40 +01:00
17a8c5ddd8 Merge branch 'master' of https://github.com/minetest-mods/craftguide 2019-12-09 21:16:47 +01:00
9fb5a93b2b Style 2019-12-09 21:16:41 +01:00
00a79d26e5 Fix comparing items with their aliases (#95) 2019-12-03 13:54:56 +01:00
303aa3ef91 Style cleaning 2019-11-27 13:36:06 +01:00
89059f20b6 Reorder formspec elements 2019-11-10 16:11:29 +01:00
0d2af529ef Add forgotten files 2019-11-05 18:34:26 +01:00
7a7bb8dc51 Remove brackets 2019-11-03 19:16:29 +01:00
4241c89c17 http_post_data -> export_url 2019-11-01 02:04:35 +01:00
70d38d1c63 Minor cleaning 2019-11-01 01:56:35 +01:00
92c5b1ab8e Add progress bar info 2019-10-31 23:39:20 +01:00
62d2b302ed Add more accurate caching information 2019-10-25 13:41:56 +02:00
8b4ef8a4b7 Improve search filter accuracy 2019-10-25 01:43:40 +02:00
35b2ecfdc1 Implement visual feedbacks on nav buttons 2019-10-25 01:15:51 +02:00
edbed14d9b Fix non-shown recipes 2019-10-22 12:53:47 +02:00
4e4cb0625c Merge branch 'master' of https://github.com/minetest-mods/craftguide 2019-10-15 15:30:59 +02:00
77dbe040b8 Fix tooltip 2019-10-15 15:30:52 +02:00
d6bd17f6b3 Updated Italian locale (#94)
* Updated Italian locale
2019-10-15 00:42:44 +02:00
b12502a7da Small fixes 2019-10-13 18:31:46 +02:00
e707db9ab9 Fix sfinv grid positioning 2019-10-13 00:27:31 +02:00
270dc19ec1 Fix crash with groups_to_items() 2019-10-12 13:21:46 +02:00
c9c2bf03de Small precisions 2019-10-11 02:45:51 +02:00
ee1eac039e Minor cleaning 2019-10-10 17:50:29 +02:00
4fb4fe1763 Add support for dropped items + support for URL fetched recipes +
bugfixes
2019-10-10 17:34:43 +02:00
98a652259b test 2019-10-09 00:16:42 +02:00
a8ad0435fa Add test file 2019-10-09 00:11:23 +02:00
41021895ce Minor cleaning 2019-10-08 14:56:45 +02:00
abd9274798 Fix crash in progressive mode + refacto 2019-10-08 00:39:28 +02:00
e16c23c29c Minor refactoring 2019-10-05 00:53:33 +02:00
90adfb42c1 Minor refactoring 2019-10-05 00:32:48 +02:00
c32feb44fc Update template 2019-10-05 00:23:46 +02:00
36878ce9a0 Show item drops 2019-10-05 00:09:29 +02:00
8b5de4f7f7 Minor refactoring 2019-10-04 23:11:07 +02:00
9e3997c689 Remove infos from info panel 2019-10-04 22:54:41 +02:00
ce74f49773 Add prev/next buttons for recipes/usages 2019-10-04 22:40:23 +02:00
fb4805ccf0 Add button background only if engine >= 5.1 2019-10-04 21:50:32 +02:00
2d332913c5 Fix messages in craft command 2019-10-04 01:10:55 +02:00
5446e0dbdd Update README + API 2019-10-04 00:45:49 +02:00
16ceea1aaf Fix message 2019-10-04 00:25:10 +02:00
c570fa2337 Tune fs style 2019-10-04 00:20:20 +02:00
5d7bb6de53 Update locale template + fix craft command 2019-10-04 00:17:15 +02:00
138ac1ae2c Add missing textures 2019-10-03 23:58:27 +02:00
502318fb66 Major Interface Overhaul 2019-10-03 23:54:15 +02:00
937f5f0918 Fix aliased items once and for all(?) 2019-10-03 17:02:19 +02:00
b09870a5b2 Fix aliased items 2019-10-01 13:05:53 +02:00
9e48e9ea3e Fix missing recipes (again) 2019-09-30 18:04:50 +02:00
94637c624e Do not override alias func 2019-09-30 16:33:15 +02:00
bb6b3a4ee5 Show recipes for force-alised items 2019-09-30 11:17:01 +02:00
a50a99836a Fix version number check 2019-09-29 21:17:16 +02:00
e2134e479e Delete description file 2019-09-29 20:39:31 +02:00
3320fbdd6b Full backward compat with MT 0.4.17 2019-09-29 20:30:47 +02:00
19fb5e2691 Check compat for background[] 2019-09-29 17:23:03 +02:00
9dd63cd83a Fixed comment 2019-09-29 15:28:53 +02:00
07820fa37c Re-add accidentally removed 2019-09-29 15:24:04 +02:00
29f87f2607 Put the page number color back 2019-09-29 15:20:21 +02:00
aef1fe0dc6 Fix non-shown aliased recipes 2019-09-29 15:16:41 +02:00
22ff82cc89 Merge pull request #90 from h4ml3t/Italian
Add Italian locale
2019-09-29 13:41:11 +02:00
dd98cb2cb3 Italian locale 2019-09-29 13:30:22 +02:00
f184341663 String checking 2019-09-25 16:22:38 +02:00
3f9d7bc12d Table check 2019-09-25 12:44:49 +02:00
60b09a27f7 Ensure that no fuel usages are not shown 2019-09-19 13:38:07 +02:00
a936452e21 Fix non-shown recipes 2019-09-18 20:09:03 +02:00
768e06e2d0 why the hell the page number not colorized anymore? 2019-09-16 12:56:04 +02:00
732535c9da Another attempt to fix nil crash 2019-09-16 12:33:28 +02:00
7a8b8d19df Fix possible nil crash 2019-09-15 22:39:08 +02:00
9dcccadfc2 Minor fix 2019-09-12 13:10:31 +02:00
7c891ff2b6 Small fix for custom recipe 2019-09-11 19:39:49 +02:00
06bef9777a Minor cleaning 2019-09-11 17:25:29 +02:00
738c2140a7 Show itemstring for unknown item 2019-09-11 16:35:56 +02:00
2ffef6794a Do not require to specify width in custom recipes 2019-09-11 16:28:37 +02:00
fb1b0cf869 Notification success: do not depend on dtime 2019-09-11 13:43:13 +02:00
59b806c9c4 Progressive: Update items in sfinv without page change 2019-09-11 12:25:28 +02:00
db626eaece Small cleaning 2019-09-10 17:27:59 +02:00
3b3da66a0d Improve tooltip for toolrepair 2019-09-10 16:01:00 +02:00
84795a6523 Fix tooltip for replacements 2019-09-10 12:37:39 +02:00
fc3f1fece2 Code cleaning 2019-09-10 12:29:32 +02:00
00a88a320a craftguide can show repairable tools 2019-09-10 00:05:55 +02:00
19b8e28afb Code cleaning 2019-09-09 21:56:37 +02:00
12e35f80f0 Fix replace tooltip 2019-09-09 19:30:44 +02:00
11da33ca76 Add comment 2019-09-09 19:10:33 +02:00
08e758aca5 Fix shapeless width bounds 2019-09-09 19:02:09 +02:00
727758b816 craftguide can read replacements! 2019-09-09 19:01:52 +02:00
b026e94d6e Fix custom recipe icon position 2019-09-08 12:48:46 +02:00
b8c79d1765 Change sign texture again 2019-09-08 12:31:45 +02:00
742627aa8c Add more doc to custom recipes 2019-09-08 12:28:30 +02:00
bf616f5d21 Add fallback background is not -dev version 2019-09-07 13:02:42 +02:00
22787e41e3 Change sign texture 2019-09-06 21:19:40 +02:00
6b76c8c10f API to set a custom background 2019-09-06 17:56:41 +02:00
5f68d2de11 Improve the interface 2019-09-06 17:06:23 +02:00
ea12d5ca14 Optimize textures with oxipng 2019-09-06 16:33:19 +02:00
3d77ec58b4 Ability to register custom crafts dynamically 2019-09-06 15:51:30 +02:00
83151cb394 More interface fine-tuning 2019-09-06 13:31:50 +02:00
337ac898cd Fine-tune items positioning + Remove zoom in/out features 2019-09-05 21:04:27 +02:00
cb0200a222 Small cleanup 2019-09-05 15:02:38 +02:00
ae4b15a748 Improve grid display 2019-09-05 14:42:35 +02:00
2fa14ae146 Code cleaning 2019-08-31 13:34:54 +02:00
8b86dfc857 Fine-tune HUD 2019-08-30 18:36:34 +02:00
c468ab22fd Update mod.conf 2019-08-30 17:20:39 +02:00
d324c5f1e5 Progressive mode: Add a Steam-like HUD success + remove useless API functions 2019-08-30 17:05:03 +02:00
dfa45789e2 Style cleaning 2019-08-29 15:41:32 +02:00
80a0d67f15 Ability to register recipes in MC-like way 2019-08-29 14:56:53 +02:00
22c5c9444e Interpret group value 0 as "not in group".
This fixes instances where items are counted as part of a group by
craftguide but not by the engine.
2019-08-29 14:47:19 +02:00
97676d094e Fix possible crash 2019-06-30 19:42:32 +02:00
ca18ae0e3a Fix nil item crash in get_tooltip() - Fixes #84, regression caused by d950c71db (@pauloue) 2019-06-30 16:37:09 +02:00
e710fcd483 Small optimization 2019-06-23 01:42:12 +02:00
a2e4f20791 Items with no recipes but with usages are shown 2019-06-23 01:25:18 +02:00
22a85f50c1 Sugar 2019-05-08 20:57:45 +02:00
0271f61fc2 Change tooltip format 2019-03-21 17:44:32 +01:00
84756af3a1 Opens the stereotypes to the API 2019-03-21 17:34:20 +01:00
9dc656d5a2 Fix broken assert() 2019-03-21 00:21:11 +01:00
4c0371c5cc Progressive mode: Fix crash on player leaving 2019-03-14 14:11:44 +01:00
b6181ebd7a Minor cleanup 2019-03-13 16:56:35 +01:00
eb7292da7a 2×2 for shapeless recipe w/ <= 4 items 2019-03-13 15:22:45 +01:00
9df355b899 Add more assert checks 2019-03-12 16:54:26 +01:00
a242f6c61c Revert some changes 2019-03-11 03:01:37 +01:00
c9ebd5c069 Cleanup 2019-03-10 16:27:36 +01:00
054a7ab3af Update russian translations 2019-03-07 13:47:41 +01:00
b1a67eb632 Add examples in doc 2019-03-07 13:43:47 +01:00
e0e57b45ea Quick fix 2019-03-04 01:19:13 +01:00
3f7ad71e00 Add an API for search filters 2019-03-03 17:11:02 +01:00
eb2a81b8b5 Allow special search filters by groups
Using <optional name>:groups=<group_name1,group_name2,...>
2019-03-01 19:14:43 +01:00
92daae3e95 Replace group with item in item's usages 2019-03-01 17:48:51 +01:00
799c0c7038 Update settingtypes.txt 2019-02-22 15:28:41 +01:00
8b79f32150 Update German translation 2019-02-22 15:28:41 +01:00
183a9ff7a1 Fix get_filtered_items again 2019-02-22 15:28:36 +01:00
cdc8e410b6 Add french translations, revise others 2019-02-21 16:59:07 +01:00
7219a6096b Minor cleanup 2019-02-21 15:31:28 +01:00
7f44517701 Fix alternate button not shown for too large recipes 2019-02-21 01:54:15 +01:00
5e4a362a15 Fix some crash 2019-02-21 01:44:09 +01:00
058cd05ed7 Separate custom_crafts tables from main table 2019-02-21 01:08:37 +01:00
fa30a0d076 Add an API for custom formspec elements 2019-02-21 01:02:59 +01:00
92cf2307db Progressive: do not show items that you didn't get 2019-02-20 18:11:59 +01:00
bfe99092db Cleanup and optimizations 2019-02-18 01:49:05 +01:00
97e6eceb75 Progressive: Poll new items every 0.5s 2019-02-16 01:52:54 +01:00
d6432f53bb Add a comment on the item polling 2019-02-13 14:32:36 +01:00
c62994f9af Split API doc in separate file 2019-02-13 14:29:08 +01:00
8f6f8dda7e Use engine translator, ditch intllib 2019-02-13 14:16:55 +01:00
40b5f8725a Fix some glitch 2019-02-13 14:06:33 +01:00
0956e86d73 Check also the 'craftpreview' list 2019-02-13 01:30:34 +01:00
07bc14e516 Track new discovered items all the time 2019-02-13 01:10:49 +01:00
b3bba5c2ff Fix get_filtered_items() 2019-02-13 01:05:21 +01:00
4560457504 Mitigate the performance regression since fc2d2e5 2019-02-11 23:52:31 +01:00
3f44ae00d2 Remove demo custom recipe 2019-02-11 01:22:45 +01:00
1ba1e41dcd Progressive: Add a better error message for empty items list 2019-02-11 00:30:06 +01:00
3cf4bef83a Shorten function name 2019-02-11 00:22:00 +01:00
c4272d8d24 Add formspec escape, apply proper format strings 2019-02-11 00:18:37 +01:00
aac3e3f693 Add API call to open crafting guide (#59) 2019-02-11 00:01:32 +01:00
fc2d2e585c Fix issue #60 2019-02-10 23:07:28 +01:00
e37f1df6d3 Fix error message in progressive mode 2019-02-10 20:37:24 +01:00
6e744b44b1 Few minor optimizations 2019-02-07 16:08:50 +01:00
3498cf3f86 Update license file 2019-02-07 15:54:15 +01:00
7757eb72fd Merge pull request #57 from pauloue/fixes
Misc. fixes and refactors
2019-02-07 14:19:58 +01:00
a7dd13994f remove shapeless, minor refactors 2019-02-06 22:59:38 -05:00
85ece2c8b9 filter /craft recipes, fix crash, fix sfinv form 2019-02-06 15:05:33 -05:00
65a8707a69 Repair the /craft command 2019-02-06 02:02:41 +01:00
3e9e16b661 Minor cleaning 2019-02-06 01:26:32 +01:00
4289dea108 Separate recipe filters and progressive mode 2019-02-03 16:17:02 +01:00
5625a0cb1c Remove superfluous call 2019-01-31 01:10:09 +01:00
5e8079b2e8 Saving p_items not necessary 2019-01-30 02:14:11 +01:00
fd375c92b3 Init data when player joins 2019-01-30 02:02:09 +01:00
7fc2d3a96a Ensure sfinv is loaded 2019-01-27 16:32:48 +01:00
c1b1bef263 Progressive mode: Remember discovered recipes 2019-01-25 02:43:33 +01:00
e6268a395f Empty data when player leaves 2019-01-22 02:03:01 +01:00
5d73794096 Localize formspec string formats 2019-01-22 01:59:54 +01:00
8a9f857204 Fix API doc 2019-01-22 01:51:17 +01:00
d950c71dbc Refactors, optimizations and fixes 2019-01-22 01:45:21 +01:00
5ee1bea4ce Progressive mode: Add a name to filters 2019-01-20 02:13:30 +01:00
61ae85a09c Progressive mode: Add functions in API to add/set/get filters 2019-01-18 17:39:10 +01:00
c4fe467e6f Remove wood group 2019-01-18 15:56:52 +01:00
ed11bf3281 Fix tooltip 2019-01-15 14:38:15 +01:00
18affcb00e Allow searching same string again in progressive mode 2019-01-13 18:30:21 +01:00
fa8d602a64 Fix sfinv mode bg 2019-01-13 02:40:18 +01:00
0959eaef0b Update License 2019-01-13 01:50:26 +01:00
157c6e5004 get_formspec -> make_formspec 2019-01-13 01:48:14 +01:00
50317cc20e Progressive: refactor, fix some bugs, add API function 2019-01-13 01:37:23 +01:00
1def071029 Fix background 2019-01-13 01:18:41 +01:00
134fbf382d Do not search again for same string 2019-01-11 01:54:17 +01:00
70682b230b Hardset button size to 1.1 2019-01-09 21:11:06 +01:00
a07c8bc48e Merge pull request #43 from pauloue/playerdata
Separate player data
2019-01-09 00:20:10 +01:00
e0db5834b3 Separate player data 2019-01-08 14:28:53 -05:00
7f6dd430ce Various fixes
- Include recipes with matching groups in usages
- Fix group_to_item()
- Fix custom recipes not showing in usages
2019-01-08 01:28:52 +01:00
d1ee125a1a Remove erroneous quotation marks 2019-01-04 02:19:29 +01:00
b980dccaee Use of string.format instead of concat 2019-01-02 18:57:35 +01:00
4c02a5e5f5 Merge pull request #41 from pauloue/fixes2
Fix two bugs
2019-01-02 12:27:12 +01:00
f8b7a72635 Fix alternate button not working in some cases 2019-01-02 01:11:08 -05:00
1034fd7c0e Fix repeated clicks of same item not toggling usages mode 2019-01-02 00:35:21 -05:00
4bca02f0db Add assertions 2018-12-30 21:52:13 +01:00
4b97b08aa7 Variable naming 2018-12-30 21:22:01 +01:00
7745ccd863 Not really important 2018-12-30 21:10:39 +01:00
65b51ad3e5 Do not alternate if X > 1 2018-12-30 21:00:04 +01:00
897fc3a21d Show usages for fuel-able items with no recipes 2018-12-30 20:43:26 +01:00
e1eedb69bb Minor optimization 2018-12-19 18:36:09 +01:00
f188580b8c Correct checking 2018-12-17 22:48:53 +01:00
783a84d3c6 Define custom recipe's width inside craft declaration 2018-12-17 19:17:43 +01:00
74a2750a4d Fix tooltip 2018-12-17 01:14:55 +01:00
9da500ce2c ... and make the other functions local 2018-12-17 01:02:51 +01:00
610117de08 Make craftguide a global var 2018-12-17 00:38:58 +01:00
53833af635 Add an API for custom recipes 2018-12-17 00:37:49 +01:00
34 changed files with 2327 additions and 1152 deletions

View File

@ -7,4 +7,12 @@ read_globals = {
"sfinv",
"sfinv_buttons",
"vector",
"string",
"table",
"ItemStack",
}
globals = {
"craftguide",
"core",
}

214
API.md Normal file
View 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`.

View File

@ -1,38 +1,22 @@
## ![Preview1](http://i.imgur.com/fIPNYkb.png) Crafting Guide ##
# ![Preview1](http://i.imgur.com/fIPNYkb.png) Crafting Guide
#### `craftguide` is the most comprehensive crafting guide on Minetest. ####
#### Consult the [Minetest Wiki](http://wiki.minetest.net/Crafting_guide) for more details. ####
#### `craftguide` is the most comprehensive crafting guide on Minetest.
#### Consult the [Minetest Wiki](http://wiki.minetest.net/Crafting_guide) for more details.
This crafting guide is a blue book named *"Crafting Guide"* or a wooden sign.
This crafting guide features a **progressive mode**.
The progressive mode is a Terraria-like system that only shows recipes you can craft from items in inventory.
The progressive mode can be enabled with `craftguide_progressive_mode = true` in `minetest.conf`.
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`.
`craftguide` is also integrated in `sfinv` (Minetest Game inventory) when you enable it with
`craftguide` is also integrated in `sfinv` (Minetest Game inventory). To enable it:
`craftguide_sfinv_only = true` in `minetest.conf`.
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).
`craftguide` has an API to register **custom recipes**. Demos:
#### Registering a custom crafting type ####
```Lua
craftguide.register_craft_type("digging", {
description = S("Digging"),
icon = "default_tool_steelpick.png",
width = 1,
})
```
Love this mod? Donations are appreciated: https://www.paypal.me/jpg84240
#### Registering a custom crafting recipe ####
```Lua
craftguide.register_craft({
type = "digging",
output = "default:cobble",
items = {"default:stone"},
})
```
![Preview2](https://i.imgur.com/bToFH38.png)
![Preview2](https://i.imgur.com/w7KMS9G.png)

View File

@ -1,3 +0,0 @@
sfinv?
sfinv_buttons?
intllib?

View File

@ -1,2 +0,0 @@
The most comprehensive Crafting Guide
on Minetest.

2662
init.lua

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -1,15 +1,28 @@
License of source code
----------------------
« Copyright © 2015-2018, Jean-Patrick Guerrero <jeanpatrick.guerrero@gmail.com>
The MIT License (MIT)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
Copyright (c) 2015-2020 Jean-Patrick Guerrero and contributors.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The Software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders X be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the Software.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Except as contained in this notice, the name of the <copyright holders> shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the <copyright holders>. »
Licenses of media (textures)
----------------------------

19
locale/craftguide.de.tr Normal file
View 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
View 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
View 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
View 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=Нет рецептов для этой ноды

View File

@ -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"

View File

@ -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"

View File

@ -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
View 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=

View File

@ -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 ""

View File

@ -1 +1,3 @@
name = craftguide
optional_depends = sfinv, sfinv_buttons
description = The most comprehensive Crafting Guide on Minetest

View File

@ -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
# Integration in the default Minetest Game inventory.
craftguide_sfinv_only (Sfinv only) bool false

8
test.json Normal file
View 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"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 B

After

Width:  |  Height:  |  Size: 68 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

BIN
textures/craftguide_fav.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 728 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 912 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 685 B

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 685 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB