public IViewport ToItem(AGSSerializationContext context) { AGSViewport viewport = new AGSViewport(DisplayListSettings.ToItem(context), Camera.ToItem(context), context.Resolver); viewport.X = X; viewport.Y = Y; viewport.ScaleX = ScaleX; viewport.ScaleY = ScaleY; viewport.ProjectionBox = ProjectionBox.ToItem(context); context.Rewire(state => { if (IsRoomProviderGameState) { viewport.RoomProvider = state; } else { var room = state.Rooms.FirstOrDefault(r => r.ID == RoomProviderRoomID); if (room != null) { viewport.RoomProvider = new AGSSingleRoomProvider(room); } } }); return(viewport); }
public ICamera ToItem(AGSSerializationContext context) { var camera = new AGSCamera { Enabled = Enabled }; context.Rewire(state => camera.Target = () => state.Player); return(camera); }
public IObject ToItem(AGSSerializationContext context) { TypedParameter idParam = new TypedParameter(typeof(string), Object.ID); ISlider slider = context.Resolver.Container.Resolve <ISlider>(idParam); Object.ToItem(context, slider); Graphics.Parent = null; HandleGraphics.Parent = null; slider.Label = (ILabel)Label.ToItem(context); slider.MinValue = MinValue; slider.MaxValue = MaxValue; slider.Value = Value; slider.Direction = Direction; slider.AllowKeyboardControl = AllowKeyboardControl; context.Rewire(state => { IObject obj = state.Find <IObject>(Graphics.ID); if (obj != null) { state.UI.Remove(obj); } obj = state.Find <IObject>(HandleGraphics.ID); if (obj != null) { state.UI.Remove(obj); } slider.Graphics = Graphics.ToItem(context); slider.HandleGraphics = HandleGraphics.ToItem(context); slider.Graphics.TreeNode.SetParent(slider.TreeNode); slider.HandleGraphics.TreeNode.SetParent(slider.TreeNode); }); return(slider); }