Registered Users
  • Content count

  • Joined

  • Last visited

Community Reputation

3028 Excellent

About rezecib

  • Rank


  • Biography If you're curious, my name is supposed to be pronounced reh-zeh-sheeb. It's the nominal form of the number 273 in lojban.

    I studied bioengineering as an undergrad. Now I'm trying to go to grad school for artificial intelligence.

    I like games, programming, and thinking about the future. And a ton of other stuff.
  • Location New York, USA
  • Modder

Recent Profile Visitors

9,458 profile views
  1. What I do is rename the file to debug_disabled.txt when I don't want it on.
  2. @watermelen671 It was mentioned in that discord channel.
  3. @Teremok322 There is no official mod support beyond languages, and the most complicated mod I've seen hacked into the game was a new building. So I think this would be a very difficult mod to make right now. The best place I know of for talking about this is the oni-modding channel of the unofficial Discord server.
  4. I see no evidence in the code that morbs consume anything, unless there is a bug in ElementEmitter.ForceEmit that causes it to replace the existing gas with the emitted one or something.
  5. This also destroys the heat in the water. Electrolyzers always output their gas at 70C. There's not much point in doing this. Just make your Steam geyser enclosure go down a bit-- I like to have an extra 3x3 slot under the geyser to hold water, and I put the pump there. This also prevents the steam from overheating the pump. That 3x3 can hold 9000 kg of water on its own. Geysers produce 4 kg/s, and it's pretty hard to use all of that unless you're doing natural gas complexes with multiple scrubbers running full-time.
  6. Or better yet, don't cool it If you pump the hot water directly to the things that consume it in abyssalite pipes, then you destroy the heat from it.
  7. If you want to look just at the steady-state conditions to see what would balance, ignoring potential wheezewort inefficiency due to low gas pressure (if they manage to make their intake tile vacuum, then they are not operating at full efficiency), and ignoring heat transfer with other systems, then here's the balance, with a flow rate of x g/s: Thermo Regulator energy flow out: (x)(14K)(2.4 J/gK) Wheezewort energy flow to the void: (1000 g/s)(5K)(2.4 J/gK) -- I assume you use the optimal gas for cooling with Wheezeworts, Hydrogen The specific heats cancel out, because both Thermo Regulator and Wheezewort are cooling hydrogen. So if you have T Thermo Regulators and W wheezeworts, then the flow rate x should be: x = (1000 g/s)(5W/14T) = 2500/7 g/s * (W/T), or approximately 357 g/s * W/T. So with a standard 4 Thermo Regulator setup, this is about 89 g/s per Wheezewort. So 11 Wheezeworts would allow you to run near-full capacity at 982 g/s. Edit: A simpler rule of thumb would be to just always run the Thermo Regulators at full capacity, in which case the flow rate matches the Wheezeworts, and then you can just use their cooling ratios of 14/5 to determine the number of Wheezeworts. In the case of 4 Thermo Regulators, you would need 4*14/5 = 11.2 Wheezeworts to fully offset them. In general it is safe to overcompensate with Wheezeworts because they will self-limit when they reach the stifling temperature of -60C.
  8. @CobraA1
  9. I noticed this in the code. As far as I can tell, it should work to convert ANY liquid into polluted water, even magma. Edit: Aww, that would've been good fun. But I tested it and then found the place it was checking for water.
  10. If you want to use just one filter, then I recommend keeping the pipes from the pumps separate right until the entrance to the filter.
  11. @Chris_Hoefler Normally I find it easier to slightly underutilize a resource. This way the pipe will fill up to ensure an even distribution. In the case of your setup, this could either be to have 5 generators and 6 makers (so you have 20 g/s extra), or to add a valve just before the input of one generator, to ensure it gets slightly less than 60 g/s. The extra will ensure the area remains pressurized, and the pipes remain completely full (because one pump brings in 500 g/s, and you are consumed a little less than 300 g/s, so the pump will self-limit once the pipes are full).
  12. Both gas pipe bridges and liquid pipe bridges will not allow you to build them directly connecting: However, once the bridges it would be connecting to are built, it does let you: You can also see above I have created a linked pipe bridge system above. Wire bridges do not exhibit this behavior; they never let you build them connecting like this. This doesn't exactly cause any problems, but if a single pipe segment is built at each of the joins, it allows gas/liquid to flow through at twice the speed.
  13. Yup, all mass in the files seems to be floating point kg.
  14. How were you testing? 200 seems like quite a lot, I wonder if the building thermal mass factor of 5 is rolled into that? ... peeking at the files... Nope, you're right, the tepidizer appears to be literally set to 4 MW: buildingDef.ExhaustKilowattsWhenActive = 4000f; Then I thought to look at how the description gets made from that variable: if (def.ExhaustKilowattsWhenActive > 0f || def.OperatingKilowatts > 0f) { Descriptor item2 = default(Descriptor); item2.SetupDescriptor(string.Format(UI.BUILDINGEFFECTS.HEATGENERATED, GameUtil.GetFormattedWattage(5f * (def.ExhaustKilowattsWhenActive + def.OperatingKilowatts), string.Empty)), string.Format(UI.BUILDINGEFFECTS.TOOLTIPS.HEATGENERATED, GameUtil.GetFormattedWattage(5f * (def.ExhaustKilowattsWhenActive + def.OperatingKilowatts), string.Empty)), Descriptor.DescriptorType.Effect); list.Add(item2); } That looks like it's considering the units to actually be W instead of kW, and then it's multiplying by 5 to account for buildings using 1/5 the mass. That mass reduction hack seems like it's going too far, this is really messy... mainly because although you want to take into account the mass reduction in the building's own temperature change, you don't want to take it into account for the surrounding material temperature change, because it has no such factor... I think? This made me doubt that the units are actually kW as claimed by the variable names, so I followed the paths taken to actually do the temperature change. For exhaust, StructureTemperatureComponents reads it (via StructureTemperatureData.ExhaustKilowatts), and then actually does the production via SimMessages.ModifyEnergy. The code there is a bit strange, though (I renamed the local variables that were just num# for readability)... if (structureTemperatureData.ExhaustKilowatts > 0f) { int numCells = structureTemperatureData.building.Def.WidthInCells * structureTemperatureData.building.Def.HeightInCells; float kilojoulesPerCell = structureTemperatureData.ExhaustKilowatts * dt / (float)numCells; Extents extents = structureTemperatureData.building.GetExtents(); for (int dy = 0; dy < extents.height; dy++) { int cellY = extents.y + dy; for (int dx = 0; dx < extents.width; dx++) { int cellX = extents.x + dx; int cell_id = cellY * Grid.WidthInCells + cellX; float mass = Grid.Cell[cell_id].mass; float adjustedMass = Mathf.Min(mass, 1.5f) / 1.5f; float kilojoules = kilojoulesPerCell * adjustedMass; SimMessages.ModifyEnergy(cell_id, kilojoules, SimMessages.EnergySourceID.StructureTemperature); } } I guess that mass adjustment is just to prevent it from superheating small amounts of mass with exhaust. Maybe not that strange, then. We can't track things once they go into Sim (and SimMessages.ModifyEnergy is just a simple wrapper), so I looked at the thermo regulator code (AirConditioner), because at least THAT matches with our calculations. This goes AirConditioner.UpdateState to StructureTemperatureComponents.ProduceEnergy to StructureTemperatureData.ModifyEnergy to SimMessages.ModifyBuildingEnergy, also claiming to be in kilojoules. So unfortunately they enter into different functions of Sim, but I didn't find anything that really suggested it wasn't actually in kJ or kW, aside from the fact that it's reporting them as W... So I guess maybe heating would be an issue, unless you use the various fixed-temperature methods of destroying heat for heat sources other than geysers. A single tepidizer running full-time would require 400 Wheezeworts to counteract...
  15. @thejams I believe they are zero-sum. 12 kW of cooling per Wheezewort is nothing to scoff at, though, most things that just flat-out produce heat on their own produce less than 100W, the main exception being the tepidizer, which can be countered with just two Wheezeworts. A map should always have at least 30 Wheezeworts, so that gives you a "heat budget" of 360 kW of heating. The main source of heat outside of that are geysers. Steam geysers can essentially be stopped from producing significant heat by pumping their water in abyssalite pipes directly to source which consume it, essentially destroying the heat. Natural Gas Geysers only produce 100g/s of gas at an average of 99.55C, which let's just say you actually need to cool it all (instead of mostly destroying the heat by using it in generators) to a comfortable 25C... (99.55C - 25C)*(K/C)*(100g/s)(2.191 J/gK) = 16334 J/s < 16.4 kW. So a little more than one and a quarter Wheezeworts per geyser. Let's say you're lucky and get 10 natural gas geysers, you need 14 Wheezeworts for that. So that leaves you 16 left for countering your buildings. Aside from the tepidizer, the Space Heater produces the most (I think?), at 90W; 16 Wheezeworts will counter the heat from 2133 space heaters. And then there's The Void; you could use something produced at a reasonable-ish temperature (like hydrogen from electrolyzers) to cool thermoregulators, then vent it into the void, destroying its heat So... I think we have enough tools to avoid heat death.