minetest-mods / skinsdb

Player skin mod, supporting unified_inventory, sfinv and smart_inventory
27 stars 41 forks source link

Add black underlayer. #22

Closed Lejo1 closed 5 years ago

Lejo1 commented 5 years ago

This prevents invisible skins or other non full skins. The missing area gets replaced with black color. It's absolutely needed because everybody can upload "bad formatted" skins. There are not much skins that gets broken when adding this. Minecraft skins work also so.

Desour commented 5 years ago

There are not much skins that gets broken when adding this.

This is not true. Many good skins use transparency. Examples are skeleton skins, headless skins, the skins Kirby, HurtedOerkki, Banana Guy, creaper, Cool Bacon, Invisibility Ninja, Lil Ghast and possibly many more.

Lejo1 commented 5 years ago

But especially skins like invisibility ninja, lil Ghast and hurted oerkki are in my opinion no real skins. For the creeper and the coal beacon a possibility is to only have the layer for the body and not for the arms. And banana guy has no head so this skin is broken itself

bell07 commented 5 years ago

I reject this PR because for most skins I seen the fix is not needed. And they are a lot of skins gets broken with this fix because of transparency.

If a skin is broken, the skin should be fixed, not workarounded.

In case you have more broken skins that requires this fix, you can create your own small mod that depends on skinsdb and registers the broken skins into skinsdb with black layer textures as you need.. Just reuse the lines skinlist.lua#L2-L70 and adjust as needed in your mod.

Or just register them hard-coded

local skin_obj = skins.get('my_skin') or skins.new('my_skin')
skin_obj:set_preview('my_skin_preview.png')
skin_obj:set_texture('black_layer.png^my_skin_preview.png')
skin_obj:set_meta("_sort_id", 6000)
skin_obj:set_meta("name", 'My broken Skin')
skin_obj:set_meta("author", 'Me')
skin_obj:set_meta("license", 'My license')
Lejo1 commented 5 years ago

If a skin is broken, the skin should be fixed, not workarounded.

That's also my opinion but to delete or fix the skins at http://minetest.fensta.bplaced.net/ is not easy. I already reported some skins but they didn't got deleted. The Better way would be to filter them out, but that not possible with the minetest texture API. But maybe with a pure lua library. I will check that.

bell07 commented 5 years ago

All skins-fetcher for http://minetest.fensta.bplaced.net/ are removed from skinsdb repo because of broken or because of license issues. See #19 / #21. If you get new working fetcher-script with compatible license, I'll add them. If the script does filter anything it is ok for me. But since last test with ~1000 skins I did not seen anyone where I would say that need black under-layer. Since 1.8-er skins are supported I do not use the fensta-skins anymore, but self-created using http://novaskin.me