Если __name__ == "__main__" не делать что-либо
Здесь я упростил свой код, но думаю, что также сузил свой вопрос. name dosent равно main, когда он запускается mcedit в качестве фильтра, так что вы должны сравнивать name с чем-то другим, кроме 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()
Также, чтобы ответить на вопрос в комментариях, это фильтр для программы Minecraft под названием mcedit для редактирования миров, фильтры - это просто программы, которые редактируют миры. Так что эта программа на самом деле ничего не делает, если у вас нет программы
2 ответа
После большого количества возни оказывается, что он не запускает нужный файл в процессах, он запускает основную программу, поэтому он открыл вторую версию программы, поэтому я вставил изменение исполняемого файла, чтобы вместо этого открыть python программы и все отлично работает!
Ваш скрипт будет работать только в MCEdit Unified.
pymclevel
не может быть запущен за пределами MCEdit.
Вам не нужно писать скрипт для этого. Если вы удерживаете нажатой клавишу Alt, он покажет координаты указателя вашего куба. Перейдите к точке в мире, где вы хотели бы разместить блок и использовать fill and replace
инструмент, чтобы заполнить эту координату с блоком, который вы хотите.