mirror of
https://github.com/quantum5/punyverse.git
synced 2025-04-24 13:11:57 -04:00
Updated the launcher and its utilities.
This commit is contained in:
parent
2746338e22
commit
b1eebd1769
|
@ -3,19 +3,33 @@ import json
|
|||
import os
|
||||
import sys
|
||||
import uuid
|
||||
import imp
|
||||
|
||||
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)
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
||||
dir = os.path.dirname(sys.executable)
|
||||
if sys.frozen == 'windows_exe':
|
||||
sys.stdout = open(os.path.join(dir, 'punyverse.log'), 'a')
|
||||
sys.stderr = open(os.path.join(dir, 'punyverse.log'), 'a')
|
||||
except AttributeError:
|
||||
sys.exit('This is only meant to be ran frozen.')
|
||||
|
||||
sys.path.insert(0, dir)
|
||||
|
||||
import punyverse._model
|
||||
import punyverse._glgeom
|
||||
# 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')
|
||||
|
||||
with open('punyverse\__main__.py', 'r') as code:
|
||||
exec(code)
|
||||
|
|
17
launcher.py
17
launcher.py
|
@ -5,29 +5,15 @@ import sys
|
|||
import os
|
||||
import shutil
|
||||
|
||||
if len(sys.argv) < 2:
|
||||
sys.argv.append('py2exe')
|
||||
|
||||
data = []
|
||||
|
||||
parent = os.path.dirname(__file__)
|
||||
join = os.path.join
|
||||
|
||||
resources = [(r'punyverse\assets\textures', ['*.*']),
|
||||
(r'punyverse\assets\textures\moons', ['*.*']),
|
||||
(r'punyverse\assets\models\asteroids', ['*.obj', '*.mtl']),
|
||||
(r'punyverse\assets\models\satellites', ['*.jpg', '*.obj', '*.mtl']),
|
||||
(r'punyverse', ['*.py', '*.json', '*.pyx', '*.pxi', '*.pyd'])]
|
||||
|
||||
for res in resources:
|
||||
dir, patterns = res
|
||||
for pattern in patterns:
|
||||
for file in glob(join(dir, pattern)):
|
||||
data.append((dir, [join(parent, file)]))
|
||||
|
||||
setup(
|
||||
console=[{'dest_base': 'punyverse_debug', 'script': 'bootloader.py'}, 'small_images.py'],
|
||||
windows=[{'dest_base': 'punyverse', 'script': 'bootloader.py'}],
|
||||
data_files=data,
|
||||
options={'py2exe': {
|
||||
'unbuffered': True, 'optimize': 2,
|
||||
'excludes': [
|
||||
|
@ -36,6 +22,7 @@ setup(
|
|||
'pyglet.media.drivers.alsa',
|
||||
'win32wnet', 'netbios', 'pgmagick'
|
||||
],
|
||||
'includes': ['punyverse._model', 'punyverse._glgeom'],
|
||||
'dll_excludes': ['MPR.dll', 'w9xpopen.exe'],
|
||||
}
|
||||
}
|
||||
|
|
|
@ -48,6 +48,9 @@ except ImportError:
|
|||
return image.size
|
||||
|
||||
def scale(image, width, height):
|
||||
original_width, original_height = image.size
|
||||
if width * 3 < original_width and height * 3 < original_height:
|
||||
image = image.resize((width * 2, height * 2))
|
||||
return image.resize((width, height), Image.ANTIALIAS)
|
||||
|
||||
def save(image, file):
|
||||
|
|
Loading…
Reference in a new issue