Beispiel #1
0
 /// <summary>
 /// Adds the variable.
 /// </summary>
 /// <param name="name">The name.</param>
 /// <param name="so">The so.</param>
 public void AddVariable(string name, RoomVariable so)
 {
     if (!_roomVariables.ContainsKey(name))
     {
         _roomVariables.Add(name, so);
     }
 }
Beispiel #2
0
 /// <summary>
 /// Adds the variable.
 /// </summary>
 /// <param name="name">The name.</param>
 /// <param name="so">The so.</param>
 public void AddVariable(string name, RoomVariable so)
 {
     if (!_roomVariables.ContainsKey(name))
     {
         _roomVariables.Add(name, so);
     }
 }
Beispiel #3
0
 public void SetVariable(RoomVariable roomVariable)
 {
     if (roomVariable.IsNull())
     {
         variables.Remove(roomVariable.Name);
     }
     else
     {
         variables[roomVariable.Name] = roomVariable;
     }
 }
Beispiel #4
0
 public override void Execute(SmartFox sfs)
 {
     sfso.PutUtfString(KEY_NAME, settings.Name);
     sfso.PutUtfString(KEY_GROUP_ID, settings.GroupId);
     sfso.PutUtfString(KEY_PASSWORD, settings.Password);
     sfso.PutBool(KEY_ISGAME, settings.IsGame);
     sfso.PutShort(KEY_MAXUSERS, settings.MaxUsers);
     sfso.PutShort(KEY_MAXSPECTATORS, settings.MaxSpectators);
     sfso.PutShort(KEY_MAXVARS, settings.MaxVariables);
     sfso.PutBool(KEY_ALLOW_JOIN_INVITATION_BY_OWNER, settings.AllowOwnerOnlyInvitation);
     if (settings.Variables != null && settings.Variables.Count > 0)
     {
         ISFSArray iSFSArray = SFSArray.NewInstance();
         foreach (RoomVariable variable in settings.Variables)
         {
             if (variable is RoomVariable)
             {
                 RoomVariable roomVariable = variable as RoomVariable;
                 iSFSArray.AddSFSArray(roomVariable.ToSFSArray());
             }
         }
         sfso.PutSFSArray(KEY_ROOMVARS, iSFSArray);
     }
     if (settings.Permissions != null)
     {
         List <bool> list = new List <bool>();
         list.Add(settings.Permissions.AllowNameChange);
         list.Add(settings.Permissions.AllowPasswordStateChange);
         list.Add(settings.Permissions.AllowPublicMessages);
         list.Add(settings.Permissions.AllowResizing);
         sfso.PutBoolArray(KEY_PERMISSIONS, list.ToArray());
     }
     if (settings.Events != null)
     {
         List <bool> list2 = new List <bool>();
         list2.Add(settings.Events.AllowUserEnter);
         list2.Add(settings.Events.AllowUserExit);
         list2.Add(settings.Events.AllowUserCountChange);
         list2.Add(settings.Events.AllowUserVariablesUpdate);
         sfso.PutBoolArray(KEY_EVENTS, list2.ToArray());
     }
     if (settings.Extension != null)
     {
         sfso.PutUtfString(KEY_EXTID, settings.Extension.Id);
         sfso.PutUtfString(KEY_EXTCLASS, settings.Extension.ClassName);
         if (settings.Extension.PropertiesFile != null && settings.Extension.PropertiesFile.Length > 0)
         {
             sfso.PutUtfString(KEY_EXTPROP, settings.Extension.PropertiesFile);
         }
     }
     if (settings is MMORoomSettings)
     {
         MMORoomSettings mMORoomSettings = settings as MMORoomSettings;
         if (mMORoomSettings.DefaultAOI.IsFloat())
         {
             sfso.PutFloatArray(KEY_MMO_DEFAULT_AOI, mMORoomSettings.DefaultAOI.ToFloatArray());
             if (mMORoomSettings.MapLimits != null)
             {
                 sfso.PutFloatArray(KEY_MMO_MAP_LOW_LIMIT, mMORoomSettings.MapLimits.LowerLimit.ToFloatArray());
                 sfso.PutFloatArray(KEY_MMO_MAP_HIGH_LIMIT, mMORoomSettings.MapLimits.HigherLimit.ToFloatArray());
             }
         }
         else
         {
             sfso.PutIntArray(KEY_MMO_DEFAULT_AOI, mMORoomSettings.DefaultAOI.ToIntArray());
             if (mMORoomSettings.MapLimits != null)
             {
                 sfso.PutIntArray(KEY_MMO_MAP_LOW_LIMIT, mMORoomSettings.MapLimits.LowerLimit.ToIntArray());
                 sfso.PutIntArray(KEY_MMO_MAP_HIGH_LIMIT, mMORoomSettings.MapLimits.HigherLimit.ToIntArray());
             }
         }
         sfso.PutShort(KEY_MMO_USER_MAX_LIMBO_SECONDS, (short)mMORoomSettings.UserMaxLimboSeconds);
         sfso.PutShort(KEY_MMO_PROXIMITY_UPDATE_MILLIS, (short)mMORoomSettings.ProximityListUpdateMillis);
         sfso.PutBool(KEY_MMO_SEND_ENTRY_POINT, mMORoomSettings.SendAOIEntryPoint);
     }
     sfso.PutBool(KEY_AUTOJOIN, autoJoin);
     if (roomToLeave != null)
     {
         sfso.PutInt(KEY_ROOM_TO_LEAVE, roomToLeave.Id);
     }
 }