Mod Feedback [By Request] RotaryCraft Suggestions

  • The FTB Forum is now read-only, and is here as an archive. To participate in our community discussions, please join our Discord! https://ftb.team/discord

Pyure

Not Totally Useless
Aug 14, 2013
8,334
7,191
383
Waterloo, Ontario
Once the temperature hits a critical failure point, wouldn't it violently fail?
Yep :)

Or are you saying that instead of the boiler going from 30C to 400C back to 30C in a second isn't that great, and it should be more of a gradual rise/fall while there is fluid in it?
Right, although with the caveat that I don't know when updateEntity() is called, which appears in turn to call the methods that cause the explosion.

This needs to be clear: My only concern is when it goes from 400 to 700 and back to 410 as part of a cycle. The true temperate change is considerable at 10C, but nothing like the 300C change we briefly saw. However if updateEntity() is never called while its at its pre-dissipate peak of 700C then its less of an issue.
 

Reika

RotaryCraft Dev
FTB Mod Dev
Sep 3, 2013
5,079
5,331
550
Toronto, Canada
sites.google.com
Code:
  this.overheat(world, x, y, z); // Your base goes all sadface here
Congratulations. I nearly choked on a piece of pepper from laughing so hard. :p

smallprint: I dont know how often updateEntity() is called and to what extent the heat can dissipate before its called. Hopefully fully.
20 times a second, whereas heat code is only called once a second.
 
  • Like
Reactions: Pyure

keybounce

New Member
Jul 29, 2019
1,925
0
0
Feature request: Right now, the handbook gives you the recipes for the machines, but does not let you click on the items in the recipe to bring up their page and recipe.

NEI does -- I can hit "r" while mousing over the item -- but then I can't get back to the page in the book easily.

Being able to go to the relevant page in the book, and then "back", would be a nice addition.
 
  • Like
Reactions: Pyure

Reika

RotaryCraft Dev
FTB Mod Dev
Sep 3, 2013
5,079
5,331
550
Toronto, Canada
sites.google.com
Which heat code do you mean here? I can deal with the method names if its simplest.
updateTemperature(world, x, y, z).

Feature request: Right now, the handbook gives you the recipes for the machines, but does not let you click on the items in the recipe to bring up their page and recipe.

NEI does -- I can hit "r" while mousing over the item -- but then I can't get back to the page in the book easily.

Being able to go to the relevant page in the book, and then "back", would be a nice addition.
It also requires a complete rewrite of the navigation code.
 

Pyure

Not Totally Useless
Aug 14, 2013
8,334
7,191
383
Waterloo, Ontario
updateTemperature(world, x, y, z).
.
If I understand correctly, my temperature distinction is irrelevant for mechanical purposes.

All temperature-based effects (e.g explosions, corium, etc) are produced by updateTemperature. If that's only happening once a second, then its already happening based on effective temperature of the boiler.

So according to tooltips, the boiler may seem to go over the explosion point briefly during its cycle, but by the time the 20tick cycle is complete (and heat has dissipated into water/surroundings) the boiler may be safe again, updateTemperature is called, and no explosions are caused.

An overall temperature gauge which ONLY tracks the end-cycle temperature (so once per second) would still be "pretty" for purposes of Reactor monitoring, but the fact that the dangers aren't effected by in-cycle heat is already taken care of.
 

choco218

New Member
Jul 29, 2019
18
0
0
So according to tooltips, the boiler may seem to go over the explosion point briefly during its cycle, but by the time the 20tick cycle is complete (and heat has dissipated into water/surroundings) the boiler may be safe again, updateTemperature is called, and no explosions are caused.

Thing is, as Blood Asp pointed out, lagging servers may have the problem of the 20-iterations cycles lasting more than one second, which could make the more regular 1 second check less appropriate as it would look for a temperature in the middle of the cycle. that's just an opinion, I didn't have the time nor the courage to look into the code itself. Is the updateTemperature called after the end of the 20 iteration cycle ?
 

Pyure

Not Totally Useless
Aug 14, 2013
8,334
7,191
383
Waterloo, Ontario
Thing is, as Blood Asp pointed out, lagging servers may have the problem of the 20-iterations cycles lasting more than one second, which could make the more regular 1 second check less appropriate as it would look for a temperature in the middle of the cycle.
Is that possible? That's terrifying and an alarmingly sensible theory.
 

TomeWyrm

New Member
Jul 29, 2019
898
1
1
One thing to nitpick. Technically the RailCraft boilers are pressurized. It's in the name :p
Low-Pressure Boiler
High-Pressure Boiler

Not saying the 100C steam doesn't make sense, just saying one of the physics-based assumptions could be wrong.
 
  • Like
Reactions: Pyure

keybounce

New Member
Jul 29, 2019
1,925
0
0
If that's only happening once a second, then its already happening based on effective temperature of the boiler.
No, if it's checking once every 20 ticks, then there is a 1 in 20 chance every second of catching the wrong tick.

Which means that it *WILL*, given time, blow on you.
 

Pyure

Not Totally Useless
Aug 14, 2013
8,334
7,191
383
Waterloo, Ontario
No, if it's checking once every 20 ticks, then there is a 1 in 20 chance every second of catching the wrong tick.

Which means that it *WILL*, given time, blow on you.
That really does seem unlikely. The chance would actually be higher than 1/20 since several of those ticks are high-heat ticks. Despite my constant arguing with Reika I can't imagine that's how he'd code it.

Rather than debate something I know nothing about though, perhaps when Reika's back he'll clarify himself.

If its as asynchronous as it appears, I'd have a counter on the explodable blocks. Every tick reduces the counter by 1, unless its <= 0, in which case updateTemperature() is called and the counter is reset. This would push an asynchronous updateTemperature() to the end of every heat cycle.

No cheesy explosions; mechanics would be driven off the true effective temperature of the block.
 

Pyure

Not Totally Useless
Aug 14, 2013
8,334
7,191
383
Waterloo, Ontario
Really? The updateEntity() loop is called every tick from the main game loop, and only every 20 cycles does temperature code get called.
I don't mod MC, and updateEntity() sounded like an interface you'd implement but would otherwise be called from outside your code; I didn't even bother looking for calls to it.
 

Reika

RotaryCraft Dev
FTB Mod Dev
Sep 3, 2013
5,079
5,331
550
Toronto, Canada
sites.google.com
I don't mod MC, and updateEntity() sounded like an interface you'd implement but would otherwise be called from outside your code; I didn't even bother looking for calls to it.
Maybe, but does it not stand to reason if the game starts lagging, then (aside from a separate thread), that everything else slows equally?