From cb6e55b610b2dba587102e6503a61559e0b2e17f Mon Sep 17 00:00:00 2001 From: Vanessa Dannenberg Date: Sat, 25 Aug 2018 02:45:03 -0400 Subject: [PATCH] update unified dyes, solidcolor, and unifiedmesecons --- solidcolor/init.lua | 11 ++ unifieddyes/API.md | 4 + unifieddyes/init.lua | 45 +++-- .../unifieddyes_palette_colorwallmounted.png | Bin 136 -> 136 bytes unifiedmesecons/init.lua | 177 +++++++++++++++--- .../textures/unifiedmesecons_wire_end_off.png | Bin 629 -> 435 bytes .../textures/unifiedmesecons_wire_end_on.png | Bin 467 -> 246 bytes .../textures/unifiedmesecons_wire_off.png | Bin 613 -> 429 bytes .../textures/unifiedmesecons_wire_on.png | Bin 462 -> 243 bytes 9 files changed, 197 insertions(+), 40 deletions(-) diff --git a/solidcolor/init.lua b/solidcolor/init.lua index a520dc15..8b8d87ad 100644 --- a/solidcolor/init.lua +++ b/solidcolor/init.lua @@ -17,6 +17,17 @@ minetest.register_craft( { }, }) +unifieddyes.register_color_craft({ + output = "solidcolor:block", + palette = "extended", + type = "shapeless", + neutral_node = "solidcolor:block", + recipe = { + "NEUTRAL_NODE", + "MAIN_DYE" + } +}) + minetest.register_lbm({ name = "solidcolor:recolor", label = "Convert to new palette", diff --git a/unifieddyes/API.md b/unifieddyes/API.md index decf76d3..63fab696 100644 --- a/unifieddyes/API.md +++ b/unifieddyes/API.md @@ -77,6 +77,10 @@ When given a `color` string (in the form of "dye:foo" or "unifieddyes:foo") and This function, called in your node definition's on_construct, just sets the `palette = "ext"` metadata key for the node after it's been placed. This can then be read in an LBM to determine if this node needs to be converted from the old 89-color palette to the extended 256-color palette. Although it is good practice to call this for any node that uses the 256-color palette, it isn't actually necessary as long as the node has never used the 89-color palette, and won't be subjected to an LBM that changes its color. +**`unifieddyes.make_colored_itemstack(itemstack, palette, color)`** + +Makes a colored itemstack out of the given `itemstack` and `color` (as a dye, e.g. "dye:dark_red_s50", setting the correct index per the `palette` field, which works as described above for `unifieddyes.getpaletteidx()`. Said itemstack is returned as a string suitable for use as the output field of a craft recipe, equal in size to the itemstack passed into the function (e.g. if you give it "mymod:colored_node 7", it'll return a stack of 7 colored items). + #### Tables In addition to the above API calls, Unified Dyes provides several useful tables diff --git a/unifieddyes/init.lua b/unifieddyes/init.lua index 37d35728..39923a2e 100644 --- a/unifieddyes/init.lua +++ b/unifieddyes/init.lua @@ -198,7 +198,7 @@ function unifieddyes.make_colored_itemstack(item, palette, color) local paletteidx = unifieddyes.getpaletteidx(color, palette) local stack = ItemStack(item) stack:get_meta():set_int("palette_index", paletteidx) - return stack:to_string() + return stack:to_string(),paletteidx end -- if your node was once 89-color and uses an LBM to convert to the 256-color palette, @@ -225,7 +225,6 @@ local function register_c(craft, hue, sat, val) end local dye = "dye:"..color - local recipe = minetest.serialize(craft.recipe) recipe = string.gsub(recipe, "MAIN_DYE", dye) recipe = string.gsub(recipe, "NEUTRAL_NODE", craft.neutral_node) @@ -265,6 +264,8 @@ function unifieddyes.register_color_craft(craft) local greys_table = unifieddyes.GREYS if craft.palette == "wallmounted" then + register_c(craft, "green", "", "light_") + register_c(craft, "azure", "", "") hues_table = unifieddyes.HUES_WALLMOUNTED sats_table = {""} vals_table = unifieddyes.VALS @@ -411,6 +412,7 @@ function unifieddyes.getpaletteidx(color, palette_type) local aliases = { ["pink"] = "light_red", ["brown"] = "medium_orange", + ["azure"] = "light_blue" } local grayscale = { @@ -585,9 +587,10 @@ function unifieddyes.getpaletteidx(color, palette_type) end if palette_type == "wallmounted" then - if color == "brown" then return 48,1 + if color == "green" and shade == "light" then return 48,3 + elseif color == "brown" then return 17,1 elseif color == "pink" then return 56,7 - elseif color == "blue" and shade == "light" then return 40,5 + elseif color == "azure" then return 40,5 elseif hues_wallmounted[color] and shades_wallmounted[shade] then return (shades_wallmounted[shade] * 64 + hues_wallmounted[color] * 8), hues_wallmounted[color] end @@ -599,7 +602,20 @@ function unifieddyes.getpaletteidx(color, palette_type) color = "red" shade = "light" end - if palette_type == true then -- it's colorfacedir + if palette_type == true then -- it's colorfacedir, so "split" 89-color palette + + -- If using this palette, translate new color names back to old. + + if shade == "" then + if color == "spring" then + color = "aqua" + elseif color == "azure" then + color = "skyblue" + elseif color == "rose" then + color = "redviolet" + end + end + if hues[color] and shades[shade] then return (shades[shade] * 32), hues[color] end @@ -607,10 +623,7 @@ function unifieddyes.getpaletteidx(color, palette_type) if hues_extended[color] and shades_extended[shade] then return (hues_extended[color] + shades_extended[shade]*24), hues_extended[color] end - else -- it's the 89-color palette - - -- If using this palette, translate new color names back to old. - + else -- it's the regular 89-color palette, do the same translation if needed if shade == "" then if color == "spring" then color = "aqua" @@ -938,10 +951,16 @@ minetest.register_alias("unifieddyes:carbon_black", "dye:black") -- note that technically, lime should be aliased, but can't be (there IS -- lime in the new color table, it's just shifted up a bit) -minetest.register_alias("unifieddyes:aqua", "unifieddyes:spring") -minetest.register_alias("unifieddyes:skyblue", "unifieddyes:azure") -minetest.register_alias("unifieddyes:redviolet", "unifieddyes:rose") -minetest.register_alias("unifieddyes:brown", "dye:brown") +minetest.register_alias("unifieddyes:aqua", "dye:spring") +minetest.register_alias("dye:aqua", "dye:spring") + +minetest.register_alias("unifieddyes:skyblue", "dye:azure") +minetest.register_alias("dye:skyblue", "dye:azure") + +minetest.register_alias("unifieddyes:redviolet", "dye:rose") +minetest.register_alias("dye:redviolet", "dye:rose") + +minetest.register_alias("unifieddyes:brown", "dye:brown") print(S("[UnifiedDyes] Loaded!")) diff --git a/unifieddyes/textures/unifieddyes_palette_colorwallmounted.png b/unifieddyes/textures/unifieddyes_palette_colorwallmounted.png index 8d3133b095ed7e13b16ab1cc2fa64f0043f59c07..bcae86f3e1254e1a1f70c17a58c187f33b11b3b5 100644 GIT binary patch delta 97 zcmV-n0G|Jd0f+&RE?NVBYy#UNklF|ORD5B4D|gE@D}d|O%p;EP2&(_h!DoOwr#7mF3S?!{WuPOs(q&3XL|S2HF-B&ZQVQgbF_LKYOywkit4Z$N3AKH{RqdTM@|ijFo#Ct1>Uccf+}vobvn=cTzG)gnWQ<8Eqkkx3j8#zXPPO0)P;L zWK~r`mSq5NI2_V6bzQeCOGI=Wrzi?U1c0};0SwM5b(y1wsUuh*t&;yC7<6L`vN zKA%&jWE*z79U@L9leTRs%gtuvd7kUK`~Cj^Gx-y zWikcH_kBsm7)g>$DK&84w*e_7LrS?Skp494DS=~G?mlJ5DX$PoLjM2<$tvP1^08&b3W@afR0Pdc14)Z*hQpRy~cQdDAjSwlRmX8Wj>Fxj zX#x=3odf_Hch1?}0gy;UQcCXb?xF8{$`N*+CwnZ|8iwJoB>-kdxmxS8EF!Y5YtC6! zw{07S!QGGJAS{$pnt^GW%#4M*ms0NcySp=q^E?5BuIofZRhMM}(C{Kc7~@*kwbnY% zb8z>4-}$N5+JAiiH?EnD<5)@wB0_EkXJ#ToJmXeXj!Rg0JRSfDpmFUelmx4p10eL!F65t`TTr7KiBJ( j<369y^E|)bZ>{wgtPRcNGdn+)00000NkvXXu0mjfOC-!& diff --git a/unifiedmesecons/textures/unifiedmesecons_wire_off.png b/unifiedmesecons/textures/unifiedmesecons_wire_off.png index 57eff631e4baf08d9e82c418af57a76a9feb9a06..714bf62db21ac94ff624ace9af4b2203ea3b38b4 100644 GIT binary patch delta 404 zcmV;F0c-x{1g!&*BYy#ONklF|&C2624D|cIN%;t&hf;hgA(&u7=%Me>Lm-4; zj1fYNzQZiuWpBdr{Ai@0s_*yvIF1-2fYw^h+04u=r33&#O3BRJJ?9+Ob*;6|^X%>b zZnvANnpup|%v5!r=j*!MeOVSW3+_$=Gwa+rXLmO<5{XDk$$#D5J&fZ>Il@XQ?6F{L znx?;&%nShKT5H?3iO9b1IcHTpj$@i8cfYQSuuyC529{+3z{1^Yt&hjU-I+uw#mvGm z3?ibc+qRim$BPJIjBDTb*4nzR!QIdE1KFUk*jaajdmct+hrG0IK@OQkP?olW=j}QV%e6yY9|4F%tm1j=oA&{d_*5 ypXdF4XK=$Xlu`iv{QPj-*XvbE`F_8xwO=D{w6;uU3=I_k0000*m5QXW41mlHKBaw0xf{E|{4!(l%l!`)Wt9ZE4s6hEIX2oW=bq<%KA)c@tl-0(&*y{?blJA;?RKM-KA+FWRS{-*2T<5Pt;FG)-BS*hwknI1T{Z?|0OfWf?_LUDwy^6?X&1*mOE=+g2&%x^7+9 zLI~gY5m%a~T5Boga5w}2DJ3ixi@L6*l$27GAyXXNG!5rG2!ejUFNBy(CT7z#kH-T) zA+EM?1M>lpB!9X|L_t(2&vjDG3dSG|>-)c-6SjjeK^U8e0}r0^9psDBGEX7> zOH&0vYYjk*5deTv$^g&vC{Rj~S}TD2z6a%;8-Vo;<(vVCYM=nKnIrqYe+eMCu4_tK z#{qcXR}EqI0J6qdMi4?!_2Rw%>di80tF_9Pm3H01$l9ANtx!u-(s`cBcs z00C`DL_t(2&s|d6s^c&W^#A`_Pe>^>C2>qr=zB>>Y%Gbn!?3=JW7mXBD_5FSy z#}Q)$&|1qmo0*xVlmGxoDVdqO=bXd3uC>;Ap4}b5?RHaDGk=RQnwhH3^L$;GyD!UP zX2IP_U}l{==j`rgMj{bODY?75hjAP!M_4I^Jr-n@7HX~Cz_Kg=Sh#zw_3?PPJCi7-m{}NxK}1w_+cq=nco89taqauwT3gpO zxchmY{M1_OzJLE47r;EvwbmdaHgb2;*-iVP=7AI*#K!PX-5onf$xcWm$Lu;eNmO%c00PjT>LH5-zS=>H&ss*WI}$W&(iM(O0RepU)@s^DVsJ?+k7jhEfWEpPwI&`+B`f eDc|q6we}0u-p{H7KV6*w0000