Commit Graph

2757 Commits

Author SHA1 Message Date
Marcel Märtens
9884019963 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
5aa1940ef8 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
1b77b6dc41 Initial switch to tokio for network, minimum working example. 2021-02-17 12:37:59 +01:00
Caelan
dda4931f46 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
1a3e015da7 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
4d19308612 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
589ffd2a97 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
c2af25e1f6 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
1352d7ad9c 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
8b4230db61 Limit character name length 2021-02-16 21:29:45 +00:00
Felix Huettner
b8d5b812e1 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
06575f601e Merge branch 'master' into 'ada/improve-controller-bindings'
# Conflicts:
#   CHANGELOG.md
2021-02-16 15:30:46 +00:00
Avi Weinstock
03d28f7d93 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
0f1227ca7d Use nlerp for interpolating rotations in animation 2021-02-15 11:01:59 +01:00
AdaLovegirls
390812f54e Improve controller keybindings 2021-02-14 21:31:31 -06:00
Avi Weinstock
c984035976 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
232ddb0860 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
84990553e0 Use Ori for base rotation matrix 2021-02-13 11:02:50 +01:00
Avi Weinstock
f6db8bb7c4 Implement actual inventory-manipulation part of trading server side. 2021-02-12 18:43:10 -05:00
Avi Weinstock
abb5684883 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
e2b55e0706 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
aeb2398fc6 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
ae528124fc Trade implementation progress.
- State machine for modifying trades.
- ServerGeneral/ClientGeneral messages.
2021-02-12 18:43:09 -05:00
Avi Weinstock
e9b811b62b 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
250391656f 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
ebbb06a400 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
44a9d8dc71 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
63952875d9 Rebase !1447 Chat input color and icon reflect channel message is sent to. 2021-02-10 19:42:59 +00:00
Imbris
3e98e18c46 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
5d0c18efeb Crafting UI: sort items lexicographically by craftability and then alphabetically. 2021-02-09 19:30:54 -05:00
Snowram
477bdfdfe7 Adresses some comments, various visual tweaks 2021-02-10 00:30:23 +01:00
Ludvig Böklin
065e260e78 Code quality 2021-02-09 14:06:27 +01:00
Ludvig Böklin
fa78674840 Encourage migration towards using quaternion in animations 2021-02-09 13:52:44 +01:00
Ludvig Böklin
582ddfc3cd Ori: add tests, rename to_vec() => look_vec(); Dir: add methods, normalize on rot 2021-02-09 13:52:03 +01:00
Imbris
357cb26e05 Update native_dialog to 0.5.2 2021-02-07 00:48:57 -05:00
Ludvig Böklin
a1ff9ab83f Redefine Ori as a quaternion 2021-02-05 09:33:14 +01:00
Pascal Fuhrmann
9f7637ab21 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
23b1df3cdd Add basic NPC interaction and fix NPC chat spamming 2021-01-31 20:29:50 +00:00
Joshua Barretto
60c16e57b1 Added snow particles 2021-01-31 15:15:17 +00:00
DaforLynx
b906473f4e Aughihopethisworks 2021-01-30 22:27:12 -08:00
Marcel
b88f04215e 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
c6e262c4ce Small audio fixes; addresses #939 and #940 2021-01-29 11:37:10 +00:00
jiminycrick
a02444825d 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
152156d065 Fix rebase and scrub poise from UI 2021-01-28 17:22:39 -08:00
jshipsey
d456271921 animal stuns
Fix rebase
2021-01-28 17:22:39 -08:00
jiminycrick
661764f4aa Some preliminary balancing
Fix rebase
2021-01-28 17:22:39 -08:00
jshipsey
29732bb763 starting stun anim
stagger anim, mirroring, bettern walk anim

wielding with stuns/stagger

Knockback fix

Added Poise documentation/comments
2021-01-28 17:22:37 -08:00
jiminycrick
8b97199245 Update rand dependency 2021-01-26 20:35:08 -08:00
Entropy9s
1f6cf7e155 StaminaPlus buff, modifying stamina via buffs
trying to fix this, coming back to this later

please remember to change potion back future self!

this ALMOST works. maybe MR ready, kinda jank tho

so close, and yet so far...

IT WORKS IT WORKS IT WORKS IT WORKS IT WORKS IT WO

did the same with health, ill fix this garbage l8r

think we're basically done here

whoops forgot to change the food back

fixing and cleaning up part 1

fixed everything part 2 now with buff images

ran clippy + fmt, fixed items that i modified

bracket bulldozing, boldly

hopefully this should be good?

need to rebase real quick

please let me be done

StaminaPlus buff, modifying stamina via buffs

trying to fix this, coming back to this later

please remember to change potion back future self!

this ALMOST works. maybe MR ready, kinda jank tho

so close, and yet so far...

IT WORKS IT WORKS IT WORKS IT WORKS IT WORKS IT WO

did the same with health, ill fix this garbage l8r

think we're basically done here

whoops forgot to change the food back

fixing and cleaning up part 1

fixed everything part 2 now with buff images

ran clippy + fmt, fixed items that i modified

hopefully this should be good?

cargo clippy fmt stuff

deleted an extraneous file?? how did that even...?
2021-01-26 22:47:55 +00:00
Scott Williams
0cde434e3b All gems make a sound. 2021-01-25 22:53:23 +00:00