basilisk-engine 0.1.49__py3-none-any.whl → 0.1.51__py3-none-any.whl

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.

Potentially problematic release.


This version of basilisk-engine might be problematic. Click here for more details.

basilisk/__init__.py CHANGED
@@ -15,6 +15,7 @@ from .particles.particle_handler import ParticleHandler
15
15
  from .render.framebuffer import Framebuffer
16
16
  from .audio.sound import Sound
17
17
 
18
+
18
19
  # expose internal algorithms
19
20
  from .collisions.narrow.epa import get_epa_from_gjk
20
21
  from .collisions.narrow.gjk import collide_gjk
basilisk/audio/sound.py CHANGED
@@ -11,18 +11,31 @@ class Sound:
11
11
  raise ValueError(f'bsk.Sound: Invalid source path type {type(path)}. Expected string or os.PathLike')
12
12
 
13
13
  self.source = pg.mixer.Sound(path)
14
+ self.volume = 100
14
15
 
15
- def play(self, volume: float=1.0):
16
+ def play(self, fade: float=0.0):
16
17
  """
17
- Play the sound at the given volume level. Full volume if none given
18
+ Play the sound at the given volume level. Fades in over `fade` seconds
18
19
  """
19
20
 
20
- self.source.set_volume(volume)
21
- self.source.play()
21
+ self.source.play(fade_ms=int(fade * 1000))
22
22
 
23
- def stop(self):
23
+ def stop(self, fade: float=0.0):
24
24
  """
25
- Stops the sound
25
+ Stops the sound. Fades out over `fade` seconds
26
26
  """
27
27
 
28
- self.source.stop()
28
+ self.source.fadeout(int(fade * 1000))
29
+
30
+ @property
31
+ def volume(self) -> float:
32
+ return self._volume
33
+
34
+ @volume.setter
35
+ def volume(self, value: int) -> None:
36
+ """
37
+ Sets the volume of the music. Int from [0, 100]
38
+ """
39
+
40
+ self._volume = min(max(value, 0), 100)
41
+ self.source.set_volume(self._volume / 100)
basilisk/draw/draw.py CHANGED
@@ -93,7 +93,7 @@ def text(engine: Engine, text: str, position: tuple, scale: float=1.0):
93
93
  # Render the text if it has not been cached
94
94
  if text not in font_renderer.text_renders:
95
95
  surf = font_renderer.render(text).convert_alpha()
96
- text_image = Image(surf)
96
+ text_image = Image(surf, flip_y=False)
97
97
  font_renderer.text_renders[text] = (text_image, surf.get_rect())
98
98
 
99
99
  # Blit the text image
@@ -45,7 +45,7 @@ class DrawHandler():
45
45
 
46
46
  self.ctx.enable(mgl.BLEND)
47
47
  self.ctx.disable(mgl.DEPTH_TEST)
48
- self.ctx.blend_func = mgl.DEFAULT_BLENDING
48
+ # self.ctx.blend_func = mgl.DEFAULT_BLENDING
49
49
 
50
50
  # Reverse the draw order, and convert to C-like array
51
51
  # self.draw_data.reverse()
basilisk/engine.py CHANGED
@@ -145,7 +145,7 @@ class Engine():
145
145
  # Clear the screen and render the frame
146
146
  if render:
147
147
  # Render all draw calls from the past frame
148
- self.ctx.screen.use()
148
+ self.frame.output_buffer.use()
149
149
  self.draw_handler.render()
150
150
  self.frame.render(self.ctx.screen)
151
151
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: basilisk-engine
3
- Version: 0.1.49
3
+ Version: 0.1.51
4
4
  Summary: Python 3D Framework
5
5
  Home-page: https://basilisk-website.vercel.app/
6
6
  Author: Name
@@ -1,9 +1,9 @@
1
- basilisk/__init__.py,sha256=23OM1kiXMU44J2TVp66efVSrbQAeiuTDmcdhNAftFfY,1134
1
+ basilisk/__init__.py,sha256=X7Mljz41Z97Fx0P3qL445mF5-kEX-82x_i3nCAAgyFc,1135
2
2
  basilisk/config.py,sha256=Ajm3BjCryuX5bmJglqRZDR1SjE0sDjTbulta5GZ67hA,1712
3
- basilisk/engine.py,sha256=rUI4DCeCFCMPBxd-A3DSZKHXu-CVb1I3F5nJ6MhNrU4,6016
3
+ basilisk/engine.py,sha256=QwKGhnxAulGsMmIIUrY80fUnbWVe-Y2-t2d8PH2xP4c,6025
4
4
  basilisk/scene.py,sha256=S0aoVMxA3SEO0ON3MTs1GF1JVLMi_TX7KNconeCAbYc,12389
5
5
  basilisk/audio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- basilisk/audio/sound.py,sha256=h2dQ3IKb_SRKNZqNuk-fdNg_Xfz0P7sqEXA33qiBXG4,692
6
+ basilisk/audio/sound.py,sha256=feRzVzp1ssu5QcyEErK0eGezPTZrhzEbbRRZw2d9aWc,1087
7
7
  basilisk/bsk_assets/Roboto-Regular.ttf,sha256=kqYnZjMRQMpbyLulIChCLSdgYa1XF8GsUIoRi2Gcauw,168260
8
8
  basilisk/bsk_assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  basilisk/bsk_assets/basilisk.png,sha256=1xePD8qDycxlRQ7hjEmfuw900BRykhRyumJePi6hxi8,21299
@@ -26,8 +26,8 @@ basilisk/collisions/narrow/helper.py,sha256=2UV6upLEcdvmV3IUBogc_YQFHLQFrCuObBiq
26
26
  basilisk/collisions/narrow/line_intersections.py,sha256=hZCXAeAGbs9adGraa6tHUOlivGERo-WVdrNjmHFMjh4,4523
27
27
  basilisk/collisions/narrow/sutherland_hodgman.py,sha256=8FOrqxCApsQTmw4n_meSaLIzc5s_dD4tMJTHahzaZ-A,3065
28
28
  basilisk/draw/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
- basilisk/draw/draw.py,sha256=bbmx_q8GyDhWELDBTfy16e7Y-22amVyoTcf8orwveKw,3520
30
- basilisk/draw/draw_handler.py,sha256=9ueMTCPwvO8u5I9gJborCbawxebHnkfxou73ZLJidCk,6188
29
+ basilisk/draw/draw.py,sha256=qBx4RDVnAu0nDqk9bLs1nxXVz1BGl-L6QXOKg5Zw0ho,3534
30
+ basilisk/draw/draw_handler.py,sha256=C1Ma-9nxwQuom7lX2OhF4X65jB5V77MHnKOKpaHnt4g,6190
31
31
  basilisk/draw/font_renderer.py,sha256=esCaQ4rJ3kjeIZ0xr510k2JIE_K9bshO9_OkByYNo_0,1064
32
32
  basilisk/generic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
33
  basilisk/generic/abstract_bvh.py,sha256=BZv9mgkUpNu3bcqmn9I60VqMZocebeyUOoER2Wdky3g,368
@@ -41,9 +41,6 @@ basilisk/generic/quat.py,sha256=gEqvQvNwx5K7e0zqY0TFTAFtNFSkOatleoP9HQQ-xyk,5102
41
41
  basilisk/generic/quat_methods.py,sha256=SO18ush7pfeGUmncPy4i5nsab1e_zkQkY6zT1bAsSDY,234
42
42
  basilisk/generic/raycast_result.py,sha256=waVmS9fYhLoz_G_DU2Mj7896rF0Xy_59JVGALq-kD7g,783
43
43
  basilisk/generic/vec3.py,sha256=AtPSz2S1ZqAm-sZUz4phB09hgFxMIsJnQdU1wmxiOBw,5137
44
- basilisk/input/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
- basilisk/input/mouse.py,sha256=waXJLIyka4IVe3W2WH5SNNxiOQRouYo3NxafP3fg0qg,1937
46
- basilisk/input/path.py,sha256=GpFYe3Uu6VZAuKh9Q2nQM1H8immiCp_snznLG9FKcvU,441
47
44
  basilisk/input_output/IO_handler.py,sha256=DDQEjmIHzWo99rk1riT_QJKGQ5F8-lOilmchRXeQuYI,2822
48
45
  basilisk/input_output/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
46
  basilisk/input_output/clock.py,sha256=GHTagpPyPlLjWyonaHV8M-nPCcdHcHL4JobbuUOxYf0,1462
@@ -87,12 +84,10 @@ basilisk/render/post_process.py,sha256=QAIwNccycEJqA1UVGKUqwVus11sJX9qm3Mjl0gdGY
87
84
  basilisk/render/shader.py,sha256=xh2p8kPFCPD479wyf6X3NUsgGfy3sbnSypNqFd8k83c,4870
88
85
  basilisk/render/shader_handler.py,sha256=Tk-wbejg7UhXyq1c9pHjb-590zqAakNLCZu2ZbKCCAs,3260
89
86
  basilisk/render/sky.py,sha256=10kPdEpo8l7s8Iz-XP0W9_CXAHTANHZ3BRjzkdPVTnQ,4786
90
- basilisk/render/tempCodeRunnerFile.py,sha256=ep1eVZzUd30SDCNE5l3OJsqp2fW2LEXrjYGW31AMWgw,10
91
87
  basilisk/shaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
88
  basilisk/shaders/batch.frag,sha256=F_rGIQaY5jfep3WTCNY9Q3uLfu2lNuUSZZR7GZy_HCk,9514
93
89
  basilisk/shaders/batch.vert,sha256=LYzcqcwCyCpnxF5V-ilx79HU2cYz66hylBmZChcVmos,5555
94
90
  basilisk/shaders/bloom_downsample.frag,sha256=rIQTnBkSNiTF57D-yvWwQv_3_PmxznquHdlma8ua8Uw,685
95
- basilisk/shaders/bloom_frame.frag,sha256=Y0m8DnQKz3G9FKq7VjCGrVXZw2vSigyGX7-tlxZN0lE,567
96
91
  basilisk/shaders/bloom_upsample.frag,sha256=Pe1AupjM2OCMieW7oEYHoEx2LhbPtbpwcylruF5Ntm4,1156
97
92
  basilisk/shaders/crt.frag,sha256=ss6xhXwwOH9bXEhqyim--K4o1BOo1Wwq6tGAwjpRHEQ,1043
98
93
  basilisk/shaders/draw.frag,sha256=rcPmGMh850M1ypcFNlJCyFWxfZ739lVNl6OPTxPIYIE,605
@@ -109,7 +104,7 @@ basilisk/shaders/particle.frag,sha256=IskhyXelHs9GqABKwTYSwooWL0nP-nkmXl6a5iT6Q3
109
104
  basilisk/shaders/particle.vert,sha256=oiBz6S_2dzqioAhyzVYT1ZKOED4h4R6IoP-UJ8KRHhU,3227
110
105
  basilisk/shaders/sky.frag,sha256=dJRdSbg16aZYYjxdoG1spVQRIVBGNVdyX0rqp4ER6v8,556
111
106
  basilisk/shaders/sky.vert,sha256=oAnrknEgsd9MawE_zx8P0u9nUSFEBYBg5ykBmWpqZ_g,332
112
- basilisk_engine-0.1.49.dist-info/METADATA,sha256=2tI9CZylpfNdgEmAG4iRs3kagtjIUs0nxXqh99gh63g,3793
113
- basilisk_engine-0.1.49.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
114
- basilisk_engine-0.1.49.dist-info/top_level.txt,sha256=enlSYSf7CUyAly1jmUCNNGInTbaFUjGk4SKwyckZQkw,9
115
- basilisk_engine-0.1.49.dist-info/RECORD,,
107
+ basilisk_engine-0.1.51.dist-info/METADATA,sha256=8nmB23J96bjZKqPfyfocU_NHvcoPxClcVat6LT_zpPg,3793
108
+ basilisk_engine-0.1.51.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
109
+ basilisk_engine-0.1.51.dist-info/top_level.txt,sha256=enlSYSf7CUyAly1jmUCNNGInTbaFUjGk4SKwyckZQkw,9
110
+ basilisk_engine-0.1.51.dist-info/RECORD,,
File without changes
basilisk/input/mouse.py DELETED
@@ -1,62 +0,0 @@
1
- import pygame as pg
2
-
3
-
4
- class Mouse():
5
- def __init__(self, grab=True):
6
- self.x, self.y = pg.mouse.get_pos()
7
- self.buttons = pg.mouse.get_pressed()
8
- self.previous_buttons = pg.mouse.get_pressed()
9
- self.grab = grab
10
-
11
- def update(self, events):
12
- """
13
- Updates all mouse state variables.
14
- Checks for mouse-related events.
15
- """
16
-
17
- self.x, self.y = pg.mouse.get_pos()
18
- self.previous_buttons = self.buttons
19
- self.buttons = pg.mouse.get_pressed()
20
-
21
- for event in events:
22
- if event.type == pg.KEYUP:
23
- if event.key == pg.K_ESCAPE and self.grab:
24
- # Unlock mouse
25
- pg.event.set_grab(False)
26
- pg.mouse.set_visible(True)
27
- if event.type == pg.MOUSEBUTTONUP and self.grab:
28
- # Lock mouse
29
- pg.event.set_grab(True)
30
- pg.mouse.set_visible(False)
31
-
32
- def set_pos(self, x, y):
33
- """Set the mouse position"""
34
- pg.mouse.set_pos(x, y)
35
-
36
- @property
37
- def click(self): return self.buttons[0] and not self.previous_buttons[0]
38
- @property
39
- def left_click(self): return self.buttons[0] and not self.previous_buttons[0]
40
- @property
41
- def middle_click(self): return self.buttons[1] and not self.previous_buttons[1]
42
- @property
43
- def right_click(self): return self.buttons[2] and not self.previous_buttons[2]
44
- @property
45
- def left_down(self): return self.buttons[0]
46
- @property
47
- def middle_down(self): return self.buttons[1]
48
- @property
49
- def right_down(self): return self.buttons[2]
50
-
51
- @property
52
- def grab(self): return self._grab
53
-
54
- @grab.setter
55
- def grab(self, value):
56
- self._grab = value
57
- if self._grab:
58
- pg.event.set_grab(True)
59
- pg.mouse.set_visible(False)
60
- else:
61
- pg.event.set_grab(False)
62
- pg.mouse.set_visible(True)
basilisk/input/path.py DELETED
@@ -1,14 +0,0 @@
1
- import os
2
- import sys
3
-
4
-
5
- # Credit for function: https://stackoverflow.com/questions/7674790/bundling-data-files-with-pyinstaller-onefile
6
- def get_root():
7
- """ Get absolute path to resource, works for dev and for PyInstaller """
8
- try:
9
- # PyInstaller creates a temp folder and stores path in _MEIPASS
10
- base_path = sys._MEIPASS
11
- except Exception:
12
- base_path = os.path.abspath(".")
13
-
14
- return base_path + '/basilisk'
@@ -1 +0,0 @@
1
- source[0][
@@ -1,25 +0,0 @@
1
- #version 330 core
2
-
3
- out vec4 fragColor;
4
-
5
- in vec2 uv;
6
-
7
- uniform sampler2D screenTexture;
8
- uniform sampler2D bloomTexture;
9
-
10
-
11
-
12
- void main()
13
- {
14
- const float gamma = 2.2;
15
- const float exposure = 1.2;
16
- vec3 hdrColor = texture(screenTexture, uv).rgb + texture(bloomTexture, uv).rgb / 2;
17
-
18
- // exposure tone mapping
19
- vec3 mapped = vec3(1.0) - exp(-hdrColor * exposure);
20
- // gamma correction
21
- mapped = pow(mapped, vec3(1.0 / gamma));
22
-
23
- fragColor = vec4(mapped, 1.0);
24
- //fragColor = texture(screenTexture, uv) + texture(bloomTexture, uv) / 20000.0;
25
- }