Files
PyTaiko/libs/global_objects.py
2025-09-03 19:40:27 -04:00

45 lines
2.0 KiB
Python

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))