Commit Graph

239 Commits

Author SHA1 Message Date
Maxicarlos08
ec92b2c33b
Fix group chat leak 2023-09-03 21:25:44 +02:00
Joshua Barretto
6fbca74e88 Merge branch 'maxicarlos08/dungeon-avoid-cave' into 'master'
Cheesing fixes to old-style dungeons

See merge request veloren/veloren!4014
2023-08-19 11:12:01 +00:00
Maxicarlos08
1274dc43c8
document and cleanup StateExt::position_mut 2023-08-19 12:43:48 +02:00
Maxicarlos08
e5e26149ed
review 2023-08-17 11:16:20 +02:00
Maxicarlos08
0f2db68498
added portals 2023-08-15 12:24:17 +02:00
Imbris
aba0c23bc7 Make sync_me based of PresenceKind rather than being an independent
field.
2023-08-11 20:09:55 -04:00
Imbris
ecb27deeae When sync_me is false avoid:
* Logging a warning when deleting the entity and it is not in any
  Region.
* Searching every single region for an entity that is in none of them.

Also:
* Add workaround for bug in specs where deleting any entity clears the
  components before checking that the generation is correct (surprised
  that we haven't encounted bugs from this yet).
* Properly update `tracked_entities` inside `RegionMap` when deleting
  an entity. Previously, we just relied on this being updated in
  `RegionMap::tick` by the absence of the `Pos` component at that index.
  However, this means if a new entity is created at that index after
  deletion and before calling `RegionMap::tick`, then this can be
  interpreted as an entity moving between regions rather than one being
  deleted and another created. It seems like this could lead to
  synchronization bugs like not creating the new entity on the client
  (although I haven't noticed this before, I think maybe we use newly
  inserted `Uid`s to detect new entities rather than the region system?).
  I think it could at least lead to sending redundant messages to
  synchronize the new entity.
2023-08-11 20:09:55 -04:00
Imbris
cdca700297 Properly check conditions for when the client's physics components should be synced 2023-08-11 20:09:55 -04:00
Imbris
a01f75b38d Add sync_me parameter to Presence that must be set to true for
entities with the `Presence` component to be synced to other clients.
2023-08-11 20:09:55 -04:00
Sam
1cc99c9c4a Fixes to animations and making ability that the animation system thinks is being used more correct 2023-07-29 19:03:56 -04:00
Imbris
0b213b6149 Move common code into a separate function to avoid the complexity of calling delete_entity_recorded from handle_exit_ingame 2023-06-04 22:29:19 -04:00
Imbris
599e25c9c6 Address review on !3971 2023-06-04 21:12:39 -04:00
Imbris
ea77a443a2 Fix conditions on some error logging spots 2023-06-04 12:59:09 -04:00
Imbris
65efa779b5 Steps towards properly synchronizing when a client exits in-game to
return to the character screeen. And other related improvements.

* Uid now optional when removing an entity from IdMaps since that Uid
  may have been transferred to the new entity created when the client
  exits "in-game".
* Added notes about making sure to update the CharacterId mapping when
  changing the `kind` field of `Presence`.
* Add a parameter to `delete_entity_recorded` that indicates whether it
  is being called from `handle_exit_ingame` and that provides the `Uid`
  that was removed from the entity so that we can more explicitly and
  correctly handle that case.
* We now add the Uid of the client to the deleted entities list when it
  exits "ingame". (still need to rework code so that the client doesn't
  delete its own entity).
* Improved integration of possession code with ForceUpdate logic.
* Don't remove `Presence` component from old entity in possession so
  that deleting that entity will properly handle updating the
  CharacterId unmapping (if the old entity isn't going to be deleted we
  still remove the `Presence` component so that it doesn't keep terrain
  loaded).
* Added a couple TODOs on existing tangential things I noticed.
2023-06-04 12:58:16 -04:00
Imbris
a8fbfc026a Fix compilation errors from recent changes 2023-06-04 12:58:16 -04:00
Imbris
c60f994c7f Some random changes and a fmt 2023-06-04 12:58:16 -04:00
Imbris
f11baed9fa Adapting various things to the new interface, fixing compilation errors,
and progressing on half done things. Also, added a few TODO comments.
2023-06-04 12:58:16 -04:00
Imbris
4094887997 Rename UidAllocator to IdMaps everywhere, also rename lookup_entity to
uid_entity.

Also made more progress on changes in common/src/uid.rs

(does not compile so don't know if all rebase quirks resolved)
2023-06-04 12:58:16 -04:00
Imbris
35922866a8 Start refactoring UidAllocator to contain mappings for different Id
types.

* Add new `IdMaps` type that contains mappings to Entity from Uid, CharacterId, and
  RtsimEntity.
* Add PresenceKind::LoadingCharacter variant for when the CharacterId
  has not actually been confirmed to exist and belong to the logged in
  client. Switches to the regular PresenceKind::Character once the
  character is loaded from the database and that is used to update the
  entity.
* Start refactoring `delete_entity_recorded` to check for CharacterId
  and RtsimEntity values that may need to be removed from the map (just
  very start, not near complete).
* Other misc tweaks.
2023-06-04 12:58:16 -04:00
Imbris
3277d18265 Rename retrieve_entity_internal to lookup_entity 2023-06-04 12:58:16 -04:00
Imbris
ea725fffde Cleanup UidAllocator and Uid a bit:
* Remove unnecessary Marker/MarkAllocator trait implementations.
* Delete excess functions
* Change some methods to take Uid instead of u64
2023-06-04 12:58:15 -04:00
Joshua Barretto
ec3a7d1898 Make items vanish after 5 minutes 2023-06-01 14:51:19 +01:00
Maxicarlos08
777a69e576
adressed review comments 2023-05-22 23:20:11 +02:00
Joshua Barretto
ec5e3fe716 Avoid re-fetching system data on every link persist 2023-05-13 12:31:19 +01:00
Isse
6674cce2cc intercat with sprites on ships 2023-05-09 19:43:09 +02:00
Joshua Barretto
73c84dfcc2 Clippy 2023-05-05 00:04:13 +01:00
Joshua Barretto
8d9625d6ee Addressed comments 2023-05-04 23:18:40 +01:00
Joshua Barretto
ee971e4056 Added item merging 2023-05-04 22:12:25 +01:00
Isse
3548b464da orient airships correctly on load 2023-04-14 11:25:59 +02:00
Joshua Barretto
16e3227f78 Correct localisation of numeric values, use coordinate conversions in rtsim 2023-04-12 10:36:11 +01:00
Isse
0bb6fa7946 add flag to clamp to ground for RepositionOnChunkLoad 2023-04-12 10:17:49 +02:00
Isse
6be4a2b33f only add RepositionOnChunkLoad to rtsim npcs and don't add Waypoint if it doesn't exist 2023-04-12 09:24:07 +02:00
Joshua Barretto
edcc2f1870 Overhauled chat message representation to allow for more exhaustive localisation 2023-04-11 15:46:36 +01:00
Joshua Barretto
d7ba4ecef7 Allow OnDeath event to handle all actors 2023-04-09 19:25:58 +01:00
Joshua Barretto
3e0f5295c0 Added CharacterActivity, made NPCs look at the player when speaking to them 2023-04-09 19:25:57 +01:00
Joshua Barretto
364255c7fe Allowed rtsim NPCs to greet nearby actors 2023-04-09 19:25:55 +01:00
Joshua Barretto
6035234c6e Removed old rtsim 2023-04-09 19:25:55 +01:00
Isse
1a117f1331 rtsim vehicles 2023-04-09 19:25:54 +01:00
Joshua Barretto
0b4d3c9e20 Fixed scaling of airships 2023-04-09 19:25:53 +01:00
Joshua Barretto
e8b489a71a sync 2023-04-09 19:25:53 +01:00
IsseW
afd9ea5462 site pathing 2023-04-09 19:25:52 +01:00
Joshua Barretto
c168ff2f9b Added rtsim saving, chunk resources, chunk resource depletion 2023-04-09 19:25:51 +01:00
Isse
c34e5ad4ed Small fixes 2023-03-29 23:11:59 +00:00
Sam
a3d655970e Heavy stance required abilities 2023-03-21 19:56:32 -04:00
Sam
9875008efa Added stance component that persists even after sheathing weapon (does not yet work with M1 replacement). 2023-03-21 19:29:34 -04:00
Sam
4c79936c07 Added wrapper type to durations related to buffs and auras. 2023-03-11 16:47:11 -05:00
Sam
663db06844 Made auras no longer need to be mutably accessed every tick. 2023-03-11 16:45:12 -05:00
Sam
9efac9957d Changed buff effects so they did not need to mutably change buffs every tick. Buff system now no longer mutably accesses buffs component. 2023-03-11 16:45:11 -05:00
Sam
b1b41e95f6 Queueable buffs now work with buffs without using a timer, tests too 2023-03-11 16:45:11 -05:00
Sam
89aa934c3c Initial work 2023-03-11 16:45:10 -05:00