Customizable Player Models (Fabric)

Customizable Player Models (Fabric)

287k Downloads

[Suggestion] use model textures for `getLocationSkin()` (and `getLocationCape()` ?) (1.7.10)

kotmatross28729 opened this issue · 1 comments

commented

If a mod uses AbstractClientPlayer.getLocationSkin() to, for example, render hands, it will use AbstractClientPlayer.locationSkin, which is the vanilla mc skin. A suggestion is to modify getLocationSkin() (and possibly getLocationCape()?) to use the texture that is currently in use for the model.

Examples:

I have the skin installed via the CPM model,

2024-06-13_22 42 22

and if I take an item that uses getLocationSkin() to render hands, it will render the vanilla mc skin, instead of the CPM skin.

2024-06-13_22 42 32

Or, in FTBUtilities, also uses getLocationSkin() for the head texture.

2024-06-13_22 55 49

But, interestingly, the map in hand is rendered precisely with the model’s texture, although it also uses getLocationSkin(), there is probably a manual patch for this, but after looking through the cpm code I didn’t find it (maybe I was looking poorly)

2024-06-13_23 12 37

Addition: сhanging getLocationCape() can fix the problem with the mod "Et Futurum Requiem" which ports elytras to 1.7.10, using getLocationCape() when render them

commented

That'll just break the texture, in the gun example cpm has to replace both the texture and hand model, so patching these methods wouldn't work, and just break stuff. CPM models don't have to follow the same UV map as vanilla.
For the 'Et Futurum Requiem' issue, there will be an API to render custom parts in the future. Also cape and elytra textures are different in CPM.