Commit Graph

2778 Commits

Author SHA1 Message Date
Snowram
f25b2b1500 Various fixes to beam, body based interp 2021-02-21 19:17:56 +01:00
Sam
11050a05ce Beam particles now determined from beam segment rather than character state. 2021-02-21 19:17:56 +01:00
Snowram
e7bbf3981d Object animation 2021-02-21 19:17:44 +01:00
Avi Weinstock
8bdbf4f7c9 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
a330d4b05c 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
479cf9fc4e 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
eaf3e02e39 Addressed comments
Fixed audio test
2021-02-19 19:55:23 -05:00
Caelan
82c33d9ccb 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
d5ccc33abc Factored out duplicate code into closures, consolidated ability handling logic to a single function. 2021-02-19 18:45:48 -05:00
Sam
411b4083b1 Added 1h hammers.
Fixed audio tests.
2021-02-19 17:30:24 -05:00
Sam
12545dd372 Added handedness to weapon tooltips. 2021-02-19 17:30:23 -05:00
Sam
8f0cca074d Dual wielding now uses skillbar abilities from multiple weapons. 2021-02-19 17:30:22 -05:00
Sam
6f6a37faf2 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
f50fa25467 ItemConfig now stores AbilitySet directly instead of each individual ability. 2021-02-19 17:30:21 -05:00
Sam
582c3f8459 Check for prerequisite skill in using an ability is no longer hardcoded. 2021-02-19 17:30:21 -05:00
Sam
d4f509b3d0 Added hands field onto weapons. 2021-02-19 17:30:20 -05:00
Avi Weinstock
559ad7b7f5 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
c6d69d1196 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
95fdd0fcc3 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
96b8a582fe Fixed missing controller actions
(cherry picked from commit 2ef5fb90e89bf3f8f0acc84e269f6948c696c196)
2021-02-17 21:10:14 +00:00
Marcel Märtens
ea8ab1ce7a 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
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