Пример #1
0
        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);
        }
Пример #2
0
        public ICamera ToItem(AGSSerializationContext context)
        {
            var camera = new AGSCamera {
                Enabled = Enabled
            };

            context.Rewire(state => camera.Target = () => state.Player);
            return(camera);
        }
Пример #3
0
        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);
        }