Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.
Sign upStop player from getting frozen water from map water sources #28979
Conversation
This comment has been minimized.
This comment has been minimized.
|
For a less obviously unrealistic fix is there a way to add conditional tool requirements to liquid retrieval? Bodies of water not freezing solid is crucial to the survival of many freshwater fish but you'd need a drill, hammer and/or a chiselling tool to break the surface ice. Capping it to 4°C is not fully accurate either, while the bulk of a lake can indeed maintain that temperature the layer immediately below the ice will be close to freezing and may in fact begin freezing almost instantly once deprived of the insulating ice layer and poured into a metal tank. A proper implementation of the enthalpy of fusion in addition to the very high heat capacity and poor thermal conductivity of water should prevent most freezing issues in the long run without hardcoding a cap. |
This comment has been minimized.
This comment has been minimized.
|
I thought about setting the lower limit to 0 C too. But in the current state the code doesn't differentiate between different water sources so the same code is being used for both water tiles and water pumps. I don't think rewriting the system to work differently on different water sources just for this one thing would be good use of time. The exact temperature of items is hidden from the player anyways so I just picked a good enough value. (enthalpy of fusion and heat capacity are already implemented for items) |
This comment has been minimized.
This comment has been minimized.
|
Pouring frozen water should just be blocked. It makes sense for the water to be frozen in winter in a variety of places (rivers, small ponds). For lakes, for simplicity's sake, we can agree on the 4C rule. |
Hirmuolio
referenced this pull request
Mar 25, 2019
Merged
Freezing makes liquids into solids. #28980
This comment has been minimized.
This comment has been minimized.
|
Until we have support for the terrain itself acting like it's frozen, this should be Good Enough |
This comment has been minimized.
This comment has been minimized.
|
How about adding ability to get chunks of ice with hammering 1 and/or bashing? Possibly better with chainsaw/pickaxe. Also water breaks glass containers when freezing because it expands slightly. Edit: I typed it before seeing Kevins' comment. |
This comment has been minimized.
This comment has been minimized.
|
There is currently no information on t he state of water in water tile. Water freezing in water tight glass containers breaking the container would be quite easy to implement. |
This comment has been minimized.
This comment has been minimized.
|
Larger bodies of water typically do not freeze solid in the winter. We can justify this for now by saying that you can punch through the top layer of ice to get the water you need. |
ZhilkinSerg
merged commit 71fd5f2
into
CleverRaven:master
Mar 25, 2019
ZhilkinSerg
added
[C++]
<Bugfix>
Temperature
labels
Mar 25, 2019
This comment has been minimized.
This comment has been minimized.
|
This pull request has been mentioned on Cataclysm: Dark Days Ahead. There might be relevant details there: https://discourse.cataclysmdda.org/t/water-drawn-from-ponds-may-be-frozen-in-summer/19432/6 |
Hirmuolio commentedMar 25, 2019
•
edited
Summary
SUMMARY: Bugfixes "Stop player from getting frozen water from map sources"Purpose of change
Filling containers from lakes/rivers/water pumps during winter would give you frozen water. No more.
It is mentioned in #28882 but I believe the original bug (about toilet) there to be something else.
Describe the solution
When player gets water from these sources the liquid is created on the fly. Since the liquid has no defined temperature yet it is set to the enviroment temperature.
When enviroment was below 0 C this would cause the liquid to be frozen. But it doesn't make much sense to pour frozen water into your 60l metal tank
Now the temperature is set to be max( enviroment, 4 C).
Describe alternatives you've considered
Water tiles should track their own temperature so that lakes would freeze during winter. But this quick fix will work too.
Additional context