Commit Graph

137 Commits

Author SHA1 Message Date
Joshua Yanovski
e71f145b71 Sediment transport, plus many other things. 2020-01-23 18:18:09 +01:00
Imbris
5666f18ded Add terrain meshing benchmark 2020-01-19 16:02:12 -05:00
S Handley
5b65b16594 Prevent NPCs from spawnign underwater
This should be set until there are underwater NPC types.
2020-01-08 12:48:00 +00:00
soruh
e3bd152d24 update toolchain to nightly-2019-11-04 2019-11-04 18:26:32 +01:00
Joshua Yanovski
8ae2692b6e Allow canceling chunk generation.
Currently we only do this when no players are in range of the chunk.  We
also send the first client who posted the chunk a message indicating
that it's canceled, the hope being that this will be a performance win
in single player mode since you don't have to wait three seconds to
realize that the server won't generate the chunk for you.

We now check an atomic flag for every column sample in a chunk.  We
could probably do this less frequently, but since it's a relaxed load it
has essentially no performance impact on Intel architectures.
2019-10-16 11:39:41 +00:00
Forest
35b9040a6f Removed now stable feature 2019-10-03 17:28:17 -04:00
Acrimon
772e85fbea Update lib.rs 2019-10-03 17:19:22 -04:00
Acrimon
e151b81c11 Update lib.rs 2019-10-03 17:19:22 -04:00
Joshua Barretto
8a2dc836d8 Fixed cut-off cliff, optimised structure generation 2019-09-23 16:20:28 +01: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
Joshua Barretto
fe2ad92201 Initial implementation of towns 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 Yanovski
b69020b68e Fine, removing box syntax. 2019-08-23 01:08:47 +02:00
Joshua Yanovski
398c18359d Addressing concerns, for real. 2019-08-23 00:57:42 +02:00
Joshua Yanovski
2ff192021c Addressing PR issues. 2019-08-22 23:48:13 +02:00
Joshua Barretto
ba1a146cd5 Better snow, colours, more chaos 2019-08-22 22:25:17 +01:00
Joshua Yanovski
05d501632e Fixing jungle. 2019-08-21 20:41:32 +02:00
Joshua Yanovski
8c644e2bb1 Distribution "fun." 2019-08-20 22:48:22 +02:00
Acrimon
a41cf1a83d Disabled unsafe using lint level. 2019-08-19 14:39:23 +02:00
Joshua Barretto
f0e52e6002 Better reflections and water fog 2019-08-18 10:33:18 +01:00
Joshua Barretto
42237a84e4 Added translucent meshing pass, water reflections 2019-08-18 10:33:18 +01:00
Joshua Barretto
daa9b81c69 Made boss spawning rarer 2019-08-04 10:27:08 +01:00
Joshua Barretto
677c5781ba Added bosses, improved secret object spawn rates 2019-08-02 20:10:52 +01:00
Joshua Barretto
6ff75dcf0b Removed NPCs that are outside the VD 2019-08-02 20:10:52 +01:00
Joshua Barretto
b5d10bfb3e Added worldgen npcs 2019-08-02 20:10:52 +01:00
Joshua Barretto
92d4b4dfbe Smoothed world borders 2019-07-09 21:42:27 +01:00
Joshua Barretto
14ba09f96b Added acacia trees, desert bones, fixed minor worldgen issues 2019-07-08 17:41:20 +01:00
Joshua Barretto
f823b0c992 Fixed tree clipping and several other minor issues 2019-07-08 17:00:50 +01:00
Joshua Barretto
c2a11ed6b2 Improved worldgen performance with more precise z bound checks 2019-07-08 15:51:38 +01:00
Joshua Barretto
3623871775 Initial implementation of z cache 2019-07-06 20:00:17 +01:00
Songtronix
863731f3ae Fix warnings from world 2019-07-01 18:40:41 +00:00
Joshua Barretto
f2df3a9d18 Block-hopping fix, better dusk shaders 2019-06-29 22:47:24 +01:00
Joshua Barretto
b40d19ad0e Added settlement generation 2019-06-26 19:14:12 +01:00
Joshua Barretto
216c2583fb Paths and smoother region borders 2019-06-26 19:14:12 +01:00
Piotr Korgól
4644199f1b Make minimap title show location names 2019-06-26 19:14:12 +01:00
Joshua Barretto
451bbe9921 Basic region generation 2019-06-26 19:14:12 +01:00
Joshua Barretto
bab7746a8a Updated and fixed world viewer example 2019-06-15 13:34:28 +01:00
Joshua Barretto
a9d30bbfb6 Adjusted tree colour variation 2019-06-15 11:36:26 +01:00
Joshua Barretto
9fed2c1534 Merged stumps, adjusted scale code 2019-06-13 11:59:05 +01:00
Joshua Barretto
e4d5476d28 Major worldgen structural refactor 2019-06-13 11:59:05 +01:00
Joshua Barretto
3285fc9b88 Added sampler clearing 2019-06-13 11:59:05 +01:00
Joshua Barretto
61dda0ea8c Separated sampler code from simulation code 2019-06-13 11:59:05 +01:00
Cody
14ac5babd4 Removes most unused imports; changes some unused variables to underscores or provides a leading underscore; removes some unnecessary variables and mutable declarations; and performs other miscellaneous warning fixes. 2019-06-06 14:48:41 +00:00
Joshua Barretto
9a8552d5fb Added rocks 2019-06-05 20:52:51 +01:00
Joshua Barretto
06201c7353 fmt 2019-06-05 20:52:51 +01:00
Joshua Barretto
92f2d36b0c Optimised sub-terrain chonk storage, fixed hash chunk bug, altered terrain base 2019-06-05 20:52:51 +01:00
Joshua Barretto
92391883a9 fmt
Former-commit-id: 689464ed1009ebfd74769fa113fc7b433ea62bbd
2019-05-25 06:54:47 +01:00
Joshua Barretto
c919f6fc83 Better tree spawning, more trees
Former-commit-id: abf4ff8a2eb005c2cd1832f5a3ae7182c4fc31f6
2019-05-25 06:38:40 +01:00
Joshua Barretto
4d73f38e6d Refactored worldgen sampling, added cache layer
Former-commit-id: 3ad5277ed0c871d6678a42629145cb722d4c76c5
2019-05-25 05:51:45 +01:00
Joshua Barretto
857315a27d Added basic structure generation
Former-commit-id: 88a6bf2e18ac4f8f9b560797c8aac82ca318afb0
2019-05-25 05:51:45 +01:00
Joshua Barretto
611b270ded Improved cache-coherency of world chunk interpolation
Former-commit-id: 2f45cf47916970185c65c701dfc63ae838f05734
2019-05-25 05:51:45 +01:00
Joshua Barretto
fc25dc8c7f fmt
Former-commit-id: 1f7bec8da117091b3f2e8f58ce45b9caf1b6c89d
2019-05-21 23:31:38 +01:00
Joshua Barretto
8909a4220f Added water, beaches, craggs
Former-commit-id: 0213bbac23cf01df31896461d0cdda3b0ee708dc
2019-05-21 22:51:41 +01:00
Joshua Barretto
dcd2b4392d Added rocks, improved hills
Former-commit-id: c8f3d8fb550186bd87d0de953098971050fd1e03
2019-05-21 22:51:41 +01:00
Joshua Barretto
feece604be Restarted worldgen
Former-commit-id: e1526ec5f865904f11ab6a1507ecdc1a52acb28d
2019-05-21 22:51:41 +01:00
Joshua Barretto
5118da0e0e Added rivers, improved mountains
Former-commit-id: c1b76c54d2aa8f0616c26b0724fe34c0d80ac4fd
2019-05-21 22:51:41 +01:00
Joshua Barretto
a0dfa3fddc Added basic mountain/valley worldgen
Former-commit-id: 5a45f18fcdf523841ee8433ba2ff0b8765eadf3a
2019-05-21 22:51:41 +01:00
Joshua Barretto
2996e3c8aa Made the edges of the world be empty
Former-commit-id: 51a3315a3b00d28c87c6364d83e32d180f4f8e18
2019-05-21 22:51:41 +01:00
Pfauenauge90
c13206d82d Basic worldgen
Former-commit-id: 3ca0afa95dd1d868a84a41129e889a203e8a7cd9
2019-05-21 22:51:41 +01:00
Joshua Barretto
2548c1c31f Added worldsim API, ticking
Former-commit-id: 50a63e44557c634f2b39ef7a580cdbeec5ed0d70
2019-05-21 22:51:41 +01:00
Joshua Barretto
5b055f54a5 Less noisy worldgen
Former-commit-id: f1df6cc5b170db4949e88f11d26b9867056caacd
2019-05-21 22:51:41 +01:00
Joshua Barretto
5b2da36fd0 Added mega worldgen
Former-commit-id: f7c88a1d387c282b78ab834dd63e64432b371552
2019-05-21 22:51:41 +01:00
Cody
6b09fd7c53 Pedantic comment and language fixes.
Former-commit-id: eb49765c911aaa97a9c8ed351216a7a6f8411213
2019-05-17 18:32:07 -04:00
Joshua Barretto
7174830279 fmt
Former-commit-id: 71912bdd2b8f40020153c5696cd5cc1af3f154cc
2019-05-17 18:54:56 +01:00
Joshua Barretto
91184356e7 Added chonks
Former-commit-id: a62fb321dbfb7541feaa9de4e641db9887b061fd
2019-05-17 18:44:30 +01:00
Joshua Barretto
5092df0e7f Improved quadruped origin
Former-commit-id: 35a360bf285f2495dda7859cb8d376d5aa16a1af
2019-05-15 17:06:58 +01:00
Joshua Barretto
54cc9e137a fmt
Former-commit-id: b43b7192f7a2dd71da26182ca0c74449867381f3
2019-05-09 18:58:16 +01:00
Joshua Barretto
cf4e02252a Smartened up terrain generation
Former-commit-id: d85448e5171bd27b04530da8e1ca927554136ebf
2019-05-09 18:57:47 +01:00
Joshua Barretto
94fd0b1a22 Fixed running animation, changed movement physics
Former-commit-id: 1b4c1f63701668074874aa6efc65f883f29e2cc1
2019-05-09 18:57:47 +01:00
Joshua Barretto
2e3288cc29 Adjusted view distance and worldgen
Former-commit-id: 01eeb0e48bcb018111c5f32b6252beb11bccd452
2019-05-09 18:57:47 +01:00
Joshua Barretto
9ebe3c3e6f Added a delta time cap to avoid missing important physics events
Former-commit-id: e9f14ddda0963537ae6593c2dacc6a877f88c824
2019-05-09 18:57:47 +01:00
Forest Anderson
993388e56a Ran fmt on codebase
Former-commit-id: 7fecffa1dc66fffba4f07d45fb80960dc5178f4f
2019-04-29 20:37:19 +00:00
Pfauenauge
d7be49def1 Minimap changes, grass colour adjusted
Former-commit-id: 9dd743eb6277c76c0b596592bc8bec4a875038b5
2019-04-25 23:43:32 +02:00
Joshua Barretto
a66cc98a03 Mildly better worldgen
Former-commit-id: e8d77b75b164611ccfd144b1d6e6d6c5e396e515
2019-04-25 17:52:11 +01:00
Joshua Barretto
fc8b7e9750 Worked on improving networking and terrain
Former-commit-id: e5ce819036a01f274c1c114bcd3b50fa42858703
2019-04-25 17:52:11 +01:00
Joshua Barretto
f210de09df Added raycasting (needs testing) and basic character terrain collision
Former-commit-id: be6bfacfd28e777a64d8157fce129f8072e20b38
2019-04-25 17:52:11 +01:00
Joshua Barretto
f27b5fa975 Added server-side chunk generation
Former-commit-id: 72e02f8ec711ec4fac3111b591c4b08086dee4e3
2019-04-14 14:23:43 +01:00
Joshua Barretto
c16a257ae3 Added server-cli, UI tests
Former-commit-id: 93bf5b39138920aa7a4a773a8247d716866c4a05
2019-01-30 12:11:34 +00:00
Joshua Barretto
8a37662cf0 Cleaned up codebase, added cursor grab toggle 2019-01-23 22:21:47 +00:00
Joshua Barretto
248577bdef Added test terrain loading and meshing 2019-01-23 20:01:58 +00:00
Joshua Barretto
41b6672743 Added Terrain type to scene 2019-01-15 15:13:11 +00:00