protected void GenerateUserPhotoLinks(PropertyTracker.Dto.Models.PropertyList propertyDtoList) { foreach (var propertyDto in propertyDtoList.Properties) { GenerateUserPhotoLinks(propertyDto.Users); } }
public MapSettingsDialog(IGamePlugin plugin, PropertyTracker <BasicSection> basicSettingsTracker, PropertyTracker <BriefingSection> briefingSettingsTracker, IDictionary <House, PropertyTracker <House> > houseSettingsTrackers) { InitializeComponent(); this.plugin = plugin; this.basicSettingsTracker = basicSettingsTracker; this.briefingSettingsTracker = briefingSettingsTracker; this.houseSettingsTrackers = houseSettingsTrackers; settingsTreeView.BeginUpdate(); settingsTreeView.Nodes.Clear(); settingsTreeView.Nodes.Add("BASIC", "Basic"); settingsTreeView.Nodes.Add("BRIEFING", "Briefing"); playersNode = settingsTreeView.Nodes.Add("Players"); foreach (var player in plugin.Map.Houses) { var playerNode = playersNode.Nodes.Add(player.Type.Name, player.Type.Name); playerNode.Checked = player.Enabled; } playersNode.Expand(); settingsTreeView.EndUpdate(); settingsTreeView.SelectedNode = settingsTreeView.Nodes[0]; }
public PropertyTrackerTests() { _complexKeysHelperMock = new Mock <IComplexKeysHelper>(); _expressionsHelperMock = new Mock <IExpressionsHelper>(); _sut = new PropertyTracker <User>( _expressionsHelperMock.Object, _complexKeysHelperMock.Object); }
protected void GenerateUserPhotoLink(PropertyTracker.Dto.Models.User userDto) { // // For some reason Url.Content doesn't compute the base url properly for GET "api/users", // so we just build it ourselves userDto.PhotoUrl = Url.Content(string.Format("{0}/api/users/{1}/photo", ControllerContext.Configuration.VirtualPathRoot, userDto.Id)); //userDto.PhotoUrl = Url.Link("GetUserPhotoRoute", userDto.Id); // returns null for GET /api/users // If you want a random pic - use this. //userDto.PhotoUrl = "http://lorempixel.com/256/256/people/" + userDto.Username; }
// Use this for initialization public virtual void Start() { movement = GetComponentInParent <Movement>(); target = transform.position; prop = GetComponent <PropertyTracker>(); prop["food"] = 0; prop["foodLimit"] = foodLimit; prop["strength"] = strength; prop["size"] = size; prop["attackSpeed"] = attackSpeed; }
// Use this for initialization public virtual void Start() { movement = GetComponentInParent <Movement>(); species = GetComponentInParent <Species>(); prop = GetComponent <PropertyTracker>(); if (species != null) { if (FoodTags != null) { foreach (string tag in FoodTags) { species.AddFoodTag(tag); } } } }
public PlayerSettings(IGamePlugin plugin, PropertyTracker <House> houseSettingsTracker) { this.houseSettingsTracker = houseSettingsTracker; house = houseSettingsTracker; InitializeComponent(); edgeComboBox.Items.Clear(); edgeComboBox.Items.AddRange(new string[] { "North", "South", "West", "East" }); creditsNud.DataBindings.Add("Value", houseSettingsTracker, "Credits"); maxBuildingsNud.DataBindings.Add("Value", houseSettingsTracker, "MaxBuilding"); maxUnitsNud.DataBindings.Add("Value", houseSettingsTracker, "MaxUnit"); edgeComboBox.DataBindings.Add("SelectedItem", houseSettingsTracker, "Edge"); switch (plugin.GameType) { case GameType.TiberianDawn: maxInfantryNud.Visible = maxInfantryLbl.Visible = false; maxVesselsNud.Visible = maxVesselsLbl.Visible = false; techLevelNud.Visible = techLevelLbl.Visible = false; iqNud.Visible = iqLbl.Visible = false; playerControlCheckBox.Visible = playerControlLbl.Visible = false; break; case GameType.RedAlert: maxInfantryNud.DataBindings.Add("Value", houseSettingsTracker, "MaxInfantry"); maxVesselsNud.DataBindings.Add("Value", houseSettingsTracker, "MaxVessel"); techLevelNud.DataBindings.Add("Value", houseSettingsTracker, "TechLevel"); iqNud.DataBindings.Add("Value", houseSettingsTracker, "IQ"); playerControlCheckBox.DataBindings.Add("Checked", houseSettingsTracker, "PlayerControl"); break; } playersListBox.Items.Clear(); playersListBox.Items.AddRange(plugin.Map.Houses.Select(h => h.Type.Name).ToArray()); var selectedIndices = new List <int>(); foreach (var id in house.Allies) { playersListBox.SetSelected(id, true); } playersListBox.SelectedIndexChanged += playersListBox_SelectedIndexChanged; }
private static bool IsProtectedSetter(MemberTracker mt) { PropertyTracker pt = mt as PropertyTracker; if (pt != null) { MethodInfo mi = pt.GetSetMethod(true); if (mi != null && mi.IsProtected()) { return(true); } } FieldTracker ft = mt as FieldTracker; if (ft != null) { return(ft.Field.IsProtected()); } return(false); }
public C1FlexGridGroupPanel() { Watermark = new TextBlock(); Watermark.Text = "Drag a column here to group by that column."; Watermark.Margin = new Thickness(8.0); Children.Add(Watermark); _spMarkers = new StackPanel(); _spMarkers.Orientation = Orientation.Horizontal; _spMarkers.Margin = Watermark.Margin; Children.Add(_spMarkers); _ddm = new DragDropManager(this); _ddm.Dragging += DragDropManager_Dragging; _ddm.Dropped += DragDropManager_Dropped; _propTracker = new PropertyTracker("FontFamily", "FontSize", "HeaderFontWeight", "HeaderGridLinesBrush", "Foreground", "ColumnHeaderForeground", "ColumnHeaderBackground"); LayoutUpdated += delegate { if (this._propTracker.CheckProperties(this.FlexGrid)) { this.RefreshGroupMarkers(); } }; }
//Push properties to appropriate trackers private void Setup() { Species spec = this.GetComponent <Species>(); spec.sightDistance = this.sightDistance; Movement move = this.GetComponent <Movement>(); move.forwardSpeed = this.forwardSpeed; move.turnSpeed = this.turnSpeed; NavMeshAgent nma = this.GetComponent <NavMeshAgent>(); nma.speed = this.forwardSpeed; nma.angularSpeed = this.turnSpeed; PropertyTracker prop = this.GetComponent <PropertyTracker>(); prop.MaxHealth = this.maxHealth; prop.Health = this.maxHealth; prop["eatingSpeed"] = this.eatingSpeed; }
void Wtf() { var tracker = PropertyTracker.Create(); tracker.TrackSet(1, 1, 1); }
// Use this for initialization public void Start() { anim = this.GetComponent <Animator>(); props = this.GetComponent <PropertyTracker>(); }
protected void GenerateUserPhotoLinks(PropertyTracker.Dto.Models.UserList userDtoList) { GenerateUserPhotoLinks(userDtoList.Users); }
public ViewModelBase() { _propertyTracker = new PropertyTracker(FirePropertyChanged); }
private Func <CallSite, TSelfType, CodeContext, object> MakeGetMemberTarget <TSelfType>(string name, object target, CodeContext context) { Type type = CompilerHelpers.GetType(target); // needed for GetMember call until DynamicAction goes away if (typeof(TypeTracker).IsAssignableFrom(type)) { // no fast path for TypeTrackers PerfTrack.NoteEvent(PerfTrack.Categories.BindingSlow, "GetNoFast TypeTracker"); return(null); } MemberGroup members = Context.Binder.GetMember(MemberRequestKind.Get, type, name); if (members.Count == 0 && type.IsInterface()) { // all interfaces have object members type = typeof(object); members = Context.Binder.GetMember(MemberRequestKind.Get, type, name); } if (members.Count == 0 && typeof(IStrongBox).IsAssignableFrom(type)) { // no fast path for strong box access PerfTrack.NoteEvent(PerfTrack.Categories.BindingSlow, "GetNoFast StrongBox"); return(null); } MethodInfo getMem = Context.Binder.GetMethod(type, "GetCustomMember"); if (getMem != null && getMem.IsSpecialName) { // no fast path for custom member access PerfTrack.NoteEvent(PerfTrack.Categories.BindingSlow, "GetNoFast GetCustomMember " + type); return(null); } Expression error; TrackerTypes memberType = Context.Binder.GetMemberType(members, out error); if (error == null) { PythonType argType = DynamicHelpers.GetPythonTypeFromType(type); bool isHidden = argType.IsHiddenMember(name); if (isHidden) { PerfTrack.NoteEvent(PerfTrack.Categories.BindingSlow, "GetNoFast FilteredMember " + memberType); return(null); } switch (memberType) { case TrackerTypes.TypeGroup: case TrackerTypes.Type: object typeObj; if (members.Count == 1) { typeObj = DynamicHelpers.GetPythonTypeFromType(((TypeTracker)members[0]).Type); } else { TypeTracker typeTracker = (TypeTracker)members[0]; for (int i = 1; i < members.Count; i++) { typeTracker = TypeGroup.UpdateTypeEntity(typeTracker, (TypeTracker)members[i]); } typeObj = typeTracker; } return(new FastTypeGet <TSelfType>(type, typeObj).GetTypeObject); case TrackerTypes.Method: PythonTypeSlot slot = PythonTypeOps.GetSlot(members, name, _context.DomainManager.Configuration.PrivateBinding); if (slot is BuiltinMethodDescriptor) { return(new FastMethodGet <TSelfType>(type, (BuiltinMethodDescriptor)slot).GetMethod); } else if (slot is BuiltinFunction) { return(new FastSlotGet <TSelfType>(type, slot, DynamicHelpers.GetPythonTypeFromType(type)).GetRetSlot); } return(new FastSlotGet <TSelfType>(type, slot, DynamicHelpers.GetPythonTypeFromType(type)).GetBindSlot); case TrackerTypes.Event: if (members.Count == 1 && !((EventTracker)members[0]).IsStatic) { slot = PythonTypeOps.GetSlot(members, name, _context.DomainManager.Configuration.PrivateBinding); return(new FastSlotGet <TSelfType>(type, slot, DynamicHelpers.GetPythonTypeFromType(((EventTracker)members[0]).DeclaringType)).GetBindSlot); } PerfTrack.NoteEvent(PerfTrack.Categories.BindingSlow, "GetNoFast Event " + members.Count + " " + ((EventTracker)members[0]).IsStatic); return(null); case TrackerTypes.Property: if (members.Count == 1) { PropertyTracker pt = (PropertyTracker)members[0]; if (!pt.IsStatic && pt.GetIndexParameters().Length == 0) { MethodInfo prop = pt.GetGetMethod(); ParameterInfo[] parameters; if (prop != null && (parameters = prop.GetParameters()).Length == 0) { if (prop.ReturnType == typeof(bool)) { return(new FastPropertyGet <TSelfType>(type, CallInstruction.Create(prop, parameters).Invoke).GetPropertyBool); } else if (prop.ReturnType == typeof(int)) { return(new FastPropertyGet <TSelfType>(type, CallInstruction.Create(prop, parameters).Invoke).GetPropertyInt); } else { return(new FastPropertyGet <TSelfType>(type, CallInstruction.Create(prop, parameters).Invoke).GetProperty); } } } } PerfTrack.NoteEvent(PerfTrack.Categories.BindingSlow, "GetNoFast Property " + members.Count + " " + ((PropertyTracker)members[0]).IsStatic); return(null); case TrackerTypes.All: getMem = Context.Binder.GetMethod(type, "GetBoundMember"); if (getMem != null && getMem.IsSpecialName) { PerfTrack.NoteEvent(PerfTrack.Categories.BindingSlow, "GetNoFast GetBoundMember " + type); return(null); } if (members.Count == 0) { // we don't yet support fast bindings to extension methods members = context.ModuleContext.ExtensionMethods.GetBinder(_context).GetMember(MemberRequestKind.Get, type, name); if (members.Count == 0) { if (IsNoThrow) { return(new FastErrorGet <TSelfType>(type, name, context.ModuleContext.ExtensionMethods).GetErrorNoThrow); } else if (SupportsLightThrow) { return(new FastErrorGet <TSelfType>(type, name, context.ModuleContext.ExtensionMethods).GetErrorLightThrow); } else { return(new FastErrorGet <TSelfType>(type, name, context.ModuleContext.ExtensionMethods).GetError); } } } return(null); default: PerfTrack.NoteEvent(PerfTrack.Categories.BindingSlow, "GetNoFast " + memberType); return(null); } } else { StringBuilder sb = new StringBuilder(); foreach (MemberTracker mi in members) { if (sb.Length != 0) { sb.Append(", "); } sb.Append(mi.MemberType); sb.Append(" : "); sb.Append(mi.ToString()); } return(new FastErrorGet <TSelfType>(type, sb.ToString(), context.ModuleContext.ExtensionMethods).GetAmbiguous); } }
// Use this for initialization void Start() { prop = GetComponentInParent <PropertyTracker>(); }
internal static ReflectedGetterSetter GetReflectedProperty(PropertyTracker pt, MemberGroup allProperties, bool privateBinding) { ReflectedGetterSetter rp; lock (_propertyCache) { if (_propertyCache.TryGetValue(pt, out rp)) { return(rp); } NameType nt = NameType.PythonProperty; MethodInfo getter = FilterProtectedGetterOrSetter(pt.GetGetMethod(true), privateBinding); MethodInfo setter = FilterProtectedGetterOrSetter(pt.GetSetMethod(true), privateBinding); if ((getter != null && PythonHiddenAttribute.IsHidden(getter, true)) || (setter != null && PythonHiddenAttribute.IsHidden(setter, true))) { nt = NameType.Property; } ExtensionPropertyTracker ept = pt as ExtensionPropertyTracker; if (ept == null) { ReflectedPropertyTracker rpt = pt as ReflectedPropertyTracker; Debug.Assert(rpt != null); if (PythonBinder.IsExtendedType(pt.DeclaringType) || PythonHiddenAttribute.IsHidden(rpt.Property, true)) { nt = NameType.Property; } if (pt.GetIndexParameters().Length == 0) { List <MethodInfo> getters = new List <MethodInfo>(); List <MethodInfo> setters = new List <MethodInfo>(); IList <ExtensionPropertyTracker> overriddenProperties = NewTypeMaker.GetOverriddenProperties((getter ?? setter).DeclaringType, pt.Name); foreach (ExtensionPropertyTracker tracker in overriddenProperties) { MethodInfo method = tracker.GetGetMethod(privateBinding); if (method != null) { getters.Add(method); } method = tracker.GetSetMethod(privateBinding); if (method != null) { setters.Add(method); } } foreach (PropertyTracker propTracker in allProperties) { MethodInfo method = propTracker.GetGetMethod(privateBinding); if (method != null) { getters.Add(method); } method = propTracker.GetSetMethod(privateBinding); if (method != null) { setters.Add(method); } } rp = new ReflectedProperty(rpt.Property, getters.ToArray(), setters.ToArray(), nt); } else { rp = new ReflectedIndexer(((ReflectedPropertyTracker)pt).Property, NameType.Property, privateBinding); } } else { rp = new ReflectedExtensionProperty(new ExtensionPropertyInfo(pt.DeclaringType, getter ?? setter), nt); } _propertyCache[pt] = rp; return(rp); } }
public ImageButtonRenderer() { PropertyTracker.AddHandler(ImageButton.ImageProperty, HandleImage); }