private ModelActorWidget GetOrCreateActor(Type type, List <ModelActorWidget> actorList) { ModelActorWidget actor = actorList.Find(x => x.IsActualType(type)); if (actor != null) { return(actor); } actor = new ModelActorWidget(type, this); actorList.Add(actor); return(actor); }
private void RepositionActors() { affectors.Sort(); handlers.Sort(); for (int i = 0; i < affectors.Count; i++) { ModelActorWidget actor = affectors[i]; actor.TargetPosition = TargetPosition + Vector2.right * -WidgetMarginHor + Vector2.up * ((-(affectors.Count - 1) * .5f + i) * WidgetMarginVert); } for (int i = 0; i < handlers.Count; i++) { ModelActorWidget actor = handlers[i]; actor.TargetPosition = TargetPosition + Vector2.right * WidgetMarginHor + Vector2.up * ((-(handlers.Count - 1) * .5f + i) * WidgetMarginVert); } }
public void RemoveModelActorWidget(ModelActorWidget actor) { affectors.Remove(actor); handlers.Remove(actor); RepositionActors(); }
private Vector2 GetHandlerLineEnd(ModelActorWidget handler) { return(handler.Position - Vector2.right * (ModelActorWidget.Width * .5f - lineInTake)); }
private Vector2 GetAffectorLineStart(ModelActorWidget affector) { return(affector.Position + Vector2.right * (ModelActorWidget.Width * .5f - lineInTake)); }