From 3bac48e1e2a98aa79de5beb8b3c38af90fa664a0 Mon Sep 17 00:00:00 2001 From: Duane Robertson Date: Thu, 25 Jul 2019 01:23:13 -0500 Subject: [PATCH] Add some armor textures. --- .gitignore | 4 +++ init.lua | 36 +++++++++++++++++++++++++++ textures/dinv_char_boots.png | Bin 0 -> 204 bytes textures/dinv_char_chain_armor.png | Bin 0 -> 1732 bytes textures/dinv_char_leather_armor.png | Bin 0 -> 928 bytes textures/dinv_char_leather_helm.png | Bin 0 -> 250 bytes textures/dinv_char_wood_shield.png | Bin 0 -> 196 bytes 7 files changed, 40 insertions(+) create mode 100644 .gitignore create mode 100644 textures/dinv_char_boots.png create mode 100644 textures/dinv_char_chain_armor.png create mode 100644 textures/dinv_char_leather_armor.png create mode 100644 textures/dinv_char_leather_helm.png create mode 100644 textures/dinv_char_wood_shield.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b529d52 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +# + +*.xcf +*.swp diff --git a/init.lua b/init.lua index bfe6715..c9c31d9 100644 --- a/init.lua +++ b/init.lua @@ -37,6 +37,7 @@ minetest.register_tool(mod_name..':leather_armor', { description = 'Leather Armor', _dinv_armor = 0.9, _dinv_location = 'body', + _dinv_texture = 'dinv_char_leather_armor.png', }) minetest.register_tool(mod_name..':boots', { @@ -44,6 +45,7 @@ minetest.register_tool(mod_name..':boots', { description = 'Sturdy Boots', _dinv_armor = 0.9, _dinv_location = 'feet', + _dinv_texture = 'dinv_char_boots.png', }) minetest.register_tool(mod_name..':leather_cap', { @@ -51,6 +53,7 @@ minetest.register_tool(mod_name..':leather_cap', { description = 'Leather Cap', _dinv_armor = 0.9, _dinv_location = 'head', + _dinv_texture = 'dinv_char_leather_helm.png', }) minetest.register_tool(mod_name..':steel_helmet', { @@ -58,6 +61,7 @@ minetest.register_tool(mod_name..':steel_helmet', { description = 'Steel Helmet', _dinv_armor = 0.8, _dinv_location = 'head', + --_dinv_texture = '', }) minetest.register_tool(mod_name..':wood_shield', { @@ -65,6 +69,7 @@ minetest.register_tool(mod_name..':wood_shield', { description = 'Wooden Shield', _dinv_armor = 0.8, _dinv_location = 'arm', + _dinv_texture = 'dinv_char_wood_shield.png', }) minetest.register_tool(mod_name..':steel_shield', { @@ -72,6 +77,7 @@ minetest.register_tool(mod_name..':steel_shield', { description = 'Steel Shield', _dinv_armor = 0.7, _dinv_location = 'arm', + --_dinv_texture = '', }) minetest.register_tool(mod_name..':chain_armor', { @@ -79,6 +85,7 @@ minetest.register_tool(mod_name..':chain_armor', { description = 'Chain Mail', _dinv_armor = 0.75, _dinv_location = 'body', + _dinv_texture = 'dinv_char_chain_armor.png', }) minetest.register_tool(mod_name..':plate_armor', { @@ -86,6 +93,7 @@ minetest.register_tool(mod_name..':plate_armor', { description = 'Plate Mail', _dinv_armor = 0.6, _dinv_location = 'body', + --_dinv_texture = '', }) minetest.register_tool(mod_name..':diamond_plate_armor', { @@ -93,6 +101,7 @@ minetest.register_tool(mod_name..':diamond_plate_armor', { description = 'Diamond Plate Mail', _dinv_armor = 0.45, _dinv_location = 'body', + --_dinv_texture = '', }) minetest.register_tool(mod_name..':fur_cloak', { @@ -101,6 +110,7 @@ minetest.register_tool(mod_name..':fur_cloak', { _dinv_armor = 0.98, _dinv_warmth = 2, _dinv_location = 'back', + --_dinv_texture = '', }) --print(dump(minetest.registered_tools[mod_name..':plate_armor'])) @@ -640,6 +650,7 @@ minetest.register_on_joinplayer(function(player) pinv:set_size(worn_inv, 8) mod.set_main_size_by_bags(player) mod.set_armor(player) + mod.set_armor_textures(player) player:set_inventory_formspec(mod.make_inventory_spec(player)) end) @@ -829,6 +840,29 @@ function mod.get_warmth(player) end +function mod.set_armor_textures(player) + local prop = player:get_properties() + local textures = prop.textures + --local tex = (textures and textures[1] or 'character.png') + local tex = 'character.png' + local pile = {} + for k, v in worn_items(player) do + local vs = v:get_name() + local it = minetest.registered_items[vs] + if it._dinv_location and it._dinv_texture then + pile[it._dinv_location] = it._dinv_texture + end + end + for _, loc in pairs({ 'body', 'feet', 'head', 'arm', 'back' }) do + if pile[loc] then + tex = tex .. '^' .. pile[loc] + end + end + textures = { tex } + player_api.set_textures(player, textures) +end + + function mod.set_armor(player) if not player then return @@ -870,6 +904,7 @@ function mod.damage_armor(player, damage) player:get_inventory():set_stack(worn_inv, k, v) if ow + wear > 65535 then mod.set_armor(player) + mod.set_armor_textures(player) end end end @@ -912,6 +947,7 @@ minetest.register_on_player_inventory_action(function(player, action, inventory, mod.set_main_size_by_bags(player) mod.set_armor(player) + mod.set_armor_textures(player) end) diff --git a/textures/dinv_char_boots.png b/textures/dinv_char_boots.png new file mode 100644 index 0000000000000000000000000000000000000000..eba0f664a21f83e9ce181b489c078ee75e3fcd6a GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQfx`y?k)`fL2$v|<&%LToCO|{ z#S9F3${@^GvDCf{D9B#o>Fdh=m|c?9g5@gD-Ugshq^FBxNXEUl*Ee!DIPkDuu-;h8 z?OyPoGmmBa20@msqS70${Erj&_{yoM$qH2N5j^COL4W`N literal 0 HcmV?d00001 diff --git a/textures/dinv_char_chain_armor.png b/textures/dinv_char_chain_armor.png new file mode 100644 index 0000000000000000000000000000000000000000..7737257780083a8827b1f9642c69056300a79712 GIT binary patch literal 1732 zcmV;#20QtQP)ae-rxWL22n{w zK~!ko?U%ccBUu%PzgsVtt87=5ALB>6r+bGPX6R*T328goe*lSq2zIj-%Z8gF@ac_@rUy?e`>7E*2Gq4}bn6@iGp-@Qv@t;nCi;b31Q+ zP1@Bu;dDYW56IF4AruVDCW~WK!$8$^e*cs2KQrE!KKQP@*n2{$)*wq_e*3*|i<=}s z`=lXHQ&e65Pq}#^W|uuw-MD5q%N11JAWu_-P;fi9(ToB@2qwK#0J1cBuKz5FvAh~i ztIKrIzp(<8YX(hQYC}=gmzR{HkVfG(do-Jp#t~VXplBL-mXakgS(0FTb+m#>o~FG z zW6X+663$Unl`KhcJL?3a!Igr13U-+|Sj0`^5JlCHSq1`Ro@3Z0gisKQLgY_Sbe#`> z_QPlPvZ5IVPP>~QZW0GG9Jfjuhg5ELFp3tnjk^F$FV3mnzQd$@bGg4u^WGK!=O6u*&ek@glS5kfcbJ?XQ*=F&d4SVeBMIje z9S@mj*j}CKWgn;AC7MnUipzXF#OrQQtazAZhiK-bXd0uFL!4F@DRbQRI&m;XD2uti z_Sw(B&`?!d_aA;BWlo-D1j7MwFeM2CEU(7&vd4TfL^TYCM|-4kL=uKbnG*+7qNz`w zCZth>QM8zkM}+=}a5Bd0ZV=6;B;g#}t1&ouN*agcX^L`H;VexEC*wuWPA3Q-ZPF7nlKWy(`U6*^Ew(2&ZF^ zV0l%9P{@*m&>x{01?sQeBMxR)m9x2c`VnayVV2#+FHGhH!vSd=Vpkg&MGMQV5(hIB zRbzO(kCc)>{^G~tRbGWPyslL^B_RU~+!)%HIN75`~P8_wl+L%m#h(EXD7ip=cW6WPG(v zGCDn^+-Na4++8T(c%S6z#&>z}6t~kQ^v7gLLVx!$?FSE;U0qdmvq*pUF{*A5`eO>E zGM5KWNurSXWJJ0CPrtK4|4Ly88uQ=--3?tiOoZDVsEl5FSgwM|#77|LUv7$86KDVg{CIfX{$2z?v5~)R9leW2y5Af&i**RJ zHr76{0%(Ad(7_q6Dgpi@s!2}-D8RU9!V!R<^!HWUrrp5hfWY1g%*5vd5%v{XFz7$dyB!9nMO$kOZ_m|%! zuvHJf#Tse9WALOkzh2N31Ati;g$?T8-wa;|g*6JHo8{q6}eJU3V>d=O8wqRy!5krq^uu zz+ysejM5MmBWe_TB3+EAO(=!2ftcUW`p8P3L2~qM3cw;`(x}}WYr60e98lZWz62=NAbdY= zCzz$Scmgc^@PJ4fBXf+pW}un<*ZO8#Ok*jEc4hvk-QllqfPl?@r&^cf0*nEkmufsQ zl|v+;PTz+ZP!q+NuvKAMxMP5;?>Gf&8w?mqog0jDh;M?OWtR-7oh^HH&!8Tv2mp`I zovjeCU36^+k3r8)W-05Fy{1zG%tl{}Z>0vrt&H%Xd$xlkn#$m+ZTM9jO9B8Jg8NVZ z3nT+lz<@mSfo%ePXY&UGw7Z(RI0+5=lfuF9;O9)6x&9FBwfi2yk5j;=Q=kcJ@k6(8 zoC0fcx-wW&=2L(p6=B(R(o9err5hF92|VVSBs!zdy5~ z;LZSa4Y-==w!hQ2xZx$O@}BVSe}`Y&Ub<@j@9j6qLkenCfoY=v0000Fdh=m|c>MfjMrYRwGcT-P6S}B;(%OnY(!#40v2}TW&PV z-l%6POW>EvSfK1wP#E-Mubt(~M?WU-*t_A(lx7q~{geE6(rN{N))X z8W<%eNQb}H5o}=Olv)_H`QoczF0bsLHSE6|s_Pu}YBIA%bNG!ba#{P@lJjeUmI6V8 n&wIv+#ouioYj3Xn^87XD&r-vhXEP7o2g!N5`njxgN@xNAfNxw1 literal 0 HcmV?d00001 diff --git a/textures/dinv_char_wood_shield.png b/textures/dinv_char_wood_shield.png new file mode 100644 index 0000000000000000000000000000000000000000..ee1b6a28fcae966c6f22119c4f4f4275a51d0ad3 GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQfx`y?k)`fL2$v|<&%LToCO|{ z#S9F3${@^GvDCf{D9B#o>Fdh=m|c>M-z0I$WJjP-pr?ytNXEUlR}8rt3YXXN#!(JTR53@k~gx>>IJ^LO|6(V9*s+v|4q$eV+c}>HE(ucCDPn`0hFH iXA|Z(x24kTA1KS7=jCrdE-5AoQtavK=d#Wzp$P!iQ$8C2 literal 0 HcmV?d00001