pyscreeps-arena 0.5.7a2__tar.gz → 0.5.7.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/PKG-INFO +1 -1
  2. pyscreeps_arena-0.5.7.1/pyscreeps_arena/__init__.py +88 -0
  3. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/compiler.py +10 -6
  4. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/core/const.py +1 -1
  5. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/localization.py +4 -0
  6. pyscreeps_arena-0.5.7.1/pyscreeps_arena/project.7z +0 -0
  7. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/ui/__init__.py +3 -1
  8. pyscreeps_arena-0.5.7.1/pyscreeps_arena/ui/map_render.py +705 -0
  9. pyscreeps_arena-0.5.7.1/pyscreeps_arena/ui/mapviewer.py +14 -0
  10. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/ui/qcreeplogic/qcreeplogic.py +82 -21
  11. pyscreeps_arena-0.5.7.1/pyscreeps_arena/ui/qmapv/__init__.py +3 -0
  12. pyscreeps_arena-0.5.7.1/pyscreeps_arena/ui/qmapv/qcinfo.py +567 -0
  13. pyscreeps_arena-0.5.7.1/pyscreeps_arena/ui/qmapv/qco.py +441 -0
  14. pyscreeps_arena-0.5.7.1/pyscreeps_arena/ui/qmapv/qmapv.py +728 -0
  15. pyscreeps_arena-0.5.7.1/pyscreeps_arena/ui/qmapv/test_array_drag.py +191 -0
  16. pyscreeps_arena-0.5.7.1/pyscreeps_arena/ui/qmapv/test_drag.py +107 -0
  17. pyscreeps_arena-0.5.7.1/pyscreeps_arena/ui/qmapv/test_qcinfo.py +169 -0
  18. pyscreeps_arena-0.5.7.1/pyscreeps_arena/ui/qmapv/test_qco_drag.py +7 -0
  19. pyscreeps_arena-0.5.7.1/pyscreeps_arena/ui/qmapv/test_qmapv.py +224 -0
  20. pyscreeps_arena-0.5.7.1/pyscreeps_arena/ui/qmapv/test_simple_array.py +303 -0
  21. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena.egg-info/PKG-INFO +1 -1
  22. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena.egg-info/SOURCES.txt +12 -0
  23. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/setup.py +1 -1
  24. pyscreeps_arena-0.5.7a2/pyscreeps_arena/__init__.py +0 -56
  25. pyscreeps_arena-0.5.7a2/pyscreeps_arena/project.7z +0 -0
  26. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/build.py +0 -0
  27. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/core/__init__.py +0 -0
  28. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/core/basic.py +0 -0
  29. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/core/config.py +0 -0
  30. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/core/core.py +0 -0
  31. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/core/main.py +0 -0
  32. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/core/utils.py +0 -0
  33. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/ui/P2PY.py +0 -0
  34. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/ui/creeplogic_edit.py +0 -0
  35. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/ui/project_ui.py +0 -0
  36. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/ui/qcreeplogic/__init__.py +0 -0
  37. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/ui/qcreeplogic/model.py +0 -0
  38. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/ui/qrecipe/__init__.py +0 -0
  39. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/ui/qrecipe/model.py +0 -0
  40. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/ui/qrecipe/qrecipe.py +0 -0
  41. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena/ui/rs_icon.py +0 -0
  42. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena.egg-info/dependency_links.txt +0 -0
  43. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena.egg-info/entry_points.txt +0 -0
  44. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena.egg-info/requires.txt +0 -0
  45. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/pyscreeps_arena.egg-info/top_level.txt +0 -0
  46. {pyscreeps_arena-0.5.7a2 → pyscreeps_arena-0.5.7.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyscreeps-arena
3
- Version: 0.5.7a2
3
+ Version: 0.5.7.1
4
4
  Summary: Python api|interface to play game: Screeps: Arena.
5
5
  Author-email: 2229066748@qq.com
6
6
  Maintainer: Eagle'sBaby
@@ -0,0 +1,88 @@
1
+ import os
2
+ import sys
3
+ import shutil
4
+ import py7zr
5
+ from pyscreeps_arena.core import const, config
6
+ def CMD_NewProject():
7
+ """
8
+ cmd:
9
+ pyscreeps-arena [project_path]
10
+ arena [project_path]
11
+
12
+ * 复制"src" "game" "build.py" 到指定目录
13
+
14
+ Returns:
15
+
16
+ """
17
+ if len(sys.argv) < 2:
18
+ print("Usage: pyarena new [project_path]\n# or\narena new [project_path]")
19
+ return
20
+ project_path = sys.argv[1]
21
+ if not os.path.exists(project_path):
22
+ os.makedirs(project_path)
23
+ this_path = os.path.dirname(os.path.abspath(__file__))
24
+ extract_7z(os.path.join(this_path, 'project.7z'), project_path)
25
+ print("Project created at", project_path)
26
+
27
+ def CMD_OpenUI():
28
+ """
29
+ cmd:
30
+ psaui 无参数,启用project ui
31
+ psaui -c/-e 启用creeplogic edit
32
+ psaui -m [-c/-e] 启用mapviewer. 默认cn,可以指定-c/-e
33
+ psaui -h 显示帮助信息
34
+
35
+ * 打开UI界面
36
+
37
+ Returns:
38
+
39
+ """
40
+ try:
41
+ # 显示帮助信息
42
+ if len(sys.argv) > 1 and sys.argv[1] == '-h':
43
+ print("Usage:")
44
+ print(" psaui 启用project ui")
45
+ print(" psaui -c/-e 启用creeplogic edit (-c: 中文, -e: 英文)")
46
+ print(" psaui -m [-c/-e] 启用mapviewer (-c: 中文, -e: 英文, 默认: 中文)")
47
+ print(" psaui -h 显示帮助信息")
48
+ print(" --------------------------------------------------------------")
49
+ print(" psaui run `project ui`")
50
+ print(" psaui -c/-e run `creeplogic edit` (-c: chinese, -e: english)")
51
+ print(" psaui -m [-c/-e] run `mapviewer` (-c: chinese, -e: english, default: chinese)")
52
+ print(" psaui -h Show this help message")
53
+
54
+ return
55
+
56
+ # 检查是否使用mapviewer
57
+ if len(sys.argv) > 1 and sys.argv[1] == '-m':
58
+ from pyscreeps_arena.ui.mapviewer import run_mapviewer
59
+ # 检查语言参数
60
+ if len(sys.argv) > 2 and sys.argv[2] == '-e':
61
+ from pyscreeps_arena.core import config
62
+ config.language = 'en'
63
+ run_mapviewer()
64
+ # 检查是否使用creeplogic edit
65
+ elif len(sys.argv) > 1 and sys.argv[1] == '-c':
66
+ from pyscreeps_arena.ui.creeplogic_edit import run_creeplogic_edit
67
+ run_creeplogic_edit()
68
+ elif len(sys.argv) > 1 and sys.argv[1] == '-e':
69
+ from pyscreeps_arena.ui.creeplogic_edit import run_creeplogic_edit
70
+ from pyscreeps_arena.core import config
71
+ config.language = 'en'
72
+ run_creeplogic_edit()
73
+ # 默认启用project ui
74
+ else:
75
+ from pyscreeps_arena.ui.project_ui import run_project_creator
76
+ run_project_creator()
77
+ except ImportError as e:
78
+ print(f"错误: 无法导入UI模块 - {e}")
79
+ print("请确保已安装PyQt6: pip install PyQt6")
80
+ except Exception as e:
81
+ print(f"错误: 打开UI界面失败 - {e}")
82
+
83
+ def extract_7z(file_path, output_dir):
84
+ with py7zr.SevenZipFile(file_path, mode='r') as archive:
85
+ archive.extractall(path=output_dir)
86
+
87
+ if __name__ == '__main__':
88
+ CMD_OpenUI()
@@ -230,12 +230,16 @@ class Compiler_Utils(Compiler_Const):
230
230
  return f.read()
231
231
  except UnicodeDecodeError:
232
232
  # 如果使用检测到的编码读取失败,尝试使用chardet检测编码
233
- with open(fpath, 'rb') as f: # 以二进制模式打开文件
234
- raw_data = f.read() # 读取文件的原始数据
235
- result = chardet.detect(raw_data) # 使用chardet检测编码
236
- encoding = result['encoding'] # 获取检测到的编码
237
- with open(fpath, 'r', encoding=encoding) as f: # 使用检测到的编码打开文件
238
- return f.read()
233
+ try:
234
+ with open(fpath, 'rb') as f: # 以二进制模式打开文件
235
+ raw_data = f.read() # 读取文件的原始数据
236
+ result = chardet.detect(raw_data) # 使用chardet检测编码
237
+ encoding = result['encoding'] # 获取检测到的编码
238
+ with open(fpath, 'r', encoding=encoding) as f: # 使用检测到的编码打开文件
239
+ return f.read()
240
+ except UnicodeDecodeError as e:
241
+ core.error('Compiler_Utils.auto_read', core.lformat(LOC_FILE_READ_FAILED, [fpath, "UnicodeError", e]), end='', head='\n', ln=config.language)
242
+ quit(-1)
239
243
 
240
244
  def copy_to(self) -> list:
241
245
  """
@@ -9,7 +9,7 @@
9
9
  #
10
10
  import re
11
11
 
12
- VERSION = "0.5.7a"
12
+ VERSION = "0.5.7.1"
13
13
  AUTHOR = "●ω<🤍♪"
14
14
  STEAM_ID = "1029562896"
15
15
  GITHUB_NAME = "EagleBaby"
@@ -17,6 +17,10 @@ LOC_FILE_NOT_EXISTS = {
17
17
  'en': "{} File not exists: {}. You can ignore if it's a not used file.",
18
18
  'cn': "{} 文件不存在: {}. 如果它是一个未使用的文件,您可以忽略它。",
19
19
  }
20
+ LOC_FILE_READ_FAILED = {
21
+ 'en': "Failed to read file: {}({})\nDetails:\n{}",
22
+ 'cn': "读取文件失败: {}({})\n详细信息:\n{}",
23
+ }
20
24
  LOC_PREPROCESSING = {
21
25
  'en': "Preprocessing ...",
22
26
  'cn': "预处理中 ...",
@@ -6,5 +6,7 @@ PyScreeps Arena UI模块
6
6
  from .rs_icon import get_icon, get_pixmap
7
7
  from .project_ui import ProjectCreatorUI, run_project_creator
8
8
  from .P2PY import png_to_py
9
+ from .qmapv import QPSAMapViewer, CellInfo
9
10
 
10
- __all__ = ['get_icon', 'get_pixmap', 'ProjectCreatorUI', 'run_project_creator', 'png_to_py']
11
+ __all__ = ['get_icon', 'get_pixmap', 'ProjectCreatorUI', 'run_project_creator',
12
+ 'png_to_py', 'QPSAMapViewer', 'CellInfo']