So yea, I have a even better system for deciding who gets to move when. The last system was based on giving each object getting a amount of energy dependent on its speed, and then moving the maximum amount of times supported. Now I add a certain amount of energy to each object at the beginning of the loop, and then just keep looping till no object has enough energy to move, and then repeat. This approach is much simpler and faster then the last system, and it seems to work mostly. I also added support for costom actions like containers and other stuff.
The other thing I did was add containers. They work completely differently from how invetories work, so I might redo them sometime in the near future, to make nesting easier. Stacking is not yet working, and it needs stuff like capacity and weight calculations, however, I spent most of my time adding a framework for costom actions, like described above.
It's been such a long time since I have worked on this!
Any comments welcome!