Commit Graph

864 Commits

Author SHA1 Message Date
Joshua Yanovski
57ea753bff Merge branch 'sharp/parallel-ingame' into 'master'
Parallelize ingame messages.

See merge request veloren/veloren!3627
2022-09-21 19:44:40 +00:00
Joshua Yanovski
1c14ec7ee1 Parallelize ingame messages. 2022-09-21 10:25:57 -07:00
Joshua Yanovski
67231aff90 Remove persistence loading error from SkillSet.
This is needed (for now) in order to parallelize ingame_chat, because
one of the handled messages updates this value on the server.  It turns
out that the value is not actually used on the server, only the client,
so this was mostly a matter of threading this back to the correct place.
Additionally, we took the opportunity to modify the UI to not log you
into the game until your character was confirmed to be loaded, which
was a todo item that lets us simplify some error handling logic and
remove stuff from global state.
2022-09-21 09:29:25 -07:00
Sam
c228d9cc3f Addressed comments 2022-09-17 13:10:01 -04:00
Sam
525630c37a Moved some agent code into separate crate to facilitate hot reloading of that agent code. 2022-09-16 22:13:18 -04:00
Joshua Yanovski
cafdcad8ce Merge branch 'sharp/improve-msg' into 'master'
Improve some server system performance

See merge request veloren/veloren!3614
2022-09-15 04:30:31 +00:00
Joshua Yanovski
2c15d0af56 Reduce overhead of messaging systems. 2022-09-14 21:04:53 -07:00
James Melkonian
5d5cb28b59 Fix pet aggro 2022-09-14 19:48:34 +00:00
flo
dc688bccb9 fix_salamander_and_elbst 2022-09-13 17:32:53 +00:00
Joshua Yanovski
986d104faa Update Rust toolchain. 2022-09-08 15:43:53 -07:00
Joshua Yanovski
f5aee1d2a7 Allow mods/admins to log in when server is full.
As a side effect, this moves the initial game server sync message into
the login code, since that's the first place we can check for admin
permissions and we want to avoid sending large messages to users who are
not authenticated (especially if the player cap has been reached;
previously, the player cap check limited the damage that could be done
by unauthenticated players).

Some fallout from this is that we don't synchronize the Player component
anymore, which had some minor effects on voxygen.  This update also
breaks Torvus, since Client::new now expects the username and password
to be provided from the getgo--an accompanying MR will be submitted to
fix it.
2022-09-06 21:42:31 -07:00
juliancoffee
68da12ab6b Reduce traversal_config min dist
* Fix LOS pillar cheesing
2022-09-05 02:17:15 +03:00
Imbris
334937568e Add an entity view distance setting that allows limiting the distance
entities are synced from and displayed in.

NOTE: Syncing entities work at the granularity regions which are
multi-chunk squares but the display of entities in voxygen is limited in
a circle with the radiues of the supplied distance.

Additional details and changes:
* Added `ViewDistances` struct in `common` that contains separate
  terrain and entity view distances (the entity view distance will be
  clamped by the terrain view distance in uses of this).
* View distance requests from the client to the server now use this
  type.
* When requesting the character or spectate state the client now passes
  its desired view distances. This is exposed as a new parameter on
  `Client::request_character`/`Client::request_spectate`. And the client
  no longer needs to send a view distance request after entering these
  states. This also allows us to avoid needing to initialize `Presence`
  with a default view distance value on the server.
* Removed `DerefFlaggedStorage` from `Presence` and `RegionSubscription` since the
  change tracking isn't used for these components.
* Add sliders in voxygen graphics and network tabs for this new setting.
  Show the clamped value as well as the selected value next to the
  slider.
* Rename existing "Entities View Distance" slider (which AFAIK controls
  the distance at which different LOD levels apply to figures) to
  "Entities Detail Distance" so we can use the former name for this new
  slider.
2022-08-25 23:24:43 -04:00
Imbris
c36d6e873f Fix issue with the region subscription system not updating on view
distance changes (until the player crossed a chunk boundary and
triggered the normal update).

This introduces a `ViewDistance` struct that provides an abstraction
around limiting the rate the view distance can be cycled up and down.
This helps avoid unnecessary sending, deleting, and then resending of
synced things like entities (the client will still delete its terrain
locally and re-request it though).

The second part of this fix is storing the last view distance in the
`RegionSubscription` struct and then updating region subscriptions if
this doesn't match the current view distance in the `Presence`
component.
2022-08-25 23:24:43 -04:00
flo
e882e62c08 seachapel 2022-08-24 21:50:53 +00:00
Tormod Gjeitnes Hellen
e306b3bfe3
Have the ambushers say something.
Very unsure about the way I did this...
2022-08-17 23:50:09 +02:00
Tormod G. Hellen
753a51e683
Make selfish bastards ambush people when they're alone. 2022-08-17 23:50:09 +02:00
Samuel Keiffer
9112e2177a Merge branch 'vfoulon80/agent-behavior-tree' into 'master'
Refactor agent's behavior tree

See merge request veloren/veloren!3500
2022-08-11 20:46:14 +00:00
Vincent Foulon
b1baa09815
Address review comments 2022-08-11 21:15:46 +02:00
Joshua Barretto
602de267b1 Perform validation on all kinds of chat message 2022-08-11 11:11:33 +01:00
Joshua Barretto
4e103c433f Simplified and improved alias validation 2022-08-11 11:11:31 +01:00
Joshua Barretto
52bd7b2485 Added automod 2022-08-11 11:09:52 +01:00
IsseW
87821d5c1d force update counter 2022-08-09 19:22:09 +02:00
Isse
0471e78f41 spectate mode :D 2022-08-09 18:43:13 +02:00
Vincent Foulon
c1dcb6e412
Fix missing translation key in interaction 2022-08-07 21:16:31 +02:00
Vincent Foulon
b82da6acdb
Reimplement !3508 2022-08-07 21:11:58 +02:00
Vincent Foulon
62568d2229
Add documentation 2022-08-07 20:54:09 +02:00
Vincent Foulon
3203051fc3
Move interaction-cancelling code in interaction behavior + includes missing fix from !3467 2022-08-07 20:54:08 +02:00
Vincent Foulon
4f53d055de
Reimplement !3467 + fix event being pushed in front of agent inbox 2022-08-07 20:54:07 +02:00
Vincent Foulon
6994b026b1
Remove unused import 2022-08-07 20:54:06 +02:00
Vincent Foulon
faf2b13ac1
Move recv_interactions into BehaviorTree + cleanup functions ^& warnings 2022-08-07 20:54:02 +02:00
Vincent Foulon
d105d7063c
Cleanup prof_span + finish unfinished module rename 2022-08-07 20:50:37 +02:00
Vincent Foulon
6fae4efd45
PoC: Refactor agent's behavior tree 2022-08-07 20:50:24 +02:00
juliancoffee
d000cc90a1 Migrate code to new i18n API 2022-08-06 21:56:01 +03:00
Vincent Foulon
8862258f61 Deny any interaction received during hostile_tree 2022-08-06 18:31:42 +00:00
Forest Anderson
9d67deeeb7 Reverted removal of msg 2022-07-17 13:32:53 -04:00
tygyh
120ee6b6c0 Fix typos 2022-07-15 18:59:37 +02:00
tygyh
cbe4d9d807 Remove unused imports 2022-07-15 16:00:27 +02:00
tygyh
5e5698249b Remove unnecessarily qualified paths 2022-07-15 14:49:46 +02:00
Isse
9edfbaa29d fix agent aggression when not recieving damage from attack 2022-07-13 19:46:48 +02:00
Marcel Märtens
50d85940d8 implement a event channel that posts regular information on events for Participants 2022-07-03 21:21:59 +02:00
James Melkonian
8439f3ef6d Wiring System Documentation and Refactoring 2022-06-29 20:28:09 +00:00
Samantha W
57ab1c5767 Add a client-side mutelist 2022-06-14 20:35:01 +00:00
Joshua Barretto
b555381677 Added server gameplay settings, ability to toggle explosion burns off 2022-06-14 14:24:08 +01:00
N A
3d24ac79e3 make animal NPC's eat food on spot 2022-06-07 07:25:27 +00:00
terrarier2111
45efdb6602 Implement group owned loot 2022-06-04 17:16:12 +00:00
Ben Wallis
d71f2ff682 Fixed animals picking up non-owned non-consumable loot 2022-05-31 15:57:58 +01:00
Sam
5e57eabd11 Code changes and msm 2022-05-30 20:25:31 -04:00
N A
c09f070241 Change animal species to have only one inventory slot 2022-05-29 23:53:00 +00:00
Ben Wallis
34f580dfaa Introduced loot ownership rules to combat loot stealing by players
* Added `LootOwner` component used to indicate that an `ItemDrop` entity is owned by another entity
* A loot winner is now calculated after EXP allocation using the EXP per entity for weighted chance distribution
* Used existing Inventory Full overitem text to show "Owned by {player} for {seconds}secs" when a pickup fails due to a loot ownership check
* Updated agent code to take into account loot ownership when searching for `ItemDrop` targets to pick up
* Added `loot` ECS system to clear expired loot ownerships
2022-05-28 12:06:49 +00:00