This has been an issue for a while, but I'm giving it some attention now again due to the fumarole's thermic tools not suffering this issue, as they properly set an equippedheatfn function.
That's not the case for Thermbells (dumbbell_heat):
inst:AddComponent("heater") inst.components.heater.heatfn = HeatFn inst.components.heater.carriedheatfn = HeatFn inst.components.heater.equippedheatfn = HeatFn -- this one's missing inst.components.heater.carriedheatmultiplier = TUNING.HEAT_ROCK_CARRIED_BONUS_HEAT_FACTOR inst.components.heater:SetThermics(false, false)
There's also three other things worth pointing out related to this:
- carriedheatmultiplier isn't used for equipped items, despite them being basically carried. This would affect Thermbells when held in hand (if that's addressed but this isn't), causing them to weirdly be less effective when held in hand.
- The fumarole's thermic tools don't have a carriedheatmultiplier, which may be intended but I'm just pointing it out just in case.
- Active items (held in the cursor) aren't accounted for by the temperature component for adding heat/cold.
Regarding the last point, this results in them doing nothing for the player, either positively, or negatively, but unintuitive either way. Players may not realize that holding a thermal stone there won't do anything (meanwhile, the stone will still lose heat/cold), and on other hand, it allows you to hold a very hot thermic tool to remove its downside of giving you too much heat.
if self.inst.components.inventory ~= nil then for k, v in pairs(self.inst.components.inventory.equipslots) do if v.components.heater ~= nil then local heat = v.components.heater:GetEquippedHeat() -- should support carriedmult too if heat ~= nil and ((heat > self.current and v.components.heater:IsExothermic()) or (heat < self.current and v.components.heater:IsEndothermic())) then self.delta = self.delta + heat - self.current end end end for k, v in pairs(self.inst.components.inventory.itemslots) do if v.components.heater ~= nil then local heat, carriedmult = v.components.heater:GetCarriedHeat() if heat ~= nil and ((heat > self.current and v.components.heater:IsExothermic()) or (heat < self.current and v.components.heater:IsEndothermic())) then self.delta = self.delta + (heat - self.current) * carriedmult end end end local overflow = self.inst.components.inventory:GetOverflowContainer() if overflow ~= nil then for k, v in pairs(overflow.slots) do if v.components.heater ~= nil then local heat, carriedmult = v.components.heater:GetCarriedHeat() if heat ~= nil and ((heat > self.current and v.components.heater:IsExothermic()) or (heat < self.current and v.components.heater:IsEndothermic())) then self.delta = self.delta + (heat - self.current) * carriedmult end end end end -- this is normally missing local active_item = self.inst.components.inventory:GetActiveItem() or nil if active_item ~= nil and active_item.components.heater ~= nil then local heat, carriedmult = active_item.components.heater:GetCarriedHeat() if heat ~= nil and ((heat > self.current and active_item.components.heater:IsExothermic()) or (heat < self.current and active_item.components.heater:IsEndothermic())) then self.delta = self.delta + (heat - self.current) * carriedmult end end end
Regarding Thermbells:
- Equip a Thermbell in your hand.
- Notice how it won't give any heat or cold.
Regarding the active items not providing heat/cold issue:
- Fully heat up a thermic tool.
- Keep it in your inventory or hand.
- Check temperature through debugging, or if applicable, notice how you'll overheat.
- Hold it in your cursor.
- Notice how it won't heat you up anymore, effectively removing the downside of having to deal with the extra heat.
-
1
A developer has marked this issue as fixed. This means that the issue has been addressed in the current development build and will likely be in the next update.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now