TacticalMetaphysics / LiSE

Rules-based engine for life sims, with time travel
GNU Affero General Public License v3.0
116 stars 9 forks source link

Fast inter-branch time travel #102

Closed clayote closed 1 year ago

clayote commented 1 year ago

Instead of iterating over LiSE objects to find the delta between the origin and destination times, this makes LiSE perform that operation on keyframes, which are faster to make and to iterate over.

I also came up with a trick to do the whole thing in two numpy arrays.

Removes some proxy features that were getting in the way. Not sure how they weren't causing problems before. Likewise, deleting characters was always broken and somehow didn't show up in the tests before now, but is fixed.