# 轻量状态查看器 import heurams.kernel.particles as pt class Glimpse(): """轻量级只读, 用于状态指示""" def __init__(self, nucleon_union: pt.NucleonUnion): self.name = nucleon_union.name self.nuc_u = nucleon_union self.elt_u = self.nuc_u.linked_electron_union() self.lastest_date = -1 self.next_date = 0x3f3f3f3f self.avg_efactor = 0 self.total_num = 0 self.activated_num = 0 self.is_initialized = 0 if self.elt_u != 0: self.is_initialized = 1 self.total_num = len(self.elt_u.electrons) for i in self.elt_u.electrons: if i['next_date'] > 0: self.next_date = min(self.next_date, i['next_date']) self.lastest_date = max(self.lastest_date, i['last_date']) if i['is_activated']: self.avg_efactor += i['efactor'] self.activated_num += 1 if self.next_date == 0x3f3f3f3f: self.next_date = -1 self.is_initialized = 0 if self.activated_num == 0: return self.avg_efactor = round(self.avg_efactor / self.activated_num, 2) if self.next_date == 0x3f3f3f3f: self.next_date = -1 return