2790 Commits

Author SHA1 Message Date
Snowram
af01c69456 Merge branch 'snowram/turret' into 'master'
Object animation, beam fixes, turret implementation

See merge request veloren/veloren!1805
2021-02-23 20:16:56 +00:00
Samuel Keiffer
48e2484f98 Merge branch 'aweinstock/quickfix-sword-spin-speed' into 'master'
Fix description for the sword spin speed skill tree upgrade (previously it was...

See merge request veloren/veloren!1814
2021-02-23 03:14:44 +00:00
Imbris
0d3a990931 Merge branch 'aweinstock/modular-weapon-rigging' into 'master'
Support modular weapon voxel meshes being made by assembling their components.

See merge request veloren/veloren!1806
2021-02-23 00:45:26 +00:00
Avi Weinstock
a25ad7f205 Support modular weapon voxel meshes being made by assembling their components. 2021-02-23 00:45:26 +00:00
Avi Weinstock
83d6931125 Fix description for the sword spin speed skill tree upgrade (previously it was a copy of damage's description). 2021-02-22 19:37:20 -05:00
Marcel
ec05d0c253 Merge branch 'xMAC94x/prot_improvements' into 'master'
xMAC94x/prot_improvements

See merge request veloren/veloren!1796
2021-02-22 22:47:43 +00:00
Marcel Märtens
7ce91665f8 cleanup ClientConnArgs 2021-02-22 21:07:20 +01:00
Snowram
246242b5a2 Adds look_dir to anims, humanoid heads pivot fixes 2021-02-22 20:00:06 +01:00
Marcel Märtens
b473bb9cbd Client::new can now resolve DNS requests, better networking error messages 2021-02-22 17:35:19 +01:00
Marcel Märtens
d3ef72e2b7 share tokio Runtime between Client and Server, name rayon Threadpool 2021-02-22 17:35:06 +01:00
Marcel Märtens
def5db54de Update Network Protocol
- now last digit version is compatible 0.6.0 will connect to 0.6.1
 - the TCP DATA Frames no longer contain START field, as it's not needed
 - the TCP OPENSTREAM Frames will now contain the BANDWIDTH field
 - MID is not Protocol internal

Update network
 - update API with Bandwidth

Update veloren
 - introduce better runtime and `async` things that are IO bound.
 - Remove `uvth` and instead use `tokio::runtime::Runtime::spawn_blocking`
 - remove futures_execute from client and server use tokio::runtime::Runtime instead
 - give threads a Name
2021-02-22 17:34:55 +01:00
Snowram
882c727514 Various fixes to object animation, cleanup 2021-02-21 19:56:46 +01:00
Snowram
be17e607b1 Various fixes to beam, body based interp 2021-02-21 19:17:56 +01:00
Sam
87e6c692b2 Beam particles now determined from beam segment rather than character state. 2021-02-21 19:17:56 +01:00
Snowram
e889e516d4 Object animation 2021-02-21 19:17:44 +01:00
Avi Weinstock
2e1ee28949 Implement modular weapons.
- Add ItemKind::ModularComponent, Item::components.
- Add tool::StatKind::{Direct,Modular} for the modular weapons themselves.
- Move ItemConfig from ItemDesc to Item, so components' stats can be taken into account.
- Crafting stores into the components field.
- Components/recipes/placeholders are created dynamically.
- Show which components a modular weapon contains in the tooltip in voxygen.

Squashed fixes:
- `Item::duplicate` components in `Item::new_from_item_def`.
- Speed of 1.0 for now.
2021-02-20 14:30:39 -05:00
Marcel
a85ba52406 Merge branch 'clangdo/fix_macos_build' into 'master'
Backdate coreaudio-sys for OSX cross toolchain compatibility

See merge request veloren/veloren!1799
2021-02-20 09:58:59 +00:00
Samuel Keiffer
f64d4e555c Merge branch 'sam/dual-wielding' into 'master'
Dual wielding backend

See merge request veloren/veloren!1787
2021-02-20 05:12:17 +00:00
Sam
77a8612e87 Addressed comments
Fixed audio test
2021-02-19 19:55:23 -05:00
Caelan
cae0c1adef Backdate coreaudio-sys for OSX cross toolchain compatibility
See https://github.com/RustAudio/coreaudio-sys/issues/48
2021-02-19 15:46:36 -08:00
Sam
517abc79ab Factored out duplicate code into closures, consolidated ability handling logic to a single function. 2021-02-19 18:45:48 -05:00
Sam
b934023169 Added 1h hammers.
Fixed audio tests.
2021-02-19 17:30:24 -05:00
Sam
1b7d4b95b8 Added handedness to weapon tooltips. 2021-02-19 17:30:23 -05:00
Sam
c2cf3b890e Dual wielding now uses skillbar abilities from multiple weapons. 2021-02-19 17:30:22 -05:00
Sam
dbc759b043 Wielding a 1 handed weapon now correctly uses abilities when the second weapon is not also a 1 handed weapon. 2021-02-19 17:30:22 -05:00
Sam
3c47f5ab5b ItemConfig now stores AbilitySet directly instead of each individual ability. 2021-02-19 17:30:21 -05:00
Sam
a32c14a78b Check for prerequisite skill in using an ability is no longer hardcoded. 2021-02-19 17:30:21 -05:00
Sam
0f4b4e4271 Added hands field onto weapons. 2021-02-19 17:30:20 -05:00
Avi Weinstock
d44565d6cc Client-side trade improvements.
- Add item tooltips in trade.
- More localization support.
- Fix bindings (R for trade, B for bag).
2021-02-19 15:20:27 -05:00
Marcel
0f633e7b7c Merge branch 'xMAC94x/network_tokio' into 'master'
xMAC94x/network_tokio switch from `async_std` to `tokio`

See merge request veloren/veloren!1789
2021-02-17 22:47:11 +00:00
Samuel Keiffer
92b7657c0f Merge branch 'cherry-pick-2ef5fb90' into 'master'
Fix missing controller actions

See merge request veloren/veloren!1786
2021-02-17 21:10:14 +00:00
Ada Lovegirls
540635ed99 Fixed missing controller actions
(cherry picked from commit 2ef5fb90e89bf3f8f0acc84e269f6948c696c196)
2021-02-17 21:10:14 +00:00
Marcel Märtens
00386b6955 Great improvements to the codebase:
- better logging in network
 - we now notify the send of what happened in recv in participant.
 - works with veloren master servers
 - works in singleplayer, using a actual mid.
 - add `mpsc` in whole stack incl tests
 - speed up internal read/write with `Bytes` crate
 - use `prometheus-hyper` for metrics
 - use a metrics cache
2021-02-17 16:15:00 +01:00
Marcel Märtens
33085f1645 COMPLETE REDESIGN of network crate
- Implementing a async non-io protocol crate
    a) no tokio / no channels
    b) I/O is based on abstraction Sink/Drain
    c) different Protocols can have a different Drain Type
       This allow MPSC to send its content without splitting up messages at all!
       It allows UDP to have internal extra frames to care for security
       It allows better abstraction for tests
       Allows benchmarks on the mpsc variant
       Custom Handshakes to allow sth like Quic protocol easily
 - reduce the participant managers to 4: channel creations, send, recv and shutdown.
   keeping the `mut data` in one manager removes the need for all RwLocks.
   reducing complexity and parallel access problems
 - more strategic participant shutdown. first send. then wait for remote side to notice recv stop, then remote side will stop send, then local side can stop recv.
 - metrics are internally abstracted to fit protocol and network layer
 - in this commit network/protocol tests work and network tests work someway, veloren compiles but does not work
 - handshake compatible to async_std
2021-02-17 12:39:47 +01:00
Marcel Märtens
13276a6d00 get rid of async_std::channel
switch to `tokio` and `async_channel` crate.
I wanted to do tokio first, but it doesnt feature Sender::close(), thus i included async_channel
Got rid of `futures` and only need `futures_core` and `futures_util`.

Tokio does not support `Stream` and `StreamExt` so for now i need to use `tokio-stream`, i think this will go in `std` in the future

Created `b2b_close_stream_opened_sender_r` as the shutdown procedure does not need a copy of a Sender, it just need to stop it.

Various adjustments, e.g. for `select!` which now requieres a `&mut` for oneshots.

Future things to do:
 - Use some better signalling than oneshot<()> in some cases.
 - Use a Watch for the Prio propergation (impl. it ofc)
 - Use Bounded Channels in order to improve performance
 - adjust tests coding

bring tests to work
2021-02-17 12:38:53 +01:00
Marcel Märtens
88620c804a Initial switch to tokio for network, minimum working example. 2021-02-17 12:37:59 +01:00
Caelan
86d1b00735 Clean and update dependencies
* Remove tweak feature
 * Remove const-tweaker
 * Update tiny_http
 * Update bitvec to 0.21.0
 * Downgrade euc to avoid conflict with vek 0.12.0
 * Require exactly vek 0.12.0
 * Update all other dependencies automatically based on these changes
 * Update gilrs to latest at the request of Ada Lovegirls
 * Update meshing benchmarks to new criterion API
2021-02-17 01:27:06 -08:00
Imbris
fcce219462 Merge branch 'huettner94/minimap_settings_persistence' into 'master'
Persist minimap settings

See merge request veloren/veloren!1785
2021-02-17 00:57:07 +00:00
Joshua Barretto
2706ccd675 Merge branch 'lboklin/quat-ori' into 'master'
Redefine Ori as a quaternion

See merge request veloren/veloren!1755
2021-02-16 22:39:11 +00:00
Felix Huettner
c2e298381e Persist minimap settings
This change persists the open/close state as well as the facing-north
state of the minimap to the settings file.
2021-02-16 23:16:16 +01:00
Imbris
3572dbd6ff Merge branch 'huettner94/minimap_rotation' into 'master'
Allow minimap to always face north

See merge request veloren/veloren!1784
2021-02-16 22:04:48 +00:00
Imbris
578f4adf49 Merge branch 'quellus/max-name-length' into 'master'
Limit character name length

Closes #528

See merge request veloren/veloren!1774
2021-02-16 21:29:45 +00:00
Quellus
ca66b2880b Limit character name length 2021-02-16 21:29:45 +00:00
Felix Huettner
e9e709758a Allow minimap to always face north
Some players prefer their minimap to always face north for better
orientation.
2021-02-16 19:57:19 +01:00
Ada Lovegirls
483bd4aaca Merge branch 'master' into 'ada/improve-controller-bindings'
# Conflicts:
#   CHANGELOG.md
2021-02-16 15:30:46 +00:00
Avi Weinstock
d4907197b3 Implement tags for items, allowing a crafting recipe to take any item with that tag as input.
- Added a recipe that turns any of the cloth equipment dropped by villagers into 1x cloth scraps.
- Animate placeholder items for tagged crafting.
2021-02-16 01:05:54 +00:00
Ludvig Böklin
ff4ae85262 Use nlerp for interpolating rotations in animation 2021-02-15 11:01:59 +01:00
AdaLovegirls
68d557dbd4 Improve controller keybindings 2021-02-14 21:31:31 -06:00
Avi Weinstock
f86f22f0e8 MR 1775 review fixes.
- Separate `invite` machinery from `group_manip` into it's own thing (includes renaming `group_invite` to `invite` where applicable).
- Move some invite/trade machinery to `ControlEvent`.
- Make `TradePhase` a proper enum instead of a bunch of bools.
- Make `TradeId` a proper newtype.
- Remove trades from `Trades` on accept (previously was only on decline).
- Typo fixes/misc cleanup.
- Add bullet point for trading to the changelog.
2021-02-14 11:13:56 -05:00
Avi Weinstock
a1176284d2 Polish trading implementation and address review comments.
- Fix item swapping edge case
- Document more assumptions/edge cases
- fmt and clippy
- s/ServerGeneral::GroupInvite/ServerGeneral::Invite/
- Use `Client::current` in `Client::is_dead`
2021-02-14 11:11:35 -05:00