public static bool TryGetValue <T>(string key, out T value) { bool flag = false; value = default(T); Tuple <bool, string, OrganizationCache.LoadHandler, TimeSpan> tuple = null; if (OrganizationCache.definitionStore.TryGetValue(key, out tuple) && tuple.Item1) { Dictionary <string, Tuple <object, DateTime> > valueStore = OrganizationCache.ValueStore; flag = (string.IsNullOrEmpty(tuple.Item2) || RbacPrincipal.Current.IsInRole(tuple.Item2)); if (flag) { Tuple <object, DateTime> tuple2; if (!valueStore.TryGetValue(key, out tuple2) || tuple2.Item2 < DateTime.UtcNow) { tuple.Item3(new OrganizationCache.AddValueHandler(OrganizationCache.AddValue), new OrganizationCache.LogErrorHandler(OrganizationCache.LogError)); valueStore.TryGetValue(key, out tuple2); } if (tuple2 != null) { value = (T)((object)tuple2.Item1); } else { flag = false; } } } return(flag); }
private static void EndAction <T>(Tuple <Mobile, T, Action <Mobile, T> > t) { if (!t.Item1.CanBeginAction(t.Item2)) { t.Item1.EndAction(t.Item2); if (t.Item3 != null) { t.Item3(t.Item1, t.Item2); } } }
private static void EndAction <T>(Tuple <Item, T, Action <Item, T> > t) { if (!CanBeginAction(t.Item1, t.Item2)) { EndAction(t.Item1, t.Item2); if (t.Item3 != null) { t.Item3(t.Item1, t.Item2); } } }
private static void FormatPretty(StringBuilder sb, TimeSpan ts, Tuple <string, int, Func <TimeSpan, int> > formatter) { var padding = formatter.Item2; if (sb.Length == 0) { padding = 1; } else { sb.Append(" "); } sb.Append(formatter.Item3(ts).ToString("D" + padding)).Append(formatter.Item1); }
/// <summary> /// Property setter implementation tries to retrieve value from instance /// first then into this object /// </summary> /// <param name="binder"></param> /// <param name="value"></param> /// <returns></returns> public override bool TrySetMember(SetMemberBinder binder, object value) { string signature = binder.Name; if (Instance != null) { try { Tuple <string, object, Runtime.wrapSetProperty> funcs = (Tuple <string, object, Runtime.wrapSetProperty>)Properties[binder.Name]; funcs.Item3(value); return(true); } catch (Exception e) { Console.WriteLine("JVM Object TrySetMember: " + e); } } Properties[binder.Name] = value; return(true); }
void Publisher() { var nextPublish = Stopwatch.GetTimestamp(); while (!Destroyed) { long now = Stopwatch.GetTimestamp(); if (now < nextPublish) { Thread.Sleep(0); continue; } Tuple <double, float, Action> msg = null; lock (MessageQueue) { if (MessageQueue.Count > 0) { msg = MessageQueue.Dequeue(); } } if (msg != null) { if (!Sending) // Drop this message if previous sending has not finished. { try { Sending = true; msg.Item3(); } catch { Sending = false; } } nextPublish = now + (long)(Stopwatch.Frequency * msg.Item2); LastTimestamp = msg.Item1; } } }
void Publisher() { var nextPublish = Stopwatch.GetTimestamp(); while (!Destroyed) { long now = Stopwatch.GetTimestamp(); if (now < nextPublish) { Thread.Sleep(0); continue; } Tuple <double, float, Action> msg = null; lock (MessageQueue) { if (MessageQueue.Count > 0) { msg = MessageQueue.Dequeue(); } } if (msg != null) { try { msg.Item3(); } catch (Exception ex) { UnityEngine.Debug.LogException(ex, this); } nextPublish = now + (long)(Stopwatch.Frequency * msg.Item2); LastTimestamp = msg.Item1; } } }
private void ApplyPermissions() { foreach (Tuple <string, SpawnerEntityEditorHelper.Permission, Action <float> > childrenPermission in this._stableChildrenPermissions) { Tuple <string, SpawnerEntityEditorHelper.Permission, Action <float> > item = childrenPermission; KeyValuePair <string, MatrixFrame> keyValuePair = this.stableChildrenFrames.Find((Predicate <KeyValuePair <string, MatrixFrame> >)(x => x.Key == item.Item1)); MatrixFrame frame = this.GetGhostEntityOrChild(item.Item1).GetFrame(); if (!frame.NearlyEquals(keyValuePair.Value)) { switch (item.Item2.TypeOfPermission) { case SpawnerEntityEditorHelper.PermissionType.scale: if (frame.origin.NearlyEquals(keyValuePair.Value.origin, 0.0001f) && frame.rotation.f.NormalizedCopy().NearlyEquals(keyValuePair.Value.rotation.f.NormalizedCopy(), 0.0001f) && (frame.rotation.u.NormalizedCopy().NearlyEquals(keyValuePair.Value.rotation.u.NormalizedCopy(), 0.0001f) && frame.rotation.s.NormalizedCopy().NearlyEquals(keyValuePair.Value.rotation.s.NormalizedCopy(), 0.0001f))) { switch (item.Item2.PermittedAxis) { case SpawnerEntityEditorHelper.Axis.x: if (!frame.rotation.f.NearlyEquals(keyValuePair.Value.rotation.f)) { this.ChangeStableChildMatrixFrame(item.Item1, frame); item.Item3(frame.rotation.f.Length); continue; } continue; case SpawnerEntityEditorHelper.Axis.y: if (!frame.rotation.s.NearlyEquals(keyValuePair.Value.rotation.s)) { this.ChangeStableChildMatrixFrame(item.Item1, frame); item.Item3(frame.rotation.s.Length); continue; } continue; case SpawnerEntityEditorHelper.Axis.z: if (!frame.rotation.u.NearlyEquals(keyValuePair.Value.rotation.u)) { this.ChangeStableChildMatrixFrame(item.Item1, frame); item.Item3(frame.rotation.u.Length); continue; } continue; default: continue; } } else { continue; } case SpawnerEntityEditorHelper.PermissionType.rotation: switch (item.Item2.PermittedAxis) { case SpawnerEntityEditorHelper.Axis.x: if (!frame.rotation.f.NearlyEquals(keyValuePair.Value.rotation.f) && !frame.rotation.u.NearlyEquals(keyValuePair.Value.rotation.u) && frame.rotation.s.NearlyEquals(keyValuePair.Value.rotation.s)) { this.ChangeStableChildMatrixFrame(item.Item1, frame); item.Item3(frame.rotation.GetEulerAngles().x); continue; } continue; case SpawnerEntityEditorHelper.Axis.y: if (!frame.rotation.s.NearlyEquals(keyValuePair.Value.rotation.s) && !frame.rotation.u.NearlyEquals(keyValuePair.Value.rotation.u) && frame.rotation.f.NearlyEquals(keyValuePair.Value.rotation.f)) { this.ChangeStableChildMatrixFrame(item.Item1, frame); item.Item3(frame.rotation.GetEulerAngles().y); continue; } continue; case SpawnerEntityEditorHelper.Axis.z: if (!frame.rotation.f.NearlyEquals(keyValuePair.Value.rotation.f) && !frame.rotation.s.NearlyEquals(keyValuePair.Value.rotation.s) && frame.rotation.u.NearlyEquals(keyValuePair.Value.rotation.u)) { this.ChangeStableChildMatrixFrame(item.Item1, frame); item.Item3(frame.rotation.GetEulerAngles().z); continue; } continue; default: continue; } default: continue; } } } }
private static void FormatPretty(StringBuilder sb, TimeSpan ts, Tuple<string, int, Func<TimeSpan, int>> formatter) { var padding = formatter.Item2; if (sb.Length == 0) padding = 1; else sb.Append(" "); sb.Append(formatter.Item3(ts).ToString("D" + padding)).Append(formatter.Item1); }
/// <summary> /// Attempt to translate any Extra text for an item. /// </summary> /// <param name="strExtra">Extra string to translate.</param> public static string TranslateExtra(string strExtra) { string strReturn = string.Empty; // Only attempt to translate if we're not using English. Don't attempt to translate an empty string either. if (_strLanguage != GlobalOptions.DefaultLanguage && !string.IsNullOrWhiteSpace(strExtra)) { // Attempt to translate CharacterAttribute names. switch (strExtra) { case "BOD": strReturn = GetString("String_AttributeBODShort"); break; case "AGI": strReturn = GetString("String_AttributeAGIShort"); break; case "REA": strReturn = GetString("String_AttributeREAShort"); break; case "STR": strReturn = GetString("String_AttributeSTRShort"); break; case "CHA": strReturn = GetString("String_AttributeCHAShort"); break; case "INT": strReturn = GetString("String_AttributeINTShort"); break; case "LOG": strReturn = GetString("String_AttributeLOGShort"); break; case "WIL": strReturn = GetString("String_AttributeWILShort"); break; case "EDG": strReturn = GetString("String_AttributeEDGShort"); break; case "MAG": strReturn = GetString("String_AttributeMAGShort"); break; case "MAGAdept": strReturn = GetString("String_AttributeMAGShort") + " (" + GetString("String_DescAdept") + ")"; break; case "RES": strReturn = GetString("String_AttributeRESShort"); break; case "DEP": strReturn = GetString("String_AttributeDEPShort"); break; case "Physical": strReturn = GetString("Node_Physical"); break; case "Mental": strReturn = GetString("Node_Mental"); break; case "Social": strReturn = GetString("Node_Social"); break; case "Left": strReturn = GetString("String_Improvement_SideLeft"); break; case "Right": strReturn = GetString("String_Improvement_SideRight"); break; default: string strExtraNoQuotes = strExtra.FastEscape('\"'); object strReturnLock = new object(); Parallel.For(0, lstXPathsToSearch.Length, (i, state) => { Tuple <string, string, Func <XmlNode, string>, Func <XmlNode, string> > objXPathPair = lstXPathsToSearch[i]; foreach (XmlNode objNode in XmlManager.Load(objXPathPair.Item1).SelectNodes(objXPathPair.Item2)) { if (objXPathPair.Item3(objNode) == strExtraNoQuotes) { string strTranslate = objXPathPair.Item4(objNode); if (!string.IsNullOrEmpty(strTranslate)) { lock (strReturnLock) strReturn = strTranslate; state.Stop(); break; } } } }); break; } } // If no translation could be found, just use whatever we were passed. if (string.IsNullOrEmpty(strReturn) || strReturn.Contains("Error finding string for key - ")) { strReturn = strExtra; } return(strReturn); }