2761 Commits

Author SHA1 Message Date
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
Ludvig Böklin
0a8642df0f Use Ori for base rotation matrix 2021-02-13 11:02:50 +01:00
Avi Weinstock
7a37538f06 Implement actual inventory-manipulation part of trading server side. 2021-02-12 18:43:10 -05:00
Avi Weinstock
e0f4bb3dc6 Trade implementation progress.
- Accept/decline buttons that submit the proper messages
- A phase2 screen that renders the (item, quantity) pairs as text
- More checks in the trade state machine server-side.
2021-02-12 18:43:10 -05:00
Avi Weinstock
2b9129d290 Implement enough of a trade UI that dragging & dropping items into it round-trips between clients. 2021-02-12 18:43:09 -05:00
Avi Weinstock
231c104355 Trade implementation progress.
- Server messages now bring up the trade window.
- When a trade is declined, it closes the window on both clients.
2021-02-12 18:43:09 -05:00
Avi Weinstock
b259acaa59 Trade implementation progress.
- State machine for modifying trades.
- ServerGeneral/ClientGeneral messages.
2021-02-12 18:43:09 -05:00
Avi Weinstock
94ef4a6917 Plumb trade requests through the group invite UI, such that they can be accepted/declined without impacting the counterparty's movement. 2021-02-12 18:43:09 -05:00
Avi Weinstock
9c62289cad Initial draft of trade UI (creates a placeholder window that acts like crafting in terms of bringing up the bag, defaulting to the "r" key). 2021-02-12 18:43:09 -05:00
DaforLynx
2d71ca0f41 Added crickets blocktype, added 3 new cricket sounds, made crickets chirp consistently, made frogs more sporadic 2021-02-12 00:54:42 +00:00
Justin Shipsey
923c323ca1 Merge branch 'nward/chat-input-color-icon-rebased' into 'master'
Rebase  !1447  Chat input color and icon reflect channel message is sent to.

See merge request veloren/veloren!1769
2021-02-10 19:42:59 +00:00
Quellus
22501ccf64 Rebase !1447 Chat input color and icon reflect channel message is sent to. 2021-02-10 19:42:59 +00:00
Imbris
93da46e1c1 Merge branch 'aweinstock/sort-crafting' into 'master'
Crafting UI: sort items lexicographically by craftability and then alphabetically.

See merge request veloren/veloren!1767
2021-02-10 04:04:42 +00:00
Avi Weinstock
e5eab42a17 Crafting UI: sort items lexicographically by craftability and then alphabetically. 2021-02-09 19:30:54 -05:00
Snowram
509a71bdc7 Adresses some comments, various visual tweaks 2021-02-10 00:30:23 +01:00
Ludvig Böklin
a120eaae36 Code quality 2021-02-09 14:06:27 +01:00
Ludvig Böklin
8e1bd2a5dc Encourage migration towards using quaternion in animations 2021-02-09 13:52:44 +01:00
Ludvig Böklin
b151f88b63 Ori: add tests, rename to_vec() => look_vec(); Dir: add methods, normalize on rot 2021-02-09 13:52:03 +01:00
Imbris
61a02c5527 Update native_dialog to 0.5.2 2021-02-07 00:48:57 -05:00
Ludvig Böklin
a888cd00d5 Redefine Ori as a quaternion 2021-02-05 09:33:14 +01:00
Pascal Fuhrmann
7e99de8017 Converted combat states and other semi-combat-related to use float-values instead of integers to prevent more casts 2021-02-05 01:39:12 +00:00
James Melkonian
8951e427e4 Add basic NPC interaction and fix NPC chat spamming 2021-01-31 20:29:50 +00:00
Joshua Barretto
60276ddcb5 Added snow particles 2021-01-31 15:15:17 +00:00
DaforLynx
e01288b787 Aughihopethisworks 2021-01-30 22:27:12 -08:00
Marcel
afeb1621be Merge branch 'DaforLynx/small-sound-fixes' into 'master'
Small audio fixes; addresses #939 and #940

Closes #940 and #939

See merge request veloren/veloren!1739
2021-01-29 11:37:10 +00:00
DaforLynx
1d6676fb98 Small audio fixes; addresses #939 and #940 2021-01-29 11:37:10 +00:00
jiminycrick
ae8722794b Address some comments
Eliminated extra stagger state

Responding to more comments

Move poise character state changes to character behavior system

Move poise out of JoinTuple/Data

Finish up comments (various fixes)
2021-01-28 17:31:05 -08:00
jiminycrick
53b43e9812 Fix rebase and scrub poise from UI 2021-01-28 17:22:39 -08:00
jshipsey
1b0bf21775 animal stuns
Fix rebase
2021-01-28 17:22:39 -08:00
jiminycrick
1fadcf51ba Some preliminary balancing
Fix rebase
2021-01-28 17:22:39 -08:00