Commit Graph

31 Commits

Author SHA1 Message Date
Joshua Barretto
3f2e22f039 Exponential interpolation for linear damping
With an additional approximation to allow for the same size jumps given different framerates.
2019-09-09 19:11:40 +00: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
jshipsey
b81cd6a8f9 combine character.action movement blocks 2019-08-30 22:51:46 -04:00
jshipsey
78bf7a0997 slowed movement for block/attack, cleaned up code, made foot speed velocity dependent, tweaked blocking animation 2019-08-30 22:50:53 -04:00
timokoesters
952ec35857
Remove warnings 2019-08-29 19:54:53 +02:00
timokoesters
b725b0e9ea
End rolling when player is in the air 2019-08-27 11:06:55 +02:00
timokoesters
72564cf8b4
Make action durations constants 2019-08-27 11:06:54 +02:00
timokoesters
b89bfcbfc1
Remove unnecessary map 2019-08-26 13:12:44 +02:00
timokoesters
08fa6a3414
Prevent problems with no vel while rolling in the future 2019-08-26 13:12:44 +02:00
timokoesters
b96557d012
Fix roll from cliff bug 2019-08-26 13:12:42 +02:00
timokoesters
a715a84ea7
Implement unstoppable rolling 2019-08-26 13:12:42 +02:00
timokoesters
01410569a4
Use look_dir when blocking 2019-08-26 13:12:41 +02:00
timokoesters
62745c4cad
Only use look_dir for ori when wielded or attacking 2019-08-26 13:12:40 +02:00
timokoesters
0912de2a26
Make aiming more precise 2019-08-26 13:12:38 +02:00
timokoesters
e90f95bc75
Look in the direction of the camera 2019-08-26 13:12:38 +02:00
timokoesters
799c73d43a
Fix characterstate in movement.rs, not phys.rs 2019-08-26 13:12:35 +02:00
timokoesters
5d5ccd7b99
Move from state components to single CharaterState struct
This makes split animations easy and improves overall code quality
2019-08-26 13:12:34 +02:00
Vechro
c6b2303890 Fix wielding jump issue 2019-08-21 20:34:21 +03:00
jshipsey
f14a182734 removed wield slowdown by popular request 2019-08-18 03:26:52 -04:00
Joshua Barretto
a324f01a1d Improved orientation slerping 2019-08-04 15:51:17 +01:00
Joshua Barretto
f08d8bb00a Better movement lerping 2019-08-03 22:15:23 +01:00
timokoesters
6b69b24185 Make ori more precise 2019-08-03 20:41:55 +02:00
timokoesters
91b8b69186 Use slerp for ori 2019-08-03 20:33:31 +02:00
Joshua Barretto
71bf09d3b7 Better orientation in the air 2019-08-03 18:30:48 +01:00
Joshua Barretto
e52250a193 Made orientation change with move_dir, added a small amount of knockback 2019-08-03 18:24:07 +01:00
Joshua Barretto
51fa4f3cfc Merge branch 'animation-tweaks' into 'master'
animation and movement tweaks

See merge request veloren/veloren!389
2019-08-03 12:09:38 +00:00
timokoesters
3a43150bc5 Make hostile npcs back away when too close 2019-08-03 12:53:39 +01:00
jshipsey
13310ab9ca improved animations and movement 2019-08-01 23:57:26 -04:00
Joshua Barretto
123a78552a Fixed block-hopping on edges, added correct inventory slots 2019-08-01 09:09:26 +01:00
Joshua Barretto
1dc654dde7 Added object entities 2019-07-21 19:22:49 +01:00