aether-engine 1.0.4__tar.gz → 1.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- aether_engine-1.1.0/PKG-INFO +155 -0
- aether_engine-1.1.0/README.md +107 -0
- aether_engine-1.1.0/aether/__init__.py +49 -0
- aether_engine-1.1.0/aether/core/__init__.py +17 -0
- aether_engine-1.1.0/aether/core/engine.py +462 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/input.py +84 -58
- aether_engine-1.1.0/aether/editor/__init__.py +5 -0
- aether_engine-1.1.0/aether/editor/__main__.py +6 -0
- aether_engine-1.1.0/aether/editor/model_editor.py +253 -0
- aether_engine-1.1.0/aether/graphics/camera.py +91 -0
- aether_engine-1.1.0/aether/graphics/first_person.py +105 -0
- aether_engine-1.1.0/aether/graphics/material.py +42 -0
- aether_engine-1.1.0/aether/graphics/mesh.py +103 -0
- aether_engine-1.1.0/aether/graphics/mesh_factory.py +175 -0
- aether_engine-1.1.0/aether/graphics/renderer.py +77 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/shader_library.py +79 -59
- aether_engine-1.1.0/aether/graphics2d/__init__.py +167 -0
- aether_engine-1.1.0/aether/physics/__init__.py +19 -0
- aether_engine-1.1.0/aether/physics/physics2d.py +233 -0
- aether_engine-1.1.0/aether/physics/physics3d.py +216 -0
- aether_engine-1.1.0/aether/resources/loaders/model_loader.py +185 -0
- aether_engine-1.1.0/aether/resources/loaders/obj_loader.py +57 -0
- aether_engine-1.1.0/aether/scene/component.py +221 -0
- aether_engine-1.1.0/aether_engine.egg-info/PKG-INFO +155 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether_engine.egg-info/SOURCES.txt +12 -1
- aether_engine-1.1.0/aether_engine.egg-info/entry_points.txt +2 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether_engine.egg-info/requires.txt +6 -3
- aether_engine-1.1.0/examples/01_hello_cube.py +59 -0
- aether_engine-1.1.0/examples/02_sphere_scene.py +62 -0
- aether_engine-1.1.0/examples/03_first_person.py +99 -0
- aether_engine-1.1.0/examples/04_physics2d.py +67 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/setup.py +41 -28
- aether_engine-1.0.4/PKG-INFO +0 -149
- aether_engine-1.0.4/README.md +0 -108
- aether_engine-1.0.4/aether/__init__.py +0 -1
- aether_engine-1.0.4/aether/core/__init__.py +0 -211
- aether_engine-1.0.4/aether/core/engine.py +0 -211
- aether_engine-1.0.4/aether/graphics/camera.py +0 -69
- aether_engine-1.0.4/aether/graphics/material.py +0 -25
- aether_engine-1.0.4/aether/graphics/mesh.py +0 -83
- aether_engine-1.0.4/aether/graphics/mesh_factory.py +0 -67
- aether_engine-1.0.4/aether/graphics/renderer.py +0 -135
- aether_engine-1.0.4/aether/resources/loaders/obj_loader.py +0 -104
- aether_engine-1.0.4/aether/scene/component.py +0 -368
- aether_engine-1.0.4/aether/utils/__init__.py +0 -0
- aether_engine-1.0.4/aether_engine.egg-info/PKG-INFO +0 -149
- aether_engine-1.0.4/examples/01_hello_cube.py +0 -28
- aether_engine-1.0.4/examples/02_sphere_scene.py +0 -42
- {aether_engine-1.0.4 → aether_engine-1.1.0}/LICENSE +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/MANIFEST.in +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/ai/behavior_tree.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/ai/navmesh.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/animation/skeleton.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/assets/asset_pipeline.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/audio/__init__.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/audio/audio_manager.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/audio/music.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/audio/sound.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/achievement_system.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/application.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/config.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/console.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/event_bus.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/plugin_system.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/save_system.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/time_manager.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/core/window.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/editor/gizmo.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/editor/imgui_integration.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/environment/environment_system.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/__init__.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/framebuffer.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/light.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/lod_system.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/particle_system.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/post_process.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/shader.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/sky_atmosphere.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/terrain.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/texture.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/graphics/water.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/network/network_manager.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/physics/bullet_backend.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/physics/collider.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/physics/physics_world.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/physics/raycast.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/physics/rigidbody.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/platform/steam_api.py +0 -0
- {aether_engine-1.0.4/aether/physics → aether_engine-1.1.0/aether/resources}/__init__.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/resources/asset_database.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/resources/loaders/texture_loader.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/resources/resource_manager.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/resources/serialization.py +0 -0
- {aether_engine-1.0.4/aether/resources → aether_engine-1.1.0/aether/scene}/__init__.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/scene/entity.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/scene/scene.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/scene/scene_graph.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/scene/scene_manager.py +0 -0
- {aether_engine-1.0.4/aether/scene → aether_engine-1.1.0/aether/ui}/__init__.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/ui/button.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/ui/canvas.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/ui/text.py +0 -0
- {aether_engine-1.0.4/aether/ui → aether_engine-1.1.0/aether/utils}/__init__.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/utils/logger.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/utils/math_utils.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/utils/object_pool.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether/utils/profiler.py +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether_engine.egg-info/dependency_links.txt +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/aether_engine.egg-info/top_level.txt +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/pyproject.toml +0 -0
- {aether_engine-1.0.4 → aether_engine-1.1.0}/setup.cfg +0 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: aether-engine
|
|
3
|
+
Version: 1.1.0
|
|
4
|
+
Summary: 3D/2D игровой движок на Python с OpenGL, физикой, FPS и редактором моделей
|
|
5
|
+
Home-page: https://pypi.org/project/aether-engine/
|
|
6
|
+
Author: entiti937
|
|
7
|
+
Classifier: Development Status :: 4 - Beta
|
|
8
|
+
Classifier: Intended Audience :: Developers
|
|
9
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
16
|
+
Classifier: Topic :: Games/Entertainment
|
|
17
|
+
Classifier: Topic :: Multimedia :: Graphics :: 3D Rendering
|
|
18
|
+
Requires-Python: >=3.10
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
License-File: LICENSE
|
|
21
|
+
Requires-Dist: numpy>=1.24
|
|
22
|
+
Requires-Dist: glfw>=2.6
|
|
23
|
+
Requires-Dist: PyOpenGL>=3.1.7
|
|
24
|
+
Requires-Dist: Pillow>=10.0
|
|
25
|
+
Provides-Extra: audio
|
|
26
|
+
Requires-Dist: pygame-ce>=2.5; extra == "audio"
|
|
27
|
+
Provides-Extra: physics
|
|
28
|
+
Requires-Dist: pymunk>=6.0; extra == "physics"
|
|
29
|
+
Provides-Extra: models
|
|
30
|
+
Requires-Dist: trimesh>=3.21; extra == "models"
|
|
31
|
+
Provides-Extra: full
|
|
32
|
+
Requires-Dist: pygame-ce>=2.5; extra == "full"
|
|
33
|
+
Requires-Dist: freetype-py>=2.4; extra == "full"
|
|
34
|
+
Requires-Dist: pyyaml>=6.0; extra == "full"
|
|
35
|
+
Requires-Dist: imageio>=2.31; extra == "full"
|
|
36
|
+
Requires-Dist: trimesh>=3.21; extra == "full"
|
|
37
|
+
Requires-Dist: pymunk>=6.0; extra == "full"
|
|
38
|
+
Dynamic: author
|
|
39
|
+
Dynamic: classifier
|
|
40
|
+
Dynamic: description
|
|
41
|
+
Dynamic: description-content-type
|
|
42
|
+
Dynamic: home-page
|
|
43
|
+
Dynamic: license-file
|
|
44
|
+
Dynamic: provides-extra
|
|
45
|
+
Dynamic: requires-dist
|
|
46
|
+
Dynamic: requires-python
|
|
47
|
+
Dynamic: summary
|
|
48
|
+
|
|
49
|
+
AETHER ENGINE
|
|
50
|
+
=============
|
|
51
|
+
|
|
52
|
+
3D / 2D игровой движок на Python + OpenGL.
|
|
53
|
+
Версия: 1.1.0 | MIT | Автор: entiti937
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
УСТАНОВКА
|
|
57
|
+
---------
|
|
58
|
+
|
|
59
|
+
pip install aether-engine
|
|
60
|
+
|
|
61
|
+
С физикой и моделями:
|
|
62
|
+
|
|
63
|
+
pip install aether-engine[full]
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
ЧТО НОВОГО В 1.1.0
|
|
67
|
+
------------------
|
|
68
|
+
|
|
69
|
+
- Загрузка моделей почти любых форматов (OBJ/STL/PLY/GLB/glTF/FBX/…) через ModelLoader
|
|
70
|
+
- Встроенный 3D редактор моделей (воксели → OBJ): `python -m aether.editor`
|
|
71
|
+
- Режим от первого лица: `engine.enable_first_person(camera)`
|
|
72
|
+
- 2D рендер (спрайты) + 2D физика (pymunk)
|
|
73
|
+
- Улучшенная 3D физика (rigidbody, AABB/sphere, raycast, земля)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
ИГРА
|
|
77
|
+
----
|
|
78
|
+
|
|
79
|
+
python games/orb_rush.py
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
РЕДАКТОР МОДЕЛЕЙ
|
|
83
|
+
----------------
|
|
84
|
+
|
|
85
|
+
python -m aether.editor
|
|
86
|
+
|
|
87
|
+
Или из кода:
|
|
88
|
+
|
|
89
|
+
from aether import Engine
|
|
90
|
+
Engine.open_model_editor()
|
|
91
|
+
|
|
92
|
+
Управление редактором:
|
|
93
|
+
Стрелки / PgUp/PgDn — курсор
|
|
94
|
+
E / ЛКМ — поставить блок
|
|
95
|
+
Q / ПКМ — удалить
|
|
96
|
+
1-8 — цвет
|
|
97
|
+
S / L — save/load JSON
|
|
98
|
+
O — экспорт OBJ
|
|
99
|
+
Tab — обзор мышью
|
|
100
|
+
ESC — выход
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
ПРИМЕРЫ
|
|
104
|
+
-------
|
|
105
|
+
|
|
106
|
+
python examples/01_hello_cube.py
|
|
107
|
+
python examples/02_sphere_scene.py
|
|
108
|
+
python examples/03_first_person.py
|
|
109
|
+
python examples/04_physics2d.py
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
БЫСТРЫЙ СТАРТ 3D + FPS
|
|
113
|
+
----------------------
|
|
114
|
+
|
|
115
|
+
from aether import Engine, Scene, Entity, MeshFactory, Material, Camera, ModelLoader
|
|
116
|
+
from aether.scene.component import Transform, MeshRenderer
|
|
117
|
+
|
|
118
|
+
engine = Engine(1280, 720, "My Game")
|
|
119
|
+
scene = Scene("Main")
|
|
120
|
+
camera = Camera(position=(0, 1.7, 5), yaw=-90)
|
|
121
|
+
scene.set_main_camera(camera)
|
|
122
|
+
|
|
123
|
+
floor = Entity("Floor")
|
|
124
|
+
floor.add_component(Transform())
|
|
125
|
+
mat = Material(); mat.albedo[:] = (0.4, 0.45, 0.5)
|
|
126
|
+
floor.add_component(MeshRenderer(mesh=MeshFactory.create_plane(20), material=mat))
|
|
127
|
+
scene.spawn(floor)
|
|
128
|
+
|
|
129
|
+
# Любая модель:
|
|
130
|
+
# mesh = ModelLoader.load("hero.glb")
|
|
131
|
+
|
|
132
|
+
engine.load_scene(scene)
|
|
133
|
+
engine.enable_first_person(camera)
|
|
134
|
+
engine.run()
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
БЫСТРЫЙ СТАРТ 2D
|
|
138
|
+
----------------
|
|
139
|
+
|
|
140
|
+
from aether import Engine, Sprite
|
|
141
|
+
|
|
142
|
+
engine = Engine(800, 600, "2D")
|
|
143
|
+
engine.set_mode("2d")
|
|
144
|
+
engine.renderer2d.add_sprite(Sprite(x=0, y=0, width=40, height=40, color=(1,0.3,0.2,1)))
|
|
145
|
+
engine.physics2d.create_box(0, -100, 400, 20, static=True)
|
|
146
|
+
engine.run()
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
ЗАВИСИМОСТИ
|
|
150
|
+
-----------
|
|
151
|
+
|
|
152
|
+
Обязательные: numpy, glfw, PyOpenGL, Pillow
|
|
153
|
+
Модели: trimesh
|
|
154
|
+
2D физика: pymunk
|
|
155
|
+
Аудио: pygame-ce
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
AETHER ENGINE
|
|
2
|
+
=============
|
|
3
|
+
|
|
4
|
+
3D / 2D игровой движок на Python + OpenGL.
|
|
5
|
+
Версия: 1.1.0 | MIT | Автор: entiti937
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
УСТАНОВКА
|
|
9
|
+
---------
|
|
10
|
+
|
|
11
|
+
pip install aether-engine
|
|
12
|
+
|
|
13
|
+
С физикой и моделями:
|
|
14
|
+
|
|
15
|
+
pip install aether-engine[full]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
ЧТО НОВОГО В 1.1.0
|
|
19
|
+
------------------
|
|
20
|
+
|
|
21
|
+
- Загрузка моделей почти любых форматов (OBJ/STL/PLY/GLB/glTF/FBX/…) через ModelLoader
|
|
22
|
+
- Встроенный 3D редактор моделей (воксели → OBJ): `python -m aether.editor`
|
|
23
|
+
- Режим от первого лица: `engine.enable_first_person(camera)`
|
|
24
|
+
- 2D рендер (спрайты) + 2D физика (pymunk)
|
|
25
|
+
- Улучшенная 3D физика (rigidbody, AABB/sphere, raycast, земля)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
ИГРА
|
|
29
|
+
----
|
|
30
|
+
|
|
31
|
+
python games/orb_rush.py
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
РЕДАКТОР МОДЕЛЕЙ
|
|
35
|
+
----------------
|
|
36
|
+
|
|
37
|
+
python -m aether.editor
|
|
38
|
+
|
|
39
|
+
Или из кода:
|
|
40
|
+
|
|
41
|
+
from aether import Engine
|
|
42
|
+
Engine.open_model_editor()
|
|
43
|
+
|
|
44
|
+
Управление редактором:
|
|
45
|
+
Стрелки / PgUp/PgDn — курсор
|
|
46
|
+
E / ЛКМ — поставить блок
|
|
47
|
+
Q / ПКМ — удалить
|
|
48
|
+
1-8 — цвет
|
|
49
|
+
S / L — save/load JSON
|
|
50
|
+
O — экспорт OBJ
|
|
51
|
+
Tab — обзор мышью
|
|
52
|
+
ESC — выход
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
ПРИМЕРЫ
|
|
56
|
+
-------
|
|
57
|
+
|
|
58
|
+
python examples/01_hello_cube.py
|
|
59
|
+
python examples/02_sphere_scene.py
|
|
60
|
+
python examples/03_first_person.py
|
|
61
|
+
python examples/04_physics2d.py
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
БЫСТРЫЙ СТАРТ 3D + FPS
|
|
65
|
+
----------------------
|
|
66
|
+
|
|
67
|
+
from aether import Engine, Scene, Entity, MeshFactory, Material, Camera, ModelLoader
|
|
68
|
+
from aether.scene.component import Transform, MeshRenderer
|
|
69
|
+
|
|
70
|
+
engine = Engine(1280, 720, "My Game")
|
|
71
|
+
scene = Scene("Main")
|
|
72
|
+
camera = Camera(position=(0, 1.7, 5), yaw=-90)
|
|
73
|
+
scene.set_main_camera(camera)
|
|
74
|
+
|
|
75
|
+
floor = Entity("Floor")
|
|
76
|
+
floor.add_component(Transform())
|
|
77
|
+
mat = Material(); mat.albedo[:] = (0.4, 0.45, 0.5)
|
|
78
|
+
floor.add_component(MeshRenderer(mesh=MeshFactory.create_plane(20), material=mat))
|
|
79
|
+
scene.spawn(floor)
|
|
80
|
+
|
|
81
|
+
# Любая модель:
|
|
82
|
+
# mesh = ModelLoader.load("hero.glb")
|
|
83
|
+
|
|
84
|
+
engine.load_scene(scene)
|
|
85
|
+
engine.enable_first_person(camera)
|
|
86
|
+
engine.run()
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
БЫСТРЫЙ СТАРТ 2D
|
|
90
|
+
----------------
|
|
91
|
+
|
|
92
|
+
from aether import Engine, Sprite
|
|
93
|
+
|
|
94
|
+
engine = Engine(800, 600, "2D")
|
|
95
|
+
engine.set_mode("2d")
|
|
96
|
+
engine.renderer2d.add_sprite(Sprite(x=0, y=0, width=40, height=40, color=(1,0.3,0.2,1)))
|
|
97
|
+
engine.physics2d.create_box(0, -100, 400, 20, static=True)
|
|
98
|
+
engine.run()
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
ЗАВИСИМОСТИ
|
|
102
|
+
-----------
|
|
103
|
+
|
|
104
|
+
Обязательные: numpy, glfw, PyOpenGL, Pillow
|
|
105
|
+
Модели: trimesh
|
|
106
|
+
2D физика: pymunk
|
|
107
|
+
Аудио: pygame-ce
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"""Aether Engine — 3D / 2D game engine"""
|
|
2
|
+
|
|
3
|
+
from aether.core.engine import Engine
|
|
4
|
+
from aether.scene.scene import Scene
|
|
5
|
+
from aether.scene.entity import Entity
|
|
6
|
+
from aether.scene.component import (
|
|
7
|
+
Transform,
|
|
8
|
+
MeshRenderer,
|
|
9
|
+
CameraComponent,
|
|
10
|
+
LightComponent,
|
|
11
|
+
RigidbodyComponent,
|
|
12
|
+
ScriptComponent,
|
|
13
|
+
)
|
|
14
|
+
from aether.graphics.mesh_factory import MeshFactory
|
|
15
|
+
from aether.graphics.material import Material
|
|
16
|
+
from aether.graphics.camera import Camera
|
|
17
|
+
from aether.graphics.first_person import FirstPersonController
|
|
18
|
+
from aether.resources.loaders.model_loader import ModelLoader
|
|
19
|
+
from aether.physics import PhysicsWorld2D, PhysicsWorld3D, BoxCollider, SphereCollider
|
|
20
|
+
from aether.graphics2d import Renderer2D, Sprite, Camera2D
|
|
21
|
+
from aether.editor import ModelEditor
|
|
22
|
+
|
|
23
|
+
__version__ = "1.1.0"
|
|
24
|
+
|
|
25
|
+
__all__ = [
|
|
26
|
+
"Engine",
|
|
27
|
+
"Scene",
|
|
28
|
+
"Entity",
|
|
29
|
+
"Transform",
|
|
30
|
+
"MeshRenderer",
|
|
31
|
+
"CameraComponent",
|
|
32
|
+
"LightComponent",
|
|
33
|
+
"RigidbodyComponent",
|
|
34
|
+
"ScriptComponent",
|
|
35
|
+
"MeshFactory",
|
|
36
|
+
"Material",
|
|
37
|
+
"Camera",
|
|
38
|
+
"FirstPersonController",
|
|
39
|
+
"ModelLoader",
|
|
40
|
+
"PhysicsWorld2D",
|
|
41
|
+
"PhysicsWorld3D",
|
|
42
|
+
"BoxCollider",
|
|
43
|
+
"SphereCollider",
|
|
44
|
+
"Renderer2D",
|
|
45
|
+
"Sprite",
|
|
46
|
+
"Camera2D",
|
|
47
|
+
"ModelEditor",
|
|
48
|
+
"__version__",
|
|
49
|
+
]
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"""Core subsystem of Aether Engine."""
|
|
2
|
+
|
|
3
|
+
from aether.core.engine import Engine
|
|
4
|
+
from aether.core.window import Window
|
|
5
|
+
from aether.core.input import Input
|
|
6
|
+
from aether.core.time_manager import Time
|
|
7
|
+
from aether.core.event_bus import EventBus
|
|
8
|
+
from aether.core.config import EngineConfig
|
|
9
|
+
|
|
10
|
+
__all__ = [
|
|
11
|
+
"Engine",
|
|
12
|
+
"Window",
|
|
13
|
+
"Input",
|
|
14
|
+
"Time",
|
|
15
|
+
"EventBus",
|
|
16
|
+
"EngineConfig",
|
|
17
|
+
]
|