How It Works

I did a careful analysis of how the Combined Rings are stitched together and produced a working blueprint for how they are made. This is the result.



The sprites for each of the input rings are loaded and their colors are determined via `TailoringMenu.GetDyeColor`. A 4x6 and 3x1 pixel section are cloned from each and stitched together to form the two halves of the new ring.

The base ring sprite (#880) is loaded and has a "2PhaseColor" effect applied to it before it is overlayed onto the stitched-together halves. This color effect gives the base ring an animated gradient blending the two input colors. Red and Blue are used as fallbacks if input colors could not be determined (which might be the case when using a custom ring added via a mod).

The vanilla sprite is mostly just an outline with the inner ring having partial transparency but it also includes a 4x2 px gemstone that will be cloned x3 and distributed around the circumference of the ring. Note that the top portion of the ring uses the gem palette but these pixels will not be cloned. Each copy of the gem has a variant of the gradient effect applied, so all four sides pulse out of sync with each other as well as any non-cloned parts of the base ring.

The large red area represents all pixels that will be overwritten when using the vanilla base sprite. If one were to leave the 4x2 gem area transparent, then nothing would be cloned. This would leave the remainder of the empty space around the ring as viable decoration space. The areas in the middle and lower corners are transparent in the vanilla sprites, but any pixels in the marked areas would be cloned if they are filled in.

Here is a 1:1 version of the sprite sheet shown above. In the last cell is a template for the base shape with the cloneable area marked out. Above it is an example of the safe space available to use. Notice the areas that I have left empty which will be filled in by the cloned pixels.



The input ring textures must conform to the size/position of the vanilla ring style for this cloning function to work properly. If any input ring is positioned differently, the shape will not line up and the output will be a jumbled mess. Only the actual rings themselves must maintain a uniform position in the tilesheet. Any outer dressing does not matter as long as the specific areas in the template can be stitched together to form a ring shape.

Included in this mod is a collection of sprites that i drew which either manipulate this cloning behavior or avoid it. If you want to replace the combined rings entirely and avoid the cloning behavior, try Custom Combined Rings.

Article information

Added on

Written by

besworks

0 comments