From e72a3bc623283ddb4869e798b8839578523302b1 Mon Sep 17 00:00:00 2001 From: Quantum Date: Tue, 27 Nov 2018 01:44:06 -0500 Subject: [PATCH] Make sky disablable, and disable by default on macOS --- punyverse/loader.py | 8 ++++---- punyverse/main.py | 7 ++++++- punyverse/world.py | 6 ++++-- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/punyverse/loader.py b/punyverse/loader.py index 3a13430..3272092 100644 --- a/punyverse/loader.py +++ b/punyverse/loader.py @@ -134,10 +134,10 @@ class LoaderWindow(pyglet.window.Window): self.flip() self.dispatch_events() - def load(self): + def load(self, **kwargs): start = time.clock() with glContext(self._main_context): - world = World('world.json', self._load_callback) + world = World('world.json', self._load_callback, **kwargs) print('Loaded in %s seconds.' % (time.clock() - start)) return world @@ -167,10 +167,10 @@ class LoaderConsole(object): def _load_callback(self, phase, message, progress): print(message, file=self._output) - def load(self): + def load(self, **kwargs): start = time.clock() with glContext(self._main_context): - world = World('world.json', self._load_callback) + world = World('world.json', self._load_callback, **kwargs) print('Loaded in %s seconds.' % (time.clock() - start), file=self._output) return world diff --git a/punyverse/main.py b/punyverse/main.py index 11f2aa4..30ec78a 100644 --- a/punyverse/main.py +++ b/punyverse/main.py @@ -14,6 +14,7 @@ def main(): parser = argparse.ArgumentParser(prog='punyverse', description=''' Python simulator of a puny universe. ''') + parser.set_defaults(sky=not macos) parser.add_argument('-D', '--debug', help='Enable pyglet OpenGL debugging', action='store_true') parser.add_argument('-d', '--high-depth', help='Use a larger depth buffer', const=32, default=24, dest='depth', nargs='?', type=int) @@ -23,6 +24,10 @@ def main(): action='store_false', dest='vsync') parser.add_argument('-n', '--normal', help='Enables the use of normal maps', action='store_true') + parser.add_argument('-s', '--sky', help='Enables the sky', dest='sky', + action='store_true') + parser.add_argument('-S', '--no-sky', help='Disables the sky', dest='sky', + action='store_false') args = parser.parse_args() versioning = dict(major_version=3, minor_version=3) @@ -70,7 +75,7 @@ def main(): loader.context.set_current() loader.set_main_context(punyverse.context) - world = loader.load() + world = loader.load(sky=args.sky) punyverse.context.set_current() punyverse.initialize(world) loader.close() diff --git a/punyverse/world.py b/punyverse/world.py index 4774661..fbbf90b 100644 --- a/punyverse/world.py +++ b/punyverse/world.py @@ -30,7 +30,7 @@ class World(object): 'belt': ('belt.vertex.glsl', 'model.fragment.glsl'), } - def __init__(self, file, callback): + def __init__(self, file, callback, sky=True): self.tracker = [] self.x = None self.y = None @@ -40,6 +40,8 @@ class World(object): self.asteroids = AsteroidManager(self) self.cam = Camera() + self._sky = sky + self._program = None self.callback = callback self.programs = self._load_programs() @@ -127,7 +129,7 @@ class World(object): 'Loading %s.' % name, i / belt_count) self.tracker.append(Belt(name, self, info)) - if 'sky' in root: + if 'sky' in root and self._sky: def callback(index, file): self.callback('Loading sky...', 'Loading %s.' % file, index / 6) self.tracker.append(Sky(self, root['sky'], callback))