Files
e9c64392b5 Butter Churn (+Gutlunch Milking Changes) (#3714)
## About The Pull Request

Adds a butter churn! You can pour milk in and churn it to thicken it to
heavy cream. Churn it even more, and you'll turn the cream to butter!
It's just a little less efficient than using a blender, but at least
it's accessible to people without power or advanced industry!

Speaking of people with less advanced industry, the ashwalker tribe's
gutlunches process ores a little differently now. Gold still makes them
produce cream, and bluespace crystal still makes them produce
saline-glucose solution (????) but now they'll produce _exclusively_ the
reagent corresponding to the materials they've been fed, meaning you can
get a bit more for what you feed them. Most ores will still only produce
Miner's Salve, but glass ore (sand/basalt ash if you're not being
pretentious) now makes milk to facilitate the long lost ancient
Ashwalker art of butter and cheese making.
## Why It's Good For The Game

I was always annoyed that you couldn't produce cream or butter
particularly easily as ghost roles that can't make a blender or drinks
dispenser, especially when those ingredients are increasingly common in
the fancier foods. We didn't wait for modern appliances to make garlic
bread, dammit, we got fat on delicious carbs and fats as soon as
material science allowed.

As for the gutlunch changes, I started out with the intention of just
changing glass to give milk, but then was horrified to see how the
existing code worked, and felt this was a less annoying as hell design.

## Proof Of Testing


![image](https://github.com/user-attachments/assets/a7e040e9-3d3e-4731-a995-307aa40711e5)
_Freshly squeezed bug milk, churned into butter._

</details>

## Changelog
🆑
add: You can now craft a butter churn with 8 wooden planks, which can
turn milk into cream, and then butter!
balance: Ashwalker gutlunches can eat sand or basalt ash to produce
milk.
qol: Ashwalker gutlunches no longer mix miner's salve with the resource
they're turning specific ores into, meaning you get a lot more of that
resource on average. They'll still produce miner's salve if fed random
ores like iron, though.
/🆑

---------

Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
2025-05-22 11:32:55 -07:00

26 lines
904 B
Plaintext

/obj/item/udder/gutlunch/generate()
if(!isnull(require_consume_type) && !(locate(require_consume_type) in src))
return FALSE
if(!prob(production_probability))
return FALSE
var/list/reagents_to_add = list()
for(var/obj/item/stack/ore/ore in src)
if(istype(ore, /obj/item/stack/ore/glass))
reagents_to_add += /datum/reagent/consumable/milk
else if(istype(ore, /obj/item/stack/ore/gold))
reagents_to_add += /datum/reagent/consumable/cream
else if(istype(ore, /obj/item/stack/ore/bluespace_crystal))
reagents_to_add += /datum/reagent/medicine/salglu_solution
else
reagents_to_add += reagent_produced_typepath
var/amount_total = rand(5,10)
for(var/reagent_type in reagents_to_add)
reagents.add_reagent(reagent_type, amount_total/reagents_to_add.len, added_purity = 1)
if(on_generate_callback)
on_generate_callback.Invoke(reagents.total_volume, reagents.maximum_volume)