Skip to content

Alpha Release: Backend Reinforcing

Caltinor edited this page Feb 11, 2022 · 1 revision

This is the fourth alpha and is mostly about backend changes. It's the shiny finish on a lot of the previous release's partial features.

Here's the full breakdown of what's in the release:

  1. Refactor of the Codecs (internal change, no gameplay impact)
  2. Added: Basic API calls for core functions
  3. Sided Logic methods via Core (internal change which makes data synchronization cleaner)
  4. New Config Options for Reqs: "Enabled" and "Strict"
  5. CRAFT Event implemented
  6. Added Config option for Xp gains called "Perks Plus Configs"
  7. NBT Compat full features incorporated into PMMO
  8. Complete setup of client data syncing
  9. Bonuses now show in skill list

Some of these are self-explanatory or too technical to matter to a user, so i'll go into detail on the ones that have meaning.

4. New Config Options for Reqs: "Enabled" and "Strict"

Enabled: is just as it looks. it determines if a requirement type is used or not. Strict: is yet to be effectual. In design, it is intended to control behavior when requirements are not met but the player can still use them in some capacity. I have yet to decide how to do this. The implementation was disparate in the old code, so I need to figure out how best to reintroduce this feature.

6. Added Config Option for Xp gains called "Perks Plus Configs"

For events that award xp, perks have the ability to return an award map, letting perks decide what xp should be given instead. If this setting is turned to true, the perk awards will be combined with the regular awards and any duplication will be resolved to the higher value. ie. the perks says the xp award is 5 mining, but the config says 10 mining, then 10 mining will be awarded. alternatively if the perk says to award 10xp in excavation but the config says to award 15xp in mining, if this is turned off, only the excavation is awarded, if turned on, they both are.

7. Full Implementation of NBT compat into PMMO

You can now define in your item/block/entity files fields for:

"nbt_requirements":{"REQTYPE_KEY":[logic]}, 
"nbt_xp_values":{"EVENTTYPE_KEY":[logic]}, 
"nbt_bonuses":{"MODIFIERDATATYPE_KEY":[logic]}

These will evaluate BEFORE regular configuration and if present, will ignore the regular configs. Therefore, there is no point to have a type key in both nbt and non-nbt sections. You can find the full explanation of how to use this configuration section, HERE

Testing Notes

  • There are very few existing configs built in at this stage. I am looking for help with generating them. Please reach out if you would like to contribute.
  • Continue to test the datapack features
Clone this wiki locally