/// <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); } }
/// <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); } }
public void SetVariable(RoomVariable roomVariable) { if (roomVariable.IsNull()) { variables.Remove(roomVariable.Name); } else { variables[roomVariable.Name] = roomVariable; } }
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); } }