SC2: Python 3.11 compatibility (#1821)

Co-authored-by: Salzkorn
This commit is contained in:
Ziktofel
2023-06-12 07:41:53 +02:00
committed by GitHub
parent f6cb90daf9
commit ce2433b247
36 changed files with 7699 additions and 13 deletions

View File

@@ -0,0 +1,36 @@
from dataclasses import dataclass
from typing import List
from .position import Point2
@dataclass
class PowerSource:
position: Point2
radius: float
unit_tag: int
def __post_init__(self):
assert self.radius > 0
@classmethod
def from_proto(cls, proto):
return PowerSource(Point2.from_proto(proto.pos), proto.radius, proto.tag)
def covers(self, position: Point2) -> bool:
return self.position.distance_to(position) <= self.radius
def __repr__(self):
return f"PowerSource({self.position}, {self.radius})"
@dataclass
class PsionicMatrix:
sources: List[PowerSource]
@classmethod
def from_proto(cls, proto):
return PsionicMatrix([PowerSource.from_proto(p) for p in proto])
def covers(self, position: Point2) -> bool:
return any(source.covers(position) for source in self.sources)