Voice Lines
pet_voice/ has one file per character, with the same file names as the Personality files:
{
"lines": {
"tame": [{ "text": "voice.chiikawa.usagi.tame.1", "weight": 1 }],
"idle": [
{ "text": "voice.chiikawa.usagi.idle.1", "weight": 1 },
{ "text": "voice.chiikawa.usagi.idle.2", "weight": 1 }
]
},
"chance": { "idle": 0.002 },
"cooldown_ticks": 200,
"crowd_limit": 3,
"talk_ticks": 60,
"hearing_range": 16.0
}| Field | Meaning |
|---|---|
lines | What to say at each moment, one line drawn by weight |
chance | Optional, the chance of speaking up at each moment, 1 if not listed; for idle it is the chance per tick |
cooldown_ticks | How long it stays quiet after a line |
crowd_limit | How many pets nearby already talking make it hold off for now |
talk_ticks | How long the speech bubble stays above its head |
hearing_range | How far away players can see it |
The moments are tame being tamed, hurt getting hurt, hunt setting off hunting, paid getting paid, shop buying something, gift giving a gift, revive being revived, idle having nothing to do, whistle hearing Whistle Candy, exam_pass passing an exam, exam_fail failing one, photo Hachiware pressing the shutter and photographed posing for a photo, plus cling, clung_to, turned_down, crab_greeting, treat, treated, given_coffee and listen, used in the little scenes.
If a moment has no lines, the pet stays silent at that moment. Rakko doesn't cry out when it gets hurt, so its file has no hurt.
text holds a key from the language file, and the lines themselves go in the resource pack's assets/<namespace>/lang/en_us.json. That way, the same data pack says the right thing in every language.
