From 8fffac6397d802062dc1a0e70cc46fdf813f8b73 Mon Sep 17 00:00:00 2001 From: cornernote Date: Sat, 28 Jul 2012 14:07:02 +0930 Subject: [PATCH] update core mods --- core/dye/Color_spectrum.png | Bin 188 -> 0 bytes core/dye/README.txt | 15 ++ core/dye/depends.txt | 3 - core/dye/init.lua | 261 ++++++++++++--------------- core/dye/textures/dye_black.png | Bin 578 -> 364 bytes core/dye/textures/dye_blue.png | Bin 535 -> 352 bytes core/dye/textures/dye_brown.png | Bin 559 -> 348 bytes core/dye/textures/dye_cyan.png | Bin 550 -> 370 bytes core/dye/textures/dye_dark_green.png | Bin 0 -> 367 bytes core/dye/textures/dye_dark_grey.png | Bin 0 -> 371 bytes core/dye/textures/dye_gray.png | Bin 531 -> 0 bytes core/dye/textures/dye_green.png | Bin 555 -> 376 bytes core/dye/textures/dye_grey.png | Bin 0 -> 374 bytes core/dye/textures/dye_light_blue.png | Bin 561 -> 0 bytes core/dye/textures/dye_light_gray.png | Bin 572 -> 0 bytes core/dye/textures/dye_lime.png | Bin 321 -> 0 bytes core/dye/textures/dye_magenta.png | Bin 554 -> 380 bytes core/dye/textures/dye_orange.png | Bin 580 -> 374 bytes core/dye/textures/dye_pink.png | Bin 585 -> 364 bytes core/dye/textures/dye_purple.png | Bin 523 -> 0 bytes core/dye/textures/dye_red.png | Bin 568 -> 381 bytes core/dye/textures/dye_violet.png | Bin 0 -> 376 bytes core/dye/textures/dye_white.png | Bin 519 -> 375 bytes core/dye/textures/dye_yellow.png | Bin 556 -> 389 bytes 24 files changed, 131 insertions(+), 148 deletions(-) delete mode 100644 core/dye/Color_spectrum.png create mode 100644 core/dye/README.txt create mode 100644 core/dye/textures/dye_dark_green.png create mode 100644 core/dye/textures/dye_dark_grey.png delete mode 100644 core/dye/textures/dye_gray.png create mode 100644 core/dye/textures/dye_grey.png delete mode 100644 core/dye/textures/dye_light_blue.png delete mode 100644 core/dye/textures/dye_light_gray.png delete mode 100644 core/dye/textures/dye_lime.png delete mode 100644 core/dye/textures/dye_purple.png create mode 100644 core/dye/textures/dye_violet.png diff --git a/core/dye/Color_spectrum.png b/core/dye/Color_spectrum.png deleted file mode 100644 index 4b27bd48de029e51de7f2008da8967c62c5bf3e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~j!2~2Dq<35Q z8P5G@c=__>(W6Jbyu38z<*vyw{GYCV=LrMD7jCN(HmA&A3{zh*Fr4XNxc8ai+mD3G bY8OsBXECqUS^Iwj&0+9#^>bP0l+XkKrf4}X diff --git a/core/dye/README.txt b/core/dye/README.txt new file mode 100644 index 0000000..d414c2c --- /dev/null +++ b/core/dye/README.txt @@ -0,0 +1,15 @@ +Minetest 0.4 mod: dye +====================== + +See init.lua for documentation. + +License of source code and media files: +--------------------------------------- +Copyright (C) 2012 Perttu Ahola (celeron55) + +This program is free software. It comes without any warranty, to +the extent permitted by applicable law. You can redistribute it +and/or modify it under the terms of the Do What The Fuck You Want +To Public License, Version 2, as published by Sam Hocevar. See +http://sam.zoy.org/wtfpl/COPYING for more details. + diff --git a/core/dye/depends.txt b/core/dye/depends.txt index bb02b3c..e69de29 100644 --- a/core/dye/depends.txt +++ b/core/dye/depends.txt @@ -1,3 +0,0 @@ -default -flowers -lazurite diff --git a/core/dye/init.lua b/core/dye/init.lua index 5f09fab..2886828 100644 --- a/core/dye/init.lua +++ b/core/dye/init.lua @@ -1,163 +1,134 @@ ---Colors mod for RTMMP +-- minetest/dye/init.lua +-- To make recipes that will work with any dye ever made by anybody, define +-- them based on groups. +-- You can select any group of groups, based on your need for amount of colors. +-- basecolor: 9, excolor: 17, unicolor: 89 +-- +-- Example of one shapeless recipe using a color group: +-- Note: As this uses basecolor_*, you'd need 9 of these. +-- minetest.register_craft({ +-- type = "shapeless", +-- output = ':item_yellow', +-- recipe = {':item_no_color', 'group:basecolor_yellow'}, +-- }) --- Dye table for public funcs -dye = {} +-- Other mods can use these for looping through available colors +local dye = {} +dye.basecolors = {"white", "grey", "black", "red", "yellow", "green", "cyan", "blue", "magenta"} +dye.excolors = {"white", "lightgrey", "grey", "darkgrey", "black", "red", "orange", "yellow", "lime", "green", "aqua", "cyan", "sky_blue", "blue", "violet", "magenta", "red_violet"} -dye.add_dye_recipe = function(new, first, second) - minetest.register_craft({ - output = new, - recipe = { - {first, "dye:" .. second}, - } - }) +-- Base color groups: +-- - basecolor_white +-- - basecolor_grey +-- - basecolor_black +-- - basecolor_red +-- - basecolor_yellow +-- - basecolor_green +-- - basecolor_cyan +-- - basecolor_blue +-- - basecolor_magenta - minetest.register_craft({ - output = new, - recipe = { - {"dye:".. second, "dye:" .. first}, - } - }) +-- Extended color groups (* = equal to a base color): +-- * excolor_white +-- - excolor_lightgrey +-- * excolor_grey +-- - excolor_darkgrey +-- * excolor_black +-- * excolor_red +-- - excolor_orange +-- * excolor_yellow +-- - excolor_lime +-- * excolor_green +-- - excolor_aqua +-- * excolor_cyan +-- - excolor_sky_blue +-- * excolor_blue +-- - excolor_violet +-- * excolor_magenta +-- - excolor_red_violet - minetest.register_craft({ - output = new, - recipe = { - {first}, - {"dye:".. second}, - } - }) +-- The whole unifieddyes palette as groups: +-- - unicolor_ +-- For the following, no white/grey/black is allowed: +-- - unicolor_medium_ +-- - unicolor_dark_ +-- - unicolor_light_ +-- - unicolor__s50 +-- - unicolor_medium__s50 +-- - unicolor_dark__s50 - minetest.register_craft({ - output = new, - recipe = { - {"dye:".. second}, - {first}, - } - }) +-- Local stuff +local dyelocal = {} - minetest.register_craft({ - output = new, - recipe = { - {"dye:".. second,""}, - {"",first}, - } - }) +-- This collection of colors is partly a historic thing, partly something else. +dyelocal.dyes = { + {"white", "White dye", {dye=1, basecolor_white=1, excolor_white=1, unicolor_white=1}}, + {"grey", "Grey dye", {dye=1, basecolor_grey=1, excolor_grey=1, unicolor_grey=1}}, + {"dark_grey", "Dark grey dye", {dye=1, basecolor_grey=1, excolor_darkgrey=1, unicolor_darkgrey=1}}, + {"black", "Black dye", {dye=1, basecolor_black=1, excolor_black=1, unicolor_black=1}}, + {"violet", "Violet dye", {dye=1, basecolor_magenta=1, excolor_violet=1, unicolor_violet=1}}, + {"blue", "Blue dye", {dye=1, basecolor_blue=1, excolor_blue=1, unicolor_blue=1}}, + {"cyan", "Cyan dye", {dye=1, basecolor_cyan=1, excolor_cyan=1, unicolor_cyan=1}}, + {"dark_green", "Dark green dye",{dye=1, basecolor_green=1, excolor_green=1, unicolor_dark_green=1}}, + {"green", "Green dye", {dye=1, basecolor_green=1, excolor_green=1, unicolor_green=1}}, + {"yellow", "Yellow dye", {dye=1, basecolor_yellow=1, excolor_yellow=1, unicolor_yellow=1}}, + {"brown", "Brown dye", {dye=1, basecolor_yellow=1, excolor_orange=1, unicolor_dark_orange=1}}, + {"orange", "Orange dye", {dye=1, basecolor_orange=1, excolor_orange=1, unicolor_orange=1}}, + {"red", "Red dye", {dye=1, basecolor_red=1, excolor_red=1, unicolor_red=1}}, + {"magenta", "Magenta dye", {dye=1, basecolor_magenta=1, excolor_red_violet=1,unicolor_red_violet=1}}, + {"pink", "Pink dye", {dye=1, basecolor_red=1, excolor_red=1, unicolor_light_red=1}}, +} - minetest.register_craft({ - output = new, - recipe = { - {first,""}, - {"","dye:".. second}, - } - }) - - minetest.register_craft({ - output = new, - recipe = { - {"","dye:".. second}, - {first,""}, - } - }) - - minetest.register_craft({ - output = new, - recipe = { - {"",first}, - {"dye:".. second,""}, - } +-- Define items +for _, row in ipairs(dyelocal.dyes) do + local name = row[1] + local description = row[2] + local groups = row[3] + local item_name = "dye:"..name + local item_image = "dye_"..name..".png" + minetest.register_craftitem(item_name, { + inventory_image = item_image, + description = description, + groups = groups }) end ---Public colors for mods: -DYE_COLORS = { - 'white', - 'light_gray', - 'gray', - 'black', - 'red', - 'orange', - 'yellow', - 'lime', - 'green', - 'light_blue', - 'cyan', - 'blue', - 'purple', - 'magenta', - 'pink', - 'brown', +-- Mix recipes +-- Just mix everything to everything somehow sanely + +dyelocal.mixbases = {"magenta", "red", "orange", "brown", "yellow", "green", "dark_green", "cyan", "blue", "violet", "black", "dark_grey", "grey", "white"} + +dyelocal.mixes = { + -- magenta, red, orange, brown, yellow, green, dark_green, cyan, blue, violet, black, dark_grey, grey, white + white = {"pink", "pink", "orange", "orange", "yellow", "green", "green", "grey", "cyan", "violet", "grey", "grey", "white", "white"}, + grey = {"pink", "pink", "orange", "orange", "yellow", "green", "green", "grey", "cyan", "pink", "dark_grey","grey", "grey"}, + dark_grey={"brown","brown", "brown", "brown", "brown","dark_green","dark_green","blue","blue","violet","black", "black"}, + black = {"black", "black", "black", "black", "black", "black", "black", "black", "black", "black", "black"}, + violet= {"magenta","magenta","red", "brown", "red", "cyan", "brown", "blue", "violet","violet"}, + blue = {"violet", "magenta","brown","brown","dark_green","cyan","cyan", "cyan", "blue"}, + cyan = {"blue","brown","dark_green","dark_grey","green","cyan","dark_green","cyan"}, + dark_green={"brown","brown","brown", "brown", "green", "green", "dark_green"}, + green = {"brown", "yellow","yellow","dark_green","green","green"}, + yellow= {"red", "orange", "yellow","orange", "yellow"}, + brown = {"brown", "brown","orange", "brown"}, + orange= {"red", "orange","orange"}, + red = {"magenta","red"}, + magenta={"magenta"}, } -DYE_CRAFTS = { - ['white'] = {'flowers:flower_dandelion_white'}, - ['black'] = {'default:scorched_stuff'}, - ['red'] = {'flowers:flower_rose'}, - ['orange'] = {'flowers:flower_tulip'}, - ['yellow'] = {'flowers:flower_dandelion_yellow'}, - ['purple'] = {'flowers:flower_viola'}, - ['brown 2'] = {'default:clay_brick'}, -} - --- Somefunc -local cute_descr = function(str) -- ^^ nya!~~~ - return(str:gsub('_',' '):gsub('^%l', string.upper)) -end - --- Dyes -for _, color in pairs(DYE_COLORS) do - if color ~= 'blue' then - minetest.register_craftitem('dye:' .. color, { - description = cute_descr(color) .. ' dye', - inventory_image = 'dye_' .. color .. '.png', - groups = {dye = 1}, - stack_max = 128, +for one,results in pairs(dyelocal.mixes) do + for i,result in ipairs(results) do + local another = dyelocal.mixbases[i] + minetest.register_craft({ + type = "shapeless", + output = 'dye:'..result..' 2', + recipe = {'dye:'..one, 'dye:'..another}, }) end end -minetest.register_alias('dye:blue', 'lazurite:lazurite') - ---Dye recipes -local addSMrecipe = function(new, first, second) - minetest.register_craft({ - type = 'shapeless', - output = 'dye:' .. new ..' 2', - recipe = { - 'dye:' .. first, - 'dye:' .. second, - }, - }) -end - ---second -addSMrecipe('orange','red','yellow') -addSMrecipe('cyan','green','blue') -addSMrecipe('purple','red','blue') -addSMrecipe('gray','black','white') -addSMrecipe('light_blue','white','blue') -addSMrecipe('pink','red','white') -addSMrecipe('lime','green','white') - ---third -addSMrecipe('magenta','purple','pink') -addSMrecipe('light_gray','gray','white') - ---first - -for reslt, ourrecipe in pairs(DYE_CRAFTS) do - minetest.register_craft({ - type = 'shapeless', - output = 'dye:' .. reslt, - recipe = ourrecipe, - }) -end - ---nonstandart craft -minetest.register_craft({ - type = 'shapeless', - type = 'cooking', - output = 'dye:green', - recipe = 'default:cactus', - cooktime = 5, -}) +-- Hide dyelocal +dyelocal = nil +-- EOF diff --git a/core/dye/textures/dye_black.png b/core/dye/textures/dye_black.png index 33e3d0cee0ba4e86ed0b106bfb82a8491c81e613..ef526e698581cdddaa7803dd1fd63e0d97d928cb 100644 GIT binary patch delta 275 zcmV+u0qp+51ndHkB#|*09t#ry01FcV0GgZ_00007bV*G`2iyl27bG|qMJW%FXe)mJ z&`Cr=R5;7sQZWw0APhXJ%zOZqHDb<7@`kLLJN5xpztA`28I>xrH!Bs*?hnwxK_!GJ zYgJ2@!1f(y8{iMEy|HiIGZQPY8~Lp3b+sD-ds&1It0G;qM Z>;u?7Tw-&ysPq5;002ovPDHLkV1i;8a^3&{ delta 489 zcmVT84Bnkm@Qb$4nuFf3kks%x&4#EHc4#EKyC`y0;000McNliru+yfH` zGArZz2;7ldD}Mo*NklQ1w`mp8Pt<80@Ma6hR zF`l?4Tbt{$y7o!ED4`LCVhaK8iwA0c6@cyC&uTEZ`(qY!Pc@}krfi|_Rj3DnlaX|O z$i?}IOn>J)fH-c^2t(O;`$q1I2kJrKSWL^Q2LT^Hypv}D`}^NGOH);hC)E5Z#dw16 zRT$+tqda#&qde#R#*VTxo3r}kxW(SySI*K@`Ci3!t@%|4ILdQ=U-eb#78+v^5t1Z9 zL@>s%y!cAOg?Z=p|HXAT#yA%d!i9OUfVQ~bzcQJ9FE-h-u%0AI={=}fK;3TF#m#2( f-!9X3{F^-jEUMY{u<3A{00000NkvXXu0mjf>pSFD diff --git a/core/dye/textures/dye_blue.png b/core/dye/textures/dye_blue.png index 57409179e1245ca55000d31b02c8939641008c54..d3e97919c79b2977c58d8b5101e4fd3d23327b12 100644 GIT binary patch delta 263 zcmV+i0r>ux1mFUYB#|*09t#ry01FcV0GgZ_00007bV*G`2iyl27bF|BB3ONqXe)mJ z#7RU!R5;7sQn3-kAPjtRW{9MqWdKj&8EB~)g4(TT$QY>@fL293L<&;i*a*nE%|&;* z6FU7%F9iIdO-uG~@5)32rkG=;+iHqH@GNy{ij>a&Ap&4m1G}1>9~~x`J N002ovPDHLkV1n)^X(9js delta 446 zcmV;v0YU!Y0+$4kBnkm@Qb$4nuFf3kks%x&4#EHc4#EKyC`y0;000McNliru+yfH` zH7BJE(lC)*D}MoQNkl|wFsQm$w1@{>|q6z_`k`zIL zKwucj!Y^nQ$=8JWsX-=|4MPHJFmylS5bL^*bt7=eiTm!o_wK!X2S3ahkAIsn9;%8l zUMW%8TcwQX?(UMoV3NmCbdNC}LEz`{3V|^mVc2Fmoqqz*={yjIZN}q|9NcK^Y@VRo zeWu%e%DNn>NStL(01$a$H1ef5MWr|jlCdX?iRx5~ApyYIU11 zY%?4VQQem$sTFoHbJbJn_xtO=a*`yut157-)>>2*RmED%X!O4MUgls`T_UvBmfnMG oB8uZUk6W$Q-!60B@i+Sha2mD%>SP@C00000Ne4wvM6N<$f+0)F;{X5v diff --git a/core/dye/textures/dye_brown.png b/core/dye/textures/dye_brown.png index 4cc7ee740a00f8f4e6a256d023758199199d3469..5b27085f9049ef1296a25712fa49f332d304bed7 100644 GIT binary patch delta 259 zcmV+e0sQ{21l$6UB#|*09t#ry01FcV0GgZ_00007bV*G`2iyl27X&jD6VxSXf`z8dyMGF@#*Ujxev?biIVbLvxLDJH?+u@}KpPzk>UQfL4G002ov JPDHLkV1m+_ZVdnc delta 470 zcmV;{0V)360nkUsaBgVzPc)*wNDUixcD1^)_*?ba*Xs@Z%RxQoQsnYOQuvcQa|$c-fd$ao6xZcmbp zGwH8)Qh#c-2PeJJ?vWcy(&-9z6syYSd$|=gpkQa`fc49J)#(b^bYh^m(e61F{b1mO zz`pU?+CJ--_bTHl*EyR`IKoD|$5Hg8Vt=7A1`#0)Lqr5)44Vt1vNW4=Zu38WcVmom z5n*XIC6>^FYqf{r`(lf&3hQAQ#_od}MpUU(Tpygz=l`~uw&QR14)+M(3Sp+#`2YX_ M07*qoM6N<$g65Ifm;e9( diff --git a/core/dye/textures/dye_cyan.png b/core/dye/textures/dye_cyan.png index 70daeaddcfab21893df24b654f81f909f134fe91..3ae44e26cdb91e2e2d033852e9d112fb61e75831 100644 GIT binary patch delta 281 zcmV+!0p|Xu1o8rqB#|*09t#ry01FcV0GgZ_00007bV*G`2iyl27X=bQVf8wZXe)mJ z)=5M`R5;7sl06Q>FbsviROJc`3|+g0fh%wUu0RHsO5HdFTO}Ae^b8z>sRP-%cAyfM z2t!($^haG0mMq!Ud$ylt_(MAs*5~qpi4nQ3Y#ha7bX`Gt@k+r66vfuNMnKXil1AD3 z?(D%sZ@O#8*r2tI8$?+{f`S#48+dKJTnR(+9^>U&lRPs4P}V)UmvC3sU9#4EH;|I+ zHZ|V1trY)=x1uMv#Nj3Yyrt*{2eag1>^59$(;YdS1iO=`>QX|kCL{oyQnUDMc_yYG fX{nh*{2luM_xwvHf=zJk00000NkvXXu0mjf?ap`~ delta 461 zcmV;;0W$vb0;U9zBnkm@Qb$4nuFf3kks%x&4#EHc4#EKyC`y0;000McNliru+yfH` zH5e0W{|%8_D}MofNkl* z1QQ2G!GyTFl!WP#*f6l2MreVA~bsI-dl?R0)5kd}+B3hy!fn z2&_IN4FrIXS0J4M09^WlO{ecGyGX3hG%uP=0}T_%$MaqC!uuN zQ$T+PJ%37|YMJNrXSSlCTD^gHzRTdxl;lV;WKXMzf&nOk;2W3A*NVh2!_MhUNGN-l zU*%bJgha56RB8u~)5K^r0+sfdcls6XV(D~u#`^vK=3m+KJncjTlpaY40U`nsK?ngU zC)@8OC?=v6LLo%#J+N&=-ELRMg+k$Pml<^Y%@)1^*$K(5B;hMn00000NkvXXu0mjf DZuNFMbgFCelRFeCrRb*3mY6KH#CLb;yz|H!Oi<}$kNL?kzKO)f96R3aJHVacm2`MPS%Qq|I@at zk&`gEtFtv)#PgF}2g8=+=CYiceOBuAArhvkn^w)N09Y$>6N; zTh4dW=_CJ@=smCacU7F6q?+u}?sW3b5&{!(Ct#S8VJ|_+ahuyVjPks9QK=0hDH=A$v zSSmc1aTKVKe*Kku>Qm{r->bP@H-5a-Ysk^Wa4qWn{gp+}&ps2i4lt0oqwE`;wzgH^ z(SnCrbP( zd2Vl4zILm>l9NQ+6AsxO8fMGCA2qcW)tef$_4ffkL0vKK_~V6twx2B#uJ6{@Y`=Ai T^{wYsP;_{@`njxgN@xNA!wl8< diff --git a/core/dye/textures/dye_green.png b/core/dye/textures/dye_green.png index e50604ca5743274172e6d6b1501c9b92a5f2e801..e88631cb55d39552dc9ff003f1ff7356942d47d3 100644 GIT binary patch delta 287 zcmV+)0pR|t1o#4wB#|*09t#ry01FcV0GgZ_00007bV*G`2iyl27aS)0)u@+|Xe)mJ z+(|@1R5;7sl06E-KoEt$m3RqR1S=0|d>AW9Zl~C***QggXof|ZXfVhr`>&W;Q zJ10DFs#~(X9<|EfMv5pZh>2hf#RPM14|@ckoF&?}RSvUM34o&N$lVC1$iO12+yFp^ za8IOmx_yu0EOGmkEx953odBG(R5XQ0pUA#$CtPh3-7Gm63brc``DI9ZPT^m1b&>kp lubr1l3_sGBWH#}4d&Bnkm@Qb$4nuFf3kks%x&4#EHc4#EKyC`y0;000McNliru+yfH` zH3e{Nlhl!0D}MokNkldOO+LCMm9#1Pco} z1A(*_Dj4$zPOv&d>{6u(Se=kUjZ2c|3JW1%bCcrOr-+S}+V}PyT+{C|w za}z`a&do@ns5LE0sMTslLXc zI5&_`LBP3D*{_LR67K`_dyNGR{>EZf=Nuq8rBr^d-HyEB-gIxcP z!gyuHb${o|`f}zYnTcV&3PfbcdO7oP9J^o}4(jz=3~E!hUImuJ;N{F$F2ZC0fq;DD zO63NF+LY-AQ=JnjrUaKWA5Wc67WoT>5FjErjsqfs5CSKcamtl6m2!XQcNapaBqHQW z8c9J(cHQ~@d68i0LZ;(5k@LXz2@QusRTqoJzZ*@a?D$)J1JO<0s~9@h-~a#s07*qo IM6N<$f?_kw9RL6T diff --git a/core/dye/textures/dye_grey.png b/core/dye/textures/dye_grey.png new file mode 100644 index 0000000000000000000000000000000000000000..c4706e7f469b809b0294c0824c8876c652dae49d GIT binary patch literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPaySTWlb>oSz{6Hbu%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1Q9MK6^dD1OV+#WBR<^xa9ie1{waTKB73@Tjk7T*Cf>_1NMMue)4| zInD*#sp>mm5yJ1#w2GnIQ9mj3#^X@P937(pq#4YG}P=8uMUDAo76^m8FLa!=* zzrS(8+_^QopJZxTuA9@<&2cVQsGK1p`|tMX;&U^p%v6+d4di`K LS3j3^P6Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01m_CX>@2HM@dakWG-a~0004q zNklsN(L#dQ*a*Q|?6eBkZfz&rXK7(dIYH6FMnMG;I}u`` z#U+^UF9<0lHWo37?e6I83$RI672 zJPfbO++qWO^yn@C3(Ifpg+HK7zHiZO%4Qs@sXlWb=K=ZBua+y~V(Xfc?iSE1R5cq*U6= zxz3qv-U+r%h5skBD)AK>V-OLdC_+Rq#xVcyRc8E4=l1^F=WdK~E+WkMmtqBNalPIc zye~G{Qdp0oC~+UuAfa-(>|)>df47;o<4^VuNuA+-u6k|800000NkvXXu0mjfZe!&} diff --git a/core/dye/textures/dye_light_gray.png b/core/dye/textures/dye_light_gray.png deleted file mode 100644 index d4e62ed8dfe8bf973180f78a87820d65358f0019..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 572 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85sBufiR<}hF1enkiEpy*OmPavoME|)FxGqXFws@%#er@=ltB< z)VvZPmw~~#C^fMpHASI3vm`^o-P1Q9MK6^dXx(H_7sn8b({qCjy`2I@{;jioHe>xZ z7sU)i4&#yzsi+uz-Cm_Vfl)nT8y9A*^ksd?ex!J{_LXZNU#*QZynKAo9##yddcNnv?8H-ks6s^?r+UT5Z> zpR8ee^Iz&6x@X3?AV_oJ_isL2PrNw8y?h^ddEPr@EVOQ2z6T>?!jErV5jKnrFYefH zy!hhqbJvWh%jeQ&X(n7Tm~bv-YtNl~dTZ0eH7+#Q)vt)ow>G;pQzu5V_E+e=vK*Tm z`fF~k`R!|CZ{PI!#}niAZ*MRxu>RP@SmPOxUsF)fbS7#N&?Vu0M}<3%3KuMOxxI1X z{rl;0oQkP#Dn{(5S1r8$I$sE~K}E$*#+-LBVOmhAg~>hZ@2eWgP$kFs(qI=Cn( zaVTDR&tE@JymV$qO^Z{;R& zC>;4)5%AUE(IuYCU!HL;tC_^+B(H2YTT((oLM|>jVZ!x8S2&n`cKFm+@IER@Hg7RE zt4;h7zn||alUm7bb0GWw2PqfjGe1w6`81P{3UDm|IF-2wK%+ARI^9&La z8Z1PQx$zxozaC)vxYuolqk*`AK|+=q#|7q`8B7dix6L2z-+jsh>)iY0^}zz=3TDoT6F8 z(y-lbgC)FVlG(TO<}U+(h}qWI(A$CNiR+v3!>Au!-#~3T)TkE}M#kDiz~Y&)cxHwl zF9$ks+Pt3b`qC5toReIr8pfgdQ#Eɕ-rF+d!ohN#daxp2jw5e}I#OMGbx+799% zWl~Lbr`z`^(pT9QwupliD)a;>K@diutR-IMx+8XdJK_Gg)9sR_FW9c^>1DNYv_z&qzGF$jNcmV*aUvh|O3EThx002ovPDHLkV1l``gT?>= delta 465 zcmV;?0WSXh0;&X%Bnkm@Qb$4nuFf3kks%x&4#EHc4#EKyC`y0;000McNliru+yfH` zH8RN2HrtU~D}MojNkll_j;Np7y9IbtVpzPvr1X}xqVSkO$XavB;#U)`_quYIQ;I*}t z`3joN2b#?r0P^)+IZ}53Y;XubMfC}yvP!B*C1nBxL7D6I7s-$VV9by)Ls#T_9YLdh zY~e`ViA@A}rAHPIfRBS)H5fck%wl1>r~S9QvWXdTcx(ZXA;;3$j->0GlEgbHQPg+R zd$jP_Vt>pK+lp0X@89*know|jT%i~*t1&~ecoX0rEvF)x415vTH!hV&M`cXe)mJ z+DSw~R5;6HU>JrVa4rPn;-djZ49$;jLfCTZn5rM$WMDYkg(Ad+p-4_0f?)PAhTdojBGPDacwJM28IP)SkeIl1H)D|_Wy*^n)j`r jjMx(r0mG0r4jupi_yJsa3=K&G00000NkvXXu0mjf@TqXU delta 491 zcmVlK6Bnkm@Qb$4nuFf3kks%x&4#EHc4#EKyC`y0;000McNliru+yfH` zGX*9#G*XdUD}Mo-Nkl}XyCjZxbP+l{ z=;q=WUWbYxg@PDCq(jH&B6uHd92`4DbVwp@nmip!kW3kb!0C|Q%ZtW{J#dC|?{~iQ zopbMjN2Ybaf1B0;B7)YzSfX)f-Z-M&-OpTHv|W67xPOP%0b#h|;wJ=J2SiboZnq1- z{{8_`RORyW#(@_W<|iwt)y}BZegW|H-H9Zd1$-b{`Ul&4OBnuCX%${tCO{Z&;2$kZ zK0CZhdIOT)z!mY2mIXejXIn@%3t|%i8g~yAa~S}>-LI*3`*vg&Q;&O^{`gzj#C+DH zv^WDmK7Z@6UHBnuv&WLgJ1MQ!wUZt<`;-=ENO}WoD^``g|Ndu1jVP#8wqW&CCA|T~ zTxJ9uH~UUSIvE%e*f(BZ{{pM0DxdXSqyK_jPmi=iqJQzR4YF%EHC zxZQ5S5}GvW_4@z)+Z6uL_E+ai@4(ay+_f%Fvw3ybf}AI*WLA`B&PO7k=yQrbcX@qU zP!PzphqXlnfU+@4I?$>6lMe1LpCD%j_DzJcF)9RqM!4n9eXt0l0<`9`tL#MWFv?_! zwyrc(XDU|_eEG?>jKOLLJ%-x>6k9B1e{i4UJ zzYKt1^nZB&Gn2P}en}qhr1W~%PI@a%SoN1lvk|rxtIFOVKYyXd6x8bg$2Zw=iRev9K^p95?88yA;0c zs2|&FZWh+xoPATBPUqpTJQxg|iwNIe*Tfiuh&do47-Q)5uBY#d1&hcSp)qFSKB#F# m&1TcZ)oS%=n`tXPW`6Vili3{A4m>HFnxoOgzRk*Oa)mON(>21@ZdSb`DdYNh zN{a33s}tH(JU4w>C}Z7IQ`fJs;^Nyf%L%n#<@PV#yrD=-ebwE({Qsv4WtM9xwU``{ zXzox@l1RSfwf&G)_X)0rhHAy~SM(O8ZJv4SY0=O8*_p=w+VcByf4yU@{__qL4W6!k JF6*2UngFvd(6#^o diff --git a/core/dye/textures/dye_red.png b/core/dye/textures/dye_red.png index 0c44d59fb08321209a4090479cbc320481c8e947..9f8c151ee25685c138bfce9fa731e991f334412d 100644 GIT binary patch delta 292 zcmV+<0o(q#1pNY#B#|*09t#ry01FcV0GgZ_00007bV*G`2iyl27a|=C8(PkhXe)mJ z;Ymb6R5;6HU>JrVa4rPn;-djZ49$;jLfCTZn5rM$WMDYkg(Ad+p-4_0f?)xFRV|7U?k0}-oAKcfVm({SeSwREbD(1*FwF*gw1ATjW7T+#OgKF zAZQ@N4LB(wfub3mjcj1?mW=)qxCfXs&Q1K= zI5$B=;M`nFwCv8aj3}GUpkD8~aiL&=a}z?O+<1Y2bAJ=Iox@--0089kcd+doTCI0C zIU3zvub@(BJiBJy?#Ik5Hs*WUulJb-1`HtPQ}+P_IJd9pagBeN$!mmurgGxi7G?j@yKL)W*fSH zAyP;tZxF6JEMQEkM!XZk$`Ckh_Sr%Ug@OgY-+*oB&}cNU*Cn?3;<&TWe$gjZtJPM2 zWyf(`Cn8u|ASoq?2t))aC7R97`hC&KL^MMvr6^pw4{RM#u~>BDL?ZFG&D0ftvv0)H V$d=cPS&#q#002ovPDHLkV1jZA*s1^k diff --git a/core/dye/textures/dye_violet.png b/core/dye/textures/dye_violet.png new file mode 100644 index 0000000000000000000000000000000000000000..0ee216cca6021ce42f20bb32b1fa060999a74326 GIT binary patch literal 376 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPaySTU@D0($xmHge5 z1dH3PN=I52dicpUC9)YB7(B7@PdiaLk4Mm4@9;w=lk}>b+CTq4-+#^n0&UBTCC}R> zB^XR=J~6lU$bo`ClA9PKOq4&{|F1olkYP1hFxL1G_v^`u5}u!*?>{e@p!XnkT8c%z z)nEIr?1gcO2h)r7BhqQysByOhV zJlb<+5)V(h^oAwOY;0`V&%XR`xpeE|eq+gv>MBfairF$Y3=Ao$u`Sysc76o~fTydU J%Q~loCIEfHif8}; literal 0 HcmV?d00001 diff --git a/core/dye/textures/dye_white.png b/core/dye/textures/dye_white.png index a3dab20ca900f6a76dc2d3b27252d1924402bde6..508e32fbe38d264e1ca2086124d284d1ba124ff8 100644 GIT binary patch delta 286 zcmV+(0pb3K1or}vB#|*09t#ry01FcV0GgZ_00007bV*G`2iyl27a}&Nr=yOMXe)mJ z+et)0R5;7sk}(d#FbqXs5vKsDD+fS|;09SaLkE`5%*@Di^_fBA|X$)Q>9E zm%A?;Bx`E3@y7mxyJ+LZX34 zC{5a>i)N*81tO(bk(Mw{1&44NX2s8jD6!^XJ7>r6T=}~Oxzuvy#tF29DtQUMkg2u zqz)hSQy{L!CQaJ@zSsVj0)J@Ri}b0SnHYexRK}J)?9NgkIrd7kL6c=m?}z~Sxd%V@ zWZelTHehSk*8^#B1po-bLL?dBSn_`@$$0uM|=UA=nrzvG6aXj1bH1Eo`o^6jHC) z34)CYh>+T|-30Rs3=sr_B7(#m8ZjxwM!~TNyIl05=)l0v^5)H(*;)8vT8I4Gv0_~fLD)*;4}ef*6;>yRj_Fn=5l0XRH7B8n7mVWcFN4cOf@vawc`B;FGk zQ>NciGJp3vFPAq^ECgOfvYlcfAa3U+^^M~==J5=1{?QGjQ9~NF(b>h{_Cf2AtE;Xj zao~?`AW6bT4H*muV+%FqhA}%kO%zq=bULVoH}x=m=V#%3bzM}u-JZP4aU6RW5gIkb zT8oGvB3Ns^(uwB4A~Hs3txf$8>L;Rlz3$^usT}mTpXn<8W}hA(?bVrBcmDtY002ov JPDHLkV1n@1)jR+I