我在这里让我的代码更简单,但我想我也缩小了我的问题范围。当它由 McEdit 作为过滤器运行时,名称 dosent 等于 main,所以您是否应该将名称与另一个程序调用的 main 以外的其他内容进行比较,使 main PlaceBlock 仍然不起作用?
from multiprocessing import Process
from pymclevel import alphaMaterials
displayName = "PlaceBlock"
def perform(level, box, options):
x = box.minx
z = box.minz
def block(height):
level.setBlockAt(x, height, z, 1)
print(__name__)
if __name__ == "__main__":
print('Processing')
p1 = Process(target=block, args=(1, ))
p2 = Process(target=block, args=(2, ))
p1.start()
p2.start()
p1.join()
p2.join()
另外要回答评论中的一个问题,这是一个名为mcedit的Minecraft程序的过滤器,用于编辑世界,过滤器只是编辑世界的程序。所以这个程序实际上可以做任何事情,除非你有程序
经过一番混乱之后,它发现它没有在进程中运行正确的文件,它会运行主程序,这就是为什么它打开了该程序的第二个版本,所以我输入了一个执行文件更改来打开 python 而不是程序,它工作正常!
您的脚本只能在 MCEdit Unified 中运行。
pymclevel
不能在 MCEdit 之外运行。
您无需编写脚本即可执行此操作。如果按住 alt,它将显示立方体指针的坐标。转到世界上要放置块的点,然后使用fill and replace
工具填充该坐标与所需的块。