예제 #1
0
        public override void Perform(Ship obj)
        {
            var body = obj.GameObj.GetComponent <RigidBody>();

            if (body == null)
            {
                body = obj.GameObj.AddComponent <RigidBody>();
                body.IgnoreGravity  = true;
                body.BodyType       = BodyType.Dynamic;
                body.IgnoreGravity  = true;
                body.LinearDamping  = 0.9f;
                body.AngularDamping = 0.9f;
            }

            foreach (var renderer in obj.GameObj.GetComponentsInChildren <AdvSpriteRenderer>().Where(r => r.GameObj.GetComponent <Hull>() != null))
            {
                var shape = renderer.Sprite.Res?.Shape;
                var xform = renderer.GameObj.Transform;
                switch (shape)
                {
                case null:
                    continue;

                case PolyShapeInfo poly:
                    shape = ShipLoader.CloneAndTransformShape(poly, xform, renderer.Sprite.Res.UVRect.Size, renderer.FlipMode);

                    break;

                case CircleShapeInfo circle:
                    shape = ShipLoader.CloneAndTransformShape(circle, xform, renderer.Sprite.Res.UVRect.Size, renderer.FlipMode);
                    break;
                }
                body.AddShape(shape);
            }
        }
예제 #2
0
        private void InitMenuItems(MainForm main)
        {
            MenuModelItem viewItem = main.MainMenu.RequestItem(GeneralRes.MenuName_View);

            viewItem.AddItem(new MenuModelItem
            {
                Name          = "Sprite Viewer",
                ActionHandler = (o, e) => RequestSpriteEditorView()
            });
            viewItem.AddItem(new MenuModelItem
            {
                Name          = "Librocket Debugger",
                ActionHandler = (o, e) => LibRocketNet.Core.DebugMode = !LibRocketNet.Core.DebugMode
            });

            var spriteMenu = new MenuModelItem
            {
                Name = "Sprite"
            };

            main.MainMenu.AddItem(spriteMenu);
            spriteMenu.AddItem(new MenuModelItem
            {
                Name          = "Mirror Y",
                ActionHandler = (o, e) => SpriteOperations.MirrorY(),
                ShortcutKeys  = Keys.Control | Keys.M
            });
            spriteMenu.AddItem(new MenuModelItem
            {
                Name          = "Increase Depth",
                ActionHandler = (o, e) => SpriteOperations.ChangeDepth(+1),
                ShortcutKeys  = Keys.Control | Keys.PageDown
            });
            spriteMenu.AddItem(new MenuModelItem
            {
                Name          = "Decrease Depth",
                ActionHandler = (o, e) => SpriteOperations.ChangeDepth(-1),
                ShortcutKeys  = Keys.Control | Keys.PageUp
            });

            var shipMenu = new MenuModelItem
            {
                Name = "Ship"
            };

            main.MainMenu.AddItem(shipMenu);
            shipMenu.AddItem(new MenuModelItem {
                Name          = "Load ship from CSV...",
                ActionHandler = (o, e) => ShipLoader.LoadShip()
            });

            shipMenu.AddItem(new MenuModelItem {
                Name          = "Show Thrusters as Active",
                Checkable     = true,
                Checked       = false,
                ActionHandler = (o, e) =>
                                Components.Ships.Thruster.Editor_ShowAsThrusting = ((MenuModelItem)o).Checked
            });
        }