More Canvases has been archived. More Canvases will not receive any further updates unless the author decides to unarchive the project.
90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!

Note of archival: With MC 1.21's data-driven painting, this mod has become redundant, and would be difficult to port anyways. Instead, if your familiar with CLI, here is a small scripts that can generate a datapack from an unzipped texture pack.

The mod was only confirmed to work down to MC 1.19.4, but is expected to work with some older versions. Although no support will be provided for those.

More Canvases

Overview

Lets you register new painting variants via a configuration file, in compliance with the vanilla variant system.

This mod only handles the registration part of the paintings and their addition to the placeable tag. All other aspects (textures, names and authors) must be provided via a resource pack, using the same format as for vanilla paintings.

This should work in multiplayer, so long as everyone uses the same set of paintings as the server.

I recommend also installing No Kebab. If you accidentally remove a variant from the config, No-Kebab will prevent it from being removed from the world.

Configuration files

Painting sets

In order to easily manage multiple painting sets from different sources, this mod can accomodate for any number of configuration files, each containing multiple paintings. The files are located in .minecraft/config/more-canvases/*.json, and may use any name you want; the filename has no bearing on the functionality.

Each key in the root object is the ID of a painting. It should contain both the namespace and the path, separated by a semicolon.

Each value has the following properties:

  • size : An array of two integers, the dimensions of the painting measured in blocks. Width first, then height.
  • placeable (Optional; defaults to true) : Whether this painting should be included in the "placeable" tag. Paintings that are excluded can only be obtained through commands.

For example, here's a config file that would reproduce the behaviour of v1.0 of the mod:

{
	"mocan:blank2x3": { "size":[2,3] },
	"mocan:blank2x4": { "size":[2,4] },
	"mocan:blank3x2": { "size":[3,2] },
	"mocan:blank3x3": { "size":[3,3] },
	"mocan:blank3x4": { "size":[3,4] },
	"mocan:blank1x3": { "size":[1,3], "placeable":false },
	"mocan:blank1x4": { "size":[1,4], "placeable":false },
	"mocan:blank3x1": { "size":[3,1], "placeable":false },
	"mocan:blank4x1": { "size":[4,1], "placeable":false }
}

(The painting's ID does not need to contain its size; this is just the naming convention I was using back then.)

If you're familar with CLI, here is a tiny script capable of generating a config file from an unzipped texture pack.

Error handling

By default, any error in the painting sets will cause the game to crash. Minecraft removes missing paintings from the world with no warning, so this is to prevent any accidental loss.

If you know what you're doing, those restrictions can be laxed in a separate configuration file: .minecraft/config/more-canvases.properties.

All the properties are true by default

  • failHard.onPaintings crashes if a painting couldn't be created, either because it has an invalid definition, or because a configuration file could not be read.
  • failHard.onDuplicata crashes if multiple definitions exist for the same id. This only applies to the paintings defined within the scope of More-Canvases, or vanilla paintings. Redefining a painting from another mod may still lead to a crash even with this option set to false, depending on the mod-loading order.
  • failHard.onPlaceable crashes if the mod fails to populate the placeable tag with the generated paintings.

Related mods

No Kebab

Prevents uninstalled custom paintings from being removed from the world.

Invariable Paintings

Turns paintings into collectibles.

Extra credits

Client Paintings

V1 was designed as a companion mod for Client-Paintings. V2 can still coexist with it, and can still be used to make more painting sizes available to it. However v2 makes Client-Paintings redundant, unless you really like the principle behind its ETF-like variant system.

The readme for v1 can still be found on the corresponding tag of the repository.

Dataified paintings

For most means and purpose, Mo-Can achieves the same results as my other mod Dataified Paintings, with the exception of being config-driven instead of datapack-driven. Mo-Can is infinitely easier to maintain and more stable, whereas Dataified is still experimental and not fully functional.


Project members

Estecka

Author

Details

Licensed MIT
Published a year ago
Updated 5 months ago