Skip to content

Features: Varius Registries Needed For Loading Datapacks #429

@Miro-Andrin

Description

@Miro-Andrin

Feature Request

To implement loading data from datapacks we need to load various different values into feather and store them somehow. Although the ecs is useful for some of those, we however probably don't want to use it for everything. We therefore want to implement some registries that store things more efficiently and provide better ergonomics.

I am going to start by listing all the values stored in data packs. I think all of them should be stored in registries, but if you disagree then comment, because we can't have someone being wrong on the internet.

Together with these registries we also need to implement host_calls (see feather/plugin-host/src/host_calls.rs and /feather/quill/sys/src/lib.rs) such that we can edit them from plugins. Any change in these registries should probably also trigger change events. However i don't know what entity that event would be connected to? If you want a pointer on how to implement a event, then look at how i implemented #425

Some implementation questions.

Should we store all these registries together in one directory? I suggest '/feather/common/registries', does that seem fine? Do we need to implement serialisation/deserialisation such that their values can be saved once edited by a plugin?

Wrapping up:

If you are looking for something to do then i suggest working on Advancements, Functions, Loot Tables, or Recipes because they seem more immediately necessary. @Defman has started on recipes, but if someone is quick enough they can finish it before him 🥇

And feel free to ask in the discord if you have any questions .

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions