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 os
|
||||||
import sys
|
import sys
|
||||||
import uuid
|
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__':
|
if __name__ == '__main__':
|
||||||
try:
|
try:
|
||||||
dir = os.path.dirname(sys.executable)
|
dir = os.path.dirname(sys.executable)
|
||||||
if sys.frozen == 'windows_exe':
|
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:
|
except AttributeError:
|
||||||
sys.exit('This is only meant to be ran frozen.')
|
sys.exit('This is only meant to be ran frozen.')
|
||||||
|
|
||||||
sys.path.insert(0, dir)
|
sys.path.insert(0, dir)
|
||||||
|
|
||||||
import punyverse._model
|
# Model indirectly depends on _glgeom to handle textures
|
||||||
import punyverse._glgeom
|
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:
|
with open('punyverse\__main__.py', 'r') as code:
|
||||||
exec(code)
|
exec(code)
|
||||||
|
|
19
launcher.py
19
launcher.py
|
@ -5,29 +5,15 @@ import sys
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
|
|
||||||
sys.argv.append('py2exe')
|
if len(sys.argv) < 2:
|
||||||
|
sys.argv.append('py2exe')
|
||||||
data = []
|
|
||||||
|
|
||||||
parent = os.path.dirname(__file__)
|
parent = os.path.dirname(__file__)
|
||||||
join = os.path.join
|
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(
|
setup(
|
||||||
console=[{'dest_base': 'punyverse_debug', 'script': 'bootloader.py'}, 'small_images.py'],
|
console=[{'dest_base': 'punyverse_debug', 'script': 'bootloader.py'}, 'small_images.py'],
|
||||||
windows=[{'dest_base': 'punyverse', 'script': 'bootloader.py'}],
|
windows=[{'dest_base': 'punyverse', 'script': 'bootloader.py'}],
|
||||||
data_files=data,
|
|
||||||
options={'py2exe': {
|
options={'py2exe': {
|
||||||
'unbuffered': True, 'optimize': 2,
|
'unbuffered': True, 'optimize': 2,
|
||||||
'excludes': [
|
'excludes': [
|
||||||
|
@ -36,6 +22,7 @@ setup(
|
||||||
'pyglet.media.drivers.alsa',
|
'pyglet.media.drivers.alsa',
|
||||||
'win32wnet', 'netbios', 'pgmagick'
|
'win32wnet', 'netbios', 'pgmagick'
|
||||||
],
|
],
|
||||||
|
'includes': ['punyverse._model', 'punyverse._glgeom'],
|
||||||
'dll_excludes': ['MPR.dll', 'w9xpopen.exe'],
|
'dll_excludes': ['MPR.dll', 'w9xpopen.exe'],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,6 +48,9 @@ except ImportError:
|
||||||
return image.size
|
return image.size
|
||||||
|
|
||||||
def scale(image, width, height):
|
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)
|
return image.resize((width, height), Image.ANTIALIAS)
|
||||||
|
|
||||||
def save(image, file):
|
def save(image, file):
|
||||||
|
|
Loading…
Reference in a new issue