stujones11 / minetest-3d_armor

Visible player armor & wielded items for minetest
Other
55 stars 97 forks source link

u_skins skin change breaks model #13

Closed donat-b closed 10 years ago

donat-b commented 10 years ago

When you change skin in u_skins mod player texture becomes white. What could be the problem?

stujones11 commented 10 years ago

I just tested with current versions of both mods and have so far been unable to reproduce this. Are you seeing any error/warning messages, like missing textures etc? Also, what version of minetest are you using? I am testing on a minetest 0.4.10 dev build probably about a month old now but I don't see any recent commits that could cause this to happen.

donat-b commented 10 years ago

No errors or warnings, not even in debug logs. I'm using most recent dev, but it's unlikely to be related because problem was present some month ago. I'm using this https://github.com/SmallJoker/minetest-u_skinsdb and the latest version of 3d_armor.

stujones11 commented 10 years ago

Ok, not sure what the problem is but it only seems to happen with that particular fork. I am using the original version by dmonty https://github.com/dmonty2/minetest-u_skinsdb This is the officially supported version and it seems to work fine.

donat-b commented 10 years ago

Woohoo! I figured out where was the problem. Callback wasn't executing because the field name has changed. So I replaced string.find(field, "skins_set_") with string.find(field, "u_skins_set") and the problem was solved.

stujones11 commented 10 years ago

No, I see no reason why it would, it does not alter the player model anywhere in the code. Possibly some other mod conflicting? Can you try a new world with only 3d_armor unified_inventory and u_skins mod installed. If you still get problems I will have to recompile and test against current head, a task for another day i'm affraid.

Edit: Sorry, looks like we cross-posted. Glad you got it fixed.

donat-b commented 10 years ago

Nah, don't worry about this. This is the code that's breaking model/texture:

player:set_properties({
textures = {u_skins.u_skins[name]..".png"},
})

I wrapped this into a condition (if not armor) and it works perfectly (after changing field name in the callback).