diff --git a/libs/global_objects.py b/libs/global_objects.py new file mode 100644 index 0000000..f25140b --- /dev/null +++ b/libs/global_objects.py @@ -0,0 +1,45 @@ +from typing import Optional +import pyray as ray + +from libs.utils import OutlinedText, global_data + + +class Nameplate: + def __init__(self, name: str, title: str, player_num: int, dan: int, is_gold: bool): + self.name = OutlinedText(name, 22, ray.WHITE, ray.BLACK, outline_thickness=3.0) + self.title = OutlinedText(title, 20, ray.BLACK, ray.WHITE, outline_thickness=0) + self.dan_index = dan + self.player_num = player_num + self.is_gold = is_gold + def update(self, current_time_ms: float): + pass + + def unload(self): + self.name.unload() + self.title.unload() + def draw(self, x: int, y: int, fade: float = 1.0): + tex = global_data.tex + tex.draw_texture('nameplate', 'shadow', x=x, y=y, fade=min(0.5, fade)) + if self.player_num == -1: + frame = 2 + title_offset = 0 + else: + frame = self.player_num-1 + title_offset = 14 + tex.draw_texture('nameplate', 'frame_top', frame=frame, x=x, y=y, fade=fade) + tex.draw_texture('nameplate', 'outline', x=x, y=y, fade=fade) + offset = 0 + if self.dan_index != -1: + tex.draw_texture('nameplate', 'dan_emblem_bg', x=x, y=y, fade=fade) + if self.is_gold: + tex.draw_texture('nameplate', 'dan_emblem_gold', x=x, y=y, frame=self.dan_index, fade=fade) + else: + tex.draw_texture('nameplate', 'dan_emblem', x=x, y=y, frame=self.dan_index, fade=fade) + offset = 34 + if self.player_num != -1: + tex.draw_texture('nameplate', f'{self.player_num}p', x=x, y=y, fade=fade) + + dest = ray.Rectangle(x+136 - (self.name.texture.width//2) + offset, y+24, self.name.texture.width, self.name.texture.height) + self.name.draw(self.name.default_src, dest, ray.Vector2(0, 0), 0, ray.fade(ray.WHITE, fade)) + dest = ray.Rectangle(x+136 - (self.title.texture.width//2) + title_offset, y-3, self.title.texture.width, self.title.texture.height) + self.title.draw(self.title.default_src, dest, ray.Vector2(0, 0), 0, ray.fade(ray.WHITE, fade))