CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.32k stars 4.14k forks source link

Spawning [contained] black paint results in spilled paint. #71421

Open Maleclypse opened 8 months ago

Maleclypse commented 8 months ago

Describe the bug

Debug spawning in black paint results in spilled paint every time.

Attach save file

N/A

Steps to reproduce

Debug spawn paint. Find it spilled

Expected behavior

no spill and contained

Screenshots

No response

Versions and configuration

game version

Additional context

Test Xedra_copy-trimmed.tar.gz

MrHrulgin commented 8 months ago

I've had that experience across all colors of paint. If you have an empty container when you spawn in the paint it'll go into it, but it won't automatically create a paint bucket like happens with most other liquids.

Karol1223 commented 8 months ago

This is probably because paints don't have a default container defined, since when I made them liquids I wanted them to always spawn in one of the two possible containers - which is handled via itemgroups and spawning, not default container field.

PatrikLundell commented 8 months ago

/confirmed

I had some reason to try to spawn a liquid which I think was paint a few months ago (something about white painted walls?), and it spilled. However, I eventually found the "f" key for it to spawn in a container, and that worked at that time. Now, however, the paint gets spilled anyway (and I don't see any container either).

Procyonae commented 8 months ago

If you have a container on you they can spawn in them, either that or spawn them over a bath tub

PatrikLundell commented 8 months ago

Tried @Procyonae's advice, and it worked. Spawned metal paint can and then black paint, and it did indeed end up in the can.

Maleclypse commented 8 months ago

I'm trying to decide if removing default containers in order to make itemgroups work easier is a bug in a. itemgroups b. debug c. both

Karol1223 commented 8 months ago

I'm not sure it's a bug in either? They never had a default container assigned. And although I do think that there should be a better indication/a choice to spawn liquids with a pre-chosen container via debug, this doesn't seem like a bug

The game has no idea that the paint cans are supposed to be spawning inside the containers, because it's not handled in the item definition.

An ideal solution would probably be to allow default containers to use itemgroups

PatrikLundell commented 8 months ago

If I recall correctly, which is not a guarantee, when I did my paint spawning way back, I first tried to spawn a paint bucket after the first spawn ended up on the ground, but the paint ended up on the ground anyway, but when specifying it should come in a container it did end up in a new paint bucket. Thus, I think the behavior has changed.

I don't think its a bug in itemgroups unless it also happens in normal game play. That doesn't mean a change to itemgroups that supported debug wouldn't be welcome (if decided to be a desirable way to address it), though.

Without knowing the details, I would suppose a good solution would be to allow for a default container for items, but allow those containers to be overridden by other container selections. If you were to require a default container for liquids there should be a way to ensure you can place liquid in non item containers (toilets, puddles, bath tubs (e.g. in a survivor hideout), etc.).