refactor regions
This commit is contained in:
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user