Metadata intended to be stored per-body, together with data intended to be
stored for each species for each body.
Aura
Applies a buff to entities in the radius if meeting
conditions set forth in the aura system.
Component holding all auras emitted by an entity.
Behavior Component
Data representing data generic to the body together with per-species data.
Actual de/buff.
Buff can timeout after some time if time
is Some. If time
is None,
Buff will last indefinitely, until removed manually (by some action, like
uncursing).
Component holding all de/buffs that gets resolved each tick.
On each tick, remaining time of buffs get lowered and
buff effect of each buff is applied or not, depending on the BuffEffect
(specs system will decide based on BuffEffect
, to simplify
implementation). TODO: Something like once
flag for Buff
to remove the
dependence on BuffEffect
enum?
Contains information about the visual activity of a character.
The average density (specific mass) of an entity.
Units used for reference is kg/m³
Energy is represented by u32s within the module, but treated as a float by
the rest of the game.
Auras affecting an entity
Player factions are used to coordinate pvp vs hostile factions or segment
chat from the world
Used to forcefully update the position, velocity, and orientation of the
client
Newtype around
Item
used for frontend events to prevent it accidentally
being used for anything other than frontend events
Health is represented by u32s within the module, but treated as a float by
the rest of the game.
Specifies what and how much changed current health
NOTE: Do not add a PartialEq instance for Inventory; that’s broken!
NOTE: Do not call Item::clone
without consulting the core devs! It only
exists due to being required for message serialization at the moment, and
should not be used for any other purpose.
Marker on the map, used for sharing waypoint with group and
persisting it server side.
PID controllers are used for automatically adapting nonlinear controls (like
buoyancy for airships) to target specific outcomes (i.e. a specific height)
Poise is represented by u32s within the module, but treated as a float by
the rest of the game.
Position
Used to defer writes to Pos/Vel in nested join loops
Cache of Velocity (of last tick) * dt (of curent tick)
It’s updated and read in physics sys to speed up entity<->entity collisions
no need to send it via network
A group of skills that have been unlocked by a player. Each skill group has
independent exp and skill points which are used to unlock skills in that
skill group.
Contains all of a player’s skill groups and skills. Provides methods for
manipulating assigned skills and skill groups including unlocking skills,
refunding skills etc.
Adds a speech bubble above the character
Data returned from character behavior fn’s to Character Behavior System.
Velocity
This component exists in order to fix a bug that caused entities
such as campfires to duplicate because the chunk was double-loaded.
See https://gitlab.com/veloren/veloren/-/merge_requests/1543
Information about whether aura addition or removal was requested.
This to implement “on_add” and “on_remove” hooks for auras
AuraKind is what kind of effect an aura applies
Currently only buffs are implemented
De/buff category ID.
Similar to BuffKind
, but to mark a category (for more generic usage, like
positive/negative buffs).
Information about whether buff addition or removal was requested.
This to implement “on_add” and “on_remove” hooks for constant buffs.
Data indicating and configuring behaviour of a de/buff.
De/buff Kind.
This is used to determine what effects a buff will have
Source of the de/buff
For documentation on individual fields, see the corresponding character
state file in ‘common/src/states/’
A lighter form of character state to pass around as needed for frontend
purposes
A player’s current chat mode. These are chat types that can only be sent by
the player.
List of chat types. Each one is colored differently and has its own icon.
The type to represent generic localization request, to be sent from server
to client and then localized (or internationalized) there.
Fluid medium in which the entity exists
Semantic gender aka body_type
ItemKey should only be used for front-end identification purposes
States to define effects of a poise change
Represents a skill that a player can unlock, that either grants them some
kind of active ability, or a passive effect etc. Obviously because this is
an enum it doesn’t describe what the skill actually -does-, this will be
handled by dedicated ECS systems.
List of chat types for players and NPCs. Each one has its own icon.