public static void TakeOwnership(Unit unit) { ThreadManager.ExecuteOnMainThread(() => { if (LocalCamera.GetParent() != null) { LocalCamera.GetParent().RemoveChild(LocalCamera); // wow godot very nice } if (!Vars.PersistentData.isMobile) { unit.AddChild(LocalCamera); } else { unit.AddChild(LocalCamera); } LocalUnit = unit; ThreadManager.ExecuteOnMainThread(() => { LocalCamera.GlobalPosition = unit.GlobalPosition; LocalCamera.Offset = Vector2.Zero; LocalCamera.Position = Vector2.Zero; }); }); }
private void ShowEffect(Unit unit) { var floatingText = (FloatingText)_floatingTextPrefab.Instance(); floatingText.Text = _effectText; floatingText.Color = _effectTextColor; unit.AddChild(floatingText); }
private void BindUnit(IEnumerable <UnitRow> units, IEnumerable <SpecRow> specs, Unit parent, int?parentId) { var rows = units.Where(n => n.ParentId == parentId); foreach (var unitRow in rows) { Unit unit = new Unit(unitRow.Key, unitRow.Name); foreach (var specRow in specs.Where(n => n.Id == unitRow.Id)) { Specs.Specification spec = null; switch (specRow.Type) { case Specs.SpecificationType.Boolean: spec = new Specs.BooleanSpecification(); break; case Specs.SpecificationType.Required: spec = new Specs.RequiredSpecification(); break; case Specs.SpecificationType.Composite: spec = new Specs.CompositeSpecification(specRow.GetMin <int>(), specRow.GetMax <int>()); break; case Specs.SpecificationType.Integer: spec = new Specs.IntegerSpecification(specRow.GetMin <int>(), specRow.GetMax <int>()); break; case Specs.SpecificationType.String: spec = new Specs.StringSpecification(specRow.GetMin <int>(), specRow.GetMax <int>()); break; case Specs.SpecificationType.DateTime: spec = new Specs.DateTimeSpecification(specRow.GetMin <DateTime>(), specRow.GetMax <DateTime>()); break; case Specs.SpecificationType.Decimal: spec = new Specs.DecimalSpecification(specRow.GetMin <decimal>(), specRow.GetMax <decimal>()); break; case Specs.SpecificationType.Lookup: spec = new Specs.LookupSpecification(specRow.Options.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries).ToList()); break; } unit.AddSpecification(spec); } parent.AddChild(unit); BindUnit(units, specs, unit, unitRow.Id); } }