Recreated? Do they consume the source now?
No, but that was my point. Infinite water vs water @ speed of recreation makes for a low maximum flow.
From a coding and server standpoint, wouldn't the creation of source blocks and updating the flowing blocks cause some issues? If you were keeping to a realistic volume of water as you were saying, then you'd either need to have water that expands in volume as it falls, or create enough source blocks to where you start lagging the server.
It's an interesting thought though, about having water being the limiting source.
I think I suggested at one point that a dam be required, and that a "flood gate" unit was needed to pour water in the hydro. It could calculate the volume of water behind it and scale the power effectively. Given a player can only load a certain area at a time, it couldn't scale too large. That wouldn't even require eating the source blocks.
This is an implementation nightmare.I think I suggested at one point that a dam be required, and that a "flood gate" unit was needed to pour water in the hydro. It could calculate the volume of water behind it and scale the power effectively. Given a player can only load a certain area at a time, it couldn't scale too large. That wouldn't even require eating the source blocks.
This is an implementation nightmare.
Not when you consider that the world can change dynamically and not notify the "head block".From a programming perspective, I thought it would be trivial to have a head block that inventoried adjacent water ONCE on placement to check the volume of water near it to a maximum size. Then the hydro can follow the water stream up and it has to have a head block next to the stream or UNDER the source block of the stream. It then gets the power multiplier from the head block.
From a programming perspective, I thought it would be trivial to have a head block that inventoried adjacent water ONCE on placement to check the volume of water near it to a maximum size. Then the hydro can follow the water stream up and it has to have a head block next to the stream or UNDER the source block of the stream. It then gets the power multiplier from the head block.
Problem is if you just check once, how does it shut off if you remove the water block? Does it just always run? Does it update when it detects a block update nearby? It's programmatically not hard to check all blocks in an area, sure, but there's a lot more to consider than that. Plus, if you wanted a realistic/usable amount of water comparable to a water turbine, it'd need to check a lot of blocks and then store info about each block, and then compare it every time the engine needs to update its data. Now imagine this with multiple engines.
This kills the server.
*cough* You can use CodeChickenCore to achieve the realism of removing infinite water. *cough*
That's why I said it only needed to check on occasion. Maybe not once, but maybe once a minute, once every ten minutes, etc. We had this discussion before and it wasn't productive, so I wasn't trying to restart it. I just don't use hydros.
I apologize, wasn't trying to start anything. I'm in the middle of writing my own mod, and I've asked myself a lot of the same questions.
That being said, I don't actually use hydros myself either. I think they're one of the less commonly used engines, it feels like.
I've used them before... too much. They were too easy a power source, but that's one nerf back. Reika has since increased the amount of lube they consume. I still think they are too easy, and so after I get past DC and Wind power, I goto fueled engines with Ethanol. Steam isn't practical on a finite water server.
Started thinking about your finite water situation. Now, I'm not entirely familiar with turbines or engines that actually exist, but could there be a block that you'd place at the bottom of the ocean that uses the pressure at that depth to generate power? Similar functions already exist with ReactorCraft's heavy water extractor, where it needs to be an ocean biome + so many blocks of water on top of it.
@Reika: Feedback regarding FPS... I've noticed that while getting 6 FPS with the reactor going and turbine, if I walk about one chunk away, suddenly I snap back to 20 FPS+. Could there be an issue with the line of sight model detail when you're close?
Also I put the turbine flywheel back on my reactor turbine. It's beautiful. In Opis the Electricraft generator was a really high CPU item (1700ms) without the flywheel, I assume because the varying voltage caused network updates. With the flywheel, I can't even locate the generator in the Opis output. Chickens take more CPU time. Beautiful code!
No, because that check is expensive.Could you apply that to the rendering logic of the turbine and other high movement parts to help with FPS?
Currently it is hardcoded against it, but I suppose I am not against it, so long as things like lava, which would destroy the engine, are excluded. The speed would remain unchanged - it falls the same distance, after all - but the torque, being a function of ρvA, would. You could get some interesting mechanics regarding lower-density fluids needing higher waterfalls and higher-density ones needing less. Conveniently, the fluid registry saves density, viscosity, and temperature.Aye, from what I recall, the sound library can cause more lag than graphics, at times.
Actually, I've got a question for ya, Reika: can hydros be made to turn with fluids other than water (except the really hot ones, for obvious reasons)? Like maybe resonant ender or oil? Not really for anything specific, I just thought it'd be funny to make a hydro go with a stream of petrol or something, lol.