Commit Graph

95 Commits

Author SHA1 Message Date
Joshua Barretto
6448c17110 Fixed sprite AO, overhauled entity spawning, better enemy spawning in dungeons, made agents more skilled at combat 2020-04-23 18:19:41 +01:00
Monty Marz
0fb3a115da Add more crops 2020-04-23 18:19:41 +01:00
Joshua Barretto
e3ebdc56b3 Fixed figure AO (still need to do sprite AO), added more control over NPC spawning, loot in dungeons 2020-04-23 18:19:41 +01:00
Joshua Barretto
866fd1992e Fixed bad AO quad flipping in dark places, bosses spawning in dungeon walls, large creatues being uncompromisingly pedantic when trying to path towards targets 2020-04-23 18:19:41 +01:00
Joshua Barretto
fd14223c33 Basic boss spawning in dungeons, better AO 2020-04-23 18:19:41 +01:00
Joshua Barretto
c4879e991d Enabled AO in darkness, better light attenuation 2020-04-23 18:19:41 +01:00
Joshua Barretto
48e67ba9c0 Fixed terrain sprite AO 2020-04-23 18:19:41 +01:00
Joshua Barretto
a0dae82a2b Added correctly allocated labours, fishing 2020-04-23 18:19:40 +01:00
Joshua Barretto
df5aa93fd7 Better AO, fixed cloud pixelation 2020-04-23 18:19:40 +01:00
Pfauenauge90
1b170f70c3 Even less blending. 2020-03-15 15:53:51 +01:00
Pfauenauge90
0e7f3a6b00 Update vol.rs 2020-03-15 15:53:51 +01:00
Marcel Märtens
dae31ae5b6 apply new rustfmt - touching alot of files 2020-02-01 21:39:39 +01:00
Imbris
38c48317f7 Fix lighting calc bug, lower meshing bench sample size 2020-01-19 18:14:07 -05:00
Imbris
3c8d0a3bb9 fix typo, replace u32 with Vec3<u8> in light propagation queue 2020-01-19 16:03:27 -05:00
Imbris
4b01c1b082 add: capability to disable blending for particular BlockKinds 2020-01-19 16:03:27 -05:00
Imbris
b3cdde3ce9 fix: panic in terrain meshing 2020-01-19 16:03:27 -05:00
Imbris
6f6dc1b16b Cleanup 2020-01-19 16:02:12 -05:00
Imbris
aa48729376 Compress position used in propagation queue, decrease outer bounds to the area sunlight can reach the inner area from 2020-01-19 16:02:12 -05:00
Imbris
09239caf88 While copying terrain sample to flat array, keep track of highest and lowest positions with exposed faces in order to constrain further iteration 2020-01-19 16:02:12 -05:00
Imbris
3347438d51 Propagate light via queue to avoid block lookups 2020-01-19 16:02:12 -05:00
Imbris
211c076b8d Remove unnecessary sampling in meshing light calculations 2020-01-19 16:02:12 -05:00
Imbris
33993638fe Experiment with replacing hashmap in light calculations 2020-01-19 16:02:12 -05:00
Yusuf Bera Ertan
4a0a2d5229 Cargo fmt 2020-01-08 20:09:54 +03:00
Yusuf Bera Ertan
fd9cc76786 Reimplement #210 2020-01-07 18:40:45 +03:00
Imbris
4bcc55ad34 improvement: roughly ~20% speedup of terrain meshing by eliminating redundant lookups of terrain blocks 2019-10-24 20:02:29 -04:00
Joshua Barretto
4bbc340f52 Faster meshing, better dusk 2019-10-14 10:48:40 +01:00
Forest Anderson
e7b97e0c66 md5sum assets 2019-10-09 22:42:39 +00:00
Monty Marz
d82ec6715a Item icons, chests and more 2019-10-09 19:28:05 +00:00
Joshua Barretto
889fd678c6 More opaque water surface 2019-10-08 12:21:05 +01:00
Imbris
83b5ca3335 Higher level cache abstraction 2019-10-01 02:10:28 -04:00
Imbris
89a1c45ac7 Cache most recent chunk access in terrain meshing 2019-10-01 02:10:28 -04:00
Joshua Barretto
8d2f1d470c Removed unnecessary code 2019-09-27 14:03:08 +01:00
Joshua Barretto
a90ceddde0 Fixed cold near oceans, faster meshing 2019-09-27 12:46:20 +01:00
Joshua Barretto
09197049cb Made meshing considerably faster 2019-09-27 11:06:32 +01:00
Joshua Barretto
81dc77c87b Resolved warnings 2019-09-26 13:34:15 +01:00
Joshua Barretto
899a7c56ab Dark water 2019-09-26 00:15:07 +01:00
Joshua Barretto
207568a012 Better day/night cycle, less intense sun 2019-09-26 00:15:07 +01:00
Joshua Barretto
b62830b8b4 Better hills 2019-09-26 00:15:07 +01:00
Joshua Barretto
2416b77a33 Meshing performance improvements 2019-09-26 00:15:07 +01:00
Joshua Barretto
3979dddbc1 Faster meshing, better AO, colour correction 2019-09-26 00:15:07 +01:00
Joshua Barretto
2bd8967921 Prevented extreme blending 2019-09-26 00:15:07 +01:00
Joshua Barretto
f1d590464f Added colour smoothing 2019-09-26 00:15:07 +01:00
Joshua Barretto
6d745fc472 Fixed floodfill algorithm 2019-09-26 00:15:07 +01:00
Imbris
34221a0f1d Disable AO 2019-09-26 00:15:07 +01:00
Joshua Barretto
d745acc948 Floodfill shadows, smooth shadow lighting 2019-09-26 00:15:07 +01: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
Joshua Barretto
1fcb4a0313 Added Generator trait, fixed ocean lighting 2019-08-31 11:44:52 +01:00
Joshua Barretto
b31cca4bb3 Added wheat and sprite rendering 2019-08-19 21:09:35 +01:00
Joshua Barretto
f0e52e6002 Better reflections and water fog 2019-08-18 10:33:18 +01:00
Joshua Barretto
825d8bb632 Fixed water in caves, made water reflection vary with lighting 2019-08-18 10:33:18 +01:00