Skip to content

Gemini Does Not Copy All Data & Does Not Respect Other Datapacks' Changes #1196

@Bloo-dev

Description

@Bloo-dev

Describe the Problem

Gemini, despite the name, does not produce a twin. Instead, it has a whitelist of tags that is copied for some breedable mobs.

Not only does this clash with the name, but it also repeatably caused issues with us forgetting to update which tags are copied for which entity.

  1. [tick ~-60] Player feeds both parents.
  2. [tick 0] The two parents breed, the player is granted advancements with the minecraft:bred_animals trigger.
  3. [tick 1] A baby is born. Gemini summons another baby (for some mobs*).
    Additionally, considering breeding works as described above, other data packs which may want to edit the born baby may run after Gemini summons its version; so even if Gemini copied all data, some data could be lost.

* not all mobs have their twin summoned on tick 1; for some mobs Gemini summons the twin at tick 0, which is even worse.

Suggested Solution

First of, Gemini should copy all data. This will hopefully make us less likely to "forget" to update it. One may also consider to pull the list of breedable mobs from vanilla, though this may cause issues with overlays.

Secondly, Gemini should only produce its twin on tick 2, copying all data on tick 2. This way other datapacks can (and likely will) make changes in tick 1 and Gemini will respect them.

Metadata

Metadata

Assignees

No one assigned

    Labels

    quality-updateImproves efficiency or structure without affecting functionality of a module

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions