Commit graph

418 commits

Author SHA1 Message Date
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
3ea93296d7
Update dependencies 2023-04-08 21:19:55 +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
e62e19796c
Update dependencies 2023-04-01 16:15:29 +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
ed422be451
TODO.md: update
- fastnbt decode doesn't really appear in profiles, so optimizing it
  using borrowed types is moot
- What does appear prominently in the profile though is top_layer() and
  block_at()
2023-03-04 11:39:47 +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
e6e1f55fe9
Use zlib-ng backend for flate2 by default
Still allow disabling the feature to avoid the cmake dependency.
2023-03-03 20:00:03 +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
5c82b80924
world/section: replace block_id_at() method with block_at()
Directly return a BlockType, preparing for early lookup of palettes.
2023-03-02 00:31:34 +01:00
f2ab424590
world: store BlockTypes in section types
Prepare for sections returning BlockType data directly instead of block IDs.
2023-03-02 00:24:59 +01:00
89af4aaee2
resource: extend BlockTypes with legacy block type data
Allow to directly map from id/data values to BlockType.
2023-03-02 00:24:56 +01:00
4c2fd6c1a9
resource: rename BlockTypeMap to BlockTypes
The block_types() function it turned into a Default implementation.
2023-03-01 23:59:27 +01:00
95e4e45974
resource: remove "minecraft:" prefix from hash keys
Shorter keys mean less data to hash.
2023-03-01 22:03:09 +01:00
483cdf48c8
resource: update block_types with Minecraft 1.19.2 data
An older Minecraft version had been used to generate the data for the
Rust rewrite by accident.
2023-03-01 22:01:30 +01:00
cbbc6d8f35
resource: make BlockTypeMap return BlockType without reference 2023-03-01 21:58:29 +01:00
0673c89bd8
main: add stub tile renderer struct
This only prints messages so far.
2023-03-01 21:45:38 +01:00
73b13c1afb
main: move path handling to separate struct 2023-03-01 21:02:24 +01:00
c5ca1d9821
main: pass region_dir to RegionProcessor::new(), consume when processing 2023-03-01 19:27:09 +01:00