From 830a7924c98b106ebfbf383b231ad507c1829aaa Mon Sep 17 00:00:00 2001 From: Ombridride Date: Mon, 20 Jul 2015 21:53:25 +0200 Subject: [PATCH] Begin the 'Black Mithril Plated Armor' for Warriors and Add the 'automappercolors' mod wich is the base of the colors.txt auto-generated update the 'world.mt' file for activated this mod --- Remove the dumpnodes mod wich is now useless --- .../depends.txt | 2 + .../init.lua | 40 +++++++ ...ots_black_mithril_plated_armor_warrior.png | Bin 0 -> 1217 bytes ...k_mithril_plated_armor_warrior_preview.png | Bin 0 -> 415 bytes ...ate_black_mithril_plated_armor_warrior.png | Bin 0 -> 3798 bytes ...k_mithril_plated_armor_warrior_preview.png | Bin 0 -> 1361 bytes ...met_black_mithril_plated_armor_warrior.png | Bin 0 -> 2854 bytes ...k_mithril_plated_armor_warrior_preview.png | Bin 0 -> 669 bytes ...ots_black_mithril_plated_armor_warrior.png | Bin 0 -> 776 bytes ...ate_black_mithril_plated_armor_warrior.png | Bin 0 -> 1337 bytes ...met_black_mithril_plated_armor_warrior.png | Bin 0 -> 186 bytes ...ngs_black_mithril_plated_armor_warrior.png | Bin 0 -> 1425 bytes ...ngs_black_mithril_plated_armor_warrior.png | Bin 0 -> 3101 bytes ...k_mithril_plated_armor_warrior_preview.png | Bin 0 -> 1293 bytes mods/automappercolors/init.lua | 50 +++++++++ mods/automappercolors/process.py | 98 ++++++++++++++++++ mods/dumpnodes/init.lua | 50 --------- worlds/minetestforfun/world.mt | 2 +- 18 files changed, 191 insertions(+), 51 deletions(-) create mode 100755 mods/3d_armor_classes/black_mithril_plated_armor_warrior/depends.txt create mode 100755 mods/3d_armor_classes/black_mithril_plated_armor_warrior/init.lua create mode 100755 mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_boots_black_mithril_plated_armor_warrior.png create mode 100755 mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_boots_black_mithril_plated_armor_warrior_preview.png create mode 100755 mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_chestplate_black_mithril_plated_armor_warrior.png create mode 100755 mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_chestplate_black_mithril_plated_armor_warrior_preview.png create mode 100755 mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_helmet_black_mithril_plated_armor_warrior.png create mode 100755 mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_helmet_black_mithril_plated_armor_warrior_preview.png create mode 100755 mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_inv_boots_black_mithril_plated_armor_warrior.png create mode 100755 mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_inv_chestplate_black_mithril_plated_armor_warrior.png create mode 100755 mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_inv_helmet_black_mithril_plated_armor_warrior.png create mode 100755 mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_inv_leggings_black_mithril_plated_armor_warrior.png create mode 100755 mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_leggings_black_mithril_plated_armor_warrior.png create mode 100755 mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_leggings_black_mithril_plated_armor_warrior_preview.png create mode 100755 mods/automappercolors/init.lua create mode 100755 mods/automappercolors/process.py delete mode 100755 mods/dumpnodes/init.lua diff --git a/mods/3d_armor_classes/black_mithril_plated_armor_warrior/depends.txt b/mods/3d_armor_classes/black_mithril_plated_armor_warrior/depends.txt new file mode 100755 index 00000000..585cc7aa --- /dev/null +++ b/mods/3d_armor_classes/black_mithril_plated_armor_warrior/depends.txt @@ -0,0 +1,2 @@ +default +3d_armor diff --git a/mods/3d_armor_classes/black_mithril_plated_armor_warrior/init.lua b/mods/3d_armor_classes/black_mithril_plated_armor_warrior/init.lua new file mode 100755 index 00000000..2820010c --- /dev/null +++ b/mods/3d_armor_classes/black_mithril_plated_armor_warrior/init.lua @@ -0,0 +1,40 @@ +if ARMOR_MATERIALS.black_mithril then + -- Register helmets : + minetest.register_tool(":3d_armor:helmet_black_mithril_plated_armor_warrior", { + description = "Warrior's Black Mithril Plated Helmet", + inventory_image = "3d_armor_inv_helmet_black_mithril_plated_armor_warrior.png", + groups = {armor_head = 5, armor_heal = 0, armor_use = 250}, + wear = 0, + }) + -- Register chestplates : + minetest.register_tool(":3d_armor:chestplate_black_mithril_plated_armor_warrior", { + description = "Warrior's Black Mithril Plated Chestplate", + inventory_image = "3d_armor_inv_chestplate_black_mithril_plated_warrior.png", + groups = {armor_torso = 8, armor_heal = 0, armor_use = 250}, + wear = 0, + }) + -- Register leggings : + minetest.register_tool(":3d_armor:leggings_black_mithril_plated_armor_warrior", { + description = "Warrior's Black Mithril Plated Leggings", + inventory_image = "3d_armor_inv_leggings_black_mithril_plated_armor_warrior.png", + groups = {armor_legs = 8, armor_heal = 0, armor_use = 250}, + wear = 0, + }) + -- Register boots : + minetest.register_tool(":3d_armor:boots_black_mithril_plated_armor_warrior", { + description = "Warrior's Black Mithril Plated Boots", + inventory_image = "3d_armor_inv_boots_black_mithril_plated_armor_warrior.png", + groups = {armor_feet = 5, armor_heal = 0, armor_use = 250}, + wear = 0, + }) +end + +-- Black Mithril craft recipe +minetest.register_craft({ + output = "3d_armor:black_mithril", + recipe = { + {"nether:white", "mobs:dungeon_master_blood", "default:obsidian" }, + {"default:mithril_ingot", "mobs:dungeon_master_diamond", "default:mithril_ingot" }, + {"default:obsidian", "mobs:dungeon_master_blood", "nether:white" }, + } +}) diff --git a/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_boots_black_mithril_plated_armor_warrior.png b/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_boots_black_mithril_plated_armor_warrior.png new file mode 100755 index 0000000000000000000000000000000000000000..771054cce382c3390b6cc8bcd453d7b049c52892 GIT binary patch literal 1217 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}DLQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GGLLkg|>2BR0pdfpRr>`sfeO4|JMsZHID=7>NEPkFYjv*Dd-rhQ!EgLFv{NwwX zmd3^JecyRsI(9{E>$U|QCCaQvd!1Mdl|y1WX6yahuj!hxkn7Q+9fb?E#ksgbr#w^h zy>w6Id##%B^Et@nUaT#-}Q#SnxrCVW~SolA|uJL ztaY&tv;DpEyszSKKL5*LR;8)P5jl%N;HV(m;fhC{k3~*wJ@r|pA^f_`IcHtrtjM14 zeHu-V1m+a~xo}%HI`26{ME1r5uf@HaI8r4y zY<&1Hj8{1G_x#@s7SB5#&zS$eqjM35BZpl=kGsp3L!adus`j3HdR6co_dRxoM-|(& zf8_37C_3-Au|w#`Y;#u^jV__=&AP$&=!RO&JW&s@OUfb(qIn>x;)(`F~)1&dhP+NRrYEyBm)j_06sO zzx)50dv&vS&4+)xKYdrUe*WW4_xh5&3NfaF$CqC-2{3iAysQ0vS2%lDQKjp&>DK-Q$=_!=BzU=#F@oF?LW@@v1{lXGu(yI<#0=+oVvSO0fE-=US; z8$MQa89rN)@Zno@c&d$@u~e_d>8@Lx#SXKU#q8Uncdjz(tlHYJ$q!^hQ~TC&IVI^% z&OBIP@ZfXw_M7*rJeFTx6u0_f-u6;9i?^&f_U~lpzw7;e<<-`kzB0)NBrciQ0%K>{ zijKt+Jqs;#EMM@?d}e9ZCn$JLZ;kQE;wHn8bqT3od0YcGnM)KJ$Ye42RWoX9=gujv zc(2KI+`|5dfI*?plmpM6nd!$z)xRp=EzQ3&>-3dPGd`Adt+jbu*1YJnLwSY1MDmL3!eUaTEcUmbe^=kJa^dcczR3&EJ$j^6 z88|`yNl2<|sO6<;OYcUics{y$AiO_QZ(ZVDyn2ifIvY!+#pT5R0@^wBTwqew+7Fpkmgv%W`wi9K5LJ zyC&c!^SM|b&&@3t4HgH^xBVh0nW3u}AS0L5lbE@(*LVBNEz(bpDqFpLBQG~Il3~_I zyVcW;avnL(yQ8&EUwY5xlHIqM{6fpKo$3SrTo&A8aF+SBY`eIkaALn*sO9d>&zlvL zQZi3f)O2ibyZ5i7tJwtQMknJHYLbQb18|$`Ih|* Z1|9d_-d}R*4zRFc@O1TaS?83{1OUB{E+zl~ literal 0 HcmV?d00001 diff --git a/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_boots_black_mithril_plated_armor_warrior_preview.png b/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_boots_black_mithril_plated_armor_warrior_preview.png new file mode 100755 index 0000000000000000000000000000000000000000..65913645cd7cb78796a9f59bdc7e0dda9c16a7d0 GIT binary patch literal 415 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3-pQ0$S$)sa*j+A+Dm_3=!Ve(Z1F(es=MJ zj!D5zNg*yNp{{8W?gmO?rs`5=8q(&P(&kz+=EnLKS~3<|veudcHU^4zIsy**f)2K3 zjs`+brfN=h7S3jBE=IyG78))NR<4#>ZkC#EPB!kQ;vUx8o)!|`wz@v{`o5mdevU@| zK;#5O#sSX8fk5P9666X*ra^ul!LBC3Ze}4KKx7f>VHW9Q9p!5i?PnX~XPX%8oD|}m z6c?Tx;{5;r|66kFKwjc33GxdD(hyLbGJ7GA)$Qrx7*fIbw#!t=$x(#m=fB8^n1sUe z@}2*8a>V(XSYCX+WObU=VvVjv8vj+hnoT}B-RIw{!uzPBslT8>Q-XtaM$^m-t(qB} zr8Alyeccf==UnBCrfo8{GnzVOf@d`K%2>}}Qf_b5JTZ0F=eVP3iCk~${_e^N7hAUA q^PbxK-;Z-FTVPeTE>L<};v4(rd2+p_LYH=f9O&ul=d#Wzp$PzWkc6)Q literal 0 HcmV?d00001 diff --git a/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_chestplate_black_mithril_plated_armor_warrior.png b/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_chestplate_black_mithril_plated_armor_warrior.png new file mode 100755 index 0000000000000000000000000000000000000000..f378a002a6ec15c346600be7bb505f0a447ed3b6 GIT binary patch literal 3798 zcmV;{4k_`8P)is9U;qq&0WbgtzyKHk17H9QfB`T72EYIq00UqE41fVJ z00zJS7ytuc01SWuFaQR?02pA~w~pROvgCZ(nI5+9X49|?%doun-dE8V%g~c;*oHlA zW_EUV=OREl3W83$4j^a+L69H;5*Anp3+SN#_9?yqlbfs|yGU>^P4pq~Ugdl7l2u>C z7bcTa4X zbKQLZF9wiLM$uns;BWu>oce=(sWKX8 zh=={KPRnP@EM}*t@I;KkF+Yz-5AMM&1`-VTF*h@FZ2(@ZXECftaj=vj_~P+dVS}t1 zMZb|kx0yZn9yEm4G=MJ#V1WM-m(>wQ5S<8=0UUOy2y;?p3~OHu!0i2( zH-NJ&Kp+V!0Vlu&{mBXV#x?WYYME6X*I&Q@-tV-qUWthT6eXs&vA38-w;IF8gGFq1 zau+f{ub#m7`-^{G`(gm!U5x<}Q5EWw%1P;@cgyUIdcWOjfyeFCFyL|8F*Esqp@AWS zp@QoSAJ+!psH+~&1W!C#;{HY%o2@iH3b?D)IF>7^bMG;1roI>e#cP{|&pxY0Kwv)= z3dj=N!@U&y^b-{(b4=`*;4#r-!pFpq2_O@}L_ETzkjWvFL?(+&9Qpa$06bkSU{@2t zB6{_>Q~(t*f(kxLhW}Qw{dPWx^>TzlrXV}0fo!)k_-?=b#Q-w?c_cknBs?|+wOWYd zr|+NR-+%uP_~U>5lgRJ!hyVCT{L9aOkMECn5cMypgq?GUh;Y=BPC#Xe$5M|aA4@-G z`k_GJq#RsedB`%6B_m5mmXOy5V1G%# zpw~*P91vvjq}8>P0zsXaKdS`tGB(|ZA;nI#NjgORH(9F!-xGP)bbHz<39A7DHX%>cRDEy8*v55 zIDc+x1`qDt$DKQO^j`B;+nMv6yr0`7x3#kKJS+Go=;aZ!aha4_VI89zkac% z=d;nnB#*T{$F*t_JBt~1^aR*4*A1a3)1%n{GUU4YpT7ajTWpw}n#P@p+qm`h*O>U` z8!-f_-{&20SnX(whcc0R-4l-_Ffx(~Y5fM^#%OrHF;;}ydA@aa4&U6mg|B|~D>;9H zbEyO#pPv6rbdMBhf?s9ZRzt2a!5CnQXLHU&ebPKm{-##^fPCleyycyIr zVR~gUf>FQ?&o{@pRVFh7pVcPKGdyVc1Nfobb|!u*+-AZDAF~jqjFscDC91s+iZf}NFyxpwp->@n7+UjIbPy01g?5`AM zt$|lMFG$|d#Ip^8+0u1Gj=4w9WnMuBW_5KIV=%)44ML>C&sxjxEv3<`gt1YLq8M8M8$BO(TVkMPF^W9;%?zH2 z-ut~a0phwL=K**P{TpHcZUG@248rAbz&baJndvFa&d#t=qX4lRH#hYV*6BxZ+oloo z+7WbHI5$S)x-sWo>QI+w=vjQg^YFoaX#qbLqp%|y3c)^SMZ!O?PwF=7QS7$U*lH#O zb`}uICph@Uc8R@B{@Z(_vJKfgLt&AU?Yyivp$Tx&;C5G)znqfr@EsJiue4+ku zrS>!bwnJgI-bp`WO}mCsIWNR>KYs&QkuPPNvj`|*7+Qv0Je>Cyq3l$<|6=Tj?nhl$m-JJYD1S*Ab z=hFa27{Cm+jN$Vbz&L*_0L`>dpZFOgY5YJy-E6boFOAiw4$DL~idKt3^I04}e*<{B zQDKH}0L;;x>6<;B*9k5`zHmHTPRqW+>F0dZt(kt%ZAEB-V!?vLf+53*cvULkFc^T| zP6jv&b~SP?18{HLH$NW05x}~&1dfFMciKrYgz-t-!BP@y0z6C8f!ue*pgw;C*jdUD z2m^3qH0EYc9|ieRqth}Cp8(F}G8&E`5)8rT_K49{m|fF23?wNel%B9(~I`{`Ls9E}jb z9Kf6ejL9!&yS1@vlc^pphTs2D*=J$r94E&Ewn6mhVcH#2}HnQO%m>v?{r?v)u} z&{PJ{X3x8w=2-nsDUNO}rH!D?o5%ofH*4^D+yvSTy1D1i(G2LQmya5Pj^=s0Q$aEj zGADuJRar!Q^ZXHw5J1m1_W@XX@!EM+0IyT`$_zkCXQPKk$@dM$>1%0QiLg<`3gYH5 zfOo-#px;Bl&7f0^&m2cVzR(aj=RS%tZ#GLv#6zf*^BMvgwJMUa7*?uDzLjeV0nuNE zfOh)4Du8>bdsPPD%N|A(hk3|YeYT$2hNffi5%G;Qhcm_Jrm>`Lu4aX5I2tjBGx;I*i;aln@|Z@@53{D z7oIs083VTadM!NvP$l7>gk|!s8bHD|sn_-fOR!De(S6i&Pv1T>cT7#FaBiH-^`K=! z@BOL2!}!cK(_ZRci2*uUKbt@*8;vv=-!G8^7>yu4ie~@+W-$OCmhfG-#e7J=)JiF; z<5D4vwtU$}%B!C_@79u7Eywip`=g=C$5-2UbGU(b&j)z?=pITjkFFO&_A~QNE{OGN zLeJS-t>~Qh9kz2=tHkk%zr&bwjeEG4I@G-q1N58vTGz?De`);Pk9%YFxrckZ)dZQ5 zHIXsW&@_gP$Mepmo)SgD# zhk81|5F+B&k?Y0y<@*2xotZonKRyF^x7)$noz7T&?&03G+NnOv!kfbYlarI6SS%J; ztyX;}KO7Eo&TALFka^*oyXF@>jWc;3&o$08-}5qiQXvn@3BQO>Upp@+{fGx#a5~3# z0`*OvVFPbZUf>}06S$vVb}#iXhJ_q%)`_mXTL{*f)|;R(<$z*}>;Of5pF_f5$(6{f3{edq{-lgmwxM?3Lrt zOW4#Dd_1b--ChYFsJ%I?p;c9JbJ51%fBb^?XWOW) z%dEoqK{bgTT}E9EVi3NkO$#k$rp&lcY%MLt{Wx!FIBVw6Ev^xG3Ws$SmpcWhYb%HZ z=TXZ^thVRdx`akHC4O*Vtts3@W5WeS#fGy>7IVAAY zt##qy8MTq+X_%Q1dUu}o$(TjLVUQzalWF9_NK!%$!uRxz6fFJHg24PF3KWGsV%yn> zJvaiV=ey*k?Y%UQ72h}p;d?kM*}Fa&a4y)=qj>Xr7-Mf<>__Lk$z=u%{Asa2GzmXwn#s3cd(o?qB~vJmws;V#=6{L^EItxP{kyd5IP zEhiQCx#c6;q*_oUqr8XrZfO$DD^C}qVk(S0F)61)s1UnaMiOD#B5)(CKvU+0acAP~ z8wnyFW3~J3LKH@F8K$}lBeBSPX?zW}^eQ?;(9B6FQ50%~yFnyNstiv~o<}hy!D=~7 z9on?1QN|On<+&sA$fFp0#cKDr)+I_r1qViy4EWI?gN#{9g@{0eirSK8%Wgf+0YeR; zPvPIz!bBu`-%}>T;B4f{wp)~GUCjRO6v8Nz;VwC4=43b>c1D206~IX&L!~!Mp?ct{ z)5vpLQiYt6ct0QU;0W;f@HJ^@f-Qyqq2~hhvFAdYdic?}K@MHDG@R1$HT3A<2rx?~ zP}idT?KFPh0ITgOYrhh4MnGUR$?%DpMKv89904k8fncY5h0!mZsGS2MN3e@nh$gCo#bSL`COcl+<> zACS|?Q$)DW>+H2nE<|}zh^WSdpOFKpRZ)npb~NNEeDQz}EnRwKtVaeuT_0g)>^n@2 zz98Zud#i%xSdIP{SxC1LFIl-w=9r*u-(Sit{}auV1}DBH$DAG5;j@8AD(h=@1_!w_lC` z8|6&p#N&U!c}vIXwvIzHLr0?Gec!u43%pv$w!E3+^&bhXwNP>G9I^MeQM z+}t!{Fcy)p@x`^YBOqQXjVw;@9ta$Ip7?ZNFcE%)iiFxX;vylhx*K@6UluRpgL;|) z`P$k<`2l;;)} T&W!5G00000NkvXXu0mjfxaN%) literal 0 HcmV?d00001 diff --git a/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_helmet_black_mithril_plated_armor_warrior.png b/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_helmet_black_mithril_plated_armor_warrior.png new file mode 100755 index 0000000000000000000000000000000000000000..10e886c6048e78e21ddcade9b67e2a81ca3379b5 GIT binary patch literal 2854 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 literal 0 HcmV?d00001 diff --git a/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_helmet_black_mithril_plated_armor_warrior_preview.png b/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_helmet_black_mithril_plated_armor_warrior_preview.png new file mode 100755 index 0000000000000000000000000000000000000000..c99b3db843c27d0bcb64013d3f8a52bd919f8f90 GIT binary patch literal 669 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3-pQ0$S%VFfeil_=LDJGBB{RFtf6bP3zdfFNUnMwq^TZfuThM7u)n@U<3XxbQS1v(l8I~#?$nTENUMYx+rdt1kN zTgLlY$NSmD``aZ2+9wA&qy#(u|Ns9->gzsW=y;X{`2_=M>VTt(ZjXQ_{qS^g45_&F z_MCV4AqSqehk~nx)+;n|#BFfmZtm#&9^`n@pOtG-$lw3}kL28#(0Y99XT41)i;EU5 z`PO?I+#;pBJzD|B&f{o@K*s;RlQ^d=U(M zf^w`6T8l&&O`dB!2y57tIB`aNq_570dnT+OcKJT|Sz7%4Dd&e)9H(^@czpf@87hdpW-o20s zdOAxN{!I?&c6c&>&f*>W0#g=rvOM_a<*_bx(v9y|O)Awkdo0N@n|=1%{a=h7FU^Iv S{bG9x3QbQ}KbLh*2~7aEs>X2u literal 0 HcmV?d00001 diff --git a/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_inv_boots_black_mithril_plated_armor_warrior.png b/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_inv_boots_black_mithril_plated_armor_warrior.png new file mode 100755 index 0000000000000000000000000000000000000000..109e55a550f3af4857a232e03598a86d3c87e2ee GIT binary patch literal 776 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0V3ZB;32}9`(h0EE39{7*w$%x- z*9iq82c0lSop5KJNEe+bSDh#~ofvn$SP;^W^Dv0>G)Mp;!$dD2GD`F|O7b>N@&zK3 zWIxjsfAf?;^OPX-)L_fBQ0w$?yNpQt%t*)FSdY9oufjzC;^e@Rl%Ueopt7{!ij2^T zjIfH#u*$4(pflX8bUdtdJgs!RtaQAsbbPIJ{H%2R!Ojb?fx0l*4vQlrUGyVebsF!dnaWFH#vy3nd>ignW(sQ;@#7EUE+I0)S`Fa z>}qvkP5t`+zuWGB$(PdZSJ}Ve`E6JHE%8~y|5G1d${)D+?Ow@}9f3D&EaouH5!v?5 zR(x~8@7B9_&T&}p2wGJ*aca%FA8qX(tEXtC_N?`o8ym|UbgtHMhY#b~<7N+3TIDzn zZPhw-V{?U`@1s3JCFR{4(!bwcc*cdl^YI?x<4Wf;I{pM4lVZgu(>4eWEIKM2On+-qfGa_w{42F3Hvd;cvysr^|; z#BhaoifmJG-^R&GdrB8P-?X5qVZx5r3sy8~vER>X+s)Uc#icb@uVK#-W|hD+mpOKm zBU$!z7^$Y5S{kGzp3uQ`$#B9P@8_b07li-- literal 0 HcmV?d00001 diff --git a/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_inv_chestplate_black_mithril_plated_armor_warrior.png b/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_inv_chestplate_black_mithril_plated_armor_warrior.png new file mode 100755 index 0000000000000000000000000000000000000000..0d5a9fca375bba2e4b41bcfa33574736d376bdb0 GIT binary patch literal 1337 zcmV-91;+Y`P)Q9Y`}{o@3y>1wy`bSGI+sYFqoa05R$y~7xZWJq0@&xbUM@N zWTp@OZ(q;3L~1NT&3nX^$o>(I^7@6uLnzg+X0q&7oxWmO)Efp4&P}sT+mw>XpK< zgeJ+$Fz4A8J>ta?89g!6l*c%Z|0UrxXnAgHHR#4DeAj@0E#bTz6ZqLqPI!1uI<&q3 zGaW$hlc#+$W|43hs2o>yrWJf*n1KS1-pg_3AlhCSPE2b`rkjId~SQd2DIxyFKQ$yodLW z!guAARp_BL6r&z&MZGYRJ~VZi7ADc5kiVY(7E5!JShj5Ka(*z>0QwaEmKG!;;UQ0n z41=?ghcu-^rgc&Ky;}&POosQ!DKjg>>98{b6fPf58)<6284A^qr%oe}(Ig5vBk_Jt z@#qL}e)yO)G{KfaKkT^xz3;h@rXIZa-5`gq+ZxU&eGNT4Is(j+3DmVPzdMZ&86dGe zW$9N!&IkyMCK*08GpMHgqa$Eu?;_ADL~+r|a`g}8)EYa!Imy{$J?@90N}>^MKOzDg zG9r)_-D_Z~))5>6cX;U}!rC5-qnX^`za^ir(Gh6m6uU_r-2MCc2jn#J5D^~pI(u!C z8&O^~BI+^0N7O)aQ#7LMT@85(U(Dx5TbJ$`>yd#EHv=qAeS`VQXGA<;&(+ibf~)gT zyz@va9wHXwM#LxVzayZBR=EiYsb*x6KlgWISeqTk+RQlCzkeej5?A^7go{>;iW&C*CK}K2@a~f?l)F4U; zpLoCQH-uatH*vC8#l?Y%moJ_n?sJRzsCSOXj3Ka$RDe^-`pXeuqg<(6c>E8zXzMs@ z={PpiloAzh`vz_fD|mlWN4pq-E-xXkEWu3E(Tc315)-%Pp$qKt@&aQp7Ll;=#j&&_ zAZ{v+49@N@2poDb@!`l|B76xI1$Ah|L_uEfZQ;#fS=@||>L~`~V`~%T3+!b_7u|1q vdYUm9OJJH>nD9Q`2bwuy&-L{D@1K7FcJpA8eO+u700000NkvXXu0mjfBFlCi literal 0 HcmV?d00001 diff --git a/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_inv_helmet_black_mithril_plated_armor_warrior.png b/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_inv_helmet_black_mithril_plated_armor_warrior.png new file mode 100755 index 0000000000000000000000000000000000000000..96e260a424bfb536cf6f84a451e2d92403b04894 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaA83*`;xB_Vl15F!atw2YEU}vK+ zH`6dTvj}(7Xm9HnZ_9W;>v%t#cz?U3K>Oq%hm>H)|Ns9xKX|EdJIyrZAavUa2o-eL=@W`3NXAU1cewb0^=FXinI9?st e(tIpIgn_|f24k9tfWup$0Sun5elF{r5}E*H`8zfM literal 0 HcmV?d00001 diff --git a/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_inv_leggings_black_mithril_plated_armor_warrior.png b/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_inv_leggings_black_mithril_plated_armor_warrior.png new file mode 100755 index 0000000000000000000000000000000000000000..21f1d0041f283fb2a61caf542e27c7a710fdff27 GIT binary patch literal 1425 zcmV;C1#bF@P)=*u@g7Wt4-3XFF}C{@sNsG@DmV1sGzc{DxjjM z5<(z0fVzPN5^UHY!Gblg{CDr%}!)aQB0^aP{0k z`Ci;=%UTlIM3}#sT&aKU>TWOs@yP7oT4rCpTg|9)hh|RfV|Eg;$Sk7a8AKOm@bR7N z=vo>aBSl{?@geoEJiQ%^!2QGC^d9Q_Cm+3g6!du@F_m+T>aUy~qG?;>6X>^VDoDMO z!@0Hnvi6!)wf54b5kZ@4+*3aFa?VTaE4So4)n7W@N1;#%aQRo4RFGOZi@miDoT>)b zEMe4Z;NnJypv^VzDW7UF<0bZ$QvlU(uQ*7?7RM*Bv+5$BO~EJ^K>JY@ppT|yJzrlr z1yKFEkX;DPj8EXqY76mL1bQhC+K;LLeY8T_^YxXRrL0mv?9?$A3I!O#^(DmR9+wIk z(6%ahbQ%>&;NrR60YRH<+*3Z4QqJ@Bm9s5W-*>7=CKKZmIKRNV zl#kOeJYQdVQ3OzZt5%YV#>XeHcdD%_U}zc8PQ@3|u1f`098upVXmgE2M;}(e^YxXN zg#gv3Qc=WWvGECP4IE_C3Ax*O&}NdpYs%y=;pIysf;QJUbo3zszWLizF6UBIujV5f zjRyD*bS)I+a7{0OHiNFXRaN3^Pi+vi*#Zt7eMo?BNm%ri*Uh3*-)&pLTHu%(%2Ix# zlH+w_5(#L?;5m49Z$Qvy3lur}*YCfZM!{F^HY!TJYa7Vt^Wzg}O0Y^Xi?V=0nZ&JC zu(>QlxZNXYvjvKrE2?b)&+%q>%1MCg-KGgm)5a&z5cZY?WS~Y>mHA;q$QB3+%E#1m z;JK2P_LX5a z*aYfos^vawS(McGpn$5L=dB&kUYD)d62+A?_7T~$K-(?e#MG~ zjPzYY+ik#=L2S7e>_!!a%m(+f={Qn}sKP>c4&k{F^0_Q@z2XyCA9mk9_Fp`iWK3Z( fGJlL}gDCzN00000NkvXXu0mjfdeXsy literal 0 HcmV?d00001 diff --git a/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_leggings_black_mithril_plated_armor_warrior.png b/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_leggings_black_mithril_plated_armor_warrior.png new file mode 100755 index 0000000000000000000000000000000000000000..3f25bebe3ab5397da162946980dba371911bebe9 GIT binary patch literal 3101 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 HfYkp2V-TkO literal 0 HcmV?d00001 diff --git a/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_leggings_black_mithril_plated_armor_warrior_preview.png b/mods/3d_armor_classes/black_mithril_plated_armor_warrior/textures/3d_armor_leggings_black_mithril_plated_armor_warrior_preview.png new file mode 100755 index 0000000000000000000000000000000000000000..41fd645c8e1ae48f57848aa42a1196c91081aa6f GIT binary patch literal 1293 zcmV+o1@iidP)VQ!Pj5=V{0izBWb-<_tMjbHffQu)${y%?w z3kE)YX#M}SOD6uOx&!nz6#paRDgAZ-MFqJ2i|}#%7Y1TcLGJ%TeC+=Pc{%=1>#zBb zuAV9m2y`_C8x|j6_kZj9ng7=;oA`h6oR0q@Lj3==)nxx`smlCURgnBYXKK^`XkY99 z5IrW;ae#yf?|&s(VX$FFnzH|c{9OL?^Kd{gFXw-8puCt6&wnvtp8xY_w){8ORr+tJ zAq`SX9S8V0n*0Z1uwg*%|Gv(u|6MI*{};~c#D+m?z-poTD0hGrp#5rFPU8xK=MUm2 zj*TwtviJLa7Z3;p0%Hm6vK%L=ByUMo{{Is?)2EC|QKibY@=G54(6ys8%}g`XXA8B7 zE|mHv-mh92^%G&#JE%uv(0DvBWcQSaql(8+GhrJ7zg3|_xP;Eurf zOA{c+wk{rXmE@K1H2RzHW{kn$C0uI=#+g4tm;2J7#vl7R!C0R$M~?5BkGV?nN_a$n z0UtIKn8Q;9Qj{?rKF)l+m8QQ*bAmC?m?I|+od+%_AbBM`qQ8K9E#M5L6qQ)+`}b1V z#%5OF)0+vwSf4RRPL+obTuwmpN_a$n0f*~WPaw31V0=FK5p60HxT@sa&j`jmqv^=u z1dd!zMoC@?kLWMp&Aftfaf;L%fiauR>R6mV#$R#+2*z?o(~&~~eDZHjMoC@?kLWL8 zHOb(N&XEKb7_;bA9qAGO{mX`6%tkaFITWCuP2zAeT%!^m(O*Cn+wf%kp>OKz#wOD; z6ysI+{V*pOvym1@e){=Yh88EIB(H==^cPS{G2b!Z30PF$?Zn6SQcSp;5{%i1;w0yw z5Xk4ae@=@pq9ghX$P*Wt6ij0Wd8EhuUnb-V1eWH+feC)jwJ-4c)rr(_RFS%>&bLP$f?(V(CQ&VD)p?wY3iEWki4aU6@FJWx%Ysyqu- zmiW&TFzxcAfTOeV;pX4hkZYmo$eFa6Mi#q}&#NkrG(=Q?0Zkdn3IdF!U{fX9TolEt zMnq!D&@&hd92CJ2U6Udc-sPk~TPLb(5;YcZ8odRi+SL|3+YncCw-%yc#9N`o5M}Bi z<1G;GtO{@`>$vJtTu*XrW;I`C>SkK-t=eC}?Xr~@O@rN4{TOoA;_kY`em%kAW{UUQ zIqu&s@oB%-{JYgy{$AkccU$%A{jK_V*r@$(*2-4;XTsKtm)ouSAhgyIe6jf(-!PhV;L zaPk5tFTTUbG!O*7Jcr6M&y_tIDr0!||NH0kn}B}+dXWl7_$WJ$00000NkvXXu0mjf Dg~@@y literal 0 HcmV?d00001 diff --git a/mods/automappercolors/init.lua b/mods/automappercolors/init.lua new file mode 100755 index 00000000..55143326 --- /dev/null +++ b/mods/automappercolors/init.lua @@ -0,0 +1,50 @@ +-- Automappercolors by gravgun +-- WTFPL + +function amc_dumpnodes() + local fd, err = io.open(minetest.get_worldpath()..'/amc_nodes.txt', 'wb') + if not fd then + return 0, err + end + local n = 0 + for name, def in pairs(minetest.registered_nodes) do + if def.drawtype ~= 'airlike' then + local tile = def.tiles or def.tile_images + if type(tile) == 'table' then + tile = tile[1] + if type(tile) == 'table' then + tile = tile.name + end + end + if tile ~= nil then + tile = (tile .. '^'):match('([a-zA-Z0-9\\._-]-)^') + fd:write(name .. ' ' .. tile .. '\n') + n = n + 1 + end + end + end + fd:close() + return n, "done" +end + +minetest.register_chatcommand("amcdumpnodes", { + params = "", + description = "", + func = function(plname, param) + local n, msg = amc_dumpnodes() + if n == 0 then + minetest.chat_send_player(plname, 'io.open: ' .. msg) + else + minetest.chat_send_player(plname, n .. " nodes dumped.") + end + end, +}) + +minetest.after(1, function(args) + amc_dumpnodes() + if minetest.setting_getbool("log_mods") then + minetest.log("action", "[automappercolors] nodes dumped") + end +end) + + diff --git a/mods/automappercolors/process.py b/mods/automappercolors/process.py new file mode 100755 index 00000000..7d84806c --- /dev/null +++ b/mods/automappercolors/process.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python2 +# Automappercolors by gravgun +# WTFPL +# Note: running this in Pypy has been tested to be ~3x faster + +from __future__ import print_function +import sys, os, re +from PIL import Image + +predefined = { + #"^default:water_([a-z]+)": {'r': 39, 'g': 66, 'b': 106, 'a': 128, 't': 224}, + #"^default:river_water_([a-z]+)": {'r': 39, 'g': 66, 'b': 106, 'a': 128, 't': 224}, + #"^default:lava_([a-z]+)": {'r': 255, 'g': 100, 'b': 0}, + "^default:([a-z_]*)glass": {'a': 64, 't': 16}, + "^default:torch": {'r': 255, 'g': 255} +} + +predef_compiled = {} +for k in predefined: + predef_compiled[re.compile(k)] = predefined[k] + +if len(sys.argv) <= 2: + print("Usage: %s " % sys.argv[0]) +else: + pngpaths = {} + for root, dirs, files in os.walk(sys.argv[2]): + for dir in dirs: + if dir[0] == ".": # No dotdirs + dirs.remove(dir) + for file in files: + pngpaths[file] = os.path.join(root, file) + out = open(os.path.join(sys.argv[1], "colors.txt"), 'w') + f = open(os.path.join(sys.argv[1], "amc_nodes.txt"), 'r') + for line in f: + ldata = line.split(' ') + if len(ldata) == 2: + nodename = ldata[0] + tex = ldata[1][:-1] # Strip newline char + try: + a_override = None + t_override = None + compute = True + ccumul = [0, 0, 0, 0] + for k in predef_compiled: + if k.match(nodename) is not None: + v = predef_compiled[k] + if 'r' in v: + ccumul[0] = v['r'] + compute = False + if 'g' in v: + ccumul[1] = v['g'] + compute = False + if 'b' in v: + ccumul[2] = v['b'] + compute = False + if 'a' in v: + a_override = v['a'] + if 't' in v: + t_override = v['t'] + + if compute: + inp = Image.open(pngpaths[tex]) + # Flaky PILlow bug causing unclosed fp loss during convert + # resulting in a Too many files open IOError + inpfp = inp.fp + inp2 = inp.convert('RGBA') + ind = inp2.load() + inpfp.close() + pixcount = 0 + for x in range(inp.size[0]): + for y in range(inp.size[1]): + pxl = ind[x, y] + ccumul[0] += (pxl[0]*pxl[3])/255 + ccumul[1] += (pxl[1]*pxl[3])/255 + ccumul[2] += (pxl[2]*pxl[3])/255 + ccumul[3] += pxl[3] + if ccumul[3] > 0: + for i in range(3): + ccumul[i] /= ccumul[3]/255 + if a_override is None: + a = ccumul[3]/(inp.size[0]*inp.size[1]) + else: + a = a_override + if t_override is None: + t = 255-a + else: + t = t_override + + if t != 0: + out.write("%s %d %d %d %d %d\n" % (nodename, ccumul[0], ccumul[1], ccumul[2], a, t)) + elif a != 255: + out.write("%s %d %d %d %d\n" % (nodename, ccumul[0], ccumul[1], ccumul[2], a)) + else: + out.write("%s %d %d %d\n" % (nodename, ccumul[0], ccumul[1], ccumul[2])) + except KeyError: + print("Skip texture %s for %s" % (tex, nodename)) + out.close() + f.close() \ No newline at end of file diff --git a/mods/dumpnodes/init.lua b/mods/dumpnodes/init.lua deleted file mode 100755 index 10b7ba9e..00000000 --- a/mods/dumpnodes/init.lua +++ /dev/null @@ -1,50 +0,0 @@ -local function nd_get_tiles(nd) - if nd.tiles then - return nd.tiles - elseif nd.tile_images then - return nd.tile_images - end - return nil -end - -minetest.register_chatcommand("dumpnodes", { - params = "", - description = "", - privs = {server = true}, - func = function(plname, param) - local n = 0 - local ntbl = {} - for nn, nd in pairs(minetest.registered_nodes) do - local prefix, name = nn:match('(.*):(.*)') - if prefix == nil or name == nil or prefix == '' or name == '' then - -- nothing - else - if ntbl[prefix] == nil then - ntbl[prefix] = {} - end - ntbl[prefix][name] = nd - end - end - local out, err = io.open('nodes.txt', 'wb') - if not out then - return minetest.chat_send_player(plname, 'io.open: ' .. err) - end - for prefix, i in pairs(ntbl) do - out:write('# ' .. prefix .. '\n') - for name, nd in pairs(i) do - if nd.drawtype ~= 'airlike' and nd_get_tiles(nd) ~= nil then - local tl = nd_get_tiles(nd)[1] - if type(tl) == 'table' then - tl = tl.name - end - tl = (tl .. '^'):match('(.-)^') - out:write(prefix .. ':' .. name .. ' ' .. tl .. '\n') - n = n + 1 - end - end - out:write('\n') - end - out:close() - minetest.chat_send_player(plname, n .. " nodes dumped.") - end, -}) diff --git a/worlds/minetestforfun/world.mt b/worlds/minetestforfun/world.mt index b9f72c55..87fa5d17 100755 --- a/worlds/minetestforfun/world.mt +++ b/worlds/minetestforfun/world.mt @@ -20,7 +20,7 @@ load_mod_worldedit_gui = true load_mod_worldedit_infinity = true load_mod_worldedit_limited = true load_mod_worldedit_shortcommands = true -load_mod_dumpnodes = true +load_mod_automappercolors = true load_mod_mapfix = true load_mod_worldedge = true load_mod_maze = true