Beispiel #1
0
 void CreateControls()
 {
     List<Lilium.Controls.Control> list = new List<Lilium.Controls.Control>();
     var label1 = new Lilium.Controls.Label("Transform", () => "Move: X:J/L Y:U/O Z:K/I");
     list.Add(label1);
     var label2 = new Lilium.Controls.Label("", () => "Press Control to move faster.");
     list.Add(label2);
     var label3 = new Lilium.Controls.Label("", () => "Rotate:[/] Scale:-/+");
     list.Add(label3);
     var label4 = new Lilium.Controls.Label("Position", () =>Position.ToString("0.000"));
     list.Add(label4);
     var label5 = new Lilium.Controls.Label("Rotation", () => Rotation.ToString("0.000"));
     list.Add(label5);
     var label6 = new Lilium.Controls.Label("Scale", () => Scale.ToString("0.000"));
     list.Add(label6);
     var toggle = new Lilium.Controls.Toggle("Draw Gizmo", () => Config.DrawGizmo, val => Config.DrawGizmo = val);
     list.Add(toggle);
     var slider = new Lilium.Controls.Slider("Stencil Shadow", 0, 1, () => StencilShadowIndensity, val => StencilShadowIndensity = val);
     list.Add(slider);
     if(SkinnedMesh != null && SkinnedMesh.AnimationClips.Count > 0)
     {
         foreach (var anim in SkinnedMesh.AnimationClips)
         {
             var animName = anim.Key;
             //var anim
             var btn = new Lilium.Controls.Button("Play " + animName, ()=>
                 {
                     SkinnedMesh.PlayAnimation(animName);
                 });
             list.Add(btn);
         }
     }
     if (Mesh != null)
     {
         for (int i = 0; i < Mesh.SubmeshCount; ++i)
         {
             list.Add(new Lilium.Controls.EntityMaterialSlot(this, i));
         }
     }
     if (SkinnedMesh != null)
     {
         for (int i = 0; i < SkinnedMesh.submeshes.Count; ++i)
         {
             list.Add(new Lilium.Controls.EntityMaterialSlot(this, i));
         }
     }
     controls = list.ToArray();
 }
Beispiel #2
0
 void CreateControls()
 {
     var btn1 = new Lilium.Controls.Button("Add Entity", () =>
     {
         var meshName = ResourceBrowser.ChooseMesh();
         if(!string.IsNullOrEmpty(meshName))
         {
             var entity = new Entity(meshName);
             Entities.Add(entity);
             Game.Instance.AddObject(entity);
         }
     });
     var btn2 = new Lilium.Controls.Button("Save", () =>
     {
         var path = System.IO.Path.Combine(Game.Instance.ResourceManager.FirstSearchFolder, "MainScene.txt");
         Save(path);
     });
     var btn3 = new Lilium.Controls.Button("Load", () =>
     {
         var path = System.IO.Path.Combine(Game.Instance.ResourceManager.FirstSearchFolder, "MainScene.txt");
         if (System.IO.File.Exists(path))
             Load(path);
     });
     controls = new Controls.Control[] { btn1, btn2, btn3 };
 }
Beispiel #3
0
        void CreateControls()
        {
            var cameraInfo = new Lilium.Controls.Label("Camera Pos", () => Position.ToString("0.000"));
            var button = new Lilium.Controls.Button("Front", () =>
            {
                CameraYaw = 0;
                CameraPitch = 0;
            });
            var sliderx = new Lilium.Controls.Slider("Focus Point X", -10, 10, () => FocusPoint.X, val => FocusPoint.X = val);
            var slidery = new Lilium.Controls.Slider("Focus Point Y", -10, 10, () => FocusPoint.Y, val => FocusPoint.Y = val);
            var sliderz = new Lilium.Controls.Slider("Focus Point Z", -10, 10, () => FocusPoint.Z, val => FocusPoint.Z = val);

            //var clearColor = new Lilium.Controls.ColorPicker("Clear Color", () => ClearColor.ToVector4(), val => ClearColor = new Color(val));
            var sky1 = new Lilium.Controls.ColorPicker("Sky Bottom", () => SkyBottomColor, val => SkyBottomColor = val);
            var sky2 = new Lilium.Controls.ColorPicker("Sky Top", () => SkyTopColor, val => SkyTopColor = val);

            controls = new Controls.Control[] { cameraInfo, button, sliderx, slidery, sliderz, sky1, sky2 };
        }