Update Scene.save_state and Scene.restore

This commit is contained in:
Grant Sanderson 2022-04-20 21:49:38 -07:00
parent cb768c26a0
commit 97400a5cf2

View file

@ -575,22 +575,18 @@ class Scene(object):
# Helpers for interactive development # Helpers for interactive development
def save_state(self) -> None: def save_state(self) -> None:
self.saved_state = { self.saved_state = [
"mobjects": self.mobjects, (mob, mob.copy())
"mobject_states": [
mob.copy()
for mob in self.mobjects for mob in self.mobjects
], ]
}
def restore(self) -> None: def restore(self) -> None:
if not hasattr(self, "saved_state"): if not hasattr(self, "saved_state"):
raise Exception("Trying to restore scene without having saved") raise Exception("Trying to restore scene without having saved")
mobjects = self.saved_state["mobjects"] self.mobjects = []
states = self.saved_state["mobject_states"] for mob, mob_state in self.saved_state:
for mob, state in zip(mobjects, states): mob.become(mob_state)
mob.become(state) self.mobjects.append(mob)
self.mobjects = mobjects
# Event handling # Event handling