diff options
author | Dániel Juhász <juhdanad@gmail.com> | 2017-06-24 18:15:09 +0000 |
---|---|---|
committer | Loïc Blot <nerzhul@users.noreply.github.com> | 2017-06-24 20:15:09 +0200 |
commit | 5a41a98ff6ac899038bfc359912ebb021479451b (patch) | |
tree | b937d7cb348aa198c6b8d666cebf52e736d8ed87 | |
parent | c2df1a08351101034f52fd2810051715714c9c40 (diff) | |
download | minetest-5a41a98ff6ac899038bfc359912ebb021479451b.tar.gz minetest-5a41a98ff6ac899038bfc359912ebb021479451b.tar.bz2 minetest-5a41a98ff6ac899038bfc359912ebb021479451b.zip |
Helper methods for hardware colorization (#5870)
-rw-r--r-- | builtin/game/item.lua | 12 | ||||
-rw-r--r-- | doc/lua_api.txt | 21 |
2 files changed, 30 insertions, 3 deletions
diff --git a/builtin/game/item.lua b/builtin/game/item.lua index f6de2c339..59ec5ff65 100644 --- a/builtin/game/item.lua +++ b/builtin/game/item.lua @@ -572,6 +572,18 @@ function core.node_dig(pos, node, digger) end end +function core.itemstring_with_palette(item, palette_index) + local stack = ItemStack(item) -- convert to ItemStack + stack:get_meta():set_int("palette_index", palette_index) + return stack:to_string() +end + +function core.itemstring_with_color(item, colorstring) + local stack = ItemStack(item) -- convert to ItemStack + stack:get_meta():set_string("color", colorstring) + return stack:to_string() +end + -- This is used to allow mods to redefine core.item_place and so on -- NOTE: This is not the preferred way. Preferred way is to provide enough -- callbacks to not require redefining global functions. -celeron55 diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 664ad960a..540bbe118 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -541,10 +541,8 @@ to itself (without metadata). Craft recipes only support item strings, but fortunately item strings can also contain metadata. Example craft recipe registration: - local stack = ItemStack("wool:block") - dyed:get_meta():set_int("palette_index", 3) -- add index minetest.register_craft({ - output = dyed:to_string(), -- convert to string + output = minetest.itemstring_with_palette("wool:block", 3), type = "shapeless", recipe = { "wool:block", @@ -552,6 +550,8 @@ can also contain metadata. Example craft recipe registration: }, }) +To set the `color` field, you can use `minetest.itemstring_with_color`. + Metadata field filtering in the `recipe` field are not supported yet, so the craft output is independent of the color of the ingredients. @@ -2728,6 +2728,21 @@ and `minetest.auth_reload` call the authetification handler. digger's inventory * Can be overridden to get different functionality (e.g. dropping items on ground) +* `minetest.itemstring_with_palette(item, palette_index)`: returns an item string + * Creates an item string which contains palette index information + for hardware colorization. You can use the returned string + as an output in a craft recipe. + * `item`: the item stack which becomes colored. Can be in string, + table and native form. + * `palette_index`: this index is added to the item stack +* `minetest.itemstring_with_color(item, colorstring)`: returns an item string + * Creates an item string which contains static color information + for hardware colorization. Use this method if you wish to colorize + an item that does not own a palette. You can use the returned string + as an output in a craft recipe. + * `item`: the item stack which becomes colored. Can be in string, + table and native form. + * `colorstring`: the new color of the item stack ### Rollback * `minetest.rollback_get_node_actions(pos, range, seconds, limit)`: |