예제 #1
0
        protected override void Update(float time)
        {
            base.Update(time);

            if (_element == null)
            {
                _element = Controller.Find(_context) as IIndexedElement;
            }
        }
예제 #2
0
        public void Move(IIndexedElement element, Vector3 Position)
        {
            var oldBasePosition = CurrentPositions[element];
            var newBasePosition = GetBasePosition(Position);

            if (oldBasePosition == newBasePosition)
            {
                return;
            }
            MoveElementBetweenChunks(element, oldBasePosition, newBasePosition);
        }
예제 #3
0
 private void AddElement(IIndexedElement element, IntVector2 newPosition)
 {
     CurrentPositions[element] = newPosition;
     GetElements(new IntVector2(newPosition.x - 1, newPosition.y - 1)).Add(element);
     GetElements(new IntVector2(newPosition.x - 1, newPosition.y)).Add(element);
     GetElements(new IntVector2(newPosition.x - 1, newPosition.y + 1)).Add(element);
     GetElements(new IntVector2(newPosition.x, newPosition.y - 1)).Add(element);
     GetElements(new IntVector2(newPosition.x, newPosition.y)).Add(element);
     GetElements(new IntVector2(newPosition.x, newPosition.y + 1)).Add(element);
     GetElements(new IntVector2(newPosition.x + 1, newPosition.y - 1)).Add(element);
     GetElements(new IntVector2(newPosition.x + 1, newPosition.y)).Add(element);
     GetElements(new IntVector2(newPosition.x + 1, newPosition.y + 1)).Add(element);
 }
예제 #4
0
 private void RemoveElement(IIndexedElement element, IntVector2 oldPosition)
 {
     CurrentPositions.Remove(element);
     GetElements(oldPosition).Remove(element);
     GetElements(new IntVector2(oldPosition.x - 1, oldPosition.y - 1)).Remove(element);
     GetElements(new IntVector2(oldPosition.x - 1, oldPosition.y)).Remove(element);
     GetElements(new IntVector2(oldPosition.x - 1, oldPosition.y + 1)).Remove(element);
     GetElements(new IntVector2(oldPosition.x, oldPosition.y - 1)).Remove(element);
     GetElements(new IntVector2(oldPosition.x, oldPosition.y)).Remove(element);
     GetElements(new IntVector2(oldPosition.x, oldPosition.y + 1)).Remove(element);
     GetElements(new IntVector2(oldPosition.x + 1, oldPosition.y - 1)).Remove(element);
     GetElements(new IntVector2(oldPosition.x + 1, oldPosition.y)).Remove(element);
     GetElements(new IntVector2(oldPosition.x + 1, oldPosition.y + 1)).Remove(element);
 }
예제 #5
0
        protected override bool Init(object controller, object binding, DefinitionFile definition)
        {
            if (!base.Init(controller, binding, definition))
            {
                return(false);
            }

            DefinitionFileWithStyle file = new DefinitionFileWithStyle(definition, typeof(UiIndexSelector));

            var context = file["Context"];

            if ((context is MethodName) || (context is FieldName))
            {
                var obj = DefinitionResolver.GetValueFromMethodOrField(Controller, Binding, context);

                if (obj is IIndexedElement)
                {
                    _element = obj as IIndexedElement;
                }
                else if (obj is string)
                {
                    _context = obj as string;
                }
            }
            else
            {
                _context = DefinitionResolver.GetString(Controller, Binding, context);
            }

            if (_element == null)
            {
                _element = Controller.Find(_context) as IIndexedElement;
            }

            _spacing  = DefinitionResolver.Get <Length>(Controller, Binding, file["Spacing"], Length.Zero);
            _vertical = DefinitionResolver.Get <Mode>(Controller, Binding, file["Mode"], Mode.Horizontal) == Mode.Vertical;

            _elementWidth  = DefinitionResolver.Get <Length>(Controller, Binding, file["ElementWidth"], Length.Stretch);
            _elementHeight = DefinitionResolver.Get <Length>(Controller, Binding, file["ElementHeight"], Length.Stretch);

            _contentHorizontalAlignment = DefinitionResolver.Get <HorizontalContentAlignment>(Controller, Binding, file["HorizontalContentAlignment"], HorizontalContentAlignment.Center);
            _contentVerticalAlignment   = DefinitionResolver.Get <VerticalContentAlignment>(Controller, Binding, file["VerticalContentAlignment"], VerticalContentAlignment.Center);

            return(true);
        }
예제 #6
0
 public void MoveElementBetweenChunks(IIndexedElement element, IntVector2 oldPosition, IntVector2 newPosition)
 {
     RemoveElement(element, oldPosition);
     AddElement(element, newPosition);
 }
예제 #7
0
 public void Remove(IIndexedElement element)
 {
     RemoveElement(element, GetBasePosition(element.IndexPosition));
 }
예제 #8
0
 public void Add(IIndexedElement element)
 {
     AddElement(element, GetBasePosition(element.IndexPosition));
 }
예제 #9
0
 public void Remove(IIndexedElement element)
 {
     decoSpaceIndex.Remove(element);
 }
예제 #10
0
 public void Add(IIndexedElement element)
 {
     decoSpaceIndex.Add(element);
 }