refactor regions

This commit is contained in:
bridge
2025-09-10 22:55:31 +08:00
parent 6425e80ffe
commit 12fdccfee5
24 changed files with 664 additions and 438 deletions

View File

@@ -1,4 +1,5 @@
from enum import Enum
from collections import defaultdict
class EssenceType(Enum):
@@ -14,6 +15,32 @@ class EssenceType(Enum):
def __str__(self) -> str:
"""返回灵气类型的中文名称"""
return essence_names.get(self, self.value)
@classmethod
def from_str(cls, essence_str: str) -> 'EssenceType':
"""
从字符串创建EssenceType实例
Args:
essence_str: 灵气的字符串表示,如 "", "", "", "", ""
Returns:
对应的EssenceType枚举值
Raises:
ValueError: 如果字符串不匹配任何已知的灵气类型
"""
# 首先尝试匹配中文名称
for essence_type, chinese_name in essence_names.items():
if chinese_name == essence_str:
return essence_type
# 然后尝试匹配英文值
for essence_type in cls:
if essence_type.value == essence_str:
return essence_type
raise ValueError(f"Unknown essence type: {essence_str}")
essence_names = {
EssenceType.GOLD: "",
@@ -31,7 +58,9 @@ class Essence():
浓度从0~10。
"""
def __init__(self, density: dict[EssenceType, int]):
self.density = density
self.density = defaultdict(int)
for essence_type, density in density.items():
self.density[essence_type] = density
def get_density(self, essence_type: EssenceType) -> int:
return self.density[essence_type]