Estecka / mc-invariable-paintings

Fabric mod that turns paintings into collectibles
https://modrinth.com/mod/invariable-paintings
GNU Affero General Public License v3.0
5 stars 1 forks source link

Compatibility for Dark Paintings! (and other painting mods) #6

Closed Kasprenius closed 1 year ago

Kasprenius commented 1 year ago

LOVEEEE the mod! Would LOVE if you added compatibility for Dark Paintings! :D

Estecka commented 1 year ago

As far as I can tell, it's compatible on 1.19.4, but I assume you're playing on 1.20.0 ?

InvarPaint was set to require 1.20.1 whereas Dark Paintings requires 1.20.0 specifically. Invarpaint should be easy to backport to .0, but I'm also a bit surprised to see that Dark Paintings didn't update to .1.

Kasprenius commented 1 year ago

I’m on 1.20.1 but haven’t pulled Dark Paintings in yet, but I was referring more to the fun custom item textures :0 :) ! And also you should add the 4 developer paintings to the item textures and loot!

Estecka commented 1 year ago

The four elemental paintings already have custom item textures. They are not listed in the creative inventory due to not being tagged as "placeable" in vanilla minecraft, but you can tag them using a datapack such as this one, or obtain them directly using commands. The loot function ignores the placeable tag, so these four are already available in the loot pools.

The item textures were created manually. Before I start incorporating specific textures for x and y mods, I would rather consider a more general approach and fing a way to automatically generate them at runtime, but that will take a while to develop.

For now you can provide those textures using a resource pack, or ask the developper of Dark Paintings to include such a resource pack in their mod. The ability to have custom item texture is actually fully powered by CIT-resewn, with no dependency on Invarpaint whatsoever; so I don't think it too far-fetched that painters would be willing to provide these.

Andrew6rant commented 1 year ago

Started work on Dark Paintings' items. Still WIP, but:

Dark Paintings Items Showcase

Estecka commented 1 year ago

I've been giving it a good long thinking, and I've decided that I won't directly include any CIT's for paintings beyond the Vanilla ones. This introduces a lot of concerns, and I don't have a satisfactory solution for any of them.
Resource packs will have to be used in order to have those new icons.

If @Andrew6rant ever finishes those textures, it is best that he releases them into a separate resource pack. (I'd do it under the LGPL-2.1-only, to be safe, in order to respect Dark Painting's license.)

Licensing

Even if those are heavily downscaled versions, I'm concerned about needing permission from the artists, in order to include their paintings into my mod.

In the case of Dark Painting in particular, the license on their Modrinth page is the LGPL-2.1-only, which is incompatible with the AGPL-3 that I use here, so the permission is not implicit. (Their github repo doesn't even contain a license file.) They also credit a handful of different artists; should I need permission from each of them, contacting them all will be some work.

With a separate resource packs using its own license, it will be much easier to avoid licensing conflicts. If you can get the mod owners to provide those CIT's, then licensing won't ever be an issue at all.

Performance

As I reported on CIT Resewn's repository (see https://github.com/SHsuperCM/CITResewn/issues/279), having a large amount of CIT's for painting items can noticeably lower the game's performance, and will cripple them much more easily than I find acceptable. I fear even Dark Painting's 30-ish variants may not leave a negligible footprint on low-end computers.

Including CIT's directly into this mod means including variants for a lot of paintings that my users may not have installed, needlessly lowering their performances. The more mods I allow to be included, the worse this issue will become.

Relying on separate resource packs will at least allow users to only include the CIT's that they require, or can afford to.

Selection & Maintainability

As time goes by, CIT's included into the mod could grow to absurdly large amounts, while some of them might fall into desuetude as their mods stop being updated.

Do I restrict which mods will or will not be included? If so how do I discriminate them?

Do I remove the CIT's that have become outdated? If so, at what point do I consider a mod as obsolete? How do I track the updates of an ever-growing collection of mod?