From 46cf9c0507b3c93c4ea85ea0374ae81803051999 Mon Sep 17 00:00:00 2001 From: rdb Date: Sat, 14 Dec 2024 14:47:28 +0100 Subject: [PATCH] showbase: Fix Loader when destroying and recreating ShowBase --- direct/src/showbase/Loader.py | 6 ++++-- direct/src/showbase/ShowBase.py | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/direct/src/showbase/Loader.py b/direct/src/showbase/Loader.py index 0a1e60f01e..7febb9012d 100644 --- a/direct/src/showbase/Loader.py +++ b/direct/src/showbase/Loader.py @@ -134,13 +134,15 @@ class Loader(DirectObject): self.hook = "async_loader_%s" % (Loader.loaderIndex) Loader.loaderIndex += 1 - self.accept(self.hook, self.__gotAsyncObject) def destroy(self): self.ignore(self.hook) self.loader.stopThreads() del self.base - del self.loader + + def _init_base(self, base): + self.base = base + self.accept(self.hook, self.__gotAsyncObject) @classmethod def _loadPythonFileTypes(cls): diff --git a/direct/src/showbase/ShowBase.py b/direct/src/showbase/ShowBase.py index f35d7dea2a..40ebc8b8b9 100644 --- a/direct/src/showbase/ShowBase.py +++ b/direct/src/showbase/ShowBase.py @@ -437,7 +437,7 @@ class ShowBase(DirectObject.DirectObject): #: `.Loader.Loader` object. self.loader = ShowBaseGlobal.loader - self.loader.base = self + self.loader._init_base(self) self.graphicsEngine.setDefaultLoader(self.loader.loader) #: The global event manager, as imported from `.EventManagerGlobal`.