ecs #58

Merged
raphael merged 70 commits from ecs into main 2023-11-03 15:29:36 +00:00
Showing only changes of commit 9dd925dd9f - Show all commits

View file

@ -3,6 +3,7 @@ Un plugin qui gère les assets du jeu.
"""
import glob
import random
import pygame
from engine import CurrentScene, GlobalPlugin, KeepAlive, Scene
from engine.ecs import World
@ -177,6 +178,7 @@ def loading_scene(target: Scene, name: str, clear_cache: bool = True):
def __init__(self):
self.files = glob.glob(f"assets/{name}/**/*", recursive=True)
random.shuffle(self.files)
self.total = len(self.files)
@staticmethod
@ -188,7 +190,12 @@ def loading_scene(target: Scene, name: str, clear_cache: bool = True):
assets = world[Assets]
if clear_cache:
assets.clear_cache()
asset_iterator = AssetIterator()
world.set(AssetIterator())
if asset_iterator.total <= 30:
for _ in range(asset_iterator.total):
asset_iterator.load_next(world)
else:
world.new_entity().set(
render.Sprite(assets.unloaded_texture, order=1000000000)
)
@ -240,7 +247,7 @@ def loading_scene(target: Scene, name: str, clear_cache: bool = True):
progress = file_loaded / asset_iterator.total
# Affichage de la barre de progression
progress_bar = world.query(ProgessBar).pop()
for progress_bar in world.query(ProgessBar):
progress_bar[render.Sprite].area = (0, 0, progress, 1.0)
return Scene(