From 0ec62a1732c85983948c5b5a1546e738f33a3c74 Mon Sep 17 00:00:00 2001 From: whosit <138972279+yl-whosit@users.noreply.github.com> Date: Mon, 31 Mar 2025 16:27:16 +0300 Subject: [PATCH] Make posters dyeable (#20) * set signs param2 to colorfacedir - make signs use a color palette and hardware coloring - add poster coloring crafting recipes and optional depend on dye * use xcompat * optipng textures * make recipe shapeless * fix spaces/tab mix * remove xcompat check --- signs/crafts.lua | 18 ++++++++++++++++++ signs/nodes.lua | 2 ++ signs/textures/signs_poster.png | Bin 1250 -> 1088 bytes signs/textures/signs_poster_palette.png | Bin 0 -> 101 bytes signs_api/init.lua | 2 +- 5 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 signs/textures/signs_poster_palette.png diff --git a/signs/crafts.lua b/signs/crafts.lua index 3267c19..d9331b4 100644 --- a/signs/crafts.lua +++ b/signs/crafts.lua @@ -48,6 +48,24 @@ minetest.register_craft({ } }) +local dyes = { + mat.dye_white, + mat.dye_grey, + mat.dye_orange, + mat.dye_brown, + mat.dye_dark_grey, + mat.dye_yellow, + mat.dye_green, + mat.dye_red, +} +for i, dye in ipairs(dyes) do + minetest.register_craft({ + type = "shapeless", + output = minetest.itemstring_with_palette("signs:paper_poster", (i-1) * 32), + recipe = {"signs:paper_poster", dye}, + }) +end + minetest.register_craft({ output = 'signs:label_small', recipe = { diff --git a/signs/nodes.lua b/signs/nodes.lua index 5fce00e..55135a4 100644 --- a/signs/nodes.lua +++ b/signs/nodes.lua @@ -215,6 +215,8 @@ local models = { "signs_poster_sides.png", "signs_poster.png" }, inventory_image = "signs_poster_inventory.png", use_texture_alpha = "clip", + paramtype2 = "colorfacedir", + palette = "signs_poster_palette.png", groups= { dig_immediate = 2 }, _mcl_hardness = 0.8, _mcl_blast_resistance = 1, diff --git a/signs/textures/signs_poster.png b/signs/textures/signs_poster.png index c00b036f2a3091b28b4e7ea5c93e9cffef4a555f..90e3b8e13f3b50e3693e60faa3b2fb181b924297 100644 GIT binary patch delta 1078 zcmV-61j+m23BU-D8Gi-<0047(dh`GQ1P4h(K~z|Ue3nO&10f7Wx&QIJbLsz1GEI5$n_GRQLOR%*W%g4u`|KTCL)Ix7*d* z?N%?BOPn)rHk(d8@E8Q;355^?V;Gix3~4~GF@yowK?iGw zavEff4#5~2bEAL+K?I~3ArxcGYES|DnGMeM(s0NS>(A#CI%S4A%NG=)gpK$6{f9yX z1i>Ca^bQb&51A~_Fb6p2u56$i9n6+#nNFwifpLs+Xn#!2dJ{-+0>w+q%|zu4ui0bB zgrzF8$VCV&C5*Ajni&A4ls^L*X1vP#L1iQB9=h^=4jq7sHEszSQ>nEgq&;W2;bU!o zV2x2`n6P9`beSpIQJF7WSY$mo?Jj(6W7k|(av;2&C2Cr9m?jH}?fQg(JKIz5x zADZJI%0KAalKkdzmibny7`2~t|A_3}{-F?%O$d<2(zdKOK43mpvS`2eF|uTNIb|)X zjUN*bBO>i%18V!c>tiIh>ipP66=bh5s;3BmHa87lMN5jc4)|E*a{g(&j#3jZHf%9h~Pp$mNIE~oJ6uDGcJVdmKI9J4LfSRC&+i(O)#ddD->@MH)*X8x58-n ziC1uTO;QYut zbGu*JV3Xu60l^*=Auw$@MkxtJyC5dQ2(6s2U)qw~a{}3ILW=*w>I9M$_YVe@{Jkle zYf?zJX1x{BY3Yh~%zFbt>J0?<-tP{j=3LDn*+;btFXfZOFn#QyF58T<1LU8@ia{vGU07*qoM6N<$f&?Y?00000 delta 1241 zcmV;~1Sb2y2;vEl8Gix*008_L?V|ty1gS|xK~#7FG*JbT?Jx}M{jc_M8OjU~!*SXL z`DHt!$(Sn1ZgQ9&jL5vMtSY@O<>}4J+=^UZ-kr?VwisSRpo67m5iHK|mn;Jf=AE`M z2DEkrKav{|Ko4Uuhee}?S7mY<|C6m(-=h)zg4dY_h%tC~q9FcbW2mu(QNALo46No7ow{^b7yigQoHy#&j$<+9@ z=9(p^`5xZc%f2RtoM!u$HJA~IjPWv%0d-UgD6+E|t!-TZ40ztY#(i+8M4VrvQ}URY z!H8|57l2!AaAyzSeU=AqD=`d2b^qi2-n)(UPcJSTq<=llg9-P55VX!NIh-LW4P)Rx z#Mqk$D?|kZ`%WFkw}?l8FF4|3I1K}`IZaf)pLI~(#cZ{jCI+-5q5R8Vd}I&4M;;Ld z_8?>a4-MYoD=2z^_-e8lJ(++BZp%xBWdH@I#a ze?Ibk{eOb@%@_EjR{uzyU_?U5Mo+R6n(HdUjtFStTkD#%tVDWzJloDA#kTGn`l-!t zzr##K+XBw3ZVEo{>;vD-vOIv87*=Mxz5G<=Aw~;M$Y9KmZh|x$-?4nn&oYtc@RLee zOxoG(onjt@xtYW!b`eO9j3rVm5b>T2ChhX{A6#KgN5nHG3 zBP)BGADg!M-47=WwwV9L5itxCHu&a@y(PbnJrlcmv%!3!%Cw5L-ClpQ>6L*E*+jSL zL9W!+%>gE(GkzU8457AK{27CqfXukehGDgsSgB&iO7Mcbrie`l9BoznfYN!x5kdx6 z-+%gZhUg9)0$1@JL|q*RY1?^pqQK%l&^Rra#|B1jEOTo= z6O9e&4%K?hOC{u0dJ;xWN2g0d#GRX%?PcMpsdyjVnc`$nsjBt{ycMpI%tUez>2j@IwNyc45`o zbxfF4`TXvWos0(GC|Ka*v`)0m8F@ljVjQFn56?aJK%-?`FDG?WRT9|7%#kZGvVTg2 z?^}*FfU%h)FNFW4(Y~N{(isZWX|*lN>bv@dbKjeTgQ&Y*O%VAzSD@UkDv6=g3pA%# zU+Fc3iH502HmO=nZXaW2zy+`exWD?u9cEN#rA|d*#g!oy$+q|RzVYY>gc7Ec!H%xj z0~B4Ky&Y+VIZ6C|+`MsSIswNbCQ^Ok<)r=VWV9CR(&)`0b2K)x{sVfuy?D30`_7J< z^-@jzRUB#KYNAMN(xv<>mi7$Yfvf=wGM3%&$%XzE!!^I@ie-#v00000NkvXXu0mjf D7bjj8 diff --git a/signs/textures/signs_poster_palette.png b/signs/textures/signs_poster_palette.png new file mode 100644 index 0000000000000000000000000000000000000000..6295b721597c97655a0c2370ff2b545c9e763e79 GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^96-#-!3HEBGrV^OQaYY4jv*Y^85J4s{b&63^Tq#< z&+alXy}Qe>f7b?vQ?KP28q@zWEC6cr>SbW?_{YDGZ*hVvP#=S*tDnm{r-UW|WL+Ol literal 0 HcmV?d00001 diff --git a/signs_api/init.lua b/signs_api/init.lua index a75570d..089acde 100644 --- a/signs_api/init.lua +++ b/signs_api/init.lua @@ -104,7 +104,7 @@ function signs_api.on_place_direction(itemstack, placer, pointed_thing) local ndir, test - if ndef and ndef.paramtype2 == "facedir" then + if ndef and (ndef.paramtype2 == "facedir" or ndef.paramtype2 == "colorfacedir") then -- Wall pointed ndir = minetest.dir_to_facedir(bdir, true)