-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
Model static fires equalizing with the local atmosphere #32760
base: master
Are you sure you want to change the base?
Changes from all commits
20b7032
e49e7e3
6798591
42c6498
17601a3
cf43d86
f12048b
3300293
e641878
ff63faa
47d93e9
bce6b81
8451de0
7305c39
9d291bb
ed349f4
e045b71
97d413c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -160,7 +160,8 @@ private void OnAtmosExposedUpdate(EntityUid uid, TemperatureComponent temperatur | |
var heatCapacity = GetHeatCapacity(uid, temperature); | ||
var heat = temperatureDelta * (airHeatCapacity * heatCapacity / | ||
(airHeatCapacity + heatCapacity)); | ||
ChangeHeat(uid, heat * temperature.AtmosTemperatureTransferEfficiency, temperature: temperature); | ||
ChangeHeat(uid, heat * temperature.AtmosTemperatureTransferEfficiency, temperature: temperature); // move heat to entity | ||
_atmosphere.AddHeat(args.GasMixture, -1 * heat * temperature.AtmosTemperatureTransferEfficiency); // remove heat from air | ||
Comment on lines
+163
to
+164
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Separate PR, because this is a bug fix to There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Its necessary for temp-emitting fires. |
||
} | ||
|
||
public float GetHeatCapacity(EntityUid uid, TemperatureComponent? comp = null, PhysicsComponent? physics = null) | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -215,3 +215,4 @@ | |
- type: StorageFill | ||
contents: | ||
- id: SpaceHeaterFlatpack | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -28,15 +28,19 @@ | |
volume: 10 | ||
- type: UseDelay | ||
- type: Flammable | ||
peakFlameTemperature: 350 | ||
joulesPerFirestack: 80 | ||
fireSpread: false | ||
canResistFire: false | ||
alwaysCombustible: true | ||
canExtinguish: true | ||
firestacksOnIgnite: 3.0 | ||
firestacksOnIgnite: 3.3 | ||
IProduceWidgets marked this conversation as resolved.
Show resolved
Hide resolved
|
||
firestackFade: -0.01 | ||
damage: | ||
types: | ||
Heat: 0.1 | ||
- type: Temperature | ||
- type: AtmosExposed | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This does not need to be added here, because you There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Its not strictly necessary, and probably fine if we drop it, but it does mean that the temperature of flammable things will be wrong when they initially catch fire. Could lead to weird behavior like catching fire initially cooling the room before heating it again. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why is that? This would mean that every single candle gets called in the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. They would have whatever the prototype temperature is (usually 20C) until they gain the AtmosExposedComponent and equalize. So if the room is already hot, say 50C, when the candle is lit it will initially be colder than the room and pull heat from the air until it reaches room temp. Although now I'm saying that, I can probably just fake it by setting the entitie's temperature to the air temp when it first ignites. |
||
- type: FireVisuals | ||
sprite: Objects/Misc/candles.rsi | ||
normalState: fire-big | ||
|
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.
Default arguments need not be re-specified.
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.
Not all atmos exposed devices necessarily need to be excited. Things only need to be excited if the mixture is changed. So this call should be delayed until it's guaranteed that the mix is changed.