Killed Engine class, merged into TileEngine and subclasses.
Converted to Forge rotation API.
Split heat from stored energy and set proper temp bounds.
Rewrote IronEngineCoolant API, changed to degree based temp reductions
(its 0.0025 times the previous values). Added support for solid coolants
(they have to melt into a liquid coolant, like Ice to Water).
There is a commented out alternative implementation for constant power
output instead of pulsed.
And fixed a issue with the PowerProvider casting objects to TileEntities
that aren't TileEntities. Fixed by adding a getWorldObj() function to
IPowerReceptor.
PowerFrameWork is gone.
PowerProvider is final.
Can have multiple PowerProviders (one for each block side).
PowerProviders can either accept power from pipes or they can't, defined
in constructor.
Removed a bunch of excess code that just cluttered the API.
Its now restricted to Wooden Power pipes.
Before:
The trigger was useless because it was triggering off the powerQuery
array which was always true so long as there was any device on the
network requesting power. This made it rather useless for scaling
production to demand.
After:
It now triggers whenever the Wooden Power Pipe's internal power buffer
drops below a certain point. This however required a modification of the
wooden pipe's internals because it was getting stuck in the "Off" state
due to how it handled transferring power from the buffer to the pipe
network.
Anyway, it works now and is somewhat useful.
Note: The Wooden Power Pipe's internal buffer stores 1500 MJ, this was
true even before this commit.
Requests Energy: Activated when the pipe has an active power request.
Use to allow your network to respond to demand dynamically.
Energy Overloaded: Activated when the pipe turns red, in case anyone
wants to know when that happens.
Its now the same as the quarry, 60 MJ per block.
Also tweaked power provider settings on the Mining Well and Quarry to
prevent smaller engines from being unable to overcome the maintenance
drain.
This is an interesting commit, it not only fixes the RS Cells
(@King_Lemming) it also makes it so the network can respond to demand as
needed by shutting down overheating engines, since the pipes won't
accept power now unless something is requesting it.
@King_Lemming this will break compat with RS Cells because you're doing
it wrong. Don't use powerRequest() like that and don't ignore the return
of receiveEnergy().
PS. It was already broken because the cell was just throwing power away
because it was ignoring the return of receiveEnergy().