Exemple #1
0
        private static NavElement ParseNavElement(XElement element)
        {
            NavElement result = null;

            if (element != null && element.Name.LocalName == ELEMENT_NAV && element.Attribute(ATTRIBUTE_TYPE) != null)
            {
                var xNamespace = element.GetDefaultNamespace();

                result = new NavElement
                {
                    Type     = element.Attribute(ATTRIBUTE_TYPE)?.Value,
                    Id       = element.Attribute(ATTRIBUTE_ID)?.Value,
                    IsHidden = element.Attribute(ATTRIBUTE_HIDDEN) != null,
                    Ol       = ParseNavOl(element.Element(xNamespace + ELEMENT_OL)),
                };

                foreach (var head in NAV_HEAD_LIST)
                {
                    var headELement = element.Element(xNamespace + head);
                    if (headELement != null)
                    {
                        result.NavHead = new NavHead
                        {
                            Name  = head,
                            Value = headELement.Value,
                        };
                        break;
                    }
                }
            }

            return(result);
        }
Exemple #2
0
        private void CreatePolygon()
        {
            DeusaldSharp.Vector2[] points = new DeusaldSharp.Vector2[_Points.Length];

            for (int i = 0; i < points.Length; ++i)
            {
                points[i] = ToVec2(_Points[i]);
            }

            if (_IsObstacle)
            {
                NavElement element       = Nav2D.AddObstacle(points, ToVec2(_SpawnPosition), _SpawnRotation, _ExtraOffset);
                GameObject elementObject = Instantiate(_NavMeshElementObject, _SpawnPosition, Quaternion.identity);
                elementObject.GetComponent <NavMeshElement>().Init(element, this);
            }
            else
            {
                if (_Cost <= 0f)
                {
                    Debug.LogError("Cost can't be less than 0");
                    return;
                }

                NavElement element       = Nav2D.AddSurface(points, ToVec2(_SpawnPosition), _SpawnRotation, _Cost, _ExtraOffset);
                GameObject elementObject = Instantiate(_NavMeshElementObject, _SpawnPosition, Quaternion.identity);
                elementObject.GetComponent <NavMeshElement>().Init(element, this);
            }
        }
Exemple #3
0
        private void CreateCircle()
        {
            if (_Radius < 0f)
            {
                Debug.LogError("Radius can't be less than 0!");
                return;
            }

            if (_IsObstacle)
            {
                NavElement element       = Nav2D.AddObstacle(_Radius, ToVec2(_SpawnPosition), _ExtraOffset);
                GameObject elementObject = Instantiate(_NavMeshElementObject, _SpawnPosition, Quaternion.identity);
                elementObject.GetComponent <NavMeshElement>().Init(element, this);
            }
            else
            {
                if (_Cost <= 0f)
                {
                    Debug.LogError("Cost can't be less than 0");
                    return;
                }

                NavElement element       = Nav2D.AddSurface(_Radius, ToVec2(_SpawnPosition), _Cost, _ExtraOffset);
                GameObject elementObject = Instantiate(_NavMeshElementObject, _SpawnPosition, Quaternion.identity);
                elementObject.GetComponent <NavMeshElement>().Init(element, this);
            }
        }
Exemple #4
0
 public void Init(NavElement navElement, MainNav2D mainNav2D)
 {
     _MainNav             = mainNav2D;
     _NavElement          = navElement;
     _PreviousExtraOffset = 0f;
     _PreviousPosition    = Vector2.zero;
     _PreviousRotation    = 0f;
     navElement.NavElementPointsRefreshed += RefreshPoints;
     RefreshPoints(this, EventArgs.Empty);
 }
Exemple #5
0
        public void SetsItemName(Item home, Item child1)
        {
            home.GetChildren().Returns(new ChildList(home, new List <Item> {
                child1
            }));
            child1.Name.Should().NotBeNullOrEmpty();

            ViewResult result = _sut.Index();

            NavElement navElement = result.Model.GetList().First();

            navElement.Text.Should().Be(child1.Name);
        }
Exemple #6
0
        public void SetsUrlFromLinkManager(Item home, Item child1, string someUrl)
        {
            home.GetChildren().Returns(new ChildList(home, new List <Item> {
                child1
            }));
            var fakeLinkManager = Substitute.For <BaseLinkManager>();

            ServiceLocator.SetServiceProvider(new LinkManagerService(fakeLinkManager));
            fakeLinkManager.GetItemUrl(child1).Returns(someUrl);

            ViewResult result = _sut.Index();

            NavElement navElement = result.Model.GetList().First();

            navElement.Href.Should().Be(someUrl);
        }
Exemple #7
0
 public void NameAndUrlSet()
 {
     using (var db = new Db()
     {
         new DbItem("Home")
         {
             new DbItem("item 1")
         }
     })
     {
         var        viewResult = _sut.Index() as ViewResult;
         NavElement element    = (viewResult.Model as IEnumerable <NavElement>).First();
         element.Text.Should().Be("item 1");
         element.Href.Should().Be("/en/item 1.aspx");
     }
 }
        //protected override void BindEvents()
        //{
        //    //if (_designEvents.Count <= 0) return;

        //    //foreach(EventAction ea in _designEvents.Values)
        //    //{
        //    //    if (ea.Actions.Count <= 0) continue;

        //    //    //绑定执行事件
        //    //    switch(ea.ActType)
        //    //    {
        //    //        case ActionType.atSysFixedEvent:
        //    //            break;
        //    //        case ActionType.atUserToolEvent:

        //    //            break;
        //    //        //case ActionType.atSysToolEvent://该类型不需要绑定
        //    //        //    break;
        //    //        default:
        //    //            break;
        //    //    }
        //    //}
        //}


        private void DoUserToolEvent_NavElement(object sender, NavElementEventArgs e)
        {
            NavElement ne = (sender as NavElement);

            if (ne == null)
            {
                return;
            }

            //没有对应的事件配置
            if (_designEvents.ContainsKey(ne.Caption) == false)
            {
                return;
            }

            EventActionReleation ea = _designEvents[ne.Caption];

            DoActions(ea, sender);
        }
Exemple #9
0
        private void CreateBox()
        {
            List <DeusaldSharp.Vector2> points = new List <DeusaldSharp.Vector2>();

            float halfWidth  = _Width / 2f;
            float halfHeight = _Height / 2f;

            if (halfWidth < 0f || halfHeight < 0f)
            {
                Debug.LogError("Width and Height can't be less than 0!");
                return;
            }

            points.Add(new DeusaldSharp.Vector2(-halfWidth, halfHeight));
            points.Add(new DeusaldSharp.Vector2(-halfWidth, -halfHeight));
            points.Add(new DeusaldSharp.Vector2(halfWidth, -halfHeight));
            points.Add(new DeusaldSharp.Vector2(halfWidth, halfHeight));

            if (_IsObstacle)
            {
                NavElement element       = Nav2D.AddObstacle(points.ToArray(), ToVec2(_SpawnPosition), _SpawnRotation, _ExtraOffset);
                GameObject elementObject = Instantiate(_NavMeshElementObject, _SpawnPosition, Quaternion.identity);
                elementObject.GetComponent <NavMeshElement>().Init(element, this);
            }
            else
            {
                if (_Cost <= 0f)
                {
                    Debug.LogError("Cost can't be less than 0");
                    return;
                }

                NavElement element       = Nav2D.AddSurface(points.ToArray(), ToVec2(_SpawnPosition), _SpawnRotation, _Cost, _ExtraOffset);
                GameObject elementObject = Instantiate(_NavMeshElementObject, _SpawnPosition, Quaternion.identity);
                elementObject.GetComponent <NavMeshElement>().Init(element, this);
            }
        }