diff --git a/hippolyzer/lib/proxy/object_manager.py b/hippolyzer/lib/proxy/object_manager.py index cfd1a55..5096a7b 100644 --- a/hippolyzer/lib/proxy/object_manager.py +++ b/hippolyzer/lib/proxy/object_manager.py @@ -48,6 +48,7 @@ class ProxyObjectManager(ClientObjectManager): "RequestMultipleObjects", self._handle_request_multiple_objects, ) + region.http_message_handler.subscribe("RenderMaterials", self._handle_render_materials) def load_cache(self): if not self.may_use_vo_cache or self.cache_loaded: @@ -100,6 +101,13 @@ class ProxyObjectManager(ClientObjectManager): # Remove any queued cache misses that the viewer just requested for itself self.queued_cache_misses -= {b["ID"] for b in msg["ObjectData"]} + def _handle_render_materials(self, flow: HippoHTTPFlow): + if flow.response.status_code != 200: + return + if flow.request.method not in ("GET", "POST"): + return + self._process_materials_response(flow.response.content) + class ProxyWorldObjectManager(ClientWorldObjectManager): _session: Session