Use a proper format for main module.

This commit is contained in:
Quantum 2018-08-24 04:07:44 -04:00
parent 1b6d422447
commit 3e50d66e91
6 changed files with 71 additions and 72 deletions

View file

@ -1,55 +1,4 @@
#!/usr/bin/python from punyverse.main import main
INITIAL_WIN_HEIGHT = 540
INITIAL_WIN_WIDTH = 700
WIN_TITLE = 'Punyverse'
def main():
import argparse
parser = argparse.ArgumentParser(prog='punyverse', description='''
Python simulator of a puny universe.
''')
parser.add_argument('-d', '--high-depth', help='Use a larger depth buffer',
const=32, default=24, dest='depth', nargs='?', type=int)
parser.add_argument('-m', '--multisample', help='Use multisampled image, '
'optional samples', const=2, default=0, nargs='?',
type=int)
parser.add_argument('-v', '--no-vsync', help='Disables vsync',
action='store_false', dest='vsync')
parser.add_argument('-n', '--normal', help='Enables the use of normal maps',
action='store_true')
args = parser.parse_args()
import pyglet
pyglet.options['shadow_window'] = False
template = pyglet.gl.Config(depth_size=args.depth, double_buffer=True,
sample_buffers=args.multisample > 1,
samples=args.multisample)
platform = pyglet.window.get_platform()
display = platform.get_default_display()
screen = display.get_default_screen()
try:
config = screen.get_best_config(template)
except pyglet.window.NoSuchConfigException:
raise SystemExit('Graphics configuration not supported.')
else:
if hasattr(config, '_attribute_names'):
print('OpenGL configuration:')
for key in config._attribute_names:
print(' %-22s %s' % (key + ':', getattr(config, key)))
world_options = {
'normal': args.normal,
}
from punyverse import game
game.Applet(width=INITIAL_WIN_WIDTH, height=INITIAL_WIN_HEIGHT,
caption=WIN_TITLE, resizable=True, vsync=args.vsync,
config=config, world_options=world_options)
pyglet.app.run()
if __name__ == '__main__': if __name__ == '__main__':
main() main()

View file

@ -1,4 +1,4 @@
from punyverse.__main__ import main from punyverse.main import main
if __name__ == '__main__': if __name__ == '__main__':
main() main()

View file

@ -1,17 +1,17 @@
#!/usr/bin/python #!/usr/bin/python
from operator import attrgetter
from math import hypot
from time import clock
import time
import os import os
import time
from math import hypot
from operator import attrgetter
from time import clock
import six import six
from punyverse.camera import Camera
from punyverse.world import World
from punyverse.glgeom import *
from punyverse.entity import Asteroid
from punyverse import texture from punyverse import texture
from punyverse.camera import Camera
from punyverse.entity import Asteroid
from punyverse.glgeom import *
from punyverse.world import World
try: try:
from punyverse._model import model_list, load_model from punyverse._model import model_list, load_model
@ -47,8 +47,6 @@ class Applet(pyglet.window.Window):
asteroids = ['asteroids/01.obj', 'asteroids/02.obj', 'asteroids/03.obj'] asteroids = ['asteroids/01.obj', 'asteroids/02.obj', 'asteroids/03.obj']
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.world_options = kwargs.pop('world_options', {})
super(Applet, self).__init__(*args, **kwargs) super(Applet, self).__init__(*args, **kwargs)
texture.init() texture.init()
@ -94,7 +92,7 @@ class Applet(pyglet.window.Window):
def load(self, *args, **kwargs): def load(self, *args, **kwargs):
start = clock() start = clock()
self.fps = 0 self.fps = 0
self.world = World('world.json', self._load_callback, self.world_options) self.world = World('world.json', self._load_callback)
self._load_callback('Initializing game...', '', 0) self._load_callback('Initializing game...', '', 0)
self.speed = INITIAL_SPEED self.speed = INITIAL_SPEED
self.keys = set() self.keys = set()
@ -227,7 +225,7 @@ class Applet(pyglet.window.Window):
def screenshot(self): def screenshot(self):
image = pyglet.image.get_buffer_manager().get_color_buffer() image = pyglet.image.get_buffer_manager().get_color_buffer()
if hasattr(self, '_hwnd') and not self.modifiers & key.MOD_CTRL: if hasattr(self, '_hwnd') and not self.modifiers & key.MOD_CTRL:
from ctypes import windll, cdll from ctypes import windll
from PIL import Image from PIL import Image
import tempfile import tempfile
CF_BITMAP = 2 CF_BITMAP = 2

52
punyverse/main.py Normal file
View file

@ -0,0 +1,52 @@
import argparse
import pyglet
from punyverse import game
INITIAL_WIN_HEIGHT = 540
INITIAL_WIN_WIDTH = 700
WIN_TITLE = 'Punyverse'
def main():
parser = argparse.ArgumentParser(prog='punyverse', description='''
Python simulator of a puny universe.
''')
parser.add_argument('-d', '--high-depth', help='Use a larger depth buffer',
const=32, default=24, dest='depth', nargs='?', type=int)
parser.add_argument('-m', '--multisample', help='Use multisampled image, optional samples',
const=2, default=0, nargs='?', type=int)
parser.add_argument('-v', '--no-vsync', help='Disables vsync',
action='store_false', dest='vsync')
parser.add_argument('-n', '--normal', help='Enables the use of normal maps',
action='store_true')
args = parser.parse_args()
pyglet.options['shadow_window'] = False
template = pyglet.gl.Config(depth_size=args.depth, double_buffer=True,
sample_buffers=args.multisample > 1,
samples=args.multisample)
platform = pyglet.window.get_platform()
display = platform.get_default_display()
screen = display.get_default_screen()
try:
config = screen.get_best_config(template)
except pyglet.window.NoSuchConfigException:
raise SystemExit('Graphics configuration not supported.')
else:
if hasattr(config, '_attribute_names'):
print('OpenGL configuration:')
for key in config._attribute_names:
print(' %-22s %s' % (key + ':', getattr(config, key)))
game.Applet(width=INITIAL_WIN_WIDTH, height=INITIAL_WIN_HEIGHT,
caption=WIN_TITLE, resizable=True, vsync=args.vsync,
config=config)
pyglet.app.run()
if __name__ == '__main__':
main()

View file

@ -20,7 +20,7 @@ def load_world(file, callback=lambda message, completion: None):
class World(object): class World(object):
def __init__(self, file, callback, options=None): def __init__(self, file, callback):
self.tracker = [] self.tracker = []
self.start = (0, 0, 0) self.start = (0, 0, 0)
self.direction = (0, 0, 0) self.direction = (0, 0, 0)
@ -31,9 +31,8 @@ class World(object):
self.tick = 0 self.tick = 0
self.callback = callback self.callback = callback
self.options = options or {}
self._parse(file) self._parse(file)
del self.callback # So it can't be used after loading finishes del self.callback # So it can't be used after loading finishes
def evaluate(self, value): def evaluate(self, value):
return eval(str(value), {'__builtins__': None}, self._context) return eval(str(value), {'__builtins__': None}, self._context)

View file

@ -1,6 +1,7 @@
from __future__ import print_function from __future__ import print_function
import sys
import os import os
import sys
from setuptools import setup, Extension from setuptools import setup, Extension
@ -55,11 +56,11 @@ setup(
entry_points={ entry_points={
'console_scripts': [ 'console_scripts': [
'punyverse = punyverse.__main__:main', 'punyverse = punyverse.main:main',
'punyverse_small_images = punyverse.small_images:main', 'punyverse_small_images = punyverse.small_images:main',
], ],
'gui_scripts': [ 'gui_scripts': [
'punyversew = punyverse.__main__:main' 'punyversew = punyverse.main:main'
] ]
}, },