Перейти к содержимому
Mineforgian

Crypt: Mimic

Data-driven fake-player NPCs

3K загрузок3 подписчиковMPL-2.0fabric

Обновлён 12 июля 2024 г. · опубликован 23 июня 2024 г.

Made for ModFest: Carnival

Not what I set out to make, but still something cool :3

Usage guide

Spawning

/crypt-mimic <identifier> <x> <y> <z> <nbt>
The npc will act as an armour stand until it is locked with:
/data modify entity <seletor> Locked set value True
While it is unlocked interacting will modify items, once locked dialog actions will show.
You can also modify model part rotations just as you would an armour stand.

NBT tags
NpcId - The npc types id
ArmourItems - A list of item stack compounds
HandItems - A list of item stack compounds
Small - Boolean for small model
Locked - Boolean for locked model
Pose - Compound of pose rotations.
Pose.Head - A list of floats, euler for Head rotation.
Pose.Body - A list of floats, euler for Body rotation.
Pose.LeftArm - A list of floats, euler for Left Arm rotation.
Pose.RightArm - A list of floats, euler for Right Arm rotation.
Pose.LeftLeg - A list of floats, euler for Left Leg rotation.
Pose.RightLeg - A list of floats, euler for Right Leg rotation.

NPCs

data/<namespace>/crypt-mimic/npc/<id>.json

// note: this example uses json5 for the comments, use regular json for actual data
{
  // `name` uses the vanilla Text codec, so you can build fancy things
  "name": [ // required
    {
      "type": "translatable",
      "translate": "npc.<namespace>.<id>.name"
    }
  ],
  // `title` also uses the vanilla Text codec
  "title": [ // optional
    {
      "type": "translatable",
      "translate": "npc.<namespace>.<id>.title"
    }
  ],
  "skin": { // optional
    "texture": "<namespace>:textures/entity/npc/<id>.png", // required
    "hasSlimArms": true // optional, defaults to false
  },
  "action": { // optional
    "action": "crypt-mimic:show_dialog", // required
    "value": "<namespace>:dialog_<id>" // may be required, dependent on `action`
  }
}

Dialog

data/<namespace>/crypt-mimic/dialog/<id>.json

// note: this example uses json5 for the comments, use regular json for actual data
{
  // `text` uses the vanilla Text codec
  "text": [ // required
    {
      "type": "translatable",
      "translate": "dialog.<namespace>.<id>"
    }
  ],
  "actions": [ // required, even if empty but should contain at least one
    {
      "action": "crypt_mimic:show_dialog", // required
      "value": "<namespace>:<different_id>" // may be required, dependent on `action`
    }
  ]
}

Custom dialog actions

Dialog actions use the action.<namespace>.<id> translation key.

import gay.pyrrha.mimic.dialog.DialogAction;
DialogAction.getEVENT().register((player, entity, action) -> {
    // do things
});
Kotlin Example
import gay.pyrrha.mimic.dialog.DialogAction
DialogAction.EVENT.register { player, entity, action ->
    // do things (but in kotlin :3)
}

Версии

ВерсияКаналИграЗагрузчикиДатаСкачать
0.1.0-alpha.2Альфа1.21fabric12 июля 2024 г.Скачать (326 КБ)
0.1.0-alpha.1Альфа1.21fabric11 июля 2024 г.Скачать (288 КБ)
0.1.0-alpha.0Альфа1.21fabric24 июня 2024 г.Скачать (286 КБ)

Ченджлог

0.1.0-alpha.2Альфа1.21 · 12 июля 2024 г.
  • feat: add ears intergration, switch to using fake-players (#1 by Pug)
  • feat: tweak networking to be a bit more streamlined (ee34b1b)
0.1.0-alpha.1Альфа1.21 · 11 июля 2024 г.
  • fix: custom model angles not rendering (df8ebd5)
  • fix: wrong field name in mixins config (01031ff)
  • fix: missing translations for command feedback (dd519a5)
0.1.0-alpha.0Альфа1.21 · 24 июня 2024 г.

initial release

Комментарии

Загружаем…