-
Notifications
You must be signed in to change notification settings - Fork 9
Datapack Overview
This page shall provide a quick overview of the many different aspects of this mod which can be controlled via datapacks.
This is a question that many people have asked me over the course of this project. And the answer is really quite simple: Datapacks are becoming more and more mature over the course of further Minecraft releases. They simply provide a level of complexity and depth that e.g. config files cannot posses; config files shine when it comes to simple numbers and on-off toggles, but they struggle when using them for more complexer things like modifying NBT, creating configured abilities, etc., thus I've decided not to use them.
Hardcoding always bears a lack of flexibility with it.
In the earlier phases of this mod, every configured ability was hardcoded, but I quickly realized that this might not be a smart thing to do as this puts the entry barrier of making other mods compatible with this morph mod really high. It also puts the burden of supporting this mod solely on other mod developers instead of distributing this burden equally between mod devs and modpack creators. Finally, it is much easier for me to create a single JSON file that contains a configured ability than to modify Java code. This all lead to me trying to make this mod as datapack-friendly as possible.
In this segment, I will be quickly going over the different directories that may exist in a datapack for this morph mod.
-
abilty_groups: This directory contains ability groups, which (as their name suggest) let you group abilities together. -
configured_abilities: This folder contains a bunch of so-called configured abilities. Every configured ability is based upon a blueprint, which will be called "ability" or "ability blueprint" from here on. -
data_transformers: This directory contains data transformers. They will be discussed in greater detail later, but for now just think of data transformers as things that can modify NBT data. -
morph_abilities: This is a quite essential folder that contains information about what abilities belong to which entity. -
morph_nbt: This directory contains information about what NBT of a killed entity should be included in its morph and what data should be discarded. -
morph_visuals: The files in this folder hold information about the scaling of certain morphs in the morph menu.