From fbceef05a7428415e99ff7263363730fc70fe724 Mon Sep 17 00:00:00 2001 From: Yonokid <37304577+Yonokid@users.noreply.github.com> Date: Fri, 2 May 2025 16:25:14 -0400 Subject: [PATCH] update workflow --- .github/workflows/python-app.yml | 17 +++-- main.py | 107 ------------------------------- scenes/game.py | 6 +- 3 files changed, 17 insertions(+), 113 deletions(-) delete mode 100644 main.py diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index d9fcb8a..ce86de7 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -41,7 +41,16 @@ jobs: script-name: main.py mode: app include-module: raylib,moviepy,numpy,scipy,sounddevice - output-filename: PyTaiko + options: >- + --enable-plugin=numpy + --follow-imports + --assume-yes-for-downloads + --disable-console + --include-package=imageio_ffmpeg + --include-data-files=./**/*.dll=. + --include-data-dir=${pythonLocation}/lib/python*/site-packages/imageio_ffmpeg/binaries=imageio_ffmpeg/binaries + --prefer-source-code + --skip-module=cffi.model - name: Upload Artifacts uses: actions/upload-artifact@v4 @@ -51,6 +60,6 @@ jobs: Graphics/* Sounds/* Videos/* - build/*.exe - build/*.bin - build/*.app/**/* + *.exe + *.bin + *.app/**/* diff --git a/main.py b/main.py deleted file mode 100644 index 606d70b..0000000 --- a/main.py +++ /dev/null @@ -1,107 +0,0 @@ -import pyray as ray - -from libs.audio import audio -from libs.utils import get_config -from scenes.entry import EntryScreen -from scenes.game import GameScreen -from scenes.result import ResultScreen -from scenes.song_select import SongSelectScreen -from scenes.title import TitleScreen - - -class Screens: - TITLE = "TITLE" - ENTRY = "ENTRY" - SONG_SELECT = "SONG_SELECT" - GAME = "GAME" - RESULT = "RESULT" - -def main(): - screen_width: int = get_config()["video"]["screen_width"] - screen_height: int = get_config()["video"]["screen_height"] - render_width, render_height = ray.get_render_width(), ray.get_render_height() - dpi_scale = ray.get_window_scale_dpi() - if dpi_scale.x == 0: - dpi_scale = (ray.get_render_width(), ray.get_render_height()) - dpi_scale = screen_width, screen_height - else: - dpi_scale = int(render_width/dpi_scale.x), int(render_height/dpi_scale.y) - - if get_config()["video"]["vsync"]: - ray.set_config_flags(ray.ConfigFlags.FLAG_VSYNC_HINT) - ray.set_config_flags(ray.ConfigFlags.FLAG_MSAA_4X_HINT) - - ray.set_window_max_size(screen_width, screen_height) - ray.set_window_min_size(screen_width, screen_height) - ray.init_window(screen_width, screen_height, "PyTaiko") - if get_config()["video"]["borderless"]: - ray.toggle_borderless_windowed() - ray.clear_window_state(ray.ConfigFlags.FLAG_WINDOW_TOPMOST) - if get_config()["video"]["fullscreen"]: - ray.maximize_window() - - current_screen = Screens.TITLE - _frames_counter = 0 - - audio.init_audio_device() - - title_screen = TitleScreen(screen_width, screen_height) - entry_screen = EntryScreen(screen_width, screen_height) - song_select_screen = SongSelectScreen(screen_width, screen_height) - game_screen = GameScreen(screen_width, screen_height) - result_screen = ResultScreen(screen_width, screen_height) - - screen_mapping = { - Screens.ENTRY: entry_screen, - Screens.TITLE: title_screen, - Screens.SONG_SELECT: song_select_screen, - Screens.GAME: game_screen, - Screens.RESULT: result_screen - } - target = ray.load_render_texture(screen_width, screen_height) - ray.set_texture_filter(target.texture, ray.TextureFilter.TEXTURE_FILTER_TRILINEAR) - ray.gen_texture_mipmaps(target.texture) - #lmaooooooooooooo - #rl_set_blend_factors_separate(RL_SRC_ALPHA, RL_ONE_MINUS_SRC_ALPHA, RL_ONE, RL_ONE_MINUS_SRC_ALPHA, RL_FUNC_ADD, RL_FUNC_ADD) - ray.rl_set_blend_factors_separate(0x302, 0x303, 1, 0x303, 0x8006, 0x8006) - ray.set_exit_key(ray.KeyboardKey.KEY_A) - while not ray.window_should_close(): - - ray.begin_texture_mode(target) - ray.begin_blend_mode(ray.BlendMode.BLEND_CUSTOM_SEPARATE) - screen = screen_mapping[current_screen] - - if ray.is_key_pressed(ray.KeyboardKey.KEY_F11): - ray.toggle_fullscreen() - - next_screen = screen.update() - screen.draw() - if screen == title_screen: - ray.clear_background(ray.BLACK) - else: - ray.clear_background(ray.WHITE) - - if next_screen is not None: - current_screen = next_screen - - if get_config()["general"]["fps_counter"]: - ray.draw_fps(20, 20) - ray.end_blend_mode() - ray.end_texture_mode() - ray.begin_drawing() - ray.clear_background(ray.WHITE) - #Thanks to rnoiz proper render height - ray.draw_texture_pro( - target.texture, - ray.Rectangle(0, 0, target.texture.width, -target.texture.height), - ray.Rectangle(0, 0, dpi_scale[0], dpi_scale[1]), - ray.Vector2(0,0), - 0, - ray.WHITE - ) - ray.end_drawing() - ray.close_window() - audio.close_audio_device() - -if __name__ == "__main__": - main() diff --git a/scenes/game.py b/scenes/game.py index 40b881e..e3d443e 100644 --- a/scenes/game.py +++ b/scenes/game.py @@ -30,6 +30,7 @@ class GameScreen: self.result_transition = None self.song_info = None self.screen_init = False + self.movie = None def load_textures(self): self.textures = load_all_textures_from_zip(Path('Graphics/lumendata/enso_system/common.zip')) @@ -101,8 +102,9 @@ class GameScreen: self.tja = TJAParser(song) metadata = self.tja.get_metadata() if hasattr(self.tja, 'bg_movie'): - self.movie = VideoPlayer(str(Path(self.tja.bg_movie))) - self.movie.set_volume(0.0) + if Path(self.tja.bg_movie).exists(): + self.movie = VideoPlayer(str(Path(self.tja.bg_movie))) + self.movie.set_volume(0.0) else: self.movie = None self.tja.distance = self.width - self.judge_x