# -*- coding: utf-8 -*- """ Python class for DF_Hack::Position """ from ._pydfhack import _PositionManager from .blocks import Point, Block from .mixins import NoStart from .decorators import suspend class Position(NoStart, _PositionManager): api = None cls = _PositionManager def __init__(self, api, *args, **kwds): self.cls.__init__(self, args, kwds) self.api = api @suspend def get_cursor(self): coords = self.cursor_coords if coords: return Point(*coords) else: return None @suspend def get_window_size(self): wsize = self.window_size return wsize @suspend def get_view_coords(self): coords = self.view_coords return Point(*coords) @suspend def get_cursor_tile(self): point = self.get_cursor() if point: tile = self.api.maps.get_tile(point=point) return tile else: return None