2013-10-29 18:52:35 -04:00
|
|
|
import pyglet
|
|
|
|
import json
|
|
|
|
import os
|
|
|
|
import sys
|
|
|
|
import uuid
|
2013-10-30 19:09:04 -04:00
|
|
|
import imp
|
2013-11-06 17:37:17 -05:00
|
|
|
import argparse
|
2013-10-30 19:09:04 -04:00
|
|
|
|
|
|
|
def load_dll(dir, module):
|
|
|
|
name = 'punyverse.' + module
|
|
|
|
path = os.path.join(dir, 'punyverse', module + '.pyd')
|
|
|
|
if not os.path.exists(path):
|
|
|
|
path = os.path.join(dir, 'punyverse.%s.pyd' % module)
|
|
|
|
if not os.path.exists(path):
|
|
|
|
raise ImportError('No module named %s' % module)
|
|
|
|
return imp.load_dynamic(name, path)
|
2013-10-29 18:52:35 -04:00
|
|
|
|
|
|
|
if __name__ == '__main__':
|
2013-10-29 23:57:49 -04:00
|
|
|
try:
|
|
|
|
dir = os.path.dirname(sys.executable)
|
|
|
|
if sys.frozen == 'windows_exe':
|
2013-10-30 19:09:04 -04:00
|
|
|
sys.stderr = open(os.path.join(dir, 'punyverse.log'), 'a')
|
2013-10-29 23:57:49 -04:00
|
|
|
except AttributeError:
|
2013-10-29 18:52:35 -04:00
|
|
|
sys.exit('This is only meant to be ran frozen.')
|
|
|
|
|
2013-10-29 23:57:49 -04:00
|
|
|
sys.path.insert(0, dir)
|
2014-01-05 20:12:47 -05:00
|
|
|
try:
|
|
|
|
import punyverse
|
|
|
|
except ImportError:
|
|
|
|
pass
|
2013-10-29 18:52:35 -04:00
|
|
|
|
2013-10-30 19:09:04 -04:00
|
|
|
# Model indirectly depends on _glgeom to handle textures
|
|
|
|
load_dll(dir, '_glgeom')
|
|
|
|
|
|
|
|
# Model path needs special handling
|
|
|
|
_model = load_dll(dir, '_model')
|
|
|
|
_model.model_base = os.path.join(dir, 'punyverse', 'assets', 'models')
|
2013-10-29 18:52:35 -04:00
|
|
|
|
2013-10-29 23:57:49 -04:00
|
|
|
with open('punyverse\__main__.py', 'r') as code:
|
2013-10-29 18:52:35 -04:00
|
|
|
exec(code)
|