Compare commits

..

268 Commits
1.0 ... 1.3.4

Author SHA1 Message Date
815651a32f Fix custom recipes display, add i3.get_current_tab(), remove some superfluous chat messages 2021-09-19 22:04:49 +02:00
b8db525dac Hide Quick Crafting scrollbars after click 2021-08-24 11:11:38 +02:00
cbf6256593 Fix potential crash 2021-08-22 02:53:39 +02:00
893959b5d4 Fix potential crash in Progressive Mode 2021-08-21 13:27:50 +02:00
8a5a14747e Fix crash related to model preview 2021-08-11 17:46:17 +02:00
b53959f177 Item compression: small fix 2021-08-10 02:10:08 +02:00
685b40f318 Update README 2021-08-10 01:57:36 +02:00
e96d279d29 Progressive Mode: minor fix + HUD bold text support 2021-08-06 04:15:43 +02:00
c87a179cb5 Minor cleaning 2021-08-06 02:56:36 +02:00
7e2256253d Fix skin_id in skins dropdown 2021-07-06 10:58:19 +02:00
f2cc874ec0 Some tweakings 2021-07-06 01:38:16 +02:00
5c96ede065 Add confirmation dialog on inventory clearing 2021-07-05 23:38:43 +02:00
1c4ae1df28 Outdated clients are now kicked ruthlessly without fallback 2021-07-05 22:45:32 +02:00
970220c561 Add .editorconfig 2021-07-05 03:32:31 +02:00
4ca50e846d Fix potential issue with progressive mode 2021-07-05 03:23:19 +02:00
0ab3dd5ffa Fix item compression setting (fix #27) 2021-07-04 18:19:49 +02:00
7820d88a30 Rename some API functions 2021-06-30 21:54:18 +02:00
34841eddf3 Small fix for search filters 2021-06-30 21:41:38 +02:00
6f588e1927 Searches are now additive (Google-like) 2021-06-30 21:23:58 +02:00
d0ff046873 Update screenshot again 2021-06-28 00:45:57 +02:00
996b39fb39 Update Screenshot 2021-06-27 21:00:56 +02:00
0e411d8696 Minor stuff 2021-06-27 06:26:30 +02:00
c69f45ecd8 Also compress moreblocks micronodes 2021-06-27 05:00:43 +02:00
a0eb4803d1 Another fix 2021-06-26 07:08:14 +02:00
ac4a7352fd Remove now useless search filter 2021-06-26 06:57:25 +02:00
c7987a6c72 Fix 2021-06-26 05:48:08 +02:00
b24411b189 Add tabs to item list 2021-06-26 04:43:28 +02:00
a1b2d03a71 Move some files 2021-06-26 03:10:05 +02:00
c3f050b737 Some fixes 2021-06-25 17:20:15 +02:00
00042c77e1 Add small check 2021-06-25 04:52:18 +02:00
c1bd944465 Split some code to own files 2021-06-25 04:41:31 +02:00
b1fff8617b Add Item Compression 2021-06-25 04:09:56 +02:00
c5dd2be569 Re-enable player animation when MT 5.5 is out 2021-06-20 02:29:50 +02:00
f2eb377d96 Fix potential issues 2021-06-20 02:07:39 +02:00
3b5c81cb3a Fix item loss if placed past slot 36 2021-06-20 00:07:14 +02:00
dde5148934 Show a tooltip for waypoints 2021-06-12 16:52:07 +02:00
ce9a29de80 Save player data at interval of 10 min 2021-05-31 22:46:02 +02:00
6ccfd52267 Safe teleport 2021-05-31 21:50:43 +02:00
d392f04c11 Small fix 2021-05-31 21:35:09 +02:00
978c2b23a2 Change the way metadata are saved 2021-05-31 20:48:12 +02:00
d612f8697d Prevent adding waypoint at same pos 2021-05-31 20:11:57 +02:00
2274b426a5 Do things the right way 2021-05-15 00:18:47 +02:00
612039cc26 Code cleaning 2021-05-14 03:26:50 +02:00
a98b0c08af Fix crash with pipeworks 2021-05-11 00:22:01 +02:00
e0166288c6 Hide hearts when damage ain't enabled 2021-05-09 16:56:49 +02:00
9ab92ba056 *Really* disable sfinv 2021-05-07 03:31:55 +02:00
8d55d89efe Chech another param 2021-05-07 00:33:34 +02:00
554acd002b Small cleaning 2021-05-02 19:22:45 +02:00
ca5cd92ff3 Update Screenshot 2021-05-01 20:38:20 +02:00
0c2d3a5cba Fix 2021-05-01 16:44:34 +02:00
5a36209ac9 Rename variable 2021-05-01 16:02:35 +02:00
666200df76 Change priv check for teleport 2021-05-01 04:10:30 +02:00
4bc1bfee8b Small fix 2021-05-01 02:23:56 +02:00
304f74c7a4 Fix 2021-05-01 02:02:07 +02:00
833d27975e More tweaks 2021-05-01 01:53:54 +02:00
d2d8be9f18 Properly change mode after granting/revoking creative 2021-05-01 01:07:17 +02:00
6fe9f96cad More tweaks 2021-05-01 00:48:49 +02:00
b0002eb7cf Some tweaks 2021-05-01 00:39:47 +02:00
7e648246eb Unify items list and inventory 2021-05-01 00:28:11 +02:00
f0b5eb7a18 UI improvements 2021-04-30 23:17:17 +02:00
859feb4105 Minor cleaning 2021-04-23 05:20:24 +02:00
ecda62fc2f Fix waypoint again (shit) 2021-04-20 03:27:37 +02:00
7c5c6f38f2 Update README 2021-04-19 21:45:39 +02:00
4d4a5ebae8 Fix waypoints 2021-04-19 21:37:08 +02:00
8fb82aedb2 Some improvements 2021-04-19 21:14:09 +02:00
297855b164 Fix potential issue with model preview 2021-04-19 04:53:50 +02:00
49e9fda9f9 Some cleaning 2021-04-15 17:46:17 +02:00
f85b0f7801 Tweaking 2021-04-12 20:34:29 +02:00
61beb77d6a Cleaning 2021-04-12 06:57:48 +02:00
8c5a83ac97 Remove unused texture 2021-04-12 05:30:22 +02:00
4a9172821d Small fix 2021-04-12 05:28:52 +02:00
a0c0a8bad7 Another fix 2021-04-12 00:38:24 +02:00
1b71a85f53 Fixed 2021-04-12 00:34:11 +02:00
eb28f3346a Cleaning 2021-04-12 00:24:55 +02:00
5110e910ff Waypoints UI overhaul 2021-04-12 00:09:04 +02:00
54c917e5c3 Minor cleaning 2021-04-11 03:28:13 +02:00
5915ab20f7 Fix tooltips for output with meta 2021-04-11 03:25:03 +02:00
7a48b93719 Support for palette_index in recipe output 2021-04-11 02:36:11 +02:00
77bac4c077 Cleaning 2021-04-10 04:41:32 +02:00
88dd9beb9d Another fix 2021-04-10 04:10:27 +02:00
a7bbfa00dd Small fix 2021-04-10 03:46:04 +02:00
1a0aab9b5e Show colored item from meta in crafting guide 2021-04-10 03:31:59 +02:00
3f6aa287d9 Show meta descriptions in crafting guide 2021-04-10 01:49:04 +02:00
eed43032bc Better chat message 2021-04-08 04:45:19 +02:00
3db6bbead0 UI improvements 2021-04-07 01:25:04 +02:00
2f5456ad21 Tweak 2021-04-07 00:37:29 +02:00
aecb325919 Fix crash 2021-04-06 22:54:29 +02:00
313fd6f217 Optimize texture 2021-04-06 22:51:14 +02:00
fd9d5ea994 Fix a bunch of things 2021-04-06 19:31:06 +02:00
56f8b68f5a Small correction 2021-04-06 17:47:17 +02:00
e244a82d04 Get rid of get_short_description 2021-04-06 17:30:25 +02:00
6fe45c0fac Rename variable 2021-04-06 04:14:40 +02:00
a372bd8a81 Small cleaning 2021-04-06 04:06:54 +02:00
ab68eff744 Optimize textures 2021-04-06 03:42:37 +02:00
84733879b4 Update README 2021-04-06 03:34:54 +02:00
c4a05272ce Minor fix 2021-04-06 03:27:36 +02:00
91b88e81af Adjusting 2021-04-06 03:10:01 +02:00
3dd4ff005c Implement Waypoints 2021-04-06 02:52:34 +02:00
3bc506d9dc Replace icons 2021-04-05 23:41:12 +02:00
1f88d1a871 Inventory design overhaul 2021-04-05 23:31:00 +02:00
e910c20ae2 Code cleaning 2021-03-29 03:08:48 +02:00
e96fffc639 Empty craft grid on trash all 2021-03-29 02:36:28 +02:00
451dde2a73 Fix some issues with register_cratf() 2021-03-26 23:36:23 +01:00
056d4a3dde Fix crash 2021-03-24 19:28:45 +01:00
9618ea64b7 More improvements 2021-03-22 21:57:02 +01:00
2d4726217a Preset texture name 2021-03-22 21:42:26 +01:00
5b83c6d726 Some UI improvements 2021-03-22 21:40:36 +01:00
756d4e2857 Change listring behavior 2021-03-16 19:34:25 +01:00
03b3c10014 Small fix 2021-03-16 18:33:01 +01:00
122b774c85 Minor tweak 2021-03-12 23:53:12 +01:00
6dfc8fe598 Fix error message 2021-03-12 23:50:17 +01:00
de4a6a6ca5 Fix hypertext sizing 2021-03-12 22:32:43 +01:00
29925efeac Minor style cleaning 2021-02-27 19:28:10 +01:00
cdd0eed116 Always show cancel button 2021-02-27 19:25:25 +01:00
a9700417f8 Fix error with skinsdb 2021-02-27 19:05:07 +01:00
d479f13ce6 Update demo video 2021-02-24 19:36:54 +01:00
7b8f02ccde Update preview image & release 1.0 2021-02-24 19:14:07 +01:00
aaa2072a6c Minor fix 2021-02-08 19:39:13 +01:00
094c83d0c4 Optimize things up 2021-02-08 19:34:18 +01:00
f7e9e987ab Update README 2021-02-08 01:32:33 +01:00
555f9e4de2 Use get_short_description 2021-02-07 01:37:09 +01:00
88c20f8a3b Code cleaning 2021-01-31 00:01:44 +01:00
3dc8e038f3 Drop support for WorldEdit eventually 2021-01-30 23:39:21 +01:00
e2102f1069 Oops 2021-01-30 00:11:22 +01:00
96882004c9 Minor tweak 2021-01-29 23:31:17 +01:00
89c2249bcb Update API 2021-01-29 02:56:28 +01:00
3e5b7cbb55 Update README 2021-01-29 02:53:49 +01:00
6e1e50ae20 Minor fix 2021-01-29 02:46:30 +01:00
62f1d17fa7 Some fixes 2021-01-29 02:34:02 +01:00
6f26524885 Minor cleaning 2021-01-29 01:46:19 +01:00
e091ca1c43 Update README 2021-01-29 01:21:33 +01:00
4deee41ef2 Fix 2021-01-29 01:14:21 +01:00
328ad308f3 Add worldedit GUI support 2021-01-29 01:09:25 +01:00
694b9237e8 Fix tabs look 2021-01-28 21:13:29 +01:00
eecb3439ab Add more API funcs 2021-01-28 21:00:08 +01:00
7c9785d448 Minor cleanup 2021-01-27 01:05:07 +01:00
797db59345 Fix sfinv issue 2021-01-26 23:36:24 +01:00
ae5164509c More gradients 2021-01-26 02:16:10 +01:00
96398cafdf Make slots and boxes look better 2021-01-26 02:01:31 +01:00
4c256095a8 Update README 2021-01-25 20:44:04 +01:00
b67005afbc Tweal player model preview 2021-01-25 20:29:38 +01:00
caa7674aaa Tweak UI 2021-01-25 20:17:40 +01:00
ee54d858c7 Fix some issues with font sizing 2021-01-25 19:30:34 +01:00
8f58e3fda2 Fix potential crash 2021-01-25 00:38:57 +01:00
9bc190443c Fix search filters 2021-01-24 23:33:37 +01:00
c7c043fcb1 Tweak heart texture 2021-01-24 22:33:50 +01:00
6a3c8b8089 Translate the mod in french 2021-01-24 19:09:18 +01:00
255b079caa Tweak values 2021-01-24 16:38:21 +01:00
49964fddae Tweak values 2021-01-24 16:22:04 +01:00
6add8a03e5 Increase hotbar count 2021-01-24 16:08:46 +01:00
fc851eade2 Minor cleanup 2021-01-24 04:48:08 +01:00
2e05628048 New heart textures 2021-01-24 04:01:10 +01:00
46c5a6fc42 Missing sound 2021-01-24 03:17:13 +01:00
90a072d6de Update template 2021-01-24 02:46:17 +01:00
cfd498be78 More UI enhancements 2021-01-24 02:19:13 +01:00
b7d001aa45 More UI enhancements 2021-01-24 02:09:15 +01:00
7402e47e77 Correct large bag size 2021-01-24 00:35:53 +01:00
7030441d5d Increase player model size 2021-01-24 00:33:19 +01:00
288821dda5 Inventory slots rework (needs very latest engine commits) 2021-01-24 00:29:11 +01:00
586b8da9de Luacheck cleanup 2021-01-23 20:54:49 +01:00
1391bad8eb Trash all locales (should be remade from scratch) 2021-01-23 20:39:29 +01:00
fc89da4276 Wording 2021-01-23 20:11:28 +01:00
e3f183b9c8 Rework search_filter (cumulative) + API doc 2021-01-23 19:59:23 +01:00
ab07ee4762 More recommendations 2021-01-23 03:35:45 +01:00
08aa5c953c Update template 2021-01-23 01:54:06 +01:00
6ba15bc555 Update template 2021-01-23 01:50:59 +01:00
6e696a6ecb Translate string 2021-01-23 01:41:48 +01:00
e1679e6461 Minor cleanup 2021-01-23 01:33:06 +01:00
eb9e30dda7 Tweaks 2021-01-23 01:16:07 +01:00
110164cc22 Add labels 2021-01-23 00:55:37 +01:00
7a9e046d44 Minor cleaning 2021-01-22 23:23:43 +01:00
839da854f5 Code cleaning 2021-01-22 20:15:41 +01:00
cb8802a5c2 Override core.is_creative_enabled 2021-01-22 19:56:12 +01:00
ef28c96a13 Fix creative priv check 2021-01-22 19:45:02 +01:00
550edbf2e4 Mention backpacks support 2021-01-22 19:14:33 +01:00
7f604c62f1 Finish bag support 2021-01-22 19:11:11 +01:00
406defae02 WIP bags 2021-01-22 17:54:53 +01:00
f06e5c3b5a Remove unused sound 2021-01-21 20:50:52 +01:00
817b424ed8 Code cleaing 2021-01-21 20:50:13 +01:00
5f6e8277e5 Change bgcolor 2021-01-21 19:55:23 +01:00
5ea3dbaab0 Code cleaning 2021-01-21 19:44:13 +01:00
99d9377b8f UI tweaks 2021-01-21 19:28:54 +01:00
383e2e55f7 Wording 2021-01-17 19:11:11 +01:00
7b125c71d2 Add test file for online recipe 2021-01-17 00:44:46 +01:00
ed3ab46846 Rename files 2021-01-17 00:38:53 +01:00
82b9a54980 Add check 2021-01-17 00:27:51 +01:00
127ab50950 Add check 2021-01-16 23:40:30 +01:00
e5c2ddfb4e Fix mispelling 2021-01-16 21:56:52 +01:00
a7a89eb3b9 Change YouTube/screenshot 2021-01-16 21:32:08 +01:00
e7cf85469d Rewrite README 2021-01-16 20:33:19 +01:00
d8c8c21fd4 Add test file for custom recipes 2021-01-16 19:47:58 +01:00
3cf2919189 Add check 2021-01-16 15:28:12 +01:00
729b489f02 Minor cleanup 2021-01-16 15:13:07 +01:00
dcd2dc73e0 Add more API funcs 2021-01-16 04:47:39 +01:00
030c921485 Improve HP display 2021-01-16 04:09:45 +01:00
e931f6121c SHow grey hearts when damaged disabled 2021-01-16 04:02:59 +01:00
e1bf417119 Wording 2021-01-16 03:46:46 +01:00
0859e9bf16 Cleanup 2021-01-16 03:41:45 +01:00
04ea2e6877 Fix bug 2021-01-16 03:37:26 +01:00
4cbd8bc44a Cleanup 2021-01-16 03:30:12 +01:00
dcd383dffd Add safeguards to i3.new_tab 2021-01-16 03:25:03 +01:00
35edbcc57a Remove unknown function in API.md 2021-01-16 03:02:54 +01:00
39ec2b987c Add API to add new tabs 2021-01-16 02:48:05 +01:00
6b30c0d8cf tweaks 2021-01-15 02:38:23 +01:00
d2a9144ba8 Debugging code 2021-01-15 01:33:24 +01:00
3132fd40b7 Fix scroll_container 2 2021-01-14 15:27:44 +01:00
b71aaf24f3 Fix scroll_container 2021-01-14 15:18:55 +01:00
c4bfe59d2f Add check 2021-01-14 15:09:09 +01:00
c3472a3580 Cleanup progressive 2021-01-14 14:53:32 +01:00
36e186c899 Fix bug in progressive mode + don't show recipes in creative mode 2021-01-14 14:44:45 +01:00
b52adb811c Fix bug with compress items 2021-01-13 22:24:44 +01:00
9901a6f8ea Cleanup 2021-01-13 22:16:46 +01:00
f2820c0328 Cleanig 2021-01-12 22:03:09 +01:00
2be1359986 meh 2021-01-12 02:32:06 +01:00
50cd768fec Remove unused variable 2021-01-12 02:28:06 +01:00
adbe14a004 Optimize 2021-01-12 02:26:28 +01:00
ba05c8d7b3 Fix potential crash 2021-01-11 23:27:02 +01:00
bb42557455 Snip long strings 2021-01-11 23:03:53 +01:00
479ec368d7 Small cleaning 2021-01-11 22:44:23 +01:00
3e48d288db Cleaning 2021-01-11 22:30:06 +01:00
4ce919d1ef Add tooltips 2021-01-11 21:59:11 +01:00
aa541c3da3 Small improvement 2021-01-10 22:55:51 +01:00
bc403798d8 Small improvement 2021-01-10 22:47:37 +01:00
1ec8d10b88 Small improvement 2021-01-10 22:40:45 +01:00
24fe985b00 Improvements 2021-01-10 22:30:25 +01:00
269dc54c47 Small tweak 2021-01-10 21:45:57 +01:00
dba46c70b9 Update README 2021-01-10 21:07:08 +01:00
24928e7343 oopsie 2021-01-10 20:59:53 +01:00
bbab3a8899 Add awards support! 2021-01-10 20:56:37 +01:00
364b3f6d11 Small cleaning 2021-01-10 18:03:17 +01:00
de41ca2a75 Small tweak 2021-01-10 03:42:30 +01:00
71e95d3008 Code cleaning 2021-01-10 01:49:35 +01:00
ece5223f24 Fix potential crash 2021-01-10 01:39:51 +01:00
efcd3277e6 Support flat player 2021-01-10 01:27:09 +01:00
ea4ae437d3 Do not hardcode animation frames 2021-01-10 01:06:40 +01:00
5c826f7ea7 Fix scrollbar 2021-01-09 22:58:22 +01:00
83d92ed402 New slot texture 2021-01-07 20:41:47 +01:00
2f9ca2d5ca Cleanup 2021-01-04 02:13:07 +01:00
4763463469 More tweaking 2021-01-03 23:22:17 +01:00
1455b1ff05 Tweak value 2021-01-03 22:53:31 +01:00
eefd2967b8 Edit README 2021-01-03 22:26:29 +01:00
0032754e46 Tweak value 2021-01-03 22:19:58 +01:00
3b89f6932c Tweak values 2021-01-03 22:16:24 +01:00
9adbcf2615 Tweak value 2021-01-03 21:35:11 +01:00
b672eeaab8 Improve interface 2021-01-03 21:28:42 +01:00
42c787ebaa Show the scrollbar 2021-01-03 21:13:28 +01:00
e46c2a64dc Some cleanup 2021-01-03 12:12:28 +01:00
da41d5bfa7 Small correction 2021-01-02 22:02:10 +01:00
63de3e4628 Update template 2021-01-02 21:40:45 +01:00
5e492c9e2a Change wording 2021-01-02 21:36:13 +01:00
b460ad58ab Add support for skinsdb 2021-01-02 21:15:18 +01:00
a97d1ce163 Minor cleanup 2021-01-02 12:51:31 +01:00
222ae80d93 Fix 2 bugs 2021-01-02 12:19:45 +01:00
9e09edd497 Better sorting 2021-01-02 12:09:54 +01:00
c30b69fd9c Fix compress/sort 2021-01-01 20:23:42 +01:00
99460530b6 Bunch of fixes 2021-01-01 18:11:00 +01:00
9b1fe9b0fe Use fgimg_middle for tabs 2020-12-31 23:04:43 +01:00
d17268a88a Update localization temmplate 2020-12-31 22:33:54 +01:00
dc6c43166c Small fix 2020-12-31 21:57:43 +01:00
28bd5a9886 Small simplification 2020-12-31 21:50:41 +01:00
d631c3edc1 Fix positioning 2020-12-31 21:04:23 +01:00
4bd445e5d3 Small fix 2020-12-31 05:46:09 +01:00
544b9810c7 Some fixes 2020-12-31 05:37:04 +01:00
bf3979cc79 Small fix 2020-12-31 05:07:42 +01:00
9aedeacf6b Fix positioning 2020-12-31 03:34:04 +01:00
fa023a4f5a meh 2020-12-31 03:24:05 +01:00
49670878ba New screenshot 2020-12-31 03:10:39 +01:00
da9b19a76f Update README 2020-12-31 03:02:35 +01:00
74 changed files with 2934 additions and 1212 deletions

9
.editorconfig Normal file
View File

@ -0,0 +1,9 @@
[*]
end_of_line = lf
[*.{lua,txt,md,json}]
charset = utf8
indent_size = 8
indent_style = tab
insert_final_newline = true
trim_trailing_whitespace = true

View File

@ -1,10 +1,14 @@
unused_args = false
allow_defined_top = true
ignore = {
"get_debug_grid",
}
read_globals = {
"minetest",
"default",
"armor",
"skins",
"awards",
"vector",
"string",
"table",
@ -12,6 +16,8 @@ read_globals = {
}
globals = {
"craftguide",
"i3",
"core",
"sfinv",
"unified_inventory",
}

127
API.md
View File

@ -1,5 +1,66 @@
## API
### Custom tabs
#### `i3.new_tab(def)`
Custom tabs can be added to the `i3` inventory as follow (example):
```Lua
i3.new_tab {
name = "stuff",
description = "Stuff",
image = "image.png", -- Optional, adds an image next to the tab description
-- Determine if the tab is visible by a player, `false` or `nil` hide the tab
access = function(player, data)
local name = player:get_player_name()
if name == "singleplayer" then
return false
end
end,
formspec = function(player, data, fs)
fs("label[3,1;This is just a test]")
end,
fields = function(player, data, fields)
end,
}
```
- `player` is an `ObjectRef` to the user.
- `data` are the user data.
- `fs` is the formspec table which is callable with a metamethod. Each call adds a new entry.
#### `i3.set_fs(player[, extra_formspec])`
Updates the current formspec. `extra_formspec` adds an additional formspec string.
#### `i3.remove_tab(tabname)`
Deletes a tab by name.
#### `i3.get_current_tab(player)`
Returns the current player tab. `player` is an `ObjectRef` to the user.
#### `i3.set_tab(player[, tabname])`
Sets the current tab by name. `player` is an `ObjectRef` to the user.
`tabname` can be omitted to get an empty tab.
#### `i3.override_tab(tabname, def)`
Overrides a tab by name. `def` is the tab definition like seen in `i3.set_tab`.
#### `i3.get_tabs()`
Returns the list of registered tabs.
---
### Custom recipes
Custom recipes are nonconventional crafts outside the main crafting grid.
@ -84,7 +145,7 @@ Recipes can be registered from a given URL containing a JSON file (HTTP support
```Lua
i3.register_craft({
url = "https://raw.githubusercontent.com/minetest-mods/i3/master/test.json"
url = "https://raw.githubusercontent.com/minetest-mods/i3/main/tests/test_online_recipe.json"
})
```
@ -97,7 +158,7 @@ mode is implemented as a recipe filter.
#### `i3.add_recipe_filter(name, function(recipes, player))`
Adds a recipe filter with the given name. The filter function should return the
Adds a recipe filter with the given `name`. The filter function returns 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`.
@ -123,7 +184,7 @@ Removes all recipe filters and adds a new one.
#### `i3.remove_recipe_filter(name)`
Removes the recipe filter with the given name.
Removes the recipe filter with the given `name`.
#### `i3.get_recipe_filters()`
@ -134,50 +195,43 @@ 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>,<...>`
These filters are cumulative to perform a specific search.
They can be used like so: `<optional_name> +<filter name>=<value1>,<value2>,<...>`
Examples:
Example usages:
- `+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.
- `wood +groups=flammable`: search for group `flammable` amongst items which contain
`wood` 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.
- If `optional_name` is omitted, the search filter will apply to all items, without pre-filtering.
- The `+groups` filter is currently implemented by default.
#### `i3.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).
Adds a search filter with the given `name`. `values` is a table of all possible values.
The search function must 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):
Example function sorting items by drawtype:
```lua
i3.add_search_filter("widths", function(item, widths)
local has_width
local recipes = recipes_cache[item]
i3.add_search_filter("types", function(item, drawtypes)
local t = {}
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
for i, dt in ipairs(drawtypes) do
t[i] = (dt == "node" and reg_nodes[item] and 1) or
(dt == "item" and reg_craftitems[item] and 1) or
(dt == "tool" and reg_tools[item] and 1) or nil
end
return has_width
return #t > 0
end)
```
#### `i3.remove_search_filter(name)`
Removes the search filter with the given name.
Removes the search filter with the given `name`.
#### `i3.get_search_filters()`
@ -187,23 +241,6 @@ Returns a map of search filters, indexed by name.
### Miscellaneous
#### `i3.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.
#### `i3.group_stereotypes`
This is the table indexing the item groups by stereotypes.
You can add a stereotype like so:
```Lua
i3.group_stereotypes.radioactive = "mod:item"
```
#### `i3.export_url`
If set, the mod will export all the cached recipes and usages in a JSON format

View File

@ -29,6 +29,7 @@ Licenses of media (textures)
paramat (CC BY-SA 3.0):
i3_arrow.png - derived from a texture by BlockMen (CC BY-SA 3.0)
i3_hotbar.png
You are free to:
Share — copy and redistribute the material in any medium or format.

View File

@ -1,18 +1,52 @@
# i3
#### A tiling inventory for Minetest
[![ContentDB](https://content.minetest.net/packages/jp/i3/shields/title/)](https://content.minetest.net/packages/jp/i3/) [![ContentDB](https://content.minetest.net/packages/jp/i3/shields/downloads/)](https://content.minetest.net/packages/jp/i3/)
**`i3`** is a tiling inventory for Minetest with a modern UI using the latest technologies of the Minetest engine.
It offers everything what [**`craftguide`**](https://github.com/minetest-mods/craftguide) can do, with an inventory on top of that.
#### **`i3`** is a next-generation inventory for Minetest.
This inventory features a **Progressive Mode**.
This mode is a Terraria-like system that shows recipes you can craft from items you ever had in your inventory.
To enable it: `i3_progressive_mode = true` in `minetest.conf`.
This inventory offers a slick, modern UI made with the latest technologies of the Minetest engine.
**`i3`** provides a rich [**API**](https://github.com/minetest-mods/i3/blob/master/API.md) for mod developers who want to extend it.
For developers, **`i3`** also has a [modding API](https://github.com/minetest-mods/i3/blob/master/API.md).
This mod requires **Minetest 5.4+**
This mod also supports [`3d_armor`](https://github.com/minetest-mods/3d_armor) for a nice player model preview.
#### List of features:
- Crafting Guide (only in survival mode)
- Progressive Mode¹
- Quick Crafting
- Backpacks
- 3D Player Model Preview
- Inventory Sorting (alphabetical + item stack compression)
- Item Bookmarks
- Waypoints
- Item List Compression (**`moreblocks`** supported)
**¹** *This mode is a Terraria-like system that shows recipes you can craft from items you ever had in your inventory.
To enable it: `i3_progressive_mode = true` in `minetest.conf`.*
#### This mod officially supports the following mods:
- [**`3d_armor`**](https://content.minetest.net/packages/stu/3d_armor/)
- [**`skinsdb`**](https://content.minetest.net/packages/bell07/skinsdb/)
- [**`awards`**](https://content.minetest.net/packages/rubenwardy/awards/)
#### Recommendations
To use this mod in the best conditions:
- Use LuaJIT
- Use a HiDPI widescreen display
- Use the default Freetype font style
#### Notes
`i3` uses a larger inventory than the usual inventories in Minetest games.
Thus, most chests will be unadapted to this inventory size.
The `i3` inventory is 9 slots wide by default (without backpack), such as in Minecraft.
Report any bug on the [**Bug Tracker**](https://github.com/minetest-mods/i3/issues).
Love this mod? Donations are appreciated: https://www.paypal.me/jpg84240
![Preview](https://user-images.githubusercontent.com/7883281/103390081-c619b480-4b12-11eb-9993-c35787cc6b61.png)
Demo video (outdated): https://www.youtube.com/watch?v=25nCAaqeacU
![Preview](https://user-images.githubusercontent.com/7883281/123561657-10ba7780-d7aa-11eb-8bbe-dcec348bb28c.png)

319
etc/compress.lua Normal file
View File

@ -0,0 +1,319 @@
local fmt, insert = string.format, table.insert
local wood_types = {
"acacia_wood", "aspen_wood", "junglewood", "pine_wood",
}
local material_tools = {
"bronze", "diamond", "mese", "stone", "wood",
}
local material_stairs = {
"acacia_wood", "aspen_wood", "brick", "bronzeblock", "cobble", "copperblock",
"desert_cobble", "desert_sandstone", "desert_sandstone_block", "desert_sandstone_brick",
"desert_stone", "desert_stone_block", "desert_stonebrick",
"glass", "goldblock", "ice", "junglewood", "mossycobble", "obsidian",
"obsidian_block", "obsidian_glass", "obsidianbrick", "pine_wood",
"sandstone", "sandstone_block", "sandstonebrick",
"silver_sandstone", "silver_sandstone_block", "silver_sandstone_brick",
"snowblock", "steelblock", "stone", "stone_block", "stonebrick",
"straw", "tinblock",
}
local colors = {
"black", "blue", "brown", "cyan", "dark_green", "dark_grey", "green",
"grey", "magenta", "orange", "pink", "red", "violet", "yellow",
}
local to_compress = {
["default:wood"] = {
replace = "wood",
by = wood_types,
},
["default:fence_wood"] = {
replace = "wood",
by = wood_types,
},
["default:fence_rail_wood"] = {
replace = "wood",
by = wood_types,
},
["default:mese_post_light"] = {
replace = "mese_post_light",
by = {
"mese_post_light_acacia_wood",
"mese_post_light_aspen_wood",
"mese_post_light_junglewood",
"mese_post_light_pine_wood",
}
},
["doors:gate_wood_closed"] = {
replace = "wood",
by = wood_types,
},
["wool:white"] = {
replace = "white",
by = colors
},
["dye:white"] = {
replace = "white",
by = colors
},
["default:axe_steel"] = {
replace = "steel",
by = material_tools
},
["default:pick_steel"] = {
replace = "steel",
by = material_tools
},
["default:shovel_steel"] = {
replace = "steel",
by = material_tools
},
["default:sword_steel"] = {
replace = "steel",
by = material_tools
},
["farming:hoe_steel"] = {
replace = "steel",
by = {"wood", "stone"}
},
["stairs:slab_wood"] = {
replace = "wood",
by = material_stairs
},
["stairs:stair_wood"] = {
replace = "wood",
by = material_stairs
},
["stairs:stair_inner_wood"] = {
replace = "wood",
by = material_stairs
},
["stairs:stair_outer_wood"] = {
replace = "wood",
by = material_stairs
},
["walls:cobble"] = {
replace = "cobble",
by = {"desertcobble", "mossycobble"}
},
}
local circular_saw_names = {
{"micro", "_1"},
{"panel", "_1"},
{"micro", "_2"},
{"panel", "_2"},
{"micro", "_4"},
{"panel", "_4"},
{"micro", ""},
{"panel", ""},
{"micro", "_12"},
{"panel", "_12"},
{"micro", "_14"},
{"panel", "_14"},
{"micro", "_15"},
{"panel", "_15"},
{"stair", "_outer"},
{"stair", ""},
{"stair", "_inner"},
{"slab", "_1"},
{"slab", "_2"},
{"slab", "_quarter"},
{"slab", ""},
{"slab", "_three_quarter"},
{"slab", "_14"},
{"slab", "_15"},
{"slab", "_two_sides"},
{"slab", "_three_sides"},
{"slab", "_three_sides_u"},
{"stair", "_half"},
{"stair", "_alt_1"},
{"stair", "_alt_2"},
{"stair", "_alt_4"},
{"stair", "_alt"},
{"stair", "_right_half"},
{"slope", ""},
{"slope", "_half"},
{"slope", "_half_raised"},
{"slope", "_inner"},
{"slope", "_inner_half"},
{"slope", "_inner_half_raised"},
{"slope", "_inner_cut"},
{"slope", "_inner_cut_half"},
{"slope", "_inner_cut_half_raised"},
{"slope", "_outer"},
{"slope", "_outer_half"},
{"slope", "_outer_half_raised"},
{"slope", "_outer_cut"},
{"slope", "_outer_cut_half"},
{"slope", "_outer_cut_half_raised"},
{"slope", "_cut"},
}
local moreblocks_nodes = {
"coal_stone",
"wood_tile",
"iron_checker",
"circle_stone_bricks",
"cobble_compressed",
"plankstone",
"clean_glass",
"split_stone_tile",
"all_faces_tree",
"dirt_compressed",
"coal_checker",
"clean_glow_glass",
"tar",
"clean_super_glow_glass",
"stone_tile",
"cactus_brick",
"super_glow_glass",
"desert_cobble_compressed",
"copperpatina",
"coal_stone_bricks",
"glow_glass",
"cactus_checker",
"all_faces_pine_tree",
"all_faces_aspen_tree",
"all_faces_acacia_tree",
"all_faces_jungle_tree",
"iron_stone",
"grey_bricks",
"wood_tile_left",
"wood_tile_down",
"wood_tile_center",
"wood_tile_right",
"wood_tile_full",
"checker_stone_tile",
"iron_glass",
"iron_stone_bricks",
"wood_tile_flipped",
"wood_tile_offset",
"coal_glass",
"straw",
"stone",
"stone_block",
"cobble",
"mossycobble",
"brick",
"sandstone",
"steelblock",
"goldblock",
"copperblock",
"bronzeblock",
"diamondblock",
"tinblock",
"desert_stone",
"desert_stone_block",
"desert_cobble",
"meselamp",
"glass",
"tree",
"wood",
"jungletree",
"junglewood",
"pine_tree",
"pine_wood",
"acacia_tree",
"acacia_wood",
"aspen_tree",
"aspen_wood",
"obsidian",
"obsidian_block",
"obsidianbrick",
"obsidian_glass",
"stonebrick",
"desert_stonebrick",
"sandstonebrick",
"silver_sandstone",
"silver_sandstone_brick",
"silver_sandstone_block",
"desert_sandstone",
"desert_sandstone_brick",
"desert_sandstone_block",
"sandstone_block",
"coral_skeleton",
"ice",
}
local colors_moreblocks = table.copy(colors)
insert(colors_moreblocks, "white")
local moreblocks_mods = {
wool = colors_moreblocks,
moreblocks = moreblocks_nodes,
}
local t = {}
for mod, v in pairs(moreblocks_mods) do
for _, nodename in ipairs(v) do
t[nodename] = {}
for _, shape in ipairs(circular_saw_names) do
local to_add = true
if shape[1] == "slope" and shape[2] == "" then
to_add = nil
end
if to_add then
insert(t[nodename], fmt("%s_%s%s", shape[1], nodename, shape[2]))
end
end
local slope_name = fmt("slope_%s", nodename)
to_compress[fmt("%s:%s", mod, slope_name)] = {
replace = slope_name,
by = t[nodename]
}
end
end
local compressed = {}
for k, v in pairs(to_compress) do
compressed[k] = compressed[k] or {}
for _, str in ipairs(v.by) do
local it = k:gsub(v.replace, str)
insert(compressed[k], it)
end
end
local _compressed = {}
for _, v in pairs(compressed) do
for _, v2 in ipairs(v) do
_compressed[v2] = true
end
end
return compressed, _compressed

62
etc/groups.lua Normal file
View File

@ -0,0 +1,62 @@
local S = core.get_translator "i3"
local group_stereotypes = {
dye = "dye:white",
wool = "wool:white",
wood = "default:wood",
tree = "default:tree",
sand = "default:sand",
glass = "default:glass",
stick = "default:stick",
stone = "default:stone",
leaves = "default:leaves",
coal = "default:coal_lump",
vessel = "vessels:glass_bottle",
flower = "flowers:dandelion_yellow",
water_bucket = "bucket:bucket_water",
mesecon_conductor_craftable = "mesecons:wire_00000000_off",
}
local group_names = {
dye = S"Any dye",
coal = S"Any coal",
sand = S"Any sand",
tree = S"Any tree",
wool = S"Any wool",
glass = S"Any glass",
stick = S"Any stick",
stone = S"Any stone",
carpet = S"Any carpet",
flower = S"Any flower",
leaves = S"Any leaves",
vessel = S"Any vessel",
wood = S"Any wood planks",
mushroom = S"Any mushroom",
["color_red,flower"] = S"Any red flower",
["color_blue,flower"] = S"Any blue flower",
["color_black,flower"] = S"Any black flower",
["color_white,flower"] = S"Any white flower",
["color_green,flower"] = S"Any green flower",
["color_orange,flower"] = S"Any orange flower",
["color_yellow,flower"] = S"Any yellow flower",
["color_violet,flower"] = S"Any violet flower",
["color_red,dye"] = S"Any red dye",
["color_blue,dye"] = S"Any blue dye",
["color_grey,dye"] = S"Any grey dye",
["color_pink,dye"] = S"Any pink dye",
["color_cyan,dye"] = S"Any cyan dye",
["color_black,dye"] = S"Any black dye",
["color_white,dye"] = S"Any white dye",
["color_brown,dye"] = S"Any brown dye",
["color_green,dye"] = S"Any green dye",
["color_orange,dye"] = S"Any orange dye",
["color_yellow,dye"] = S"Any yellow dye",
["color_violet,dye"] = S"Any violet dye",
["color_magenta,dye"] = S"Any magenta dye",
["color_dark_grey,dye"] = S"Any dark grey dye",
["color_dark_green,dye"] = S"Any dark green dye",
}
return group_stereotypes, group_names

13
etc/model_aliases.lua Normal file
View File

@ -0,0 +1,13 @@
local model_alias = {
["boats:boat"] = {name = "boats:boat", drawtype = "entity"},
["carts:cart"] = {name = "carts:cart", drawtype = "entity", frames = "0,0"},
["default:chest"] = {name = "default:chest_open"},
["default:chest_locked"] = {name = "default:chest_locked_open"},
["doors:door_wood"] = {name = "doors:door_wood_a"},
["doors:door_glass"] = {name = "doors:door_glass_a"},
["doors:door_obsidian_glass"] = {name = "doors:door_obsidian_glass_a"},
["doors:door_steel"] = {name = "doors:door_steel_a"},
["xpanes:door_steel_bar"] = {name = "xpanes:door_steel_bar_a"},
}
return model_alias

119
etc/styles.lua Normal file
View File

@ -0,0 +1,119 @@
local fmt = string.format
local PNG = {
bg = "i3_bg.png",
bg_full = "i3_bg_full.png",
bar = "i3_bar.png",
hotbar = "i3_hotbar.png",
search = "i3_search.png",
heart = "i3_heart.png",
heart_half = "i3_heart_half.png",
heart_grey = "i3_heart_grey.png",
prev = "i3_next.png^\\[transformFX",
next = "i3_next.png",
arrow = "i3_arrow.png",
trash = "i3_trash.png",
sort_az = "i3_sort_az.png",
sort_za = "i3_sort_za.png",
compress = "i3_compress.png",
fire = "i3_fire.png",
fire_anim = "i3_fire_anim.png",
book = "i3_book.png",
sign = "i3_sign.png",
cancel = "i3_cancel.png",
export = "i3_export.png",
slot = "i3_slot.png",
tab = "i3_tab.png",
tab_small = "i3_tab_small.png",
tab_top = "i3_tab.png^\\[transformFY",
furnace_anim = "i3_furnace_anim.png",
bag = "i3_bag.png",
armor = "i3_armor.png",
awards = "i3_award.png",
skins = "i3_skin.png",
waypoints = "i3_waypoint.png",
teleport = "i3_teleport.png",
add = "i3_add.png",
refresh = "i3_refresh.png",
visible = "i3_visible.png^\\[brighten",
nonvisible = "i3_non_visible.png",
exit = "i3_exit.png",
cancel_hover = "i3_cancel.png^\\[brighten",
search_hover = "i3_search.png^\\[brighten",
export_hover = "i3_export.png^\\[brighten",
trash_hover = "i3_trash.png^\\[brighten^\\[colorize:#f00:100",
compress_hover = "i3_compress.png^\\[brighten",
sort_az_hover = "i3_sort_az.png^\\[brighten",
sort_za_hover = "i3_sort_za.png^\\[brighten",
prev_hover = "i3_next_hover.png^\\[transformFX",
next_hover = "i3_next_hover.png",
tab_hover = "i3_tab_hover.png",
tab_small_hover = "i3_tab_small_hover.png",
tab_hover_top = "i3_tab_hover.png^\\[transformFY",
bag_hover = "i3_bag_hover.png",
armor_hover = "i3_armor_hover.png",
awards_hover = "i3_award_hover.png",
skins_hover = "i3_skin_hover.png",
waypoints_hover = "i3_waypoint_hover.png",
teleport_hover = "i3_teleport.png^\\[brighten",
add_hover = "i3_add.png^\\[brighten",
refresh_hover = "i3_refresh.png^\\[brighten",
exit_hover = "i3_exit.png^\\[brighten",
}
local styles = fmt([[
style_type[field;border=false;bgcolor=transparent]
style_type[label,field;font_size=16]
style_type[button;border=false;content_offset=0]
style_type[image_button,item_image_button;border=false;sound=i3_click]
style_type[item_image_button;bgimg_hovered=%s]
style[pagenum,no_item,no_rcp;font=bold;font_size=18]
style[exit;fgimg=%s;fgimg_hovered=%s;content_offset=0]
style[cancel;fgimg=%s;fgimg_hovered=%s;content_offset=0]
style[search;fgimg=%s;fgimg_hovered=%s;content_offset=0]
style[prev_page;fgimg=%s;fgimg_hovered=%s]
style[next_page;fgimg=%s;fgimg_hovered=%s]
style[prev_recipe;fgimg=%s;fgimg_hovered=%s]
style[next_recipe;fgimg=%s;fgimg_hovered=%s]
style[prev_usage;fgimg=%s;fgimg_hovered=%s]
style[next_usage;fgimg=%s;fgimg_hovered=%s]
style[waypoint_add;fgimg=%s;fgimg_hovered=%s;content_offset=0]
style[btn_bag,btn_armor,btn_skins;font=bold;font_size=18;content_offset=0;sound=i3_click]
style[craft_rcp,craft_usg;noclip=true;font_size=16;sound=i3_craft;
bgimg=i3_btn9.png;bgimg_hovered=i3_btn9_hovered.png;
bgimg_pressed=i3_btn9_pressed.png;bgimg_middle=4,6]
style[confirm_trash_yes,confirm_trash_no;noclip=true;font_size=16;
bgimg=i3_btn9.png;bgimg_hovered=i3_btn9_hovered.png;
bgimg_pressed=i3_btn9_pressed.png;bgimg_middle=4,6]
]],
PNG.slot,
PNG.exit, PNG.exit_hover,
PNG.cancel, PNG.cancel_hover,
PNG.search, PNG.search_hover,
PNG.prev, PNG.prev_hover,
PNG.next, PNG.next_hover,
PNG.prev, PNG.prev_hover,
PNG.next, PNG.next_hover,
PNG.prev, PNG.prev_hover,
PNG.next, PNG.next_hover,
PNG.add, PNG.add_hover)
local fs_elements = {
label = "label[%f,%f;%s]",
box = "box[%f,%f;%f,%f;%s]",
image = "image[%f,%f;%f,%f;%s]",
tooltip = "tooltip[%f,%f;%f,%f;%s]",
button = "button[%f,%f;%f,%f;%s;%s]",
item_image = "item_image[%f,%f;%f,%f;%s]",
hypertext = "hypertext[%f,%f;%f,%f;%s;%s]",
bg9 = "background9[%f,%f;%f,%f;%s;false;%u]",
scrollbar = "scrollbar[%f,%f;%f,%f;%s;%s;%u]",
model = "model[%f,%f;%f,%f;%s;%s;%s;%s;%s;%s;%s]",
image_button = "image_button[%f,%f;%f,%f;%s;%s;%s]",
animated_image = "animated_image[%f,%f;%f,%f;;%s;%u;%u]",
item_image_button = "item_image_button[%f,%f;%f,%f;%s;%s;%s]",
}
return PNG, styles, fs_elements

2653
init.lua

File diff suppressed because it is too large Load Diff

View File

@ -1,60 +0,0 @@
# textdomain: i3
Craft Guide=Rezeptbuch
Crafting Guide=Rezeptbuch
Crafting Guide Sign=Rezepttafel
Bookmarks=Lesezeichen
Usage @1 of @2=Verwendung @1 von @2
Recipe @1 of @2=Rezept @1 von @2
No recipes=Keine Rezepte
No usages=Keine Verwendungen
Burning time: @1=Brennzeit: @1
Cooking time: @1=Kochzeit: @1
Replaced by @1 on smelting=Ersetzt durch @1 beim Schmelzen
Replaced by @1 on burning=Ersetzt durch @1 beim Brennen
Replaced by @1 on crafting=Ersetzt durch @1 beim Fertigen
Repairable by step of @1=Reparierbar um @1
Any item belonging to the group(s): @1=Beliebiger Gegenstand aus Gruppe(n): @1
Any black dye=Beliebiger schwarzer Farbstoff
Any black flower=Beliebige schwarze Blume
Any blue dye=Beliebiger blauer Farbstoff
Any blue flower=Beliebige blaue Blume
Any brown dye=Beliebiger brauner Farbstoff
Any coal=Beliebige Kohle
Any cyan dye=Beliebiger türkiser Farbstoff
Any dark green dye=Beliebiger dunkelgrüner Farbstoff
Any dark grey dye=Beliebiger dunkelgrauer Farbstoff
Any green dye=Beliebiger grüner Farbstoff
Any green flower=Beliebige grüne Blume
Any grey dye=Beliebiger grauer Farbstoff
Any kind of stone block=Beliebiger Steinblock
Any magenta dye=Beliebiger magenta Farbstoff
Any orange dye=Beliebiger orange Farbstoff
Any orange flower=Beliebige orange Blume
Any pink dye=Beliebiger rosa Farbstoff
Any red dye=Beliebiger roter Farbstoff
Any red flower=Beliebige rote Blume
Any sand=Beliebiger Sand
Any stick=Beliebiger Stock
Any tree=Beliebiger Baum
Any vessel=Beliebiger Behälter
Any violet dye=Beliebiger violetter Farbstoff
Any violet flower=Beliebige violette Blume
Any white dye=Beliebiger weißer Farbstoff
Any white flower=Beliebige weiße Blume
Any wood planks=Beliebige Holzplanken
Any wool=Beliebige Wolle
Any yellow dye=Beliebiger gelber Farbstoff
Any yellow flower=Beliebige gelbe Blume
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 keinem Block gezeigt
You don't know a recipe or usage for this item=Sie kennen kein Rezept und keine Verwendung für diesen Gegenstand
No recipe or usage for this item=Kein Rezept und keine Verwendung für diesen Gegenstand
Digging=Graben
Digging Chance=Grabechance
@1 of chance to drop=@1 Abwurfwahrscheinlichkeit

View File

@ -1,69 +1,85 @@
# textdomain: i3
Craft Guide=Guide de recettes
Crafting Guide=Guide de recettes
Crafting Guide Sign=Guide de recettes
Bookmarks=Favoris
Usage @1 of @2=Usage @1 sur @2
Recipe @1 of @2=Recette @1 sur @2
No recipes=Pas de recettes
No usages=Pas d'usages
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
Any black dye=Quelconque colorant noir
Any black flower=Quelconque fleur noire
Any blue dye=Quelconque colorant bleu
Any blue flower=Quelconque fleur bleue
Any brown dye=Quelconque colorant marron
Any coal=Quelconque charbon
Any cyan dye=Quelconque colorant bleu ciel
Any dark green dye=Quelconque colorant vert foncé
Any dark grey dye=Quelconque colorant gris foncé
Any green dye=Quelconque colorant vert
Any green flower=Quelconque fleur verte
Any grey dye=Quelconque colorant gris
Any kind of stone block=Quelconque roche
Any magenta dye=Quelconque colorant magenta
Any orange dye=Quelconque colorant orange
Any orange flower=Quelconque fleur orange
Any pink dye=Quelconque colorant rose
Any red dye=Quelconque colorant rouge
Any red flower=Quelconque fleur rouge
Any sand=Quelconque sable
Any stick=Quelconque bâton
Any tree=Quelconque tronc d'arbre
Any vessel=Quelconque couvert
Any violet dye=Quelconque colorant violet
Any violet flower=Quelconque fleur violette
Any white dye=Quelconque colorant blanc
Any white flower=Quelconque fleur blanche
Any wood planks=Quelconques planches de bois
Any wool=Quelconque laine
Any yellow dye=Quelconque colorant jaune
Any yellow flower=Quelconque fleur jaune
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 or usage for this item=Vous ne connaissez aucune recette pour ce bloc
No recipe or usage for this node=Aucune recette pour ce bloc
Digging=Destruction
Digging (by chance)=Destruction (par chance)
### init.lua ###
@1 added in your inventory=@1 ajouté à votre inventaire
@1 new recipe(s) discovered!=@1 nouvelle(s) recette(s) découverte(s)!
@1 of chance to drop=@1 de chance de tomber
Mark this item=Mettre en favori.
Unmark this item=Enlever des favoris.
Cannot mark this item. Limit of bookmarks reached.=Impossible de mettre cet item en favori. Limite des favoris atteinte.
Only drop if using one of these tools: @1=Tombe seulement si détruit avec un de ces outils : @1
Only drop if using this tool: @1=Tombe seulement si détruit avec cet outil : @1
Craft @1 stack=Fabriquer @1 objet
Craft @1 stacks=Fabriquer @1 objets
@1 added in your inventory=@1 mis dans votre inventaire
@1 crafted=@1 fabriqué(s)
@1 spawned=@1 spawné
Achievements: @1 of @2 (@3)=Succès : @1 sur @2 (@3)
Any black dye=N'importe quel colorant noir
Any black flower=N'importe quelle fleur noire
Any blue dye=N'importe quel colorant bleu
Any blue flower=N'importe quelle fleur bleue
Any brown dye=N'importe quel colorant marron
Any carpet=N'importe quel tapis
Any coal=N'importe quel charbon
Any cyan dye=N'importe quel colorant bleu turquoise
Any dark green dye=N'importe quel colorant vert foncé
Any dark grey dye=N'importe quel colorant gris foncé
Any dye=N'importe quel colorant
Any flower=N'importe quelle fleur
Any glass=N'importe quel verre
Any green dye=N'importe quel colorant vert
Any green flower=N'importe quelle fleur verte
Any grey dye=N'importe quel colorant gris
Any item belonging to the groups: @1=Tout item appartenant aux groupes : @1
Any leaves=N'importe quelles feuilles d'arbre
Any magenta dye=N'importe quel colorant mauve
Any mushroom=N'importe quel champignon
Any orange dye=N'importe quel colorant orange
Any orange flower=N'importe quelle fleur orange
Any pink dye=N'importe quel colorant rose
Any red dye=N'importe quel colorant rouge
Any red flower=N'importe quelle fleur rouge
Any sand=N'importe quel sable
Any stick=N'importe quel bâton
Any stone=N'importe quelle roche
Any tree=N'importe quel tronc d'arbre
Any vessel=N'importe quel couvert
Any violet dye=N'importe quel colorant violet
Any violet flower=N'importe quelle fleur violette
Any white dye=N'importe quel colorant blanc
Any white flower=N'importe quelle fleur blanche
Any wood planks=N'importe quelles planches de bois
Any wool=N'importe quelle laine
Any yellow dye=N'importe quel colorant jaune
Any yellow flower=N'importe quelle fleur jaune
Armor=Armure
Bag=Sac
Bookmarks=Favoris
Burning time: @1=Temps de combustion : @1
Cannot mark this item. Bookmark limit reached.=
Collect items to reveal more recipes=Collecter des items pour révéler des recettes
Compress items=Compresser les items
Cooking=Cuisson
Cooking time: @1=Temps de cuisson : @1
Craft (x@1)=Fabriquer (x@1)
Digging=Minage
Digging (by chance)=Minage (par chance)
Heal=Guérison
Inventory=Inventaire
Items=Items
Level=Niveau
Mark this item=Ajouter aux favoris
No item to show=Aucun item à montrer
No recipes=Aucune recette
No usages=Aucun usage
Only drop if using one of these tools: @1=Tombe seulement en utilisant un de ces outils : @1
Only drop if using this tool: @1=Tombe seulement en utilisant cet outil : @1
Quick crafting=Fabrication rapide
Recipe @1 of @2=Recette @1 sur @2
Repairable by step of @1=Réparable par étape de @1
Replaced by @1 on burning=Remplacé par @1 à la combustion
Replaced by @1 on crafting=Remplacé par @1 à la fabrication
Replaced by @1 on smelting=Remplacé par @1 à la cuisson
Shapeless=Sans forme particulière
Skins=Skins
Sort items (A-Z)=Trier les items (A-Z)
Sort items (Z-A)=Trier les items (Z-A)
The inventory is extended by @1 slots=L'inventaire est étendu de @1 slots
Trash all items=Détruire tous les items
Unknown Item (@1)=Item inconnu (@1)
Unmark this item=Enlever des favoris
Usage @1 of @2=Usage @1 sur @2

View File

@ -1,60 +0,0 @@
# textdomain: i3
Craft Guide=Guida di assemblaggio
Crafting Guide=Guida d'assemblaggio
Crafting Guide Sign=Cartello della guida di assemblaggio
Bookmarks=Segnalibri
Usage @1 of @2=Utilizzo @1 di @2
Recipe @1 of @2=Ricetta @1 di @2
No recipes=Nessuna ricetta
No usages=Nessun utilizzo
Burning time: @1=Tempo di combustione: @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 combustione
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/ai gruppo/i: @1
Any black dye=Qualunque tintura nera
Any black flower=Qualunque fiore nero
Any blue dye=Qualunque tintura blu
Any blue flower=Qualunque fiore blu
Any brown dye=Qualunque tintura marrone
Any coal=Qualunque carbone
Any cyan dye=Qualunque tintura ciano
Any dark green dye=Qualunque tintura verde scura
Any dark grey dye=Qualunque tintura grigio scura
Any green dye=Qualunque tintura verde
Any green flower=Qualunque fiore verde
Any grey dye=Qualunque tintura grigia
Any kind of stone block=Qualunque tipo di blocco di pietra
Any magenta dye=Qualunque tintura magenta
Any orange dye=Qualunque tintura arancione
Any orange flower=Qualunque fiore arancione
Any pink dye=Qualunque tintura rosa
Any red dye=Qualunque tintura rossa
Any red flower=Qualunque fiore rosso
Any sand=Qualunque sabbia
Any stick=Qualunque bastone
Any tree=Qualunque albero
Any vessel=Qualunque contenitore
Any violet dye=Qualunque tintura viola
Any violet flower=Qualunque fiore viola
Any white dye=Qualunque tintura bianca
Any white flower=Qualunque fiore bianco
Any wood planks=Qualunque asse di legno
Any wool=Qualunque lana
Any yellow dye=Qualunque tintura gialla
Any yellow flower=Qualunque fiore giallo
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/le ricetta/e del nodo puntato
No node pointed=Nessun nodo puntato
You don't know a recipe or usage for this item=Non conosci una ricetta o un utilizzo per questo oggetto
No recipe or usage for this item=Nessuna ricetta o utilizzo per questo oggetto
Digging=Scavando
Digging Chance=Probabilità di scavare
@1 of chance to drop=@1 di probabilità di rilascio

View File

@ -1,19 +0,0 @@
# textdomain: i3
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,40 +0,0 @@
# textdomain: i3
Any black dye=任何黑染料
Any black flower=任何黑花
Any blue dye=任何蓝染料
Any blue flower=任何蓝花
Any brown dye=任何棕染料
Any coal=任何煤炭
Any cyan dye=任何青染料
Any dark green dye=任何暗绿染料
Any dark grey dye=任何暗灰染料
Any green dye=任何绿染料
Any green flower=任何绿花
Any grey dye=任何灰染料
Any item belonging to the group(s): @1=任何属于以下组别的物品:@1
Any kind of stone block=任何石方块
Any magenta dye=任何品红染料
Any orange dye=任何橙染料
Any orange flower=任何橙花
Any pink dye=任何粉红染料
Any red dye=任何红染料
Any red flower=任何红花
Any sand=任何沙
Any stick=任何棒
Any vessel=任何容器
Any violet dye=任何紫染料
Any violet flower=任何紫花
Any white dye=任何白染料
Any white flower=任何白花
Any wood planks=任何木板
Any wool=任何羊毛
Any yellow dye=任何黄染料
Any yellow flower=任何黄花
Cooking time: @1=熔炼时间为:@1
No items to show=没有可显示的项目。
Recipe @1 of @2=第@1个配方共@2个
Usage @1 of @2=第@1个用法共@2个
Recipe is too big to be displayed=配方太大,无法显示。
Shapeless=无序配方
Unknown Item=不明物品

View File

@ -1,37 +1,32 @@
# textdomain: i3
Craft Guide=
Crafting Guide=
Crafting Guide Sign=
Inventory=
Level=
Heal=
Bookmarks=
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=
### init.lua ###
@1 added in your inventory=
@1 new recipe(s) discovered!=
@1 of chance to drop=
@1 spawned=
Achievements: @1 of @2 (@3)=
Any black dye=
Any black flower=
Any blue dye=
Any blue flower=
Any brown dye=
Any carpet=
Any coal=
Any cyan dye=
Any dark green dye=
Any dark grey dye=
Any dye=
Any flower=
Any glass=
Any green dye=
Any green flower=
Any grey dye=
Any stone=
Any item belonging to the groups: @1=
Any leaves=
Any magenta dye=
Any mushroom=
Any orange dye=
Any orange flower=
Any pink dye=
@ -39,6 +34,7 @@ Any red dye=
Any red flower=
Any sand=
Any stick=
Any stone=
Any tree=
Any vessel=
Any violet dye=
@ -49,28 +45,40 @@ Any wood planks=
Any wool=
Any yellow dye=
Any yellow flower=
Shapeless=
Cooking=
No item to show=
Armor=
Bag=
Bookmarks=
Burning time: @1=
Cannot mark this item. Bookmark limit reached.=
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 node=
Compress items=
Cooking=
Cooking time: @1=
Craft (x@1)=
Digging=
Digging (by chance)=
@1 of chance to drop=
Heal=
Inventory=
Items=
Level=
Mark this item=
Unmark this item=
Cannot mark this item. Limit of bookmarks reached.=
No item to show=
No recipes=
No usages=
Only drop if using one of these tools: @1=
Only drop if using this tool: @1=
Craft item=
Craft @1 items=
@1 added in your inventory=
@1 spawned=
Quick crafting=
Trash all items=
Compress items=
Recipe @1 of @2=
Repairable by step of @1=
Replaced by @1 on burning=
Replaced by @1 on crafting=
Replaced by @1 on smelting=
Shapeless=
Skins=
Sort items (A-Z)=
Sort items (Z-A)=
The inventory is extended by @1 slots=
Trash all items=
Unknown Item (@1)=
Unmark this item=
Usage @1 of @2=

View File

@ -1,3 +1,3 @@
name = i3
description = Tiling inventory for Minetest
optional_depends = 3d_armor
optional_depends = 3d_armor, skinsdb, awards

View File

@ -1,2 +1,5 @@
# The progressive mode shows recipes you can craft from items you ever had in your inventory.
i3_progressive_mode (Learn crafting recipes progressively) bool false
# Regroup the items of the same type in the item list.
i3_item_compression (Regroup items of the same type) bool true

Binary file not shown.

View File

@ -0,0 +1,314 @@
local mt = ItemStack("default:wood")
mt:get_meta():set_string("description", "test wood")
mt:get_meta():set_string("color", "green")
local mt2 = ItemStack("dye:red")
mt2:get_meta():set_string("description", "test red")
mt2:get_meta():set_string("color", "#ff0")
minetest.register_craft({
output = mt:to_string(),
type = "shapeless",
recipe = {
"default:wood",
mt2:to_string(),
},
})
i3.register_craft({
result = "default:ladder_wood 2",
items = {"default:copper_ingot 7, default:tin_ingot, default:steel_ingot 2"},
})
i3.register_craft({
grid = {
"X",
"#",
"X",
"X",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X",
"#X",
"X",
"X",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X#",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X#X",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X#XX",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X#XX",
"X#X",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X#XX",
"X#X",
"#",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X##XX",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X##X#X",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X##X#X",
"",
"X",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X #",
" ## ",
"X#X#",
"X X",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass 2",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X #",
" ## ",
"X#X#X",
"X X",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X #",
" ## ",
"X#X#",
"#X#X#",
"X X",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X #",
" ## ",
"X#X#",
"#X#X#",
"X X##",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X #",
" ## ",
"X#X#",
"#X#X#",
"X X##",
" ## ",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X #",
" ## ",
"X#X#",
"#X#X#",
"X X##X",
" ## ",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X #",
" ## ",
"X#X#",
"#X#X#",
"X X##X#",
" ## ",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X #",
" ## ",
"X#X#",
"#X#X#",
"X X##X#X",
" ## ",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X #",
" ## ",
"X#X#",
"#X#X#",
"X X##X#X",
" ## ",
"#X#X#",
"#X#X#",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass",
},
result = "default:mese 3",
})
i3.register_craft({
grid = {
"X #",
" ## ",
"X#X#",
"#X#X#",
"X X##X#X",
" ## ",
"#X#X#",
"#X#X#",
"X #",
},
key = {
['#'] = "default:wood",
['X'] = "default:glass",
},
result = "default:mese 3",
})

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

49
tests/test_tabs.lua Normal file
View File

@ -0,0 +1,49 @@
i3.new_tab {
name = "test1",
description = "Test 1 Test 1",
image = "i3_heart.png",
formspec = function(player, data, fs)
fs("label[3,1;Test 1]")
end,
}
i3.new_tab {
name = "test2",
description = "Test 2",
image = "i3_mesepick.png",
formspec = function(player, data, fs)
fs("label[3,1;Test 2]")
end,
}
i3.new_tab {
name = "test3",
description = "Test 3",
access = function(player, data)
local name = player:get_player_name()
if name == "singleplayer" then
return true
end
end,
formspec = function(player, data, fs)
fs("label[3,1;Test 3]")
end,
fields = function(player, data, fields)
i3.set_fs(player, "label[3,2;Test extra_fs]")
end,
}
i3.override_tab("test2", {
name = "test2",
description = "Test override",
image = "i3_mesepick.png",
formspec = function(player, data, fs)
fs("label[3,1;Override!]")
end,
})

BIN
textures/i3_add.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
textures/i3_armor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
textures/i3_armor_hover.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 469 B

After

Width:  |  Height:  |  Size: 382 B

BIN
textures/i3_award.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
textures/i3_award_hover.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
textures/i3_bag.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
textures/i3_bag_hover.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
textures/i3_bag_large.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 B

BIN
textures/i3_bag_medium.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 B

BIN
textures/i3_bag_small.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 B

BIN
textures/i3_bar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 70 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 927 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
textures/i3_exit.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 867 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 279 B

After

Width:  |  Height:  |  Size: 198 B

BIN
textures/i3_heart_grey.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 150 B

BIN
textures/i3_hotbar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 435 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 570 B

BIN
textures/i3_non_visible.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
textures/i3_refresh.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 180 B

BIN
textures/i3_skin.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
textures/i3_skin_hover.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 567 B

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

BIN
textures/i3_sort_az.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
textures/i3_sort_za.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 950 B

After

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 12 KiB

BIN
textures/i3_tab_small.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
textures/i3_teleport.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 864 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 521 B

BIN
textures/i3_visible.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
textures/i3_waypoint.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB