From e5ec41fcf931a9024cc39ee6536e8d6095f9fff9 Mon Sep 17 00:00:00 2001 From: Nicolas F Date: Mon, 2 Mar 2020 19:59:18 +0100 Subject: [PATCH] Revert "textures: remove baffling texture generation logic" This reverts commit 9895fe875b5016d71a99d96bcf7576a0ff6e7296. The original code was correct, but confusing. Overviewer did regenerate the texture in each worker process because Python pickling is incredibly fragile fucking garbage designed by idiots who have no clue of what a good language looks like. --- overviewer_core/textures.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/overviewer_core/textures.py b/overviewer_core/textures.py index 8c701da..8867726 100644 --- a/overviewer_core/textures.py +++ b/overviewer_core/textures.py @@ -94,8 +94,13 @@ class Textures(object): ## def __getstate__(self): + # we must get rid of the huge image lists, and other images attributes = self.__dict__.copy() - # Get rid of the jar list because file objects aren't pickleable like that + for attr in ['blockmap', 'biome_grass_texture', 'watertexture', 'lavatexture', 'firetexture', 'portaltexture', 'lightcolor', 'grasscolor', 'foliagecolor', 'watercolor', 'texture_cache']: + try: + del attributes[attr] + except KeyError: + pass attributes['jars'] = OrderedDict() return attributes def __setstate__(self, attrs): @@ -103,7 +108,7 @@ class Textures(object): for attr, val in list(attrs.items()): setattr(self, attr, val) self.texture_cache = {} - if not self.generated: + if self.generated: self.generate() ##