You've already forked HeurAMS-Legacy
35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
# 轻量状态查看器
|
|
|
|
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 |