Open PuserZed opened 7 years ago
@PuserZed Hello! Right now, only MCEdit-Unified can run MCPE 1.0 worlds, only if you run from source and compile the new PE leveldb. If you want me to tell you how to do it, just respond back in this issue. 😄
@bman92102 Could you tell me how to do it? Thanks a lot!
Ok, first, you either need to be running Linux, or use a Linux virtual machine. I think it is possible from Windows itself, but I couldn't manage to successfully do it. So once you download MCEdit from source and install the necessary packages, you would need to open the terminal inside the folder pymclevel, and run the command
python setup_leveldb.py
@bman92102 Emm...I cannot find the file named "setup_leveldb.py" I only can find "test_leveldb.py"
@bman92102 I succeeded in running the setup_leveldb.py in Linux, but it told me "Syntax Error"
Can you post the full error, please?
[puserzed@localhost pymclevel]$ python setup_leveldb.py
Building Linux Minecraft Pocket Edition for MCEdit...
Searching for the binaries needed (gcc, g++, unzip, wget)... All the needed binaries were found. Downloading sources for leveldb URL: https://codeload.github.com/Mojang/leveldb-mcpe/zip/a056ea7c18dfd7b806d6d693726ce79d75543904 --2017-06-05 17:45:40-- https://codeload.github.com/Mojang/leveldb-mcpe/zip/a056ea7c18dfd7b806d6d693726ce79d75543904 正在解析主机 codeload.github.com (codeload.github.com)... 192.30.255.121, 192.30.255.120 正在连接 codeload.github.com (codeload.github.com)|192.30.255.121|:443... 已连接。 已发出 HTTP 请求,正在等待回应... 200 OK 长度:未指定 [application/zip] 正在保存至: “leveldb.zip”
[ <=> ] 322,710 392KB/s 用时 0.8s
2017-06-05 17:45:42 (392 KB/s) - “leveldb.zip” 已保存 [322710]
Unpacking leveldb Cleaning archive. Downloading sources for zlib URL: https://github.com/madler/zlib/archive/4a090adef8c773087ec8916ad3c2236ef560df27.zip --2017-06-05 17:45:42-- https://github.com/madler/zlib/archive/4a090adef8c773087ec8916ad3c2236ef560df27.zip 正在解析主机 github.com (github.com)... 192.30.255.113, 192.30.255.112 正在连接 github.com (github.com)|192.30.255.113|:443... 已连接。 已发出 HTTP 请求,正在等待回应... 302 Found 位置:https://codeload.github.com/madler/zlib/zip/4a090adef8c773087ec8916ad3c2236ef560df27 [跟随至新的 URL] --2017-06-05 17:45:43-- https://codeload.github.com/madler/zlib/zip/4a090adef8c773087ec8916ad3c2236ef560df27 正在解析主机 codeload.github.com (codeload.github.com)... 192.30.255.120, 192.30.255.121 正在连接 codeload.github.com (codeload.github.com)|192.30.255.120|:443... 已连接。 已发出 HTTP 请求,正在等待回应... 200 OK 长度:未指定 [application/zip] 正在保存至: “zlib.zip”
[ <=> ] 802,129 783KB/s 用时 1.0s
2017-06-05 17:45:45 (783 KB/s) - “zlib.zip” 已保存 [802129]
Unpacking zlib
Cleaning archive.
Checking zlib.
Traceback (most recent call last):
File "setup_leveldb.py", line 253, in
This shall be fixed now. Let us know :smile:
By the way, what is your Linux system?
It's CentOS7.0 , so what should I do next?🤔
Searching for the binaries needed (gcc, g++, unzip, wget)... All the needed binaries were found. Downloading sources for leveldb URL: https://codeload.github.com/Mojang/leveldb-mcpe/zip/a056ea7c18dfd7b806d6d693726ce79d75543904 --2017-06-05 23:06:15-- https://codeload.github.com/Mojang/leveldb-mcpe/zip/a056ea7c18dfd7b806d6d693726ce79d75543904 Resolving codeload.github.com (codeload.github.com)... 192.30.255.121, 192.30.255.120 Connecting to codeload.github.com (codeload.github.com)|192.30.255.121|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 322710 (315K) [application/zip] Saving to: ‘leveldb.zip’
100%[======================================>] 322,710 348KB/s in 0.9s
2017-06-05 23:06:17 (348 KB/s) - ‘leveldb.zip’ saved [322710/322710]
Unpacking leveldb Cleaning archive. Downloading sources for zlib URL: https://github.com/madler/zlib/archive/4a090adef8c773087ec8916ad3c2236ef560df27.zip --2017-06-05 23:06:17-- https://github.com/madler/zlib/archive/4a090adef8c773087ec8916ad3c2236ef560df27.zip Resolving github.com (github.com)... 192.30.255.112, 192.30.255.113 Connecting to github.com (github.com)|192.30.255.112|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://codeload.github.com/madler/zlib/zip/4a090adef8c773087ec8916ad3c2236ef560df27 [following] --2017-06-05 23:06:18-- https://codeload.github.com/madler/zlib/zip/4a090adef8c773087ec8916ad3c2236ef560df27 Resolving codeload.github.com (codeload.github.com)... 192.30.255.120, 192.30.255.121 Connecting to codeload.github.com (codeload.github.com)|192.30.255.120|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 802129 (783K) [application/zip] Saving to: ‘zlib.zip’
100%[======================================>] 802,129 747KB/s in 1.0s
2017-06-05 23:06:20 (747 KB/s) - ‘zlib.zip’ saved [802129/802129]
Unpacking zlib
Cleaning archive.
Checking zlib.
('/lib64/libz.so.1.2.7', True, '1.2.7')
WARNING: zlib was found, but its version is 1.2.7.
You can try to build with this version, but it may fail,
or the generated libraries may not work...
Continue [y/N]? y
Building leveldb...
g++ -pthread -shared -Wl,-soname -Wl,libleveldb.so.1 --std=c++11 -DDLLX= -I. -I./include -std=c++0x -fno-builtin-memcmp -pthread -DOS_LINUX -DLEVELDB_PLATFORM_POSIX -DLEVELDB_ATOMIC_PRESENT -O2 -DNDEBUG -fPIC db/builder.cc db/c.cc db/dbformat.cc db/db_impl.cc db/db_iter.cc db/dumpfile.cc db/filename.cc db/log_reader.cc db/log_writer.cc db/memtable.cc db/repair.cc db/snappy_compressor.cc db/table_cache.cc db/version_edit.cc db/version_set.cc db/write_batch.cc db/zlib_compressor.cc table/block_builder.cc table/block.cc table/filter_block.cc table/format.cc table/iterator.cc table/merger.cc table/table_builder.cc table/table.cc table/two_level_iterator.cc util/arena.cc util/bloom.cc util/cache.cc util/coding.cc util/comparator.cc util/crc32c.cc util/env_boost.cc util/env.cc util/env_posix.cc util/env_win.cc util/filter_policy.cc util/hash.cc util/histogram.cc util/logging.cc util/options.cc util/status.cc util/win_logger.cc port/port_posix.cc -o libleveldb.so.1.18 /
/: file not recognized: Is a directory
collect2: error: ld returned 1 exit status
make: [libleveldb.so.1.18] Error 1
Traceback (most recent call last):
File "setup_leveldb.py", line 509, in
Hmmm...
There's not 'line 497' in the script.
Grab again the whole repo. I guess something went wrong when you updated the script.
The Warning is quite normal. As said in the INSTALL_LEVELDB
file, the stuff has only be tested with Zlib 1.2.8 and 1.2.10, but may work with other versions!
Edit: Just saw something else in the compiler command line. I'll check this later... Meanwhile, just grab the repo again :smile:
@LaChal Em... So what to do then? I can't understand well.
/: file not recognized: Is a directory
collect2: error: ld returned 1 exit status
make: *** [libleveldb.so.1.18] Error 1
Traceback (most recent call last):
File "setup_leveldb.py", line 255, in
@PuserZed you need to go to the MCEdit folder, right click inside the folder, and open in terminal, then, type git pull. It should update your MCEdit.
Then to compile the MCPE support again
If you used git
to get the repo, bman92102 is the easiest approach, indeed.
Anyway, I saw the error line changed for 249, which is a progress. It does not fix the compilator error (/: file not recognized: Is a directory
), but it's better.
Just to clarify: you have to open a terminal into the pymclevel
folder in the MCEdit-Unified
, and then enter the command python setup_leveldb.py
.
If it fails again, please, post the content of the Makefile
you'll find in the leveldb
sub-folder.
OPT ?= -O2 -DNDEBUG
$(shell CC="$(CC)" CXX="$(CXX)" TARGET_OS="$(TARGET_OS)" \ ./build_detect_platform build_config.mk ./)
include build_config.mk
CFLAGS += -I. -I./include $(PLATFORM_CCFLAGS) $(OPT) CXXFLAGS += --std=c++11 -DDLLX= -I. -I./include $(PLATFORM_CXXFLAGS) $(OPT)
LDFLAGS += $(PLATFORM_LDFLAGS) LIBS += $(PLATFORM_LIBS) /
LIBOBJECTS = $(SOURCES:.cc=.o) MEMENVOBJECTS = $(MEMENV_SOURCES:.cc=.o)
TESTUTIL = ./util/testutil.o TESTHARNESS = ./util/testharness.o $(TESTUTIL)
ifeq ($(PLATFORM), IOS) AR=xcrun ar endif
TESTS = \ arena_test \ autocompact_test \ bloom_test \ c_test \ cache_test \ coding_test \ corruption_test \ crc32c_test \ db_test \ dbformat_test \ env_test \ fault_injection_test \ filename_test \ filter_block_test \ hash_test \ issue178_test \ issue200_test \ log_test \ memenv_test \ skiplist_test \ table_test \ version_edit_test \ version_set_test \ write_batch_test
PROGRAMS = db_bench leveldbutil $(TESTS) BENCHMARKS = db_bench_sqlite3 db_bench_tree_db
LIBRARY = libleveldb.a MEMENVLIBRARY = libmemenv.a
default: all
ifneq ($(PLATFORM_SHARED_EXT),)
ifneq ($(PLATFORM_SHARED_VERSIONED),true) SHARED1 = libleveldb.$(PLATFORM_SHARED_EXT) SHARED2 = $(SHARED1) SHARED3 = $(SHARED1) SHARED = $(SHARED1) else
SHARED_MAJOR = 1 SHARED_MINOR = 18 SHARED1 = libleveldb.$(PLATFORM_SHARED_EXT) SHARED2 = $(SHARED1).$(SHARED_MAJOR) SHARED3 = $(SHARED1).$(SHARED_MAJOR).$(SHARED_MINOR) SHARED = $(SHARED1) $(SHARED2) $(SHARED3) $(SHARED1): $(SHARED3) ln -fs $(SHARED3) $(SHARED1) $(SHARED2): $(SHARED3) ln -fs $(SHARED3) $(SHARED2) endif
$(SHARED3): $(CXX) $(LDFLAGS) $(PLATFORM_SHARED_LDFLAGS)$(SHARED2) $(CXXFLAGS) $(PLATFORM_SHARED_CFLAGS) $(SOURCES) -o $(SHARED3) $(LIBS)
endif # PLATFORM_SHARED_EXT
all: $(SHARED) $(LIBRARY)
check: all $(PROGRAMS) $(TESTS) for t in $(TESTS); do echo "***** Running $$t"; ./$$t || exit 1; done
clean: -rm -f $(PROGRAMS) $(BENCHMARKS) $(LIBRARY) $(SHARED) $(MEMENVLIBRARY) /.o //.o ios-x86//.o ios-arm//.o build_config.mk -rm -rf ios-x86/ ios-arm/*
$(LIBRARY): $(LIBOBJECTS) rm -f $@ $(AR) -rs $@ $(LIBOBJECTS)
db_bench: db/db_bench.o $(LIBOBJECTS) $(TESTUTIL) $(CXX) $(LDFLAGS) db/db_bench.o $(LIBOBJECTS) $(TESTUTIL) -o $@ $(LIBS)
db_bench_sqlite3: doc/bench/db_bench_sqlite3.o $(LIBOBJECTS) $(TESTUTIL) $(CXX) $(LDFLAGS) doc/bench/db_bench_sqlite3.o $(LIBOBJECTS) $(TESTUTIL) -o $@ -lsqlite3 $(LIBS)
db_bench_tree_db: doc/bench/db_bench_tree_db.o $(LIBOBJECTS) $(TESTUTIL) $(CXX) $(LDFLAGS) doc/bench/db_bench_tree_db.o $(LIBOBJECTS) $(TESTUTIL) -o $@ -lkyotocabinet $(LIBS)
leveldbutil: db/leveldb_main.o $(LIBOBJECTS) $(CXX) $(LDFLAGS) db/leveldb_main.o $(LIBOBJECTS) -o $@ $(LIBS)
arena_test: util/arena_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) util/arena_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
autocompact_test: db/autocompact_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) db/autocompact_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
bloom_test: util/bloom_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) util/bloom_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
c_test: db/c_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) db/c_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
cache_test: util/cache_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) util/cache_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
coding_test: util/coding_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) util/coding_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
corruption_test: db/corruption_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) db/corruption_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
crc32c_test: util/crc32c_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) util/crc32c_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
db_test: db/db_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) db/db_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
dbformat_test: db/dbformat_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) db/dbformat_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
env_test: util/env_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) util/env_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
fault_injection_test: db/fault_injection_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) db/fault_injection_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
filename_test: db/filename_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) db/filename_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
filter_block_test: table/filter_block_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) table/filter_block_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
hash_test: util/hash_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) util/hash_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
issue178_test: issues/issue178_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) issues/issue178_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
issue200_test: issues/issue200_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) issues/issue200_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
log_test: db/log_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) db/log_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
table_test: table/table_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) table/table_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
skiplist_test: db/skiplist_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) db/skiplist_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
version_edit_test: db/version_edit_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) db/version_edit_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
version_set_test: db/version_set_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) db/version_set_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
write_batch_test: db/write_batch_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) db/write_batch_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
$(MEMENVLIBRARY) : $(MEMENVOBJECTS) rm -f $@ $(AR) -rs $@ $(MEMENVOBJECTS)
memenv_test : helpers/memenv/memenv_test.o $(MEMENVLIBRARY) $(LIBRARY) $(TESTHARNESS) $(CXX) $(LDFLAGS) helpers/memenv/memenv_test.o $(MEMENVLIBRARY) $(LIBRARY) $(TESTHARNESS) -o $@ $(LIBS)
ifeq ($(PLATFORM), IOS)
PLATFORMSROOT=/Applications/Xcode.app/Contents/Developer/Platforms SIMULATORROOT=$(PLATFORMSROOT)/iPhoneSimulator.platform/Developer DEVICEROOT=$(PLATFORMSROOT)/iPhoneOS.platform/Developer IOSVERSION=$(shell defaults read $(PLATFORMSROOT)/iPhoneOS.platform/version CFBundleShortVersionString) IOSARCH=-arch armv6 -arch armv7 -arch armv7s -arch arm64
.cc.o: mkdir -p ios-x86/$(dir $@) xcrun -sdk iphonesimulator $(CXX) $(CXXFLAGS) -isysroot $(SIMULATORROOT)/SDKs/iPhoneSimulator$(IOSVERSION).sdk -arch i686 -arch x86_64 -c $< -o ios-x86/$@ mkdir -p ios-arm/$(dir $@) xcrun -sdk iphoneos $(CXX) $(CXXFLAGS) -isysroot $(DEVICEROOT)/SDKs/iPhoneOS$(IOSVERSION).sdk $(IOSARCH) -c $< -o ios-arm/$@ xcrun lipo ios-x86/$@ ios-arm/$@ -create -output $@
.c.o: mkdir -p ios-x86/$(dir $@) xcrun -sdk iphonesimulator $(CC) $(CFLAGS) -isysroot $(SIMULATORROOT)/SDKs/iPhoneSimulator$(IOSVERSION).sdk -arch i686 -arch x86_64 -c $< -o ios-x86/$@ mkdir -p ios-arm/$(dir $@) xcrun -sdk iphoneos $(CC) $(CFLAGS) -isysroot $(DEVICEROOT)/SDKs/iPhoneOS$(IOSVERSION).sdk $(IOSARCH) -c $< -o ios-arm/$@ xcrun lipo ios-x86/$@ ios-arm/$@ -create -output $@
else .cc.o: $(CXX) $(CXXFLAGS) -c $< -o $@
.c.o: $(CC) $(CFLAGS) -c $< -o $@ endif
Or I just want to turn a PE save into PC save, could you help me do this? I really don't know how to do it.
@PuserZed I can convert PE to PC for you, just send me the world :smile: I also recommend trying to set it up on Ubuntu instead of Cent OS, and try the same steps as before!
@LaChal I think the issue may be due to him running on Cent OS, which I don't know if it would work at all with it.
It may be related to CentOS, indeed. But I did not have time to test today, badly :/
The /
reported as being a directory an not a file shall be the full path to the Zlib DLL (something like /usr/lib/zlib.so.1.2.3
, for instance: /lib64/libz.so.1.2.7
).
The script shall handle this... (I'm a bit confused for now about that.)
Converting a PE world to a PC one is not natively supported in MCEdit. But using an experimental filter and having a working MCEdit PE support, it may be possible.
(( @bman92102: I guess you could compile the DLL and you're using @neonerz experimental filter (I can't find the link anymore...) ))
@PuserZed: It is realy important to run the script in the directory it is, and don't run it as root but as the user you will use MCEdit. The root ( AKA 'Administrator' on Windows) installation and use of MCEdit is not yet supported! If this looks too much to obscure magical incantations, I may give you a bit of help :smile:
@bman92102 and I found a few more issues with the filter I hope to hammer out tonight. I'll post it if we could iron out all the major bugs.
@LaChal Not using the Windows version, I will try though and see if it works!
@LaChal When I try to run the sh in cmd, I get a python2 not found
@bman92102 https://mega.nz/#!ojJWzSbC!qMFnWcCTDBAC5pwHuk4XoI2S0ZqJSpgaxy7SCis6dLo Thanks a lot!😊
I have tried it on Ubuntu, and it gave me the same error
@PuserZed Hmmmm, seems like I cannot port it :. I'm guessing it is a 0.9 / 1.0 world hybrid, It gives me this error when trying to save it as a schematic
*** MCEDIT DEBUG: current directory: /home/bman92102/Desktop/MCEdit-Unified
Traceback (most recent call last): File "/home/bman92102/Desktop/MCEdit-Unified/mceutils.py", line 53, in _alertException return func(*args, **kw) File "/home/bman92102/Desktop/MCEdit-Unified/editortools/select.py", line 1225, in exportSelection self.editor.exportSchematic(schematic) File "/home/bman92102/Desktop/MCEdit-Unified/leveleditor.py", line 843, in exportSchematic StructureNBT.fromSchematic(schematic).save(filename) File "/home/bman92102/Desktop/MCEdit-Unified/pymclevel/schematic.py", line 813, in fromSchematic structure = cls(size=(schematic.Width, schematic.Height, schematic.Length), mats=namedMaterials[getattr(schematic, "Materials", 'Alpha')]) File "/home/bman92102/Desktop/MCEdit-Unified/pymclevel/schematic.py", line 737, in init from materials import blockstateToID ImportError: cannot import name blockstateToID
@LaChal I tried using Windows for the newest source, but it doesn't save the PE world's seeds, it will just reset them to the seed 0 with no name and no date
hmm…yes, it is an 1.0 world😶
Regarding the mixed world format, 1+ PE worlds can contain 0.9 chunks. This shall already be handled by MCEdit if you use the new support (the new feature file and CLI switch).
Regarding the error when exporting as a NBT structure schematic, it is not related to the world format, and shall be fixed now.
Please note that exporting as a NBT structure may hang you machine. The whole world data will be stored in the RAM, then written on the disk in the .nbt file. Please, use the schematic format. Depending on your MCEdit blocks cache setting, it will create a zipped multi-file schematic you can then re-import in MCEdit. Selecting schematic format is done when the dialog asking the file name pops up.
@PuserZed : having the same compilation error on Ubuntu is annoying :/ I'll test the script (again) on my side, and see...
@bman92102 : to use the new support on Windows, you have to use the new feature file and CLI too.
For the 'python2 not found error', just ensure Python 2.7 is installed on your Linux. (I guess it is, or MCEdit can't start...)
On Linux, there can be several Python version installed; usually Python 2.x and Python 3.x. The command python
may point to any of these version. Two other command shall be also available to point these version specifically. python2
shall point to the Python version we need.
Open a shell and enter python --version
. If it is 2.7.x, just replace the python2
with python
in the shell script, and you're good to go. Otherwise, replace python2
with the full path to your Python 2.7.x executable.
@LaChal How would I go about using CLI? Thanks!
Do you mean running from the command line?
CLI = Command Line Interface (or so), by opposite to GUI: Graphical User Interface.
@LaChal is running the CLI just running mcedit.py with some arguments? If so, is there somewhere that documents using mcedit without the GUI? That would be super ideal.
@LaChal I have been doing that, on Windows, it will read and write to the world just fine, but it won't save the seed, world name or the date last accessed in game
So…Emm…Is that means there's no way to convert PE to PC?😮
@PuserZed It is possible, but support for it isn't complete yet. I would wait until the next full release to see if it's possible then.
Alright, Thanks for your help!☺
@neonerz : MCEdit-Unified has a CLI support, but only to manage 'new features' and some debugging level. Implementing CLI options to controll what MCEdit does is possible (nothing is impossible regarding informatics), but it takes time to do and test, and depends what functionalities shall be without a GUI...
@PuserZed : just pay attention to the folder in which you enter the python setup_leveldb.py
command. It must be /the/folder/where/sources/are/pymclevel
.
It re-tested on a Ubuntu 14.04, and all was fine. I did not have time to make room on my machine to install a 16.04 yet, but it will come :smile:
@bman92102 : I'm not using Windows and can't test PE worlds in-game, but on my side, I can see the RandomSeed
and LastPlayed
tags correctly in MCEdit. I'll give a try on a VM later. (Same issue with disk space than for Ubuntu 16.04...)
@LaChal I found a different (possibly known?) issue with PE worlds importing. Instead of opening a new issue (which I can), I thought I'd post it in here.
It's something @bman92102 and I noticed on 1.0 worlds, and I just noticed it also happens on 1.1 worlds after the latest commit. It seems random gravel entities (just the entity, not the block) are existing in worlds imported into mcedit. If you try and remove them, they appear to be gone, but next time you load the world in MCEdit, they are back again.
Below is a screen shot from MCEdit (running on linux using the latest commit supporting 1.1) and a world file. The was a fresh generation of a flatland world in Windows 10 1.1.
edit: If you look in the world, it looks like sand entities as well. edit2: it actually looks like entities in general that exist in MCPE are being converted to random entities in MCEdit. I looked in game, and the two entities in that screen shot are two sheep
If you rather me open a new issue, let me know.
I did not have time to look at this yet, but it looks like something's missing from the definition files. I'll update when I'll get the answer :smile:
@LaChal - just got back from vacation and tried the latest commit. Everything seems to be running fine without using --new-features. Just so you know, the entities issue is still happening.
@neonerz I tested you world in MCEdit. I could see three sheeps and two pigs. I modified the world, saved and reloaded it. Same result...
@LaChal, I'm not sure what to say. When I load up the same world, I'm showing Gravel and Sand respectively. I know @bman92102 was/is having the same issue as me.
Is there anything else that needs to be done outside of what's in the README for PE support? I guess it could be something I'm doing wrong, but I'm not sure what it could be. I'm running the latest source, in Ubuntu, and I built _nbt.pyx as described in the README.
Here's the dump_pe.txt that shows the issue (lines 317, 326, and 397 for gravel, and lines 1038 and 1039 for sand) , as well as a screen shot: dump_pe.txt
The detected chunk version is correct (1.1 one).
The numeric IDs are the right ones (13 and 12).
Nothing unusual in you dump_pe.txt
, except the 'gravel' and 'sand' entities...
Please, check the mcedit.log
file and see if you have:
[ DEBUG][ leveleditor.py:1196]:Loaded world is <pymclevel.leveldbpocket.PocketLeveldbWorld object at 0x6e52c10>
[ DEBUG][ pymclevel.materials.py:379]:Loading block definitions from versionned file
[ INFO][pymclevel.id_definitions.py:129]:Loading resources for MC PE
[ INFO][pymclevel.id_definitions.py:140]:Found blocks.json
[ INFO][pymclevel.id_definitions.py:149]:Loading...
[ INFO][pymclevel.id_definitions.py:196]:Done
[ INFO][pymclevel.id_definitions.py:140]:Found entities.json
[ INFO][pymclevel.id_definitions.py:149]:Loading...
[ INFO][pymclevel.id_definitions.py:196]:Done
[ INFO][pymclevel.id_definitions.py:202]:Loaded 255 defs and 730 ids
[ INFO][ pymclevel.materials.py:938]:Building Pocket materials.
[ INFO][ leveleditor.py:1240]:Loading world for version PE.
Also, check if the files in mcver/PE
are the same as on the repo.
I'm running a custom blocks.json that @bman92102 and I have been updating blocks.json.txt. I did also try it with the default blocks.json (to make sure something from that isn't messing things up), but I still had the issue.
I'm using the entities.json that is included with source.
After a bit more testing, it only seems to happen when I run mcedit from source in Linux. I don't seem to have the problem in Windows. It's also worth mentioning, it looks like mcedit.log shows it being loaded twice (not sure if this is intended or an issue)
[ INFO][pymclevel.leveldbpocket.py:735]:PE world verion found: 1.plus
[ INFO][pymclevel.id_definitions.py:129]:Loading resources for MC PE
[ INFO][pymclevel.id_definitions.py:140]:Found entities.json
[ INFO][pymclevel.id_definitions.py:149]:Loading...
[ INFO][pymclevel.id_definitions.py:196]:Done
[ INFO][pymclevel.id_definitions.py:140]:Found blocks.json
[ INFO][pymclevel.id_definitions.py:149]:Loading...
[ INFO][pymclevel.id_definitions.py:196]:Done
[ INFO][pymclevel.id_definitions.py:202]:Loaded 309 defs and 885 ids
[ DEBUG][ leveleditor.py:1196]:Loaded world is <pymclevel.leveldbpocket.PocketLeveldbWorld object at 0x7fdca288ff10>
[ DEBUG][ pymclevel.materials.py:379]:Loading block definitions from versionned file
[ INFO][pymclevel.id_definitions.py:129]:Loading resources for MC PE
[ INFO][pymclevel.id_definitions.py:140]:Found entities.json
[ INFO][pymclevel.id_definitions.py:149]:Loading...
[ INFO][pymclevel.id_definitions.py:196]:Done
[ INFO][pymclevel.id_definitions.py:140]:Found blocks.json
[ INFO][pymclevel.id_definitions.py:149]:Loading...
[ INFO][pymclevel.id_definitions.py:196]:Done
[ INFO][pymclevel.id_definitions.py:202]:Loaded 309 defs and 885 ids
Here's the full mcedit.log mcedit.log.txt
The functions to load the definitions are called twice. Not nice, but not a bug :)
Even using you Json file, I can't reproduce that :/
I'll rebuild my environment and see if I continue having the problem. If I do, since I'm running in VM, I could package up the VM HDD and send it to you to try, if you want.
@LaChal I also have the issue. Comes up with Sand and Gravel entities instead of Pigs and Sheep. If it helps, I am running Ubuntu 16.04 LTS on a VM
Hmmm...
Restore the blocks.json
file as it is in the repo, and see what happens.
@neonerz What is the type of the HDD, and what is its size?
I just tried it again using the blocks.json that's in the repo (just to make sure I didn't backup that file improperly, I cloned it from git again). Still having the same issue.
I'm also using Ubuntu 16.04 (16.04.2 to be exact) LTS if that makes a difference.
The VM HDD is a VMDK, but for some reason I set it up as 120gigs. I know @bman92102 had to go AFK, but when he comes back, if his VM image isn't smaller than mine, I'll create a new one (which will be a lot smaller), re-setup the environment, confirm the issue is still happening, and link it.
Yesterday I wanted to load a PE1.0 save, but it doesn't work. I found the PE saves are saved in a "db" folder, and the Level.dat is empty. Then I tried to use McEdit 2.0Beta to load it, but it also failed. Can you fix this? I want to transfer the PE to PC, because it's too hard to build a huge thing on a phone. Thx~