Commit graph

274 commits

Author SHA1 Message Date
31eb92864c
Split up BlockInfo type
By storing block types and depth values separately, the processed world
data can be compressed better, decreasing data size by ~10%.
2023-05-06 00:52:40 +02:00
0b392d7a3a
world/layer: move more top_layer() logic into LayerEntry::fill() 2023-05-06 00:33:34 +02:00
0437ec70b6
world/layer: introduce LayerEntry struct 2023-05-06 00:33:13 +02:00
2d5eec13c2
world/layer: move Option into BlockInfo struct
Preparation for top_layer() cleanup.
2023-05-05 23:29:57 +02:00
263fc6d6ce
world/layer: remove unused y coordinate from BlockInfo 2023-05-05 23:15:34 +02:00
924ee01f91
world/layer: introduce LayerData struct to fix clippy type complexity warning 2023-05-05 23:08:39 +02:00
b66bdf5ce1
resource: implement water/foliage/grass color computation 2023-05-04 23:18:04 +02:00
25710bb1ed
Move block_color() to new module 2023-05-04 22:18:15 +02:00
2dd9283d95
minedmap: move some internal functions out of impl blocks 2023-05-01 17:51:38 +02:00
1a5e8894fe
minedmap: split up main module 2023-04-30 11:07:47 +02:00
61fb23b94b
Move main source file to bin subdirectory 2023-04-30 10:46:56 +02:00
d79377ad6b
main: pass biome into block_color()
No biome edge smoothing yet.
2023-04-10 20:58:07 +02:00
0d81dfa35b
main: store biome data in processed data files 2023-04-09 23:20:20 +02:00
e912f60ba3
world/layer: add biome data to returned layer 2023-04-09 22:56:02 +02:00
0d2c99dacf
world/chunk: include biomes in section iterator item 2023-04-08 21:20:00 +02:00
ddc515a9d7
world/section: implement biome_at() 2023-04-08 21:20:00 +02:00
b93e613152
types: add LayerBlockCoords::offset() helper 2023-04-08 21:20:00 +02:00
aa2edc3d13
world/section: move biome_types field out of BiomesV0 enum 2023-04-08 21:20:00 +02:00
c6843cfb9c
world: resolve biome palette entries for v1.18 biome data 2023-04-07 09:38:31 +02:00
b8b0e0627f
world: correctly name BiomesV1_18 2023-04-07 09:37:02 +02:00
e117c76937 world: pass biome data into chunk/section structures 2023-04-07 09:34:56 +02:00
524b1b1913 resource: add biome data 2023-04-07 09:34:56 +02:00
e462e17ee2
resource: rename BlockColor to Color
The same struct will be used for biomes.
2023-04-05 20:05:59 +02:00
f2b7808e84
world: distinguish pre-v1.18 biome data structures 2023-04-02 18:17:13 +02:00
bcec704d27
main: add height-based color modification
Modify terrain color depending on the height to give a sense of
elevation.
2023-03-04 21:45:59 +01:00
46802116d9
resource: change BlockColor into an array 2023-03-04 21:32:15 +01:00
fbf212b55f
main: render light map 2023-03-04 20:36:25 +01:00
116e7e5fb6
world/layer: collect block light data with top layer 2023-03-04 20:36:05 +01:00
4fd316f3fc
world/layer: return None from top_layer() for empty chunks
Allow ignoring these chunks for the light map as well.
2023-03-04 20:33:10 +01:00
202364bfca
main: factor out overlay_chunk() function to build region images 2023-03-04 20:30:39 +01:00
51602d5fc1 world/chunk: add block light to section iterator items 2023-03-04 17:38:56 +01:00
482471492c world/chunk: store BlockLight data in section map 2023-03-04 17:38:56 +01:00
b4eb0d39f9 world/section: add BlockLight type 2023-03-04 17:38:56 +01:00
66f8d155f5
world/section: reorder type definitions 2023-03-04 16:58:52 +01:00
47dc3795a3
world: introduce SectionIterItem struct 2023-03-04 16:57:59 +01:00
56573640fd
world/section: prefer slice references to Vec and fastnbt types
Makes the code a bit nicer and saves repeated deref calls into fastnbt.
2023-03-04 00:36:58 +01:00
a4b726992a
io/storage: compress/decompress data in bulk
The bulk API is signifiantly faster than the stream API.
2023-03-03 20:58:35 +01:00
fa04e3e94a
main: actually render tiles 2023-03-03 20:41:08 +01:00
26555f1745
src/world/layer: make BlockInfo fields public
There were left private by accident.
2023-03-03 20:36:09 +01:00
d5406851b4
main: load processed regions from render_tile() 2023-03-03 19:45:24 +01:00
89f35024b7
main: introduce ProcessedRegion type alias 2023-03-03 19:45:00 +01:00
e0467de080
main: rename save_region() argument from region to coords
For consistency.
2023-03-03 19:22:45 +01:00
657d8af8a7
io/storage: add read() function 2023-03-03 19:20:56 +01:00
dda81546de
main: add map_path() method to Config struct 2023-03-03 19:13:15 +01:00
51a0e178b1
main: do not rebuild region filename from coords 2023-03-03 19:06:54 +01:00
2ccb282f6f
main: rename Paths to Config 2023-03-03 19:02:55 +01:00
ec09afcf15
main: fully print error messages 2023-03-02 01:23:24 +01:00
1d4c7a86ff
world/layer: replace iproduct!() with nested loops
iproduct!() is slow for more than 2 parameters.
2023-03-02 01:00:55 +01:00
ed5fb9a6cf
resource: remove LEGACY_BLOCK_TYPES reexport
As the array is only used internally now, we can also remove the
"minecraft:" prefix from the entries.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2023-03-02 00:41:39 +01:00
04bc3e5d53
world/section: perform palette lookups early
Look up block types for all palette entries once during section
construction, rather than on block_at(), reducing the number of HashMap
lookups by ~1000.
2023-03-02 00:37:25 +01:00