Esempio n. 1
0
        /// <summary>
        /// Constructs user data
        /// </summary>
        /// <param name="guid">User GUID</param>
        /// <param name="gameColor">Current user game color</param>
        /// <param name="name">Current username</param>
        /// <param name="lobbyColor">Current user lobby color</param>
        public UserData(Guid guid, EGameColor gameColor, string name, Color lobbyColor)
        {
            if (guid == Guid.Empty)
            {
                throw new ArgumentException("User GUID can't be empty.", nameof(guid));
            }
            if (gameColor == EGameColor.Invalid)
            {
                throw new ArgumentException("User game color can't be invalid.", nameof(gameColor));
            }
            if (name == null)
            {
                throw new ArgumentNullException(nameof(name));
            }
            string new_name = name.Trim();

            if ((new_name.Length < Defaults.minimalUsernameLength) || (new_name.Length > Defaults.maximalUsernameLength))
            {
                throw new ArgumentException($"Username must be between { Defaults.minimalUsernameLength } and { Defaults.maximalUsernameLength } characters long.", nameof(name));
            }
            GUID       = guid;
            GameColor  = gameColor;
            Name       = new_name;
            LobbyColor = lobbyColor;
        }
Esempio n. 2
0
 /// <summary>
 /// Constructs an entity object
 /// </summary>
 /// <param name="guid">Entity GUID</param>
 /// <param name="entityType">Entity type</param>
 /// <param name="gameColor">Game color</param>
 /// <param name="isSpectating">Is spectating</param>
 /// <param name="position">Position</param>
 /// <param name="rotation">Rotation</param>
 /// <param name="velocity">Velocity</param>
 /// <param name="angularVelocity">Angular velocity</param>
 /// <param name="actions">Game actions</param>
 /// <param name="isResyncRequested">Is resynchronization requested</param>
 public Entity(Guid guid, string entityType, EGameColor gameColor, bool isSpectating, Vector3 position, Quaternion rotation, Vector3 velocity, Vector3 angularVelocity, IEnumerable <string> actions, bool isResyncRequested)
 {
     if (guid == Guid.Empty)
     {
         throw new ArgumentException("Entity GUID can't be empty.", nameof(guid));
     }
     if (string.IsNullOrWhiteSpace(entityType))
     {
         throw new ArgumentNullException(nameof(entityType));
     }
     if (gameColor == EGameColor.Invalid)
     {
         throw new ArgumentException("Game color can't be invalid.", nameof(gameColor));
     }
     if (actions == null)
     {
         throw new ArgumentNullException(nameof(actions));
     }
     if (Protection.IsContained(actions, (action) => action == null))
     {
         throw new ArgumentException($"\"{ nameof(actions) }\" contains invalid game actions.", nameof(guid));
     }
     GUID            = guid;
     EntityType      = entityType;
     GameColor       = gameColor;
     IsSpectating    = isSpectating;
     Position        = position;
     Rotation        = rotation;
     Velocity        = velocity;
     AngularVelocity = angularVelocity;
     this.actions.UnionWith(actions);
     IsResyncRequested = isResyncRequested;
 }
Esempio n. 3
0
 /// <summary>
 /// Sets a new game color internally
 /// </summary>
 /// <param name="gameColor">New game color</param>
 public void SetGameColorInternally(EGameColor gameColor)
 {
     if (gameColor == EGameColor.Invalid)
     {
         throw new ArgumentException("Game color can't be invalid.", nameof(gameColor));
     }
     GameColor = gameColor;
 }
 /// <summary>
 /// Sets the new game color of game entity
 /// </summary>
 /// <param name="newGameColor">New game entity game color</param>
 /// <param name="isValueFromClient">Is value from client</param>
 public void SetGameColor(EGameColor newGameColor, bool isValueFromClient)
 {
     if (newGameColor == EGameColor.Invalid)
     {
         throw new ArgumentException("Game color can't be invalid.", nameof(newGameColor));
     }
     if (isValueFromClient)
     {
         if (IsClientGameColorSet)
         {
             SetGameColorInternally(newGameColor);
         }
         else
         {
             IsClientGameColorSet = GameColor == newGameColor;
         }
     }
     else
     {
         IsClientGameColorSet = false;
         SetGameColorInternally(newGameColor);
     }
 }
Esempio n. 5
0
 /// <summary>
 /// Sets the new game color of game entity
 /// </summary>
 /// <param name="newGameColor">New game entity game color</param>
 /// <param name="isValueFromClient">Is value from client</param>
 public virtual void SetGameColor(EGameColor newGameColor, bool isValueFromClient) => ServerEntity.SetGameColor(newGameColor, isValueFromClient);
Esempio n. 6
0
 /// <summary>
 /// Sets the new game color
 /// </summary>
 /// <param name="newGameColor">New game color</param>
 public virtual void SetGameColor(EGameColor newGameColor) => ServerEntity.SetGameColor(newGameColor);
Esempio n. 7
0
 /// <summary>
 /// Sets the new game color
 /// </summary>
 /// <param name="newGameColor">New game color</param>
 public virtual void SetGameColor(EGameColor newGameColor) => ServerUser.SetGameColor(newGameColor);
Esempio n. 8
0
 /// <summary>
 /// Constructs a client user
 /// </summary>
 /// <param name="guid">Entity GUID</param>
 /// <param name="gameColor">Entity game color</param>
 /// <param name="name">Username</param>
 /// <param name="lobbyColor">User lobby color</param>
 public ClientUser(Guid guid, EGameColor gameColor, string name, Color lobbyColor) : base(guid, Defaults.playerEntityType, gameColor, false, Vector3.Zero, Quaternion.Identity, Vector3.Zero, Vector3.Zero, Array.Empty <string>(), false)
 {
     Name       = name ?? throw new ArgumentNullException(nameof(name));
     LobbyColor = lobbyColor;
 }
 /// <summary>
 /// Sets the new game color of game entity
 /// </summary>
 /// <param name="newGameColor">New game entity game color</param>
 public void SetGameColor(EGameColor newGameColor) => SetGameColor(newGameColor, false);
Esempio n. 10
0
 /// <summary>
 /// Constructs a server entity object
 /// </summary>
 /// <param name="guid">Entity GUID</param>
 /// <param name="entityType">Entity type</param>
 /// <param name="gameColor">Game color</param>
 /// <param name="isSpectating">Is spectating</param>
 /// <param name="position">Position</param>
 /// <param name="rotation">Rotation</param>
 /// <param name="velocity">Velocity</param>
 /// <param name="angularVelocity">Angular velocity</param>
 /// <param name="actions">Game actions</param>
 /// <param name="isResyncRequested">Is resynchronization requested</param>
 public ServerEntity(Guid guid, string entityType, EGameColor gameColor, bool isSpectating, Vector3 position, Quaternion rotation, Vector3 velocity, Vector3 angularVelocity, IEnumerable <string> actions, bool isResyncRequested) : base(guid, entityType, gameColor, isSpectating, position, rotation, velocity, angularVelocity, actions, isResyncRequested)
 {
     // ...
 }