Silent Gear 4 Changes (Open Discussion)
SilentChaos512 opened this issue ยท 2 comments
This is an open discussion for the Silent Gear port/rewrite for Minecraft 1.21(.1) (NeoForge) and beyond. AKA the OMG I'M DROWNING IN CODECS update.
I'm mainly just trying to document what I am working on. Mojang's addition of DataComponent
s (which are awesome) spurred me to make a bunch of changes that were honestly overdue. So, here is a non-exhausted list of changes, ranging from less to more technical.
Completed or In-Progress Changes
- Tiers have been completely removed from everything (gear, parts, and materials). This has implications for a lot of systems, including synergy and repairs.
- Synergy calculations have changed based on #267. Tiers were removed. Rarity has less impact. Most bonuses and penalties are now based on materials sharing categories. If there is no one category that matches all materials, it's a big penalty. Other shared categories (2 or more materials) will give small bonuses (exact numbers pending testing).
- Stats have been replaced with "properties". Properties can store any type of value, not just numbers. Most are still just numerical, of course. Mods can add new property types, but data packs cannot.
- Number properties store numbers (floats) and an operation.
- Harvest tier properties store an object that specifies a block tag containing blocks that the tool cannot mine, and a "name" component which is currently displayed as-is, but may get translated later on.
- The trait list property stores a list of traits. Yes, traits are now stored in a property instead of a dedicated data structure.
- Parts can no longer be made with multiple materials. Mixing can only occur at the material (alloy) level. The "legacy mixing" config option was removed, and a "creative mixer" will be added to replace it.
- Traits now contain a list of "effects". The traits themselves no longer have any distinguishing properties; the effects are everything that makes a trait do anything unique.
- Magnetic trait replaced with a configurable effect. You will be able to control which items are attracted and how strongly. An "attract everything" trait will still be possible to create, but won't be as easy to get as before (it won't be on iron...)
- Compound materials will be referred to as "alloys" (even non-metal ones). This lines up with the terminology the community seems to prefer. The compounder blocks will now be called alloy makers.
- Material model data has been simplified, removing parts that were unused by existing code.
- "select_tier" loot function (generated random gear items) removed
- Many things now have actual registries (gear types, part types, properties, trait conditions, trait effects, material/part serializers)
- Major refactoring of all gear-related systems (gear items, traits, parts, materials). If it exists, it probably changed...
MaterialInstance
andPartInstance
had their interfaces and all other implementations removed. Those classes can handle any context now.- Everything updated to use properties... generic types, anyone?
- Codecs... Codecs everywhere...
- More codecs
Planned Changes
- A "creative mixer" alloy maker block. It will be able to make alloys from any materials without restrictions. It will have no recipe by default. It will have 4 to 8 input slots. Adding a recipe with a data pack will now be the equivalent of enabling the legacy mixing config lol.
- Add maces
- Add necklaces
Undecided
- The exact rules for repairing gear hasn't been decided. At time of writing, only the same material will work. One idea is to assign categories/groups to the materials, and the materials can repair any other in the same category. Perhaps the "repair groups" could be assigned in a new JSON file type, so the entire set of material files does not need to be overridden.
For repairing - may be use the same mechanics as synergy estimation to check possibility/penalty for material replacement.
Well, since you described this as open discussion, I'll toss in my own opinion...
I'm rather worried the new synergy/alloy system might be too simple. I haven't actually tried it for myself yet (not enough other mods on 1.21 yet), but from what it sounds like, the new alloy system is liable to very quickly lead to some immersion-breaking materials -- yes, a wool-diamond hybrid (please don't call it an alloy just because the fans do, alloys mean something very specific T.T) will probably suck in this model, but it shouldn't exist at all outside of outright magic or creative-mode shenanigans. My complaint would have been something much more specific, like "there's no way to combine organic mats so tagging something 'organic' is actually a secret nerf because very few materials are so overwhelmingly powerful as to be worth using on their own", rather than "completely uprooting the whole system."
Similarly, the synergy system... well, admittedly, the existing system is a bit weird, yes. But it's weird in a complex enough way that there are cool edge cases that can be exploited -- and certainly for me, weird exploitable edge cases are the point of Silent Gear as a mod. Practically every mod offers their own custom gear sets, and most of the famous ones -- Mekanism, Ars, Blood Magic -- offer customization to some extent. Silent Gear is the one that gives me enough depth to the system to really sink my teeth into and feel like I'm smithing gear, not just picking out ingredients in a shopping mall. To that end, it's really important that every mechanic that contributes to the overall power level of an item sit in a fairly narrow range of effectiveness -- weak enough that you have many plausible candidates to think about, but strong enough to be worth the effort pursuing it (and make you feel clever if you spot a useful combination). I worry that "needs to share multiple tags" will very quickly winnow you down to two or three candidates right off the bat, before you have a chance to consider anything else.