
Milky Way
Adds a little patience to farming: milking mobs now triggers a configurable cooldown.
Описание
Overview
With this mod, certain resources offered by mobs such as cows and mooshrooms now rely on a cooldown. By default, this means cows can be milked with a bucket roughly twice a day (as opposed to one animal giving infinite and instantaneous milk). This duration is configurable. Other resources, such as harvesting mushroom stew from mooshrooms, are also dependent on a cooldown.
The mod offers some additional challenge on its own, but it's mainly meant to encourage the use of alternative milk farms. Or maybe improved organization in cow pens?
Got Alternative Milk?
Why yes! Here are a few mods off the top of my head:
- Neapolitan: Although this mod primarily focuses on other crops and food-related mechanics, it adds the ability to farm milk out of cauldrons by placing cows over dripstone, similarly to water/lava. The output is slow, but it does allow for extra free milk.
- Simple Soy: Silly stigmas aside, this mod provides a vegan alternative in the form of soy milk, using the mod's titular crop.
Note: I'm not affiliated with either of these mods; I just think the options they provide are neat and under-utilized :)
Config
By default, mobs that are still on a cooldown will spawn a particle to indicate they're not ready to any impatient players. This can be disabled by setting angryParticle to false.
Custom Timers
[1.20.1] Config & Entity Tags
In the config, the values bucketTimer, worseBucketTimer, bowlTimer, and bottleTimer all correspond to the cooldown (in seconds) of the four types of milkable mobs.
There are four entity type tags: milky_way:bucket_milkable, milky_way:worse_bucket_milkable, milky_way:bowl_milkable, and milky_way:bottle_milkable.
- By default, mobs like cows are put into
bucket_milkable, and mobs that would provide worse alternatives (such as mooshrooms or yak from Environmental are put intoworse_bucket_milkable.- By default, a mob in
worse_bucket_milkablehas a full-day cooldown, whereas mobs inbucket_milkableonly take half as long.
- By default, a mob in
- Putting a mob in both
bucket_milkableandworse_bucket_milkablemay have terrible consequences!! (I wouldn't know because I haven't tried, it's just that scary.)- Other overlaps like
bowl_milkableandbucket_milkableare fine, though. For example, cows can configured to be milked with bottles using Neapolitan so they're put in bothbucket_milkableandbottle_milkable.
- Other overlaps like
[1.21.1] Data Map
There is now a (frankly exhaustive) data map where you must include all relevant mobs, cooldown timers, items used to extract resources, etc. Each entity type in the data map corresponds to an items list, which includes a specific value for each relevant parameter corresponding to said item. Check out the default map here.
To help parse the map, consider the humble mooshroom:
"minecraft:mooshroom": {
"items": [
{
"item": "milky_way:buckets",
"seconds": 1200
},
{
"item": "minecraft:bowl",
"seconds": 600
},
{
"item": "minecraft:glass_bottle",
"seconds": 400,
"mod_loaded": "neapolitan"
}
]
},
A mooshroom can be "milked" with a bowl (for stew) or bucket (for milk), so the corresponding item is detailed along with the time it takes for the mob to replenish its stock. If the mod Neapolitan is loaded, the option to milk the mob with a glass bottle is also made available.
In this case above, each mooshroom only has one "resource timer"--harvesting mushroom stew makes it impossible to get milk OR stew for the next 600 secs, and vice versa. However, if you want separate resource timers to replenish at different rates, you can add a milk_type parameter:
"minecraft:mooshroom": {
"items": [
{
"item": "milky_way:buckets",
"seconds": 1200,
"milk_type": 0
},
{
"item": "minecraft:bowl",
"seconds": 600,
"milk_type": 1
},
{
"item": "minecraft:glass_bottle",
"seconds": 400,
"mod_loaded": "neapolitan",
"milk_type": 0
}
]
},
With this, a mooshroom would be able to give milk every 1200 seconds and stew every 600 seconds, disregarding the other resource's timer. Note that milk_type takes in a byte value, so if your mob has more than 255 different resources or timer-based item interactions you're going to have a bad time and frankly, you deserve it.
For those wondering why the bucket is denoted as milky_way:buckets and not just minecraft:bucket, nice catch. It's a sentinel value; please reference "Item Tags" below.
Item Tags
The item tag milky_way:buckets lets this mod maintain compatibility with mods that add alternative buckets, like Caverns and Chasms and their golden buckets or Windswept's wooden buckets.
Requires Blueprint 6.2.0+. Various optional dependencies are also built-in.
[1.20.1] If Cobblemon is installed, mobs that are milkable (only Miltank in the base mod) are put in the same boat as standard bucket-milkable mobs. [1.21.1: There is a persistent bug where milkable mob timers reset when re-summoned with a Pokeball. Not sure if this will be fixed, apologies.]
I know that there could be other mods that add their own fluids to cows, so feel free to extend suggestions and incompatibilities in the issue tracker. Thank you!
