Question: I have energy producers, energy storage, and energy consumers connected together by links as in the picture. I can have a vast number of these but this is enough to illustrate my issue. I am trying to work out how exactly to distribute the energy. The producers will produce at set intervals and has no storage capability. The storage can take energy from the producers and store it and can also send energy to consumers or other energy storage. The user just takes energy and produces some action with it.
I have thought of two ways to approach it.
Method 1 - If the element is a user OR storage, then it will look at each other element it is connected to. If that other element is a producer or storage then it will attempt to take energy from it If it is a producer it does nothing in this method (but produce energy at a set rate and will then have it available to be taken).
Method 2 - If the element is a producer OR storage, then it will look at each other element it is connected to. If that other element is a user or storage then it will attempt to give it energy. The user does nothing but when it detect it now has energy it will do something with it.
So it is a choice between a push and a pull. The problem lies between the two storage connected to each other. In either method they take away from each other with a net transfer of 0. And I dont think I can just do a detect that if I am a storage and the other is a storage then don't transfer anything. That wouldnt work if the link between the left storage and the producer didnt exist because then further down the chain that left storage and the end user would never get energy from the right storage if I didnt allow storage to storage transfer.
Gets more complicated if say there were 3 storage connected in a triangle linkage with one of them connected to a producer.
So any ideas on how to do the energy transfer without getting it stuck in a loop?