Giter Site home page Giter Site logo

papyrus-mc / papyruscs Goto Github PK

View Code? Open in Web Editor NEW
254.0 254.0 41.0 6.62 MB

PapyrusCS renders maps of Minecraft: Bedrock Edition worlds using C#, LevelDB and leaflet.

License: Apache License 2.0

C# 100.00%
bedrock csharp dotnet-core2-2 leaflet leveldb linux map minecraft windows

papyruscs's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

papyruscs's Issues

Player UUID to XUID

First of all thanks for a great tool. Very impressive.

This is more of a question than an issue. I am fairly new to all of this, so pardon me if this is a silly questions. When I render the map, the players are marked as for example "Player 51cdb" and they have a guid in the playerData.js file. How is this related to the xuid of the players on the server?

Missing Texture: tripwire_hook

I just started using this tool today, after updating to 1.16
Overall seems to work well.

After seeing a plethora of missing textures, I updated the textures directory from https://aka.ms/resourcepacktemplate , but I'm still seeing one a handful of times in my output.

Missing Texture(2): 12 64 0 minecraft:tripwire_hook:0 (8)

Missing textures: end_brick_stairs

When I generated my map on End Dimension (which have Endstone Brick Stairs to both my End Gateway portals) and in the generation, the textures are missing.

image

Tested on Windows 10, papypruscs 0.3.7; 0.4.0; 0.5.0;

Trying to figure out how to share the map online like the example.

I run a MC realm and want to share the map to my members but for the life of me I can not figure out how to share the file publicly.

I tried google drive, and even Weebly to host it but it just comes up as a black screen. I'm assuming it needs the tiles to support the map?

I'm hoping this is the right place to ask for help. I don't know anything about GitHub or any of this kind of stuff really.

Any help would be immensely appreciated
Thank you for building an awesome program and thank you for your time!

Raises an error on empty dimension

This is a very minor thing, but when you attempt to draw up an emtpy dimension, it raises an exception: Sequence contains no elements.

Opening world...
Generating a list of all chunk keys in the database.
This could take a few minutes
Total Chunk count 0

Unhandled exception. System.InvalidOperationException: Sequence contains no elements
   at System.Linq.ThrowHelper.ThrowNoElementsException()
   at System.Linq.Enumerable.Min[TSource](IEnumerable`1 source, Func`2 selector)
   at PapyrusCs.Program.RunMapCommand(Options options) in C:\projects\papyruscs-19426\PapyrusCs\Program.cs:line 396
   at PapyrusCs.Program.<>c.<Main>b__4_0(Options opts) in C:\projects\papyruscs-19426\PapyrusCs\Program.cs:line 49
   at CommandLine.ParserResultExtensions.MapResult[T1,T2,T3,TResult](ParserResult`1 result, Func`2 parsedFunc1, Func`2 parsedFunc2, Func`2 parsedFunc3, Func`2 notParsedFunc)
   at PapyrusCs.Program.Main(String[] args) in C:\projects\papyruscs-19426\PapyrusCs\Program.cs:line 46

Should this not be handled more gracefully, rather than an error exit?

Render White instead of Green

Hello,
For some reason a part of the map is rendered in white (Looks like snow) but it is in fact grass.
What is odd is that on another part of the map the render worked and I see grass.

In the picture I attached you can see that some blocks got rendered correctly(Green) but the vast majority is white.
I am using Windows as the platform
Render_Error

Dockerized version

Hi! Im running my official Minecraft Alpha server on a Dockerized container, which then saves on a path on my machine. I was wondering if anyone would be available to Dockerize PapyrusCs with a configurable environment variable to read the path for the map. :D

papyrusCs not finding leveldb.so on QNAP

I think a dependency might be missing from the linux precompiled package. I get this error when I try to run papyrus on myx86 QNAP:

[/share/Download/papyruscs-dotnetcore-0.5.1-linux64] # ./PapyrusCs -w ../worlds/Terra/db Could not open world at '../worlds/Terra/db'!. Did you specify the .../db folder? The reason was: Unable to load shared library 'leveldb' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libleveldb: cannot open shared object file: No such file or directory
I did some debugging and it's certainly looking for leveldb.so, but as per my own manual search, it's not present on my system. the windows package has a levelDB.dll file, which I'm assuming is the windows equivalent.

Is there a missing dependency in the linux package? or is my QNAP missing the package every other distribution has by default?

uname -a shows this
Linux antimony 4.14.24-qnap #1 SMP Wed Jul 29 01:23:26 CST 2020 x86_64 GNU/Linux

Rendering problems on Linux

I have been using PapyrusCS on my laptop (windows 10) and it renders fine. Now I am trying to run it on a server (in a Docker container) and I get strange looking rendering:

image

Same world rendered on Windows looks like this:

image

Error in CreateChunkAndRenderBlock: The type initializer for 'Gdip' threw an exception.

When running on Linux using the pre-compiled binaries, we get this message repeating many times:

Error in CreateChunkAndRenderBlock: The type initializer for 'Gdip' threw an exception.

Followed by:

Error in CreateChunkAndRenderBlock: The type initializer for 'Gdip' threw an exception.
DbUpdate complete

0, 0

70338 0  0
Time is 00:00:51.4574185

Rendering Level 19 with source coordinates X -640 to 286, Z -370 to 592
926 of 1024 lines render @ zoom level 19
Rendering Level 18 with source coordinates X -320 to 144, Z -186 to 296
464 of 512 lines render @ zoom level 18
Rendering Level 17 with source coordinates X -160 to 72, Z -94 to 148
232 of 256 lines render @ zoom level 17
Rendering Level 16 with source coordinates X -80 to 36, Z -48 to 74
116 of 128 lines render @ zoom level 16
Rendering Level 15 with source coordinates X -40 to 18, Z -24 to 38
58 of 64 lines render @ zoom level 15
Rendering Level 14 with source coordinates X -20 to 10, Z -12 to 20
30 of 32 lines render @ zoom level 14
Rendering Level 13 with source coordinates X -10 to 6, Z -6 to 10
16 of 16 lines render @ zoom level 13
Rendering Level 12 with source coordinates X -6 to 4, Z -4 to 6
10 of 8 lines render @ zoom level 12
Rendering Level 11 with source coordinates X -4 to 2, Z -2 to 4
6 of 4 lines render @ zoom level 11
Rendering Level 10 with source coordinates X -2 to 2, Z -2 to 2
4 of 2 lines render @ zoom level 10      Creating new chunks.sqlite backup...
Updating chunks.sqlite...
Total Time 00:00:53.3046817
Map generation finished!

It generates the output directory but seems to just be a blank map.

Missing Textures

I'm using cs 0.5.1 on a Ubuntu 16.04.6 LTS... I have downloaded and saved all the files from the https://aka.ms/resourcepacktemplate link and updated the terrain_texture.json, but still, get the errors on map rendering.

  • Missing Texture(2): 3 98 12 minecraft:crimson_slab:System.Collections.Generic.Dictionary2[System.String,System.Object] (8)
  • Missing Texture(2): 0 97 15 minecraft:crimson_double_slab:System.Collections.Generic.Dictionary2[System.String,System.Object] (8)
  • Missing Texture(2): 2 94 8 minecraft:crimson_hyphae:System.Collections.Generic.Dictionary`2[System.String,System.Object] (8)

Map Cant Seem To Update

Ubuntu 16.04

I previously generated a map earlier this morning. Played MC, copied over the files and ran the PapyrusCs again:

root@ubuntu:/var/www/html# /home/ubuntu/papyruscs/PapyrusCs --world="/home/ubuntu/Bedrock/db" --output="/var/www/html"
Opening world...
Generating a list of all chunk keys in the database.
This could take a few minutes
Total Chunk count 14412

The total dimensions of the map are
  X: 3 to 341
  Z: -83 to 84

Reading terrain_texture.json...

The maximum diameter of the map is 342
For 2 chunks per tile, new max diameter is 171
To generate the zoom levels, we expand the diameter to 256
This results in 9 zoom levels
Found chunks.sqlite, this must be an update of the map
Overriding settings with: Format png, Quality -1
Setting Zoom levels to 20 down to 12
Found 65993 subchunks which are already rendered
Grouping subchunks... 14412
Grouped by 2 to 4064 tiles
Average of 3.54625984251969 chunks per tile

0, 0

0, 0

0, 0

0, 0
Post complete
DbUpdate complete

0, 0

4064 0 0 0
Time is 00:00:05.6488597

Rendering Level 19 with source coordinates X 0 to 170, Z -42 to 42
170 of 256 lines render @ zoom level 19
Rendering Level 18 with source coordinates X 0 to 86, Z -22 to 22
86 of 128 lines render @ zoom level 18
Rendering Level 17 with source coordinates X 0 to 44, Z -12 to 12
44 of 64 lines render @ zoom level 17
Rendering Level 16 with source coordinates X 0 to 22, Z -6 to 6
22 of 32 lines render @ zoom level 16
Rendering Level 15 with source coordinates X 0 to 12, Z -4 to 4
12 of 16 lines render @ zoom level 15
Rendering Level 14 with source coordinates X 0 to 6, Z -2 to 2
6 of 8 lines render @ zoom level 14
Rendering Level 13 with source coordinates X 0 to 4, Z -2 to 2
2 of 4 lines render @ zoom level 13
Rendering Level 12 with source coordinates X 0 to 2, Z -2 to 2
2 of 2 lines render @ zoom level 12      Could not write map.html
Could not find a part of the path '/var/www/html/update/map.html'.
Deleting old chunks.sqlite backup...
Creating new chunks.sqlite backup...
Updating chunks.sqlite...
Total Time 00:00:05.7514355
Map generation finished!

It seems to be complaining about /var/www/html/update/map.html but that file was never generated in the first place:

root@ubuntu:/var/www/html# tree -L 3
.
├── chunks-backup.sqlite
├── chunks.sqlite
├── index.html
├── index.nginx-debian.html
└── map
    ├── dim0
    │   ├── 12
    │   ├── 13
    │   ├── 14
    │   ├── 15
    │   ├── 16
    │   ├── 17
    │   ├── 18
    │   ├── 19
    │   └── 20
    ├── map.html
    └── map.old

So, how do I update my map?

Command not found

$ papyruscs --world "My World/db" --output "C:\papyrus"
papyruscs: command not found

Linux OS
MC BEDROCK

Players list empty

When I run the app (fresh compile from master) - with the --playericons option:

  1. I get an Assertion Failed error after the "Total Time" is displayed:
    Assertion failed: dummy_versions_.next_ == &dummy_versions_, file c:\users\deepblue1\source\repos\leveldb-mcpe\db\version_set.cc, line 798
    (Windows 10 environment)

  2. My playersData.js just contains an empty "players" array:
    // NOTE: Please only modify player attributes below such as name, color, and visible
    // To hide a player's marker, change their 'visible' variable from 'true' to 'false'
    // This file is automatically updated, and if other parts are changed, it will fail to update
    // Changes will only be read from the /map/playersData.js file - /update/playersData.js will be overwritten, so don't make changes there
    var playersData = {
    "players": []
    };

Object Reference not set to an instance of an object.

I'm getting approximatetly 10-20 of these messages when I build my first map

65966 of 102581 Chunks render @ 53.9 cps Error in CreateChunkAndRenderBlock: Object reference not set to an instance of an object.

I'm running the compiled version, on newly built Ubuntu 18.0.4 build 64-bit (though the hardware is about 10 years old).

Render Underground

Hello,
I want to render the underground of the map.
I see that in the documentation I need to call the program three times.
I have done that and the updated map for the overworld section is blank and no underground layer is available to choose...
Note: In this map we have not visited "The End" yet so I cannot call -d 2 as it just throws an exception.
What am I doing wrong ?

Two requests

I really like this program. I am asking for two features to be added. The first is an option to put the render time on the map. This would allow users to see how updated the map is. The second feature is an option to only update player positions. This would us to run a script to do a update render and in between those run a much faster update for just player positions. Once again, thanks for the great program.

Clean unused tiles after generation.

This happens when you generate your map again. When the level is raised since your last generation (since the chunks is likely to grow), it's normal to have certain tiles that is used to be there but now in a lower level. if those tiles are not overrode on the higher level generation, they would still appear in the map, populating the correct map. Should delete them.

Live updates

Is there any suggestions or guidance for running this against a live server, or best practices for getting updated maps throughout the day for an active server?

World file corruption... System.AggregateException ... (encountered a block compressed with an unknown decompressor)

I tried running this program today on my 1.16.100 Bedrock world, running official bedrock dedicated server on Ubuntu 20.04.1 x64. I did not backup my world save, and I left the dedicated server running.... I figured the program would only be READING from the world save and couldn't cause any corruption in the source files. I was wrong. Papyrus ended with the errors shown in the log pasted below. I stopped the server software and restarted it and it gave the following error:

[WARN] LevelDB worlds/SMP/db status NOT OK(Corruption: 37 missing files; e.g.: worlds/SMP/db/079110.ldb). Trying repair.

Upon logging in, my character has no inventory and large chunks of the land and our builds are missing. My last backup is a month old unfortunately and we are missing a lot of work now. Does anyone know if there is a better way to fix the corruption to get back to a more recent state?

./PapyrusCs --world "/opt/bedrock-server/worlds/SMP/db" --output html/
Opening world...
Generating a list of all chunk keys in the database.
This could take a few minutes
Total Chunk count 59003

The total dimensions of the map are
X: -292 to 279
Z: -178 to 782

Tilesize is 512x512
Reading terrain_texture.json...

The maximum diameter of the map is 961
For 2 chunks per tile, new max diameter is 481
To generate the zoom levels, we expand the diameter to 512
This results in 10 zoom levels
Found 0 subchunks which are already rendered
Grouping subchunks... 59003
Grouped by 2 to 17488 tiles
Average of 3.4 chunks per tile
3621 of 59003 Chunks render @ 10.7 cps
Queue Stat: GetData 0 Render 0 Save 0 Db 0
6984 of 59003 Chunks render @ 10.3 cps
Queue Stat: GetData 0 Render 21 Save 23 Db 0
10602 of 59003 Chunks render @ 9.8 cps
Queue Stat: GetData 0 Render 0 Save 25 Db 0
13837 of 59003 Chunks render @ 9.2 cps
Queue Stat: GetData 0 Render 20 Save 0 Db 0
14355 of 59003 Chunks render @ 9.2 cps
Queue Stat: GetData 0 Render 0 Save 9 Db 0

Queue Stat: GetData 0 Render 0 Save 9 Db 0

Queue Stat: GetData 0 Render 0 Save 9 Db 0

Queue Stat: GetData 0 Render 0 Save 9 Db 0

Queue Stat: GetData 0 Render 0 Save 9 Db 0

Queue Stat: GetData 0 Render 0 Save 9 Db 0

Queue Stat: GetData 0 Render 0 Save 9 Db 0

Queue Stat: GetData 0 Render 0 Save 9 Db 0

Queue Stat: GetData 0 Render 0 Save 9 Db 0

Queue Stat: GetData 0 Render 0 Save 9 Db 0

Queue Stat: GetData 0 Render 0 Save 9 Db 0

Queue Stat: GetData 0 Render 0 Save 9 Db 0

Queue Stat: GetData 0 Render 0 Save 9 Db 0

Post complete

Queue Stat: GetData 0 Render 0 Save 0 Db 0

Queue Stat: GetData 0 Render 0 Save 0 Db 0

Queue Stat: GetData 0 Render 0 Save 0 Db 0
Unhandled exception. System.AggregateException: One or more errors occurred. (One or more errors occurred. (One or more errors occurred. (One or more errors occurred. (One or more errors occurred. (Not implemented: encountered a block compressed with an unknown decompressor)))))
---> System.AggregateException: One or more errors occurred. (One or more errors occurred. (One or more errors occurred. (One or more errors occurred. (Not implemented: encountered a block compressed with an unknown decompressor))))
---> System.AggregateException: One or more errors occurred. (One or more errors occurred. (One or more errors occurred. (Not implemented: encountered a block compressed with an unknown decompressor)))
---> System.AggregateException: One or more errors occurred. (One or more errors occurred. (Not implemented: encountered a block compressed with an unknown decompressor))
---> System.AggregateException: One or more errors occurred. (Not implemented: encountered a block compressed with an unknown decompressor)
---> System.ApplicationException: Not implemented: encountered a block compressed with an unknown decompressor
at leveldb_sharp_std.Native.CheckError(String error) in C:\projects\papyruscs-19426\leveldb-sharp-std\Native.cs:line 52
at leveldb_sharp_std.Native.leveldb_get(IntPtr db, IntPtr readOptions, Byte[] key, UIntPtr& valueLength) in C:\projects\papyruscs-19426\leveldb-sharp-std\Native.cs:line 216
at leveldb_sharp_std.DB.Get(ReadOptions options, Byte[] key, UIntPtr& length) in C:\projects\papyruscs-19426\leveldb-sharp-std\DB.cs:line 193
at leveldb_sharp_std.DB.Get(Byte[] key, UIntPtr& length) in C:\projects\papyruscs-19426\leveldb-sharp-std\DB.cs:line 198
at Maploader.World.World.GetChunkData(GroupedChunkSubKeys groupedChunkSubKeys) in C:\projects\papyruscs-19426\Maploader\World\World.cs:line 515
at PapyrusAlgorithms.Strategies.Dataflow.GetDataBlock.<>c__DisplayClass3_0.<.ctor>b__0(IEnumerable1 groupedChunkSubKeys) in C:\projects\papyruscs-19426\PapyrusAlgorithms\Strategies\Dataflow\GetDataBlock.cs:line 24 at System.Threading.Tasks.Dataflow.TransformManyBlock2.ProcessMessage(Func2 transformFunction, KeyValuePair2 messageWithId)
at System.Threading.Tasks.Dataflow.Internal.TargetCore1.ProcessMessagesLoopCore() --- End of inner exception stack trace --- --- End of inner exception stack trace --- --- End of inner exception stack trace --- --- End of inner exception stack trace --- --- End of inner exception stack trace --- at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout) at PapyrusAlgorithms.Strategies.Dataflow.DataFlowStrategy1.RenderInitialLevel() in C:\projects\papyruscs-19426\PapyrusAlgorithms\Strategies\Dataflow\DataFlowStrategy.cs:line 193
at PapyrusCs.Program.RunMapCommand(Options options) in C:\projects\papyruscs-19426\PapyrusCs\Program.cs:line 234
at PapyrusCs.Program.<>c.

b__4_0(Options opts) in C:\projects\papyruscs-19426\PapyrusCs\Program.cs:line 45
at CommandLine.ParserResultExtensions.MapResult[T1,T2,T3,TResult](ParserResult1 result, Func2 parsedFunc1, Func2 parsedFunc2, Func2 parsedFunc3, Func`2 notParsedFunc)
at PapyrusCs.Program.Main(String[] args) in C:\projects\papyruscs-19426\PapyrusCs\Program.cs:line 40
Aborted (core dumped)

Running multiple papyruscs commands regenerates some images

I have a script that runs papyruscs multiple times sequentially (I'm not trying to do anything in parallel), to generate the overworld, underground, aquatic, nether, etc. It works fine and the resulting maps look like what I'd expect. However, I have noticed something which seems a bit odd...

If I run the commands once, with no output folder already existing, it takes a while but everything is generated.
If I then run it again, on exactly the same minecraft world, it does run significantly faster (to be expected because it shouldn't have to do very much) - except it does regenerate some image files (I can see based on the "last modified" stamps). I've confirmed using file hashes that the files re-written are identical to the original ones.

As I say, in terms of the end result, it isn't an issue, but I'm trying to optimise my process so I only need to transfer image files to the server that have changed. Because this issue is causing files to be rewritten (even if they are identical), it means more files are being transferred than necessary (and it must be slowing down PapyrusCS in the update runs because it's re-rendering more than it needs)

Missing Texture(2) error

I am getting "Missing Texture(2)" errors for "bee_nest" and "end_brick_stairs" and I can find no documentation for fixing these errors.

I got the latest vanilla texture pack, I put the textures/blocks folder and the the two json files. textures/terrain_texture.json and textures/item_texture.json into the papyrus/textures folder, but this doesn't seem to help.

why running so slow on my server?

root@www:/mnt/vdb/mcpe# /mnt/vdb/mcpe/PapyrusCs -w /tmp/mcpedb/db/ -o /opt/mcpemap --dim 0
Opening world...
Generating a list of all chunk keys in the database.
This could take a few minutes
Total Chunk count 5526
The total dimensions of the map are
X: -102 to 57
Z: -157 to 58
Tilesie is 512x512
Reading terrain_texture.json...
The maximum diameter of the map is 216
For 2 chunks per tile, new max diameter is 108
To generate the zoom levels, we expand the diameter to 128
This results in 8 zoom levels
Found 0 subchunks which are already rendered
Grouping subchunks... 5526
Grouped by 2 to 1706 tiles
Average of 3.2 chunks per tile
2461 of 5526 Chunks render @ 34.4 cps
Missing Texture(2): 10 66 8 minecraft:barrel:1 (8)
2590 of 5526 Chunks render @ 34.1 cps
Missing Texture(2): 0 66 9 minecraft:barrel:1 (8)
Missing Texture(2): 14 69 14 minecraft:barrel:1 (8)
Missing Texture(2): 9 63 5 minecraft:barrel:1 (8)
Missing Texture(2): 8 63 11 minecraft:barrel:1 (8)
2854 of 5526 Chunks render @ 35.5 cps
Missing Texture(2): 4 69 15 minecraft:barrel:1 (8)
3114 of 5526 Chunks render @ 33.7 cps
Queue Stat: GetData 0 Render 23 Save 0 Db 0
4147 of 5526 Chunks render @ 32.3 cps
Missing Texture(2): 4 78 2 minecraft:wall_banner:2 (8)
Missing Texture(2): 10 78 2 minecraft:wall_banner:2 (8)
Missing Texture(2): 0 78 6 minecraft:wall_banner:4 (8)
Missing Texture(2): 14 78 6 minecraft:wall_banner:5 (8)
Missing Texture(2): 0 78 12 minecraft:wall_banner:4 (8)
Missing Texture(2): 14 78 12 minecraft:wall_banner:5 (8)
Missing Texture(2): 4 78 0 minecraft:wall_banner:3 (8)
Missing Texture(2): 10 78 0 minecraft:wall_banner:3 (8)
5313 of 5526 Chunks render @ 32.6 cps Post complete
5444 of 5526 Chunks render @ 32.7 cps
Queue Stat: GetData 0 Render 18 Save 24 Db 0
Queue Stat: GetData 0 Render 10 Save 7 Db 0
Queue Stat: GetData 0 Render 2 Save 7 Db 0
DbUpdate complete
28989, 0
1706 1706 1705
Time is 00:02:57.4384638
Rendering Level 19 with source coordinates X -52 to 28, Z -78 to 30
80 of 128 lines render @ zoom level 19
Rendering Level 18 with source coordinates X -26 to 14, Z -40 to 16
36 of 64 lines render @ zoom level 18

rendering process lasts for 2hours now, and it's still running.
my server is 2cpu with a 4G ram.

Any way to force to Bedrock to save all visible chunks?

Your app works well, but it only renders chunks about 10 to 16 chunks away. I read somewhere it's because they're not actually saved to disk beyond a short distance to help performance, except for chunks with certain pre-generated structures. Is there any way to force bedrock to save all visible chunks, or at least the first layer exposed to the sky?

Differentiate between "void" and "unloaded chunk"?

Could there be anyway to differentiate on the The End map "missing chunks" from "the void"? Looking at this as an example, it's readily apparent there's at least a couple of chunks that haven't been loaded - but you can't tell how far the unloaded chunks extend - is all that to the left void or unloaded?

I don't know if it might be possible to use a slightly different colour or texture maybe?

image

Missing Texture: Smooth Quartz Stairs

I just started using this tool today, after updating to 1.16
Overall seems to work well.

After seeing a plethora of missing textures, I updated the textures directory from https://aka.ms/resourcepacktemplate , but I'm still seeing one showing many many times.

Missing Texture(2): 1 75 12 minecraft:smooth_quartz_stairs:0 (8)

Exception on Compiled Version

I gave up on the binary, I dont know if the latest release already included the latest updates (using PapyrusCs --version just show version 1.0.0. I doubt thats the real version.

Now on a compiled version, im getting this exception:

402 44 43 43

402 44 43 43
2175 of 14761 Chunks render @ 5.4 cps
402 44 44 44
DbUpdate complete

1817, 9178

402 44 44 44

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
   at PapyrusCs.Program.RunMapCommand(Options options) in /root/papyruscs/PapyrusCs/Program.cs:line 558
   at PapyrusCs.Program.<>c.<Main>b__4_0(Options opts) in /root/papyruscs/PapyrusCs/Program.cs:line 52
   at PapyrusCs.Program.Main(String[] args) in /root/papyruscs/PapyrusCs/Program.cs:line 49

Strange image rendering issue

Any clues/ideas why I have this rendering issue?
image

I am using version 0.5.1 on Ubuntu 20.04 LTS.

Do you need any other information?
Thanks for the help!

Linux version reports corruption after first run

I did a run of PapyrusCS on my minecraft map, which worked fine the first time, but if I try to run it again on the same world and location, I get this:


root@smavks:/home/gameserver/papyruscs# ./PapyrusCs --world "/home/gameserver/minecraft/worlds/[SM] World/db" --output "/var/www/html/minecraft/"
Opening world...
Could not open world at '/home/gameserver/minecraft/worlds/[SM] World/db'!. Did you specify the .../db folder?
The reason was:
Corruption: 145 missing files; e.g.: /home/gameserver/minecraft/worlds/[SM] World/db/147499.ldb

System.AccessViolationException

V0.4.0 Win64

Ran it on a small test world: all fine.

Ran it on a somewhat bigger world and got an error after a while:

.\PapyrusCs.exe --world "../minecraftWorlds/My World/db" --output "C:\tmp\myworld"

171885 of 536568 Chunks render @ 172,1 cps Fatal error. System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at leveldb_sharp_std.Native.leveldb_get(IntPtr, IntPtr, IntPtr, UIntPtr, UIntPtr ByRef, IntPtr ByRef)
at leveldb_sharp_std.Native.leveldb_get(IntPtr, IntPtr, IntPtr, UIntPtr, UIntPtr ByRef, IntPtr ByRef)
at leveldb_sharp_std.Native.leveldb_get(IntPtr, IntPtr, Byte[])
at Maploader.World.World.GetChunkData(Maploader.World.GroupedChunkSubKeys)
at PapyrusCs.Strategies.Dataflow.GetDataBlock+<>c__DisplayClass4_0.<.ctor>b__0(System.Collections.Generic.IEnumerable1<Maploader.World.GroupedChunkSubKeys>) at System.Threading.Tasks.Dataflow.TransformManyBlock2[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=],[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=]].ProcessMessage(System.Func2<System.__Canon,System.Collections.Generic.IEnumerable1<System.__Canon>>, System.Collections.Generic.KeyValuePair2<System.__Canon,Int64>) at System.Threading.Tasks.Dataflow.TransformManyBlock2+<>c__DisplayClass9_0[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=],[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=]].<.ctor>b__3(System.Collections.Generic.KeyValuePair2<System.__Canon,Int64>) at System.Threading.Tasks.Dataflow.Internal.TargetCore1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=***]].ProcessMessagesLoopCore()
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(System.Threading.Thread, System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef, System.Threading.Thread)
at System.Threading.ThreadPoolWorkQueue.Dispatch()

Possible to delete chunks?

Hi,

found this tool today and start loving it. Works like charm.

So this is not a bug request.......... just asking myself if you can render the map will it possible to delete chunks? Still looking for a map editor for bedrock maps.......... but not able to find any..

Improve error handling

I have a script which automatically renders over world, nether, and end for my worlds, but some don't have an end yet. Papyrus throws an error when trying to render the end, having a more graceful exit would be nice

fails to open db for one of my worlds

I'm running 2 servers at home. I set up a script to run PapyrusCs against the backup files after nightly backup runs on each server.

It works fine on one of them (survival world) - generated and uploaded a map.
It fails on the other one (castle world) with a message like this:

$ /home/edward/src/papyrus/PapyrusCs --htmlfile 'index.html' -o ./tmp/output -w ./tmp/db/
Opening world...
Could not open world at './tmp/db/'!. Did you specify the .../db folder?
The reason was:
Invalid argument: ./tmp/db/: does not exist (create_if_missing is false)

I've tried comparing the files between the worlds but I don't see anything obviously different - can you help?

survival_world.zip
castle_world.zip

SQLite Error 14

I just tryed to use this on my Minecraft World from the Bedrock server I'm running, & this is the error I got in command prompt. Could somebody point me in the right direction for fixing this?

Opening world...
Generating a list of all chunk keys in the database.
This could take a few minutes
Total Chunk count 32832

The total dimensions of the map are
  X: -181 to 220
  Z: -136 to 142

Tilesize is 512x512
Reading terrain_texture.json...

The maximum diameter of the map is 402
For 2 chunks per tile, new max diameter is 201
To generate the zoom levels, we expand the diameter to 256
This results in 9 zoom levels
Unhandled exception. Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 14: 'unable to open database file'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteConnection.Open()
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected)
   at Microsoft.EntityFrameworkCore.Sqlite.Storage.Internal.SqliteDatabaseCreator.Create()
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
   at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(DatabaseFacade databaseFacade)
   at PapyrusCs.Strategies.Dataflow.DataFlowStrategy`1.Init() in C:\projects\papyruscs-19426\PapyrusCs\Strategies\Dataflow\DataFlowStrategy.cs:line 416
   at PapyrusCs.Program.RunMapCommand(Options options) in C:\projects\papyruscs-19426\PapyrusCs\Program.cs:line 428
   at PapyrusCs.Program.<>c.<Main>b__4_0(Options opts) in C:\projects\papyruscs-19426\PapyrusCs\Program.cs:line 49
   at CommandLine.ParserResultExtensions.MapResult[T1,T2,T3,TResult](ParserResult`1 result, Func`2 parsedFunc1, Func`2 parsedFunc2, Func`2 parsedFunc3, Func`2 notParsedFunc)
   at PapyrusCs.Program.Main(String[] args) in C:\projects\papyruscs-19426\PapyrusCs\Program.cs:line 46

Not really an issue, Markers possible?

Hey love your mapper, in my opinion it is the best for MCBE.
My Questions is above. Is it possible to add markers? Or is something like that planned?
and does the isometric perspective is still in development?
Greetings

Very high memory usage on the Rendering Level stage

I'm rendering a world that's less than 200Mb. With 4 threads, Papyrus is rendering at 6~7 cps. It takes 2 hours to render ~50000 chunks. That could be better, but I don't mind waiting. During this phase memory usage remains controlled (less than 1GB)

However, when Papyrus gets to the point where it says:

Rendering Level 19 with source coordinates X -80 to 122, Z -196 to 58
202 of 256 lines render @ zoom level 19

memory usage skyrockets to fill all my 16Gb of RAM and then starts swapping.

On htop:

VIRT   RES   SHR  S CPU% MEM%   TIME+  Command
24.5G 13.9G  5956 D 36.6 89.7  8h31:49 ./PapyrusCs ...

that's ~25Gb of virtual memory, 13.9 of which are resident (because my desktop is loaded)
My RAM and Swap are to the brim:

Mem[|||||||||||||||||||||||||||14.9G/15.5G]   Tasks: 170, 525 thr; 2 running
Swp[|||||||||||||||||||||||||||12.4G/13.7G]   Load average: 12.15 11.91 9.37 

It won't be long until it gets oom-killed.

Is it keeping every rendered image in RAM somehow?

Appears to be hanging

Hi there,

I am trying to use this in conjunction with Vellum and the auto render function and latest bedrock server.

What I am seeing is when rendering initially start there is high cpu usage for a while which then drops to nothing and the process appears to stop at that point without moving on to the next stage. I can see output in the correct folder with a bunch of .png showing the map but it doesn't progress on.

Vellum config:
"Renders": { "EnableRenders": true, "PapyrusBinPath": "C:/papyruscs-0.5.1/PapyrusCs.exe", "PapyrusOutputPath": "C:/papyruscs-output", "RenderInterval": 180.0, "PapyrusGlobalArgs": "-w $WORLD_PATH -o $OUTPUT_PATH --htmlfile index.html -f png -q 100 --deleteexistingupdatefolder", "PapyrusTasks": [ "--dim 0", "--dim 1", "--dim 2" ], "LowPriority": false

Vellum appears to be stuck at:
[ VELLUM ] -> Rendering map 1/3...

If I try to close the vellum window it moves on to map 2/3 which then has high cpu use, produces an index.html and then exits without map 3/3. When I open the index file the entire map is black.

Any help would be appreciated.

Cheers

certain textures loading defaults

So I updated all the textures, and loaded my world. Found that all logs, no matter what they are, and if they're stripped or not, are showing as Oak. Also all slabs are showing as smooth stone.

Multiple layers

Is it currently possible with the app, or are there plans to implement a way, to drill down to layers below the top level of the ground to explore underneath?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.