376 Commits

Author SHA1 Message Date
Joshua Yanovski
2301c94d2b Addressing MR comments. 2020-01-24 03:45:29 +01:00
Joshua Yanovski
4a6a41e31d Erosion cleanup, part 3.
Covers world/src/sim/erosion.rs.
2020-01-23 18:18:18 +01:00
Joshua Yanovski
7391e8ae79 Make changing Alt/Compute to f32 work again. 2020-01-23 18:18:18 +01:00
Joshua Yanovski
3a868b9c92 Erosion cleanup, part 2.
Covers all remaining files touched by MR except
world/src/sim/erosion.rs.
2020-01-23 18:18:17 +01:00
Joshua Yanovski
0b7f428310 Erosion cleanup, part 1.
Covers all files touched by MR that are not in world/src/sim.
2020-01-23 18:18:17 +01:00
Joshua Yanovski
78c411d944 Fixing Cargo.lock after rebase. 2020-01-23 18:18:17 +01:00
Joshua Yanovski
88566f22f2 Minor fix to map generation.
Also fixes some typos and makes formatting easier for changes needed to
produce large maps.
2020-01-23 18:18:17 +01:00
Joshua Yanovski
78093a6479 Screenshots with F4 in the map, that will have the full resolution of
the displayed map (hopefully).
2020-01-23 18:18:16 +01:00
Joshua Yanovski
3c26342dba Fix warnings in examples and benchmarks. 2020-01-23 18:18:16 +01:00
Joshua Yanovski
3ba86c7b12 Fix all warnings. 2020-01-23 18:18:16 +01:00
Joshua Yanovski
d81218a114 Fixes to enable loading (relatively) large maps.
With these changes, we can successfully open, map, and play maps thare
are 16x the size of a standard (1024 x 1024 chunk) map, 4x larger in
each direction.
2020-01-23 18:18:16 +01:00
Joshua Yanovski
81306ad31f Add a default world map.
Also adds map versioning, proper scaling, and updates sediment
rendering.  It also tones down warp.
2020-01-23 18:18:15 +01:00
Joshua Yanovski
6a33254518 Changes to worldgen, adding more sedmient etc. 2020-01-23 18:18:14 +01:00
Joshua Yanovski
d79b0202e8 Send client 3D rendered map.
Also shares configurable rendering between map generator and server.
2020-01-23 18:18:14 +01:00
Joshua Yanovski
4b78597fb4 Code restructuring for performance.
Turned a lot of for loops into for_each loops, which should be easier
for LLVM to optimize currently.  Also updated almost all the non-erosion
stuff in WorldGen to run in parallel (and take advantage of the cache,
in the case of TownGen), and hopefully improved performance somewhat for
chunk generation as well.
2020-01-23 18:18:14 +01:00
Joshua Yanovski
11ee4389dc Weight flux twice as much as beforein humidity calculation. 2020-01-23 18:18:13 +01:00
Joshua Yanovski
1ea8c1360b Adding many new types of geomorphic laws:
- soil production (currently disabled).
- debris flow erosion (combined with regular stream power law).
- flow computation using multiple receivers.
- filling strategy during drainage network calculations.

Also tweaks a variety of other aspects of erosion.
2020-01-23 18:18:12 +01:00
Joshua Yanovski
4f863470e1 Cargo fmt most things (except erosion.rs). 2020-01-23 18:18:12 +01:00
Joshua Yanovski
982b538a37 Gentler warp, especially for high chunk size. 2020-01-23 18:18:12 +01:00
Joshua Yanovski
0e88be716d Fix overflow issue with basement. 2020-01-23 18:18:12 +01:00
Joshua Yanovski
b5b017b4c6 Fix colors on map being transferred to client. 2020-01-23 18:18:11 +01:00
Joshua Yanovski
558a80f099 Fixes for nonstandard chunk and map sizes.
Also fixes a longstanding map rendering issue.
2020-01-23 18:18:11 +01:00
Joshua Yanovski
5439f432e9 Soil production should use ground, not basement, slope. 2020-01-23 18:18:11 +01:00
Joshua Yanovski
675ad06cfe Map saving, soil production, speedup attempts. 2020-01-23 18:18:10 +01:00
Pfauenauge90
793694ebf7 birches and "Acalok" Trees 2020-01-23 18:18:10 +01:00
Joshua Yanovski
1be2dbef9f Fix sediment transport, add hack for sediment. 2020-01-23 18:18:09 +01:00
Joshua Yanovski
95fdfe37e2 Sediment transport, plus many other things. 2020-01-23 18:18:09 +01:00
Joshua Yanovski
6be770a4e1 Use Worley noise for uplift. 2020-01-23 18:18:09 +01:00
Joshua Yanovski
d2096f540d Implement carving strategy for lake connections.
Also fix mapgen slopes and make a much more pleasing world.
2020-01-23 18:18:08 +01:00
Joshua Yanovski
1e02025ca8 Render sediment differently. 2020-01-23 18:18:08 +01:00
Joshua Yanovski
8f2a751bf4 Map fixes. 2020-01-23 18:18:08 +01:00
Joshua Yanovski
5f112fb41f Seed elements. 2020-01-23 18:18:08 +01:00
Joshua Yanovski
1e159b8278 Adding hillslope diffusion. 2020-01-23 18:18:07 +01:00
Joshua Yanovski
f8ede56e7a WIP fixes: more pleasing uplift generation.
Uses the exponential distribution now.
2020-01-23 18:18:07 +01:00
Joshua Yanovski
515222b126 Reverting changes except to humidity and temperature
noise.
2020-01-23 18:18:07 +01:00
flyingfryingpan
b62820b887 wahtevermoresharp 2020-01-23 18:18:07 +01:00
flyingfryingpan
21e725df89 forsharp 2020-01-23 18:18:07 +01:00
Imbris
7bcbfa9003 add: capability to disable blending for particular BlockKinds 2020-01-19 16:03:27 -05:00
Imbris
7f04db1501 Add terrain meshing benchmark 2020-01-19 16:02:12 -05:00
Monty Marz
7e2153c537 Charge Icon and flashing skillbar 2020-01-17 22:00:00 +00:00
Piotr Korgól
243263fecd Improvement: Replace all '..=b' with '..b + 1' 2020-01-12 15:46:53 +01:00
S Handley
4fcd9e2e0f Prevent NPCs from spawnign underwater
This should be set until there are underwater NPC types.
2020-01-08 12:48:00 +00:00
Songtronix
631b00417d improve(log): adjust verbosity of some logging
fix: settings do not log due to logging being initialized to late
2019-12-20 15:45:30 +01:00
Marcel Märtens
7d16b7d6a2 please ci toolchain 2019-12-11 15:13:46 +01:00
S Handley
846ad2ac64 Fix the glider_close sfx event
This was failing to trigger since we now have a MovementState::Fall, but
the sfx mapper was still trying to work this out itself based on
velocity. We no longer need to track velocity as a result and can use
the MovementState.

Also silenced warnings resulting from unused vars when running tests.
2019-12-09 09:50:14 +00:00
soruh
94beb0fa33 Mitgated RUSTSEC-2019-0014 by updating noise and
disabling its default features, specifically `image`,
which had the vulnerability.
2019-11-05 11:14:39 +00:00
soruh
352694eecd update toolchain to nightly-2019-11-04 2019-11-04 18:26:32 +01:00
Joshua Yanovski
663d535bd9 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
KyoZM
7f24391187 format code 2019-10-10 21:00:19 -03:00
KyoZM
dbca8e3b09 refactor code to be smaller and clearer 2019-10-10 20:53:13 -03:00