Akaito/reassembly-ai-mod-example

Better Mirroring and Scaling, In-Depth

Randommnumbers asked for this feature 11 months ago — 2 comments

Randommnumbers commented 11 months ago

So as we know, pressing F on a cluster mirrors it, and period and comma changes the block to the next available scale. However, this is predetermined by the game and cannot be fiddled with by mods. This makes rescaling troublesome in blocks with special features and bugs the faction if such a block has a mirrored variant: see last paragraph.

What I suggest are another three values or properties alongside the existing with name, group, and blurb when defining blocks in the blocks.lua that defines the so-called "block sets" that the hotkeys F, comma, and period will cycle to in the in-game constructor. For example, a "setScale" value, in which all blocks with the same setScale can be cycled through with comma and period, and a "setMirror" value in which all blocks with the same setMirror can be switched between with F. If one were to also incorporate in Vanilla's idea for switching between colored hull types, might I suggest a "setType" value which is bound to another hotkey. As an example, if a set of RIGHT_TRI2L and R of multiple scales and multiple colors will have the same setScale, Mirror, and Type amongst all of the blocks, the players can freely use the three sets of hotkeys to cycle between each block accordingly.

With handling in-game integration with other already present features. For the decryptions in-game using C to unlock blocks for the campaign palette, perhaps only the first block in the setWhatever, and this would also pertain to blocks with all three setWhatevers, be present in the Upgrade menu. With the nature of cycling between the blocks, introducing a second value when defining the setWhatevers, maybe a similar system like the coordinate pairs when defining cannon boost values, that defines the "order" in which the hotkeys will cycle through. While the first value defines the set, the second value defines the order. Imagine a coordinate space with the second values of setScale, Mirror, and Type defining the x y and z axes accordingly. When defined correctly, each block in a set with the same first value will be a point in the coordinate space based on their second values in the setWhatever. And the hotkeys "shift" the current block along one of the three axis, changing either the scale, mirror, or type accordingly. This is merely a visual way to interpret how the a second value in defining sets makes it easier when shifting between blocks in the set.

These additions will let modders of more complex factions to better refine and simplify their mods for the users. Also, there was a problem with the Launcher Armor in my own modded faction. I used a series of custom shapes to define launcher blocks in the shape of hull blocks as well as launched blocks that are to be the armor. When active, the launcher builds a launched block on top of itself, superimposing the block. However, in this set of custom shapes, there were mirrors. When testing in the campaign, the starter ship with a mirrored variant of the launcher armor had the error "Current blueprint uses encrypted blocks," and the mirrored variant was also not present in the Upgrade menu. Maxon also had a similar issue. This is mainly the reason to why I suggest a more definite way to create mirrors and scales.

manylegged commented 11 months ago Admin

Join the discussion!

Sign-in with GitHub to comment