protected override void Update(float time) { base.Update(time); if (_element == null) { _element = Controller.Find(_context) as IIndexedElement; } }
public void Move(IIndexedElement element, Vector3 Position) { var oldBasePosition = CurrentPositions[element]; var newBasePosition = GetBasePosition(Position); if (oldBasePosition == newBasePosition) { return; } MoveElementBetweenChunks(element, oldBasePosition, newBasePosition); }
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); }
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); }
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); }
public void MoveElementBetweenChunks(IIndexedElement element, IntVector2 oldPosition, IntVector2 newPosition) { RemoveElement(element, oldPosition); AddElement(element, newPosition); }
public void Remove(IIndexedElement element) { RemoveElement(element, GetBasePosition(element.IndexPosition)); }
public void Add(IIndexedElement element) { AddElement(element, GetBasePosition(element.IndexPosition)); }
public void Remove(IIndexedElement element) { decoSpaceIndex.Remove(element); }
public void Add(IIndexedElement element) { decoSpaceIndex.Add(element); }