Commit Graph

292 Commits

Author SHA1 Message Date
Joshua Barretto
8a2dc836d8 Fixed cut-off cliff, optimised structure generation 2019-09-23 16:20:28 +01:00
Joshua Barretto
e77f165da6 Improved SmallCache 2019-09-23 15:17:06 +01:00
Imbris
f182733074 Small cache experiments 2019-09-22 22:19:07 -04:00
Imbris
debcb11e18 Simplify lerping and use smoothstep interpolation instead of cosine 2019-09-21 19:46:27 -04:00
Acrimon
7647e54858 Drastically faster diffuse 2019-09-21 17:40:27 +00:00
Joshua Barretto
542ac41e7a Merge branch 'xacrimon/rng-init-noise' into 'master'
Update some deps, fix hashbrown not compiling and rework the ad-hoc PRNG for RandomField.

See merge request veloren/veloren!500
2019-09-20 06:13:48 +00:00
Acrimon
7463db0dd9 Formatted code. 2019-09-17 20:35:53 +02:00
Acrimon
2786e28577 Fixed rng stuff. 2019-09-17 16:56:23 +02:00
Acrimon
85e6e54dc2 Fixed compile errors. 2019-09-17 16:12:17 +02:00
Acrimon
37d71cee26 Added some reasoning. 2019-09-17 16:07:24 +02:00
Acrimon
1dfbe40731 Made the worldgen noise generators seed from the RNG and got rid of zerocopy. 2019-09-17 16:05:08 +02:00
Joshua Yanovski
9ba64ca57f Addressing code review. 2019-09-16 15:11:47 +02:00
Joshua Yanovski
2abf7cd016 Fixing more rustfmt errors. 2019-09-16 04:05:36 +02:00
Joshua Yanovski
95b02912b6 Fixing rustfmt. 2019-09-16 04:01:05 +02:00
Joshua Yanovski
b9f545f97c Fixing previous commit. 2019-09-16 03:54:32 +02:00
Joshua Yanovski
9a4e5e06f2 Fixing previous commit. 2019-09-16 03:51:08 +02:00
haslersn
1796c09ca1 common: Rework volume API
See the doc comments in `common/src/vol.rs` for more information on
the API itself.

The changes include:

* Consistent `Err`/`Error` naming.
  * Types are named `...Error`.
  * `enum` variants are named `...Err`.
* Rename `VolMap{2d, 3d}` -> `VolGrid{2d, 3d}`. This is in preparation
  to an upcoming change where a “map” in the game related sense will
  be added.
* Add volume iterators. There are two types of them:
  * _Position_ iterators obtained from the trait `IntoPosIterator`
    using the method
    `fn pos_iter(self, lower_bound: Vec3<i32>, upper_bound: Vec3<i32>) -> ...`
    which returns an iterator over `Vec3<i32>`.
  * _Volume_ iterators obtained from the trait `IntoVolIterator`
    using the method
    `fn vol_iter(self, lower_bound: Vec3<i32>, upper_bound: Vec3<i32>) -> ...`
    which returns an iterator over `(Vec3<i32>, &Self::Vox)`.
  Those traits will usually be implemented by references to volume
  types (i.e. `impl IntoVolIterator<'a> for &'a T` where `T` is some
  type which usually implements several volume traits, such as `Chunk`).
  * _Position_ iterators iterate over the positions valid for that
    volume.
  * _Volume_ iterators do the same but return not only the position
    but also the voxel at that position, in each iteration.
* Introduce trait `RectSizedVol` for the use case which we have with
  `Chonk`: A `Chonk` is sized only in x and y direction.
* Introduce traits `RasterableVol`, `RectRasterableVol`
  * `RasterableVol` represents a volume that is compile-time sized and has
    its lower bound at `(0, 0, 0)`. The name `RasterableVol` was chosen
    because such a volume can be used with `VolGrid3d`.
  * `RectRasterableVol` represents a volume that is compile-time sized at
    least in x and y direction and has its lower bound at `(0, 0, z)`.
    There's no requirement on he lower bound or size in z direction.
    The name `RectRasterableVol` was chosen because such a volume can be
    used with `VolGrid2d`.
2019-09-06 15:43:31 +02:00
Imbris
52d84248ec Remove all warnings 2019-09-04 19:03:49 -04:00
Monty Marz
f53904b534 More sprites, ui fixes, lianas 2019-09-01 19:04:03 +00:00
Joshua Barretto
d0768e9858 Faster prng 2019-08-31 14:24:56 +01:00
Joshua Barretto
7321eb6999 Better town park generation 2019-08-31 11:44:52 +01:00
Joshua Barretto
1eb0720cbb Cleaned up wall generation 2019-08-31 11:44:52 +01:00
Joshua Barretto
1176fc4d07 Better loading times 2019-08-31 11:44:52 +01:00
Joshua Barretto
c433ef36d7 Sloped wall tops 2019-08-31 11:44:52 +01:00
Joshua Barretto
25d6ab03aa Removed extra foundations 2019-08-31 11:44:52 +01:00
Joshua Barretto
e3c4e34edb Added city walls 2019-08-31 11:44:52 +01:00
Joshua Barretto
144703da1c Added wall module assets 2019-08-31 11:44:52 +01:00
Joshua Barretto
5a677b9c1e Added modular building generation 2019-08-31 11:44:52 +01:00
Joshua Barretto
adb62f448e Added walls 2019-08-31 11:44:52 +01:00
Joshua Barretto
d17356fb38 Started work on modular buildings 2019-08-31 11:44:52 +01:00
Joshua Barretto
f8c5b277e3 Improved mountain slopes and cliffs 2019-08-31 11:44:52 +01:00
Joshua Barretto
4de7a064a1 Added module parts, made cell size smaller 2019-08-31 11:44:52 +01:00
Joshua Barretto
fe2ad92201 Initial implementation of towns 2019-08-31 11:44:52 +01:00
Joshua Barretto
d42485238e Added town road construction 2019-08-31 11:44:52 +01:00
Joshua Barretto
aaade23eef Better warping 2019-08-31 11:44:52 +01:00
Joshua Barretto
b0293ecce4 Switched to FastNoise 2019-08-31 11:44:52 +01:00
Joshua Barretto
4777921680 Added test generator 2019-08-31 11:44:52 +01:00
Joshua Barretto
1fcb4a0313 Added Generator trait, fixed ocean lighting 2019-08-31 11:44:52 +01:00
Joshua Barretto
75f5419571 Removed dryness 2019-08-31 11:44:52 +01:00
Joshua Barretto
4735d3d6da More interesting hills 2019-08-31 11:44:52 +01:00
timokoesters
c4879307af
Update to github vek repo 2019-08-26 13:12:45 +02:00
Joshua Yanovski
c02f2a7f9e Fixes to worldgen and adding a debug command.
Humidity and temperature are now indexed to uniform altitude *over land
chunks* (and water chunks adjacent to land) rather than over the whole
range of altitude.  This is necessary in order to satisfy the uniformity
conditions of the formula for weighted sum CDF.

Additionally, fixes the computation of whether a tree should be
generated or not.  Previously, it was using a source of randomness
scaled to use much less than the full 0-1 range; this has been resolved.
This makes for much nicer and more gradual transitions between densities
and reduces the amount of completely barren landscapes, while also
making forests larger.

Finally, this commit adds a server command, debug_column, which returns
some useful debug information about a column given an x and y
coordinate.  This is useful for debugging worldgen.
2019-08-26 11:52:25 +02:00
Joshua Yanovski
958a40b8c0 Fix clean code lints. 2019-08-25 18:17:51 +02:00
Joshua Yanovski
6f12a240de Chaos doesn't depend on temperature anymore.
Also fix some things to use a consistent coordinate system and bump up
tree density and variation around tree density in hopes of creating more
aesthetically pleasing jungles.  However, this does change worldgen a
bit, so please make sure you look through it before merging.
2019-08-25 17:49:33 +02:00
jshipsey
f02b571f7f fmt 2019-08-24 15:32:07 -04:00
Joshua Yanovski
25a02ae6e0 Make humidity ignore ocean chunks. 2019-08-24 21:13:32 +02:00
Joshua Barretto
8635982173 Merge branch 'sharp/jungle' of gitlab.com:veloren/veloren into sharp/jungle 2019-08-23 00:33:33 +01:00
Joshua Barretto
0db797744b Better snow noise 2019-08-23 00:31:27 +01:00
Joshua Yanovski
f687c591ca Remove out of date comment. 2019-08-23 01:16:15 +02:00
Joshua Yanovski
d7f567a862 Merge remote-tracking branch 'origin/sharp/jungle' into sharp/jungle 2019-08-23 01:10:48 +02:00