44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
from zhenxun.services.log import logger
|
|
from zhenxun.utils._build_image import BuildImage
|
|
|
|
from .config import g_pJsonManager, g_sResourcePath
|
|
from .database import g_pSqlManager
|
|
|
|
|
|
class CDrawImageManager:
|
|
|
|
@classmethod
|
|
async def drawMyFarm(cls, uid: str) -> bytes:
|
|
"""绘制我的农场
|
|
|
|
Args:
|
|
uid (str): 用户UID
|
|
|
|
Returns:
|
|
bytes: 返回绘制结果
|
|
"""
|
|
soilNumber = await g_pSqlManager.getUserLevelByUid(uid)
|
|
|
|
img = BuildImage(background=g_sResourcePath / "background/background.jpg")
|
|
|
|
soilSize = g_pJsonManager.m_pSoil['size'] # type: ignore
|
|
|
|
#TODO 缺少判断用户土地资源状况
|
|
soil = BuildImage(background=g_sResourcePath / "soil/普通土地.png")
|
|
await soil.resize(0, soilSize[0], soilSize[1])
|
|
|
|
grass = BuildImage(background=g_sResourcePath / "soil/草土地.png")
|
|
await grass.resize(0, soilSize[0], soilSize[1])
|
|
|
|
soilPos = g_pJsonManager.m_pSoil['soil'] # type: ignore
|
|
|
|
for key, value in soilPos.items():
|
|
if soilNumber >= int(key):
|
|
await img.paste(soil, (value['x'], value['y']))
|
|
else:
|
|
await img.paste(grass, (value['x'], value['y']))
|
|
|
|
return img.pic2bytes()
|
|
|
|
g_pDrawImage = CDrawImageManager()
|