-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Reorganize and refactor drinks yml #39221
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This reverts commit eb8599d.
RSI Diff Bot; head commit 690b4d1 merging into 1f1c719 Resources/Textures/Objects/Consumable/TrashDrinks/absinthebottle_empty.rsi
Resources/Textures/Objects/Consumable/TrashDrinks/alebottle_empty.rsi
Resources/Textures/Objects/Consumable/TrashDrinks/coffeeliqueurbottle_empty.rsi
Resources/Textures/Objects/Consumable/TrashDrinks/cognacbottle_empty.rsi
Resources/Textures/Objects/Consumable/TrashDrinks/gildlagerbottle_empty.rsi
Resources/Textures/Objects/Consumable/TrashDrinks/ginbottle_empty.rsi
Resources/Textures/Objects/Consumable/TrashDrinks/patronbottle_empty.rsi
Resources/Textures/Objects/Consumable/TrashDrinks/pwinebottle_empty.rsi
Resources/Textures/Objects/Consumable/TrashDrinks/rumbottle_empty.rsi
Resources/Textures/Objects/Consumable/TrashDrinks/tequillabottle_empty.rsi
Resources/Textures/Objects/Consumable/TrashDrinks/vermouthbottle_empty.rsi
Resources/Textures/Objects/Consumable/TrashDrinks/vodkabottle_empty.rsi
Resources/Textures/Objects/Consumable/TrashDrinks/whiskeybottle_empty.rsi
Resources/Textures/Objects/Consumable/TrashDrinks/winebottle_empty.rsi
|
This is probably not crazy helpful because of the size, but this might be of some use—it's not too bad to speed-skim through (okay it's pretty bad). It's a diff of all the changes including stuff added/removed via parenting changes. (I'm still working on getting this to be something that's usable as an actual tool, and isn't quite as verbose.) https://gist.github.com/perryprog/80c5fea7daea91d2ed958eed3db36695 |
This would be so useful for big reparenting PRs like this. And we need some big reparenting PRs, prototype organization for a lot of entities sucks right now. |
Yeah, see space-wizards/RobustToolbox#6131 for if you have any suggestions. I'm no yaml warrior but the least I can do is try to make it less painful for those who are. |
That's a really neat tool! It's nice to see exactly how these prototypes changed, and will be even more useful for PRs that don't have the 100s of nothing protos like the metamorphic cups. The negative diff is especially helpful to see if anything actually got lost in the reparent. |
That's a good point—removals are usually more important to spot than additions. I'll keep that in mind! |
After painfully scrolling through all 20,000 lines, I'm confident in myself that nothing got lost. |
@Princess-Cheeseballs Pinging you about the stable release. |
Thanks I totally forgot |
Removing DO NOT MERGE as stable has come around. This will need another maint approval I think though. |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
# Conflicts: # Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml
P1 due to #40046 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not finding any issues, and testing ingame seems to work with no issues.
Thank you for your contribution!
About the PR
#39363 is wanted but not blocking.
This PR is a refactor of the base entities in
Entities/Objects/Consumable/Drinks/
. It adds a lot of base types and reparents a lot of entities. Some abstract types were removed, and some behavior was changed or added.All drinks from flasks to cartons to bartender tools are now destructible. They also all now utilize
SolutionItemStatusComponent
to see the solution in the hand UI. Shot glasses and paper cups are now 1x1. Coup glass is now 20u from 30 (fancier, fits the base better), and paper cups are now 5u from 20 (water cooler speedruns in shambles).Also deletes a bunch of redundant rsi files.
Why / Balance
General cleanup. This folder was a bit of a mess. A lot of entities parented to
BaseItem
instead ofDrinkBase
which causes inconsistencies.trash_drinks.yml
was particularly bad, and had the empty bottles not parenting off the originals in any way. The bartender's locker even spawned the trash versions of beer bottles due to ambiguous naming.I want to later include beakers, vials, and other misc entities in this refactor, as well as standardize some rsi states, but stopped short for atomizing.
Technical details
Drinks now use multiple parents to componentize groups of components from
drinks_base.yml
anddrinks_base_materials.yml
. i.e.DrinkBase
is the main group of solution and item related components,DrinkBaseOpenable
adds Openable and PressurizedSolution and Sealable,DrinkBaseMaterialGlass
adds physical composition and destructible behavior, etc.There are currently no duplicate components between the groups of bases so inheritance order doesn't matter, but in the future if materials get more sounds they should be placed first to override the sounds from
BaseItem
. Convention is [Material,DrinkBase
, Openable, Visuals]. Adding a material as the first parent will completely replace a previously inherited material.Typical structure is to create an abstract entity at the top of the file which takes multiple parents and adds some components, then the rest of the file parents from it.
DrinkBase
has hadInjectableSolution
added allowing it to be targeted by hyposprays and anomalies.Textures/Objects/Consumable/TrashDrinks/
has been deleted. It contained a bunch of one image rsi, and was used by the trash versions of bottles. Now we just use the original rsi.Media
Drinks still pouring
MyServer - Space Station 14 2025-07-25 21-40-03.webm
Spawn panel now shows full bottles as full. (Color still doesn't work)

More solutions now have


SolutionItemStatusComponent
Liquid anomalies now inject into nearby drinks if there's room.

Requirements
Breaking changes
Two new localization lines:
drink-component-on-examine-is-unsealed-no-cork
drink-component-on-examine-is-unsealed-crown-cap
Prototypes/Entities/Objects/Consumable/Drinks/
has a reworking of its base types. Anything inheriting fromDrinkGlassBase
will need to be reparented to[DrinkBaseMaterialGlass, DrinkBase]
, and some cups/bottles/drinks might be missing components.Drinks now use multiple parents to componentize groups of components from
drinks_base.yml
anddrinks_base_materials.yml
. i.e.DrinkBase
is the main group of solution and item related components,DrinkBaseMaterialGlass
adds physical composition and destructible behavior. Convention is [Material,DrinkBase
, Openable, Visuals]. Adding a material as the first parent will override a previously inherited material.Textures/Objects/Consumable/TrashDrinks/
has been deleted. It contained a bunch of one image rsi for the empty versions of bottles. Now we just use the original rsi.DrinkCartonBaseFull
has been renamedDrinkCartonSmallBaseFill
to match the name scheme used with bottles.DrinkCartonBaseLargeFull
has been renamedDrinkCartonBaseFull
.Changelog
🆑 aada