Skip to content

Commit c825d95

Browse files
committed
feat: add new project script
1 parent 4286570 commit c825d95

6 files changed

Lines changed: 113 additions & 14 deletions

File tree

pilotlight/__main__.py

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import os
2+
import sys
3+
import shutil
4+
import glob
5+
6+
if len(sys.argv) <= 1:
7+
print("Pilot Light - New Project Script");
8+
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
9+
print("Usage: python -m pilotlight <command> [options]");
10+
exit()
11+
12+
target_directory = ""
13+
file_directory = os.path.dirname(os.path.abspath(__file__))
14+
15+
newProject = True
16+
option_2d = True
17+
option_3d = False
18+
operation = ""
19+
20+
operation = sys.argv[1]
21+
22+
if operation == "new":
23+
for i in range(2, len(sys.argv)):
24+
if sys.argv[i] == "--list-options":
25+
print("Usage: python -m pilotlight new <name> [options]");
26+
print("\nOptions:")
27+
print(" -2d Generate 2D Project template")
28+
print(" -3d Generate 3D Project template")
29+
exit()
30+
elif sys.argv[i] == "-2d":
31+
option_2d = True
32+
elif sys.argv[i] == "-3d":
33+
option_3d = True
34+
else:
35+
target_directory = sys.argv[i]
36+
37+
if target_directory == "":
38+
print("Usage: python -m pilotlight new <name> [options]");
39+
print("\nOptions:")
40+
print(" -2d Generate 2D Project template")
41+
print(" -3d Generate 3D Project template")
42+
exit()
43+
if os.path.isdir(target_directory):
44+
print("Project already exists")
45+
exit()
46+
47+
print("Generating New Project")
48+
49+
os.mkdir(target_directory)
50+
os.mkdir(target_directory + "/src")
51+
os.mkdir(target_directory + "/scripts")
52+
os.mkdir(target_directory + "/docs")
53+
os.mkdir(target_directory + "/tests")
54+
os.mkdir(target_directory + "/shader-temp")
55+
56+
shutil.copytree(file_directory + "/assets", target_directory + "/assets")
57+
shutil.copytree(file_directory + "/shaders", target_directory + "/shaders")
58+
shutil.copy(file_directory + "/data/template.gitignore", target_directory + "/.gitignore")
59+
shutil.copy(file_directory + "/data/README.md", target_directory + "/README.md")
60+
61+
if option_2d:
62+
shutil.copy(file_directory + "/data/template_2d_app.py", target_directory + "/src/app.py")
63+
elif option_3d:
64+
shutil.copy(file_directory + "/data/template_3d_app.py", target_directory + "/src/app.py")

pilotlight/data/README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
2+
<h1 align="center">
3+
Untitled Pilot Light Project
4+
</h1>
5+
6+
<p align="center">Untitled project</p>
7+
8+
9+
## Information
10+
TBD
11+
12+
## Developer Notes
13+
TBD
14+
15+
## Folder Structure
16+
* <ins>docs</ins> - Contains documentation for the project.
17+
* <ins>scripts</ins> - Contains helper scripts for various things.
18+
* <ins>shaders</ins> - Contains shader code.
19+
* <ins>src</ins> - Contains source code for this project.
20+
* <ins>tests</ins> - Contains tests.
21+
22+
## License
23+
TBD

pilotlight/data/template.gitignore

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
2+
# directories
3+
.vs/
4+
.idea/
5+
out/
6+
shader-temp/
7+
cache/
8+
9+
# python
10+
scripts/__pycache__/
11+
src/__pycache__/
12+
13+
# misc
14+
.DS_Store

pilotlight/data/template_2d_app.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,11 @@ def __init__(self):
2727
def pl_app_load(self): # called on load
2828

2929
# mount directories used by the shader extension
30-
package_dir = os.path.dirname(os.path.abspath(pl.__file__))
31-
32-
plVfsI.mount_directory("/shaders", package_dir + "/shaders")
33-
plVfsI.mount_directory("/cache", str(Path.cwd()) + "/cache")
34-
plVfsI.mount_directory("/shader-temp", str(Path.cwd()) + "/shader-temp")
35-
plVfsI.mount_directory("/assets", str(Path.cwd()) + "/assets")
30+
file_directory = os.path.dirname(os.path.abspath(__file__))
31+
plVfsI.mount_directory("/shaders", file_directory + "/../shaders")
32+
plVfsI.mount_directory("/cache", file_directory + "/../cache")
33+
plVfsI.mount_directory("/shader-temp", file_directory + "/../shader-temp")
34+
plVfsI.mount_directory("/assets", file_directory + "/../assets")
3635

3736
# create & show the OS window
3837
window_desc = plWindowDesc()
@@ -67,7 +66,7 @@ def pl_app_load(self): # called on load
6766
tFontConfig.uHOverSampling = 1
6867
tFontConfig.uVOverSampling = 1
6968
tFontConfig.ptRanges = [tFontRange]
70-
self.ptFont = plDrawI.add_font_from_file_ttf(self.ptFontAtlas, tFontConfig, "/assets/fonts/Cousine-Regular.ttf");
69+
self.ptFont = plDrawI.add_font_from_file_ttf(self.ptFontAtlas, tFontConfig, "/assets/core/fonts/Cousine-Regular.ttf");
7170

7271
self.drawlist = plDrawI.request_2d_drawlist()
7372
self.ptFGLayer = plDrawI.request_2d_layer(self.drawlist)

pilotlight/data/template_3d_app.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,11 @@ def __init__(self):
2929
def pl_app_load(self): # called on load
3030

3131
# mount directories used by the shader extension
32-
package_dir = os.path.dirname(os.path.abspath(pl.__file__))
33-
34-
plVfsI.mount_directory("/shaders", package_dir + "/shaders")
35-
plVfsI.mount_directory("/cache", str(Path.cwd()) + "/cache")
36-
plVfsI.mount_directory("/shader-temp", str(Path.cwd()) + "/shader-temp")
37-
plVfsI.mount_directory("/assets", str(Path.cwd()) + "/assets")
32+
file_directory = os.path.dirname(os.path.abspath(__file__))
33+
plVfsI.mount_directory("/shaders", file_directory + "/../shaders")
34+
plVfsI.mount_directory("/cache", file_directory + "/../cache")
35+
plVfsI.mount_directory("/shader-temp", file_directory + "/../shader-temp")
36+
plVfsI.mount_directory("/assets", file_directory + "/../assets")
3837

3938
# Create window.
4039
window_desc = plWindowDesc()

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def setup_package():
3333

3434
metadata = dict(
3535
name='pilotlight', # Required
36-
version="0.1.20", # Required
36+
version="0.1.22", # Required
3737
author="Jonathan Hoffstadt", # Optional
3838
author_email="jonathanhoffstadt@yahoo.com", # Optional
3939
description='Pilot Light', # Required

0 commit comments

Comments
 (0)