Merge branch 'master' of http://github.com/doomchild/dfhack
commit
ecb83f2288
@ -1,25 +0,0 @@
|
||||
from ctypes import *
|
||||
from pydfhack import libdfhack, ViewScreen
|
||||
|
||||
libdfhack.Gui_ReadViewScreen.argtypes = [ c_void_p, c_void_p ]
|
||||
|
||||
class Gui(object):
|
||||
def __init__(self, ptr):
|
||||
self._gui_ptr = ptr
|
||||
|
||||
def start(self):
|
||||
return libdfhack.Gui_Start(self._gui_ptr)
|
||||
|
||||
def finish(self):
|
||||
return libdfhack.Gui_Finish(self._gui_ptr)
|
||||
|
||||
def read_pause_state(self):
|
||||
return libdfhack.Gui_ReadPauseState(self._pos_ptr) > 0
|
||||
|
||||
def read_view_screen(self):
|
||||
s = ViewScreen()
|
||||
|
||||
if libdfhack.Gui_ReadViewScreen(self._gui_ptr, byref(s)) > 0:
|
||||
return s
|
||||
else:
|
||||
return None
|
@ -1,141 +0,0 @@
|
||||
from ctypes import *
|
||||
from pydftypes import libdfhack
|
||||
from util import *
|
||||
|
||||
_get_arg_types = [ c_void_p, _arr_create_func ]
|
||||
|
||||
libdfhack.Materials_getInorganic.argtypes = _get_arg_types
|
||||
libdfhack.Materials_getOrganic.argtypes = _get_arg_types
|
||||
libdfhack.Materials_getTree.argtypes = _get_arg_types
|
||||
libdfhack.Materials_getPlant.argtypes = _get_arg_types
|
||||
libdfhack.Materials_getRace.argtypes = _get_arg_types
|
||||
#libdfhack.Materials_getRaceEx.argtypes = _get_arg_types
|
||||
libdfhack.Materials_getColor.argtypes = _get_arg_types
|
||||
libdfhack.Materials_getOther.argtypes = _get_arg_types
|
||||
|
||||
class Materials(object):
|
||||
def __init__(self, ptr):
|
||||
self._mat_ptr = ptr
|
||||
|
||||
self.inorganic = None
|
||||
self.organic = None
|
||||
self.tree = None
|
||||
self.plant = None
|
||||
self.race = None
|
||||
self.race_ex = None
|
||||
self.color = None
|
||||
self.other = None
|
||||
|
||||
def read_inorganic(self):
|
||||
return libdfhack.Materials_ReadInorganicMaterials(self._mat_ptr)
|
||||
|
||||
def read_organic(self):
|
||||
return libdfhack.Materials_ReadOrganicMaterials(self._mat_ptr)
|
||||
|
||||
def read_wood(self):
|
||||
return libdfhack.Materials_ReadWoodMaterials(self._mat_ptr)
|
||||
|
||||
def read_plant(self):
|
||||
return libdfhack.Materials_ReadPlantMaterials(self._mat_ptr)
|
||||
|
||||
def read_creature_types(self):
|
||||
return libdfhack.Materials_ReadCreatureTypes(self._mat_ptr)
|
||||
|
||||
def read_creature_types_ex(self):
|
||||
return libdfhack.Materials_ReadCreatureTypesEx(self._mat_ptr)
|
||||
|
||||
def read_descriptor_colors(self):
|
||||
return libdfhack.Materials_ReadDescriptorColors(self._mat_ptr)
|
||||
|
||||
def read_others(self):
|
||||
return libdfhack.Materials_ReadOthers(self._mat_ptr)
|
||||
|
||||
def read_all(self):
|
||||
libdfhack.Materials_ReadAllMaterials(self._mat_ptr)
|
||||
|
||||
def get_description(self, material):
|
||||
return libdfhack.Materials_getDescription(self._mat_ptr, byref(material))
|
||||
|
||||
def update_inorganic_cache(self):
|
||||
def update_callback(count):
|
||||
allocated = _allocate_array(Matgloss, count)
|
||||
|
||||
self.inorganic = allocated[0]
|
||||
|
||||
return allocated[1]
|
||||
|
||||
callback = _arr_create_func(update_callback)
|
||||
|
||||
return libdfhack.Materials_getInorganic(self._mat_ptr, callback)
|
||||
|
||||
def update_organic_cache(self):
|
||||
def update_callback(count):
|
||||
allocated = _allocate_array(Matgloss, count)
|
||||
|
||||
self.organic = allocated[0]
|
||||
|
||||
return allocated[1]
|
||||
|
||||
callback = _arr_create_func(update_callback)
|
||||
|
||||
return libdfhack.Materials_getOrganic(self._mat_ptr, callback)
|
||||
|
||||
def update_tree_cache(self):
|
||||
def update_callback(count):
|
||||
allocated = _allocate_array(Matgloss, count)
|
||||
|
||||
self.tree = allocated[0]
|
||||
|
||||
return allocated[1]
|
||||
|
||||
callback = _arr_create_func(update_callback)
|
||||
|
||||
return libdfhack.Materials_getTree(self._mat_ptr, callback)
|
||||
|
||||
def update_plant_cache(self):
|
||||
def update_callback(count):
|
||||
allocated = _allocate_array(Matgloss, count)
|
||||
|
||||
self.plant = allocated[0]
|
||||
|
||||
return allocated[1]
|
||||
|
||||
callback = _arr_create_func(update_callback)
|
||||
|
||||
return libdfhack.Materials_getPlant(self._mat_ptr, callback)
|
||||
|
||||
def update_race_cache(self):
|
||||
def update_callback(count):
|
||||
allocated = _allocate_array(Matgloss, count)
|
||||
|
||||
self.race = allocated[0]
|
||||
|
||||
return allocated[1]
|
||||
|
||||
callback = _arr_create_func(update_callback)
|
||||
|
||||
return libdfhack.Materials_getRace(self._mat_ptr, callback)
|
||||
|
||||
def update_color_cache(self):
|
||||
def update_callback(count):
|
||||
allocated = _allocate_array(DescriptorColor, count)
|
||||
|
||||
self.color = allocated[0]
|
||||
|
||||
return allocated[1]
|
||||
|
||||
callback = _arr_create_func(update_callback)
|
||||
|
||||
return libdfhack.Materials_getColor(self._mat_ptr, callback)
|
||||
|
||||
def update_other_cache(self):
|
||||
def update_callback(count):
|
||||
allocated = _allocate_array(MatglossOther, count)
|
||||
|
||||
self.other = allocated[0]
|
||||
|
||||
return allocated[1]
|
||||
|
||||
callback = _arr_create_func(update_callback)
|
||||
|
||||
return libdfhack.Materials_getOther(self._mat_ptr, callback)
|
@ -1,43 +0,0 @@
|
||||
from ctypes import *
|
||||
from pydftypes import libdfhack
|
||||
|
||||
class Position(object):
|
||||
def __init__(self, ptr):
|
||||
self._pos_ptr = ptr
|
||||
|
||||
self._vx, self._vy, self._vz = c_int(), c_int(), c_int()
|
||||
self._cx, self._cy, self._cz = c_int(), c_int(), c_int()
|
||||
self._ww, self._wh = c_int(), c_int()
|
||||
|
||||
def get_view_coords(self):
|
||||
if libdfhack.Position_getViewCoords(self._pos_ptr, byref(self._vx), byref(self._vy), byref(self._vz)) > 0:
|
||||
return (self._vx.value, self._vy.value, self._vz.value)
|
||||
else:
|
||||
return (-1, -1, -1)
|
||||
|
||||
def set_view_coords(self, v_coords):
|
||||
self._vx.value, self._vy.value, self._vz.value = v_coords
|
||||
|
||||
libdfhack.Position_setViewCoords(self._pos_ptr, self._vx, self._vy, self._vz)
|
||||
|
||||
view_coords = property(get_view_coords, set_view_coords)
|
||||
|
||||
def get_cursor_coords(self):
|
||||
if libdfhack.Position_getCursorCoords(self._pos_ptr, byref(self._cx), byref(self._cy), byref(self._cz)) > 0:
|
||||
return (self._cx.value, self._cy.value, self._cz.value)
|
||||
else:
|
||||
return (-1, -1, -1)
|
||||
|
||||
def set_cursor_coords(self, c_coords):
|
||||
self._cx.value, self._cy.value, self_cz.value = c_coords
|
||||
|
||||
libdfhack.Position_setCursorCoords(self._pos_ptr, self._cx, self._cy, self._cz)
|
||||
|
||||
cursor_coords = property(get_cursor_coords, set_cursor_coords)
|
||||
|
||||
@property
|
||||
def window_size(self):
|
||||
if libdfhack.Position_getWindowSize(self._pos_ptr, byref(self._ww), byref(self._wh)) > 0:
|
||||
return (self._ww.value, self._wh.value)
|
||||
else:
|
||||
return (-1, -1)
|
@ -1,25 +0,0 @@
|
||||
from ctypes import *
|
||||
from pydftypes import libdfhack, Tree
|
||||
|
||||
class Vegetation(object):
|
||||
def __init__(self, ptr):
|
||||
self._v_ptr = ptr
|
||||
|
||||
def start(self):
|
||||
n = c_uint(0)
|
||||
|
||||
if libdfhack.Vegetation_Start(self._v_ptr, byref(n)) > 0:
|
||||
return int(n.value)
|
||||
else:
|
||||
return -1
|
||||
|
||||
def finish(self):
|
||||
return libdfhack.Vegetation_Finish(self._v_ptr) > 0
|
||||
|
||||
def read(self, index):
|
||||
t = Tree()
|
||||
|
||||
if libdfhack.Vegetation_Read(self._v_ptr, c_uint(index), byref(t)) > 0:
|
||||
return t
|
||||
else:
|
||||
return None
|
@ -0,0 +1 @@
|
||||
from .pydfapi import API
|
@ -0,0 +1,25 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Python class for DF_Hack::GUI
|
||||
"""
|
||||
from ._pydfhack import _GUIManager
|
||||
class GUI(_GUIManager):
|
||||
api = None
|
||||
started = False
|
||||
def __init__(self, api, *args, **kwds):
|
||||
_GUIManager.__init__(self, args, kwds)
|
||||
self.api = api
|
||||
|
||||
def prepare(self):
|
||||
"""
|
||||
Enforce Suspend/Start
|
||||
"""
|
||||
if self.api.prepare():
|
||||
if not self.started:
|
||||
self.started = self.Start()
|
||||
return self.started
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
|
@ -0,0 +1,42 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Python class for DF_Hack::Materials
|
||||
"""
|
||||
from ._pydfhack import _MaterialsManager
|
||||
from .mixins import NoStart
|
||||
from .decorators import suspend
|
||||
|
||||
class Materials(NoStart, _MaterialsManager):
|
||||
api = None
|
||||
cls = _MaterialsManager
|
||||
def __init__(self, api, *args, **kwds):
|
||||
cls.__init__(self, args, kwds)
|
||||
self.api = api
|
||||
|
||||
@suspend
|
||||
def Read_Wood_Materials(self, *args, **kw):
|
||||
return self.cls.Read_Wood_Materials(self, *args, **kw)
|
||||
|
||||
@suspend
|
||||
def Read_Plant_Materials(self, *args, **kw):
|
||||
return self.cls.Read_Plant_Materials(self, *args, **kw)
|
||||
|
||||
@suspend
|
||||
def Read_Inorganic_Materials(self, *args, **kw):
|
||||
return self.cls.Read_Inorganic_Materials(self, *args, **kw)
|
||||
|
||||
@suspend
|
||||
def Read_Descriptor_Colors(self, *args, **kw):
|
||||
return self.cls.Read_Descriptor_Colors(self, *args, **kw)
|
||||
|
||||
@suspend
|
||||
def Read_Creature_Types(self, *args, **kw):
|
||||
return self.cls.Read_Creature_Types(self, *args, **kw)
|
||||
|
||||
@suspend
|
||||
def Read_Organic_Materials(self, *args, **kw):
|
||||
return self.cls.Read_Organic_Materials(self, *args, **kw)
|
||||
|
||||
@suspend
|
||||
def Read_Creature_Types_Ex(self, *args, **kw):
|
||||
return self.cls.Read_Creature_Types_Ex(self, *args, **kw)
|
@ -0,0 +1,42 @@
|
||||
# -*- 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
|
@ -0,0 +1,18 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Python class for DF_Hack::Vegetation
|
||||
"""
|
||||
from ._pydfhack import _VegetationManager
|
||||
from .mixins import NeedsStart
|
||||
from .decorators import suspend
|
||||
|
||||
class Vegetation(NeedsStart, _VegetationManager):
|
||||
api = None
|
||||
cls = _VegetationManager
|
||||
def __init__(self, api, *args, **kwds):
|
||||
self.cls.__init__(self, args, kwds)
|
||||
self.api = api
|
||||
|
||||
@suspend
|
||||
def Read(self, *args, **kw):
|
||||
return self.cls.Read(self, *args, **kw)
|
@ -1 +1,14 @@
|
||||
from .pydfapi import API
|
||||
import context
|
||||
|
||||
__all__ = [ "buildings",
|
||||
"constructions",
|
||||
"context",
|
||||
"creatures",
|
||||
"dftypes",
|
||||
"flags",
|
||||
"gui",
|
||||
"items",
|
||||
"maps",
|
||||
"materials",
|
||||
"position"
|
||||
"vegetation" ]
|
@ -1,25 +1,25 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Python class for DF_Hack::GUI
|
||||
"""
|
||||
from ._pydfhack import _GUIManager
|
||||
class GUI(_GUIManager):
|
||||
api = None
|
||||
started = False
|
||||
def __init__(self, api, *args, **kwds):
|
||||
_GUIManager.__init__(self, args, kwds)
|
||||
self.api = api
|
||||
from ctypes import *
|
||||
from pydfhack import libdfhack, ViewScreen
|
||||
|
||||
def prepare(self):
|
||||
"""
|
||||
Enforce Suspend/Start
|
||||
"""
|
||||
if self.api.prepare():
|
||||
if not self.started:
|
||||
self.started = self.Start()
|
||||
return self.started
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
libdfhack.Gui_ReadViewScreen.argtypes = [ c_void_p, c_void_p ]
|
||||
|
||||
class Gui(object):
|
||||
def __init__(self, ptr):
|
||||
self._gui_ptr = ptr
|
||||
|
||||
def start(self):
|
||||
return libdfhack.Gui_Start(self._gui_ptr)
|
||||
|
||||
def finish(self):
|
||||
return libdfhack.Gui_Finish(self._gui_ptr)
|
||||
|
||||
def read_pause_state(self):
|
||||
return libdfhack.Gui_ReadPauseState(self._pos_ptr) > 0
|
||||
|
||||
def read_view_screen(self):
|
||||
s = ViewScreen()
|
||||
|
||||
if libdfhack.Gui_ReadViewScreen(self._gui_ptr, byref(s)) > 0:
|
||||
return s
|
||||
else:
|
||||
return None
|
||||
|
@ -1,42 +1,141 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Python class for DF_Hack::Materials
|
||||
"""
|
||||
from ._pydfhack import _MaterialsManager
|
||||
from .mixins import NoStart
|
||||
from .decorators import suspend
|
||||
|
||||
class Materials(NoStart, _MaterialsManager):
|
||||
api = None
|
||||
cls = _MaterialsManager
|
||||
def __init__(self, api, *args, **kwds):
|
||||
cls.__init__(self, args, kwds)
|
||||
self.api = api
|
||||
|
||||
@suspend
|
||||
def Read_Wood_Materials(self, *args, **kw):
|
||||
return self.cls.Read_Wood_Materials(self, *args, **kw)
|
||||
|
||||
@suspend
|
||||
def Read_Plant_Materials(self, *args, **kw):
|
||||
return self.cls.Read_Plant_Materials(self, *args, **kw)
|
||||
|
||||
@suspend
|
||||
def Read_Inorganic_Materials(self, *args, **kw):
|
||||
return self.cls.Read_Inorganic_Materials(self, *args, **kw)
|
||||
|
||||
@suspend
|
||||
def Read_Descriptor_Colors(self, *args, **kw):
|
||||
return self.cls.Read_Descriptor_Colors(self, *args, **kw)
|
||||
|
||||
@suspend
|
||||
def Read_Creature_Types(self, *args, **kw):
|
||||
return self.cls.Read_Creature_Types(self, *args, **kw)
|
||||
|
||||
@suspend
|
||||
def Read_Organic_Materials(self, *args, **kw):
|
||||
return self.cls.Read_Organic_Materials(self, *args, **kw)
|
||||
|
||||
@suspend
|
||||
def Read_Creature_Types_Ex(self, *args, **kw):
|
||||
return self.cls.Read_Creature_Types_Ex(self, *args, **kw)
|
||||
from ctypes import *
|
||||
from pydftypes import libdfhack
|
||||
from util import *
|
||||
|
||||
_get_arg_types = [ c_void_p, _arr_create_func ]
|
||||
|
||||
libdfhack.Materials_getInorganic.argtypes = _get_arg_types
|
||||
libdfhack.Materials_getOrganic.argtypes = _get_arg_types
|
||||
libdfhack.Materials_getTree.argtypes = _get_arg_types
|
||||
libdfhack.Materials_getPlant.argtypes = _get_arg_types
|
||||
libdfhack.Materials_getRace.argtypes = _get_arg_types
|
||||
#libdfhack.Materials_getRaceEx.argtypes = _get_arg_types
|
||||
libdfhack.Materials_getColor.argtypes = _get_arg_types
|
||||
libdfhack.Materials_getOther.argtypes = _get_arg_types
|
||||
|
||||
class Materials(object):
|
||||
def __init__(self, ptr):
|
||||
self._mat_ptr = ptr
|
||||
|
||||
self.inorganic = None
|
||||
self.organic = None
|
||||
self.tree = None
|
||||
self.plant = None
|
||||
self.race = None
|
||||
self.race_ex = None
|
||||
self.color = None
|
||||
self.other = None
|
||||
|
||||
def read_inorganic(self):
|
||||
return libdfhack.Materials_ReadInorganicMaterials(self._mat_ptr)
|
||||
|
||||
def read_organic(self):
|
||||
return libdfhack.Materials_ReadOrganicMaterials(self._mat_ptr)
|
||||
|
||||
def read_wood(self):
|
||||
return libdfhack.Materials_ReadWoodMaterials(self._mat_ptr)
|
||||
|
||||
def read_plant(self):
|
||||
return libdfhack.Materials_ReadPlantMaterials(self._mat_ptr)
|
||||
|
||||
def read_creature_types(self):
|
||||
return libdfhack.Materials_ReadCreatureTypes(self._mat_ptr)
|
||||
|
||||
def read_creature_types_ex(self):
|
||||
return libdfhack.Materials_ReadCreatureTypesEx(self._mat_ptr)
|
||||
|
||||
def read_descriptor_colors(self):
|
||||
return libdfhack.Materials_ReadDescriptorColors(self._mat_ptr)
|
||||
|
||||
def read_others(self):
|
||||
return libdfhack.Materials_ReadOthers(self._mat_ptr)
|
||||
|
||||
def read_all(self):
|
||||
libdfhack.Materials_ReadAllMaterials(self._mat_ptr)
|
||||
|
||||
def get_description(self, material):
|
||||
return libdfhack.Materials_getDescription(self._mat_ptr, byref(material))
|
||||
|
||||
def update_inorganic_cache(self):
|
||||
def update_callback(count):
|
||||
allocated = _allocate_array(Matgloss, count)
|
||||
|
||||
self.inorganic = allocated[0]
|
||||
|
||||
return allocated[1]
|
||||
|
||||
callback = _arr_create_func(update_callback)
|
||||
|
||||
return libdfhack.Materials_getInorganic(self._mat_ptr, callback)
|
||||
|
||||
def update_organic_cache(self):
|
||||
def update_callback(count):
|
||||
allocated = _allocate_array(Matgloss, count)
|
||||
|
||||
self.organic = allocated[0]
|
||||
|
||||
return allocated[1]
|
||||
|
||||
callback = _arr_create_func(update_callback)
|
||||
|
||||
return libdfhack.Materials_getOrganic(self._mat_ptr, callback)
|
||||
|
||||
def update_tree_cache(self):
|
||||
def update_callback(count):
|
||||
allocated = _allocate_array(Matgloss, count)
|
||||
|
||||
self.tree = allocated[0]
|
||||
|
||||
return allocated[1]
|
||||
|
||||
callback = _arr_create_func(update_callback)
|
||||
|
||||
return libdfhack.Materials_getTree(self._mat_ptr, callback)
|
||||
|
||||
def update_plant_cache(self):
|
||||
def update_callback(count):
|
||||
allocated = _allocate_array(Matgloss, count)
|
||||
|
||||
self.plant = allocated[0]
|
||||
|
||||
return allocated[1]
|
||||
|
||||
callback = _arr_create_func(update_callback)
|
||||
|
||||
return libdfhack.Materials_getPlant(self._mat_ptr, callback)
|
||||
|
||||
def update_race_cache(self):
|
||||
def update_callback(count):
|
||||
allocated = _allocate_array(Matgloss, count)
|
||||
|
||||
self.race = allocated[0]
|
||||
|
||||
return allocated[1]
|
||||
|
||||
callback = _arr_create_func(update_callback)
|
||||
|
||||
return libdfhack.Materials_getRace(self._mat_ptr, callback)
|
||||
|
||||
def update_color_cache(self):
|
||||
def update_callback(count):
|
||||
allocated = _allocate_array(DescriptorColor, count)
|
||||
|
||||
self.color = allocated[0]
|
||||
|
||||
return allocated[1]
|
||||
|
||||
callback = _arr_create_func(update_callback)
|
||||
|
||||
return libdfhack.Materials_getColor(self._mat_ptr, callback)
|
||||
|
||||
def update_other_cache(self):
|
||||
def update_callback(count):
|
||||
allocated = _allocate_array(MatglossOther, count)
|
||||
|
||||
self.other = allocated[0]
|
||||
|
||||
return allocated[1]
|
||||
|
||||
callback = _arr_create_func(update_callback)
|
||||
|
||||
return libdfhack.Materials_getOther(self._mat_ptr, callback)
|
||||
|
@ -1,42 +1,43 @@
|
||||
# -*- 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
|
||||
from ctypes import *
|
||||
from pydftypes import libdfhack
|
||||
|
||||
class Position(object):
|
||||
def __init__(self, ptr):
|
||||
self._pos_ptr = ptr
|
||||
|
||||
@suspend
|
||||
def get_window_size(self):
|
||||
wsize = self.window_size
|
||||
return wsize
|
||||
self._vx, self._vy, self._vz = c_int(), c_int(), c_int()
|
||||
self._cx, self._cy, self._cz = c_int(), c_int(), c_int()
|
||||
self._ww, self._wh = c_int(), c_int()
|
||||
|
||||
@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
|
||||
if libdfhack.Position_getViewCoords(self._pos_ptr, byref(self._vx), byref(self._vy), byref(self._vz)) > 0:
|
||||
return (self._vx.value, self._vy.value, self._vz.value)
|
||||
else:
|
||||
return (-1, -1, -1)
|
||||
|
||||
def set_view_coords(self, v_coords):
|
||||
self._vx.value, self._vy.value, self._vz.value = v_coords
|
||||
|
||||
libdfhack.Position_setViewCoords(self._pos_ptr, self._vx, self._vy, self._vz)
|
||||
|
||||
view_coords = property(get_view_coords, set_view_coords)
|
||||
|
||||
def get_cursor_coords(self):
|
||||
if libdfhack.Position_getCursorCoords(self._pos_ptr, byref(self._cx), byref(self._cy), byref(self._cz)) > 0:
|
||||
return (self._cx.value, self._cy.value, self._cz.value)
|
||||
else:
|
||||
return (-1, -1, -1)
|
||||
|
||||
def set_cursor_coords(self, c_coords):
|
||||
self._cx.value, self._cy.value, self_cz.value = c_coords
|
||||
|
||||
libdfhack.Position_setCursorCoords(self._pos_ptr, self._cx, self._cy, self._cz)
|
||||
|
||||
cursor_coords = property(get_cursor_coords, set_cursor_coords)
|
||||
|
||||
@property
|
||||
def window_size(self):
|
||||
if libdfhack.Position_getWindowSize(self._pos_ptr, byref(self._ww), byref(self._wh)) > 0:
|
||||
return (self._ww.value, self._wh.value)
|
||||
else:
|
||||
return None
|
||||
return (-1, -1)
|
||||
|
@ -1,18 +1,25 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Python class for DF_Hack::Vegetation
|
||||
"""
|
||||
from ._pydfhack import _VegetationManager
|
||||
from .mixins import NeedsStart
|
||||
from .decorators import suspend
|
||||
from ctypes import *
|
||||
from pydftypes import libdfhack, Tree
|
||||
|
||||
class Vegetation(NeedsStart, _VegetationManager):
|
||||
api = None
|
||||
cls = _VegetationManager
|
||||
def __init__(self, api, *args, **kwds):
|
||||
self.cls.__init__(self, args, kwds)
|
||||
self.api = api
|
||||
class Vegetation(object):
|
||||
def __init__(self, ptr):
|
||||
self._v_ptr = ptr
|
||||
|
||||
def start(self):
|
||||
n = c_uint(0)
|
||||
|
||||
@suspend
|
||||
def Read(self, *args, **kw):
|
||||
return self.cls.Read(self, *args, **kw)
|
||||
if libdfhack.Vegetation_Start(self._v_ptr, byref(n)) > 0:
|
||||
return int(n.value)
|
||||
else:
|
||||
return -1
|
||||
|
||||
def finish(self):
|
||||
return libdfhack.Vegetation_Finish(self._v_ptr) > 0
|
||||
|
||||
def read(self, index):
|
||||
t = Tree()
|
||||
|
||||
if libdfhack.Vegetation_Read(self._v_ptr, c_uint(index), byref(t)) > 0:
|
||||
return t
|
||||
else:
|
||||
return None
|
||||
|
Loading…
Reference in New Issue