💻1.21+ Changes

What changed, and the reasons for the changes...

If you've updated to NeoForge and use Thingamajigs in 1.21+, you're probably wondering where some of the features went, such as every single sign in the entire mod.

The simple answer is somewhat mentioned in the "Updating From Legacy To Neo" page on this website; they will be added back in an addon mod.

The old mod, Thingamajigs 1 for 1.20.1 and below, will not be effected by this change.

The complex answer for why things are missing and what is missing, is below:

Just like Thingamajigs versions for 1.20.4 NeoForge, the NeoForge version updates will be updated about the same time as the next 1.20.1 update for Forge. That way, there is always parity, without much feature/bug backlog.

Some changes will not be backported nor ported between versions, even if it would be cool if both versions matched exactly.

One change from the old mod is code reduction. Lines of code will be reduced when possible and when plausible. If neither condition is met, the code will stay the same between versions.

Old Blocks and items will be changed/added/removed whenever needed or wanted. One such example being older blocks gaining waterlogging ability versus the old mod's version of the block.

You may also notice that textures will be missing from the mod as well. This is on purpose. The addon mods contain the extra content along with the assets, not the main mod itself. The only things that remain in the base mod are special template models, that way, at any time, the base models can be changed and will effect all addon mods that use them. This includes block classes intended for addon mods to use. An example of a shared asset is the sign base model, used for all sign block models.

Theoretically, one might assume this means old blocks like signs might be one block, many textures in the future. The possibilities are endless in an addon mod.

Additions not backporting:

  • Copper Tables (Waxed ones are already in the mod with no functionality other than connecting)

Copper Tables were added in Thingamajigs already, but the new ones are quite different. Unlike the old Waxed variants, the copper tables connect no matter what state or rust level they are. This allows a seamless look to the tables despite their textures changing. This was possible by adding all copper tables to a 'List<Block>' then checking if any of the blockstates at the current location were in that list; if so, the block was updated without changed the connected-ness of the block.

  • New DJ Laser Light Block

The DJ Laser Light was already added in Thingamajigs, but was working in an older, less developed networking environment. This wasn't compatible with the newer 2nd rewrite of Networking for NeoForge, and thus the old code had to scrapped and the DJ Laser Light rewritten from scratch. This meant all DJ Laser Light components had to redone, including the BlockEntity, BlockEntityRenderer, Menu/Screen, and the block itself. Here is the new DJ Laser Light screen for 1.21+:

As you can see, not only was the button layout fixed, but a lot of the information was reduced as well. But one feature stands out, the "HEX Color Code" label might give it away. The DJ Laser Light supports HEX formatted color codes. Press the '->' to change the color. Remember, 000000-FFFFFF are the only valid character values. You can press the 'clear' button to empty the text box if you want to change the color quickly. Press the "Reset Color" button to reset the laser color to white. The 'X' closes the GUI if your 'Esc' key doesn't work. You can also change the texture of laser by editing the data of the block using commands (this isn't officially supported, but does work). Every other setting is almost unlimited as well. Some settings, e.g. size, are limited and don't allow a greater or lesser value than their respective limits. Each pair of buttons functions are listed below (negative values do the opposite effect on HOsc, VOsc, HMulti, VMulti, HOff and VOff; negative values don't work on other values):

Height: Changes the length of the laser (how far away from the block it is visible, and how stretched the laser and texture are).

HOsc: Changes horizontal oscillation amount. When HMulti is increased, the HOsc will be more pronounced depending on how large the HMulti value.

VOsc: Same behavior as HOsc, but vertical. Changes vertical oscillation amount.

Size: Changes radius of laser. The higher the value, the wider the laser (this also effects Height value slightly as a result of floating point imprecision). Has a limit of about 5.

HMulti: Changes horizontal angle range. HOsc uses this to do some math on how far the laser can move back and forth.

VMulti: Same behavior as HMulti, but vertical, and VOsc and it's math is affected instead of HOsc. Changes vertical angle range.

HOff: Changes the horizontal angular offset. If HMulti and HOsc is set to 0, this is more noticeable.

VOff: Same behavior as HOff, but VMulti and VOsc need to be 0 in order for this to be more noticeable, changes vertical anglular offset instead of horizontal offset.

  • Locked Door

Could be locked with a key before and is hard to break. Now if the door is locked with a key, it prevents the block from even being broken at all! A bug with Dramatic Doors was fixed regarding block state registry being overwritten from DoorBlock class, causing a crash at game startup (this was backported to Thingamajigs 1 version).

  • Item Display

This block had to be redone from scratch due to underlying issues with saving and loading, and as such, is an experimental feature now.

Other changes here aren't as significant as the ones listed above.

Other than these changes, other features have remained the same.

Last updated