[1.106] Reactor plating and suicidal heat exchangers.

  • Due to the way reactors calculate their maximum heat level on-the-fly at every tick, heat exchangers that deal with the reactor's heat will work with incorrect( ? ) values.


    Example:


    Imagine a line of components: Reactor Heat Exchanger - 5 x Heat-Capacity Reactor Plating - Reactor Heat Exchanger


    The 5 platings give the reactor a max temp of 20k.. lets say that the reactor's heat is at 15k:
    The first exchanger is processed before all of the plates, it sees the reactor temp is 15k of 10k (150%) and tries to match that.. it melts.
    The last exchanger is after all the plates, it sees the reactor temp is 15k of 20k (75%) and will try to aim for 75% too.


    I'm unsure if it's intensional or not, so I thought I'd mention it here and not in public.

    • Official Post

    Heat exchangers DO calculate in reactor's maxheat. However, you can overload them when the heat differences are too vast.


    For example if the reactor is cooled, but all surrounding elements have loads of heat, the switches will first draw the maximum amount of heat from all surrounding components and then redistribute some to the reactor. If this keeps up for X ticks, they can overheat themselves.


  • I'm sorry if I missed the part of the code where the reactor's max heat is stored to be used by heat switches before all of the plating has been processed.

  • The way I've been working around that in my planner is making an 'initChamber(...)' method for stat altering things like Plating. Then having two loops in 'processChambers' .. one for the 'initChamber', the other for the 'processChamber'.