Exemple #1
0
        public override void LoadContent()
        {
            InitialiseLevel();

            vxScaleCube center = new vxScaleCube(vxEngine, Vector3.One * 1000);

            base.LoadContent();

            InitialiseCamera();

            Cursor = new vxCursor3D(vxEngine);

            //
            //Grabbers
            //
            grabber = new MotorizedGrabSpring();
            BEPUPhyicsSpace.Add(grabber);
            rayCastFilter = RayCastFilter;

            workingPlane = new vxWorkingPlane(vxEngine, vxEngine.Model_Sandbox_WorkingPlane, new Vector3(0, WrkngPln_HeightDelta, 0));

            for (int i = 0; i < Items.Count; i++)
            {
                Items[i].Index = i;
            }
            ConnectedMatrix      = Matrix.Identity;
            CurrentlySelectedKey = "";

            if (this.SandboxGameState == vxEnumSandboxGameState.EditMode)
            {
                this.vxEngine.InputManager.ShowCursor = true;
            }

            vxTabPage tabPage_EngineItems = new vxTabPage(vxEngine, tabControl, "General Items");

            tabControl.AddItem(tabPage_EngineItems);

            ScrollPanel_EngineItems = new vxScrollPanel(new Vector2(0, 0),
                                                        vxEngine.GraphicsDevice.Viewport.Width - 150, vxEngine.GraphicsDevice.Viewport.Height - 75);
            tabPage_EngineItems.AddItem(ScrollPanel_EngineItems);

            RegisterSandboxEntities();
        }
Exemple #2
0
        public override void InitialiseLevel()
        {
            IncrementalItemCount = 0;

            base.InitialiseLevel();

            //Set up the GUI For the Sandbox

            //Add Tab Pages
            tabControl = new vxTabControl(vxEngine,
                                          vxEngine.GraphicsDevice.Viewport.Width - 100,
                                          vxEngine.GraphicsDevice.Viewport.Height - 50,
                                          new Vector2(50, 48),
                                          vxGUIItemOrientation.Left);
            GUIManager.Add(tabControl);

            propertiesTabControl = new vxTabControl(vxEngine,
                                                    300,
                                                    vxEngine.GraphicsDevice.Viewport.Height - 50,
                                                    new Vector2(-50, 48),
                                                    vxGUIItemOrientation.Right);
            GUIManager.Add(propertiesTabControl);

            vxTabPage properties = new vxTabPage(vxEngine, propertiesTabControl, "Properties");

            propertiesTabControl.AddItem(properties);


            //Set up The Scroll Panel which will hold all Properties
            PropertiesControl = new vxScrollPanel(new Vector2(0, 0),
                                                  properties.Width - 50, properties.Height - 10);
            properties.AddItem(PropertiesControl);


            //Sets The Outof sifht Position
            OutofSight = Vector3.One * 100000;


            #region Setup Top Toolbar

            toolbar = new vxToolbar(new Vector2(0, 0))
            {
                Height   = 48,
                PaddingX = 0,
                PaddingY = 0,
            };

            //Texture2D Texture_Splitter = vxEngine.EngineContentManager.Load<Texture2D>("Textures/sandbox/toolbar_icons/Toolbar_Seperator");

            GUIManager.Add(toolbar);

            //Test Buttons
            vxToolbarButton RunGameToolbarItem = new vxToolbarButton(vxEngine, vxEngine.EngineContentManager, "Textures/sandbox/tlbr/test/test_run");
            //vxToolbarButton StopGameToolbarItem = new vxToolbarButton(vxEngine, vxEngine.EngineContentManager, "Textures/sandbox/tlbr/test/test_stop");

            //Create Toolbar Items
            vxToolbarButton NewFileToolbarItem    = new vxToolbarButton(vxEngine, vxEngine.EngineContentManager, "Textures/sandbox/tlbr/file/file_new");
            vxToolbarButton OpenFileToolbarItem   = new vxToolbarButton(vxEngine, vxEngine.EngineContentManager, "Textures/sandbox/tlbr/file/file_open");
            vxToolbarButton SaveFileToolbarItem   = new vxToolbarButton(vxEngine, vxEngine.EngineContentManager, "Textures/sandbox/tlbr/file/file_save");
            vxToolbarButton SaveAsFileToolbarItem = new vxToolbarButton(vxEngine, vxEngine.EngineContentManager, "Textures/sandbox/tlbr/file/file_saveas");

            vxToolbarButton ImportToolbarItem     = new vxToolbarButton(vxEngine, vxEngine.EngineContentManager, "Textures/sandbox/tlbr/io/io_import");
            vxToolbarButton ExportFileToolbarItem = new vxToolbarButton(vxEngine, vxEngine.EngineContentManager, "Textures/sandbox/tlbr/io/io_export");


            AddItemModeToolbarItem = new vxToolbarButton(vxEngine, vxEngine.EngineContentManager, "Textures/sandbox/tlbr/sel/sel_addItem")
            {
                IsTogglable = true,
            };
            SelectItemModeToolbarItem = new vxToolbarButton(vxEngine, vxEngine.EngineContentManager, "Textures/sandbox/tlbr/sel/sel_selItem")
            {
                IsTogglable = true,
            };

            //Setup Events
            NewFileToolbarItem.Clicked    += new EventHandler <vxGuiItemClickEventArgs>(Event_NewFileToolbarItem_Clicked);
            OpenFileToolbarItem.Clicked   += new EventHandler <vxGuiItemClickEventArgs>(Event_OpenFileToolbarItem_Clicked);
            SaveFileToolbarItem.Clicked   += new EventHandler <vxGuiItemClickEventArgs>(Event_SaveFileToolbarItem_Clicked);
            SaveAsFileToolbarItem.Clicked += new EventHandler <vxGuiItemClickEventArgs>(Event_SaveAsFileToolbarItem_Clicked);

            ExportFileToolbarItem.Clicked += new EventHandler <vxGuiItemClickEventArgs>(ExportFileToolbarItem_Clicked);

            RunGameToolbarItem.Clicked += new EventHandler <vxGuiItemClickEventArgs>(RunGameToolbarItem_Clicked);
            //StopGameToolbarItem.Clicked += new EventHandler<vxGuiItemClickEventArgs>(StopGameToolbarItem_Clicked);

            AddItemModeToolbarItem.Clicked    += AddItemModeToolbarItem_Clicked;
            SelectItemModeToolbarItem.Clicked += SelectItemModeToolbarItem_Clicked;
            //Add Toolbar Items
            toolbar.AddItem(NewFileToolbarItem);
            toolbar.AddItem(OpenFileToolbarItem);
            toolbar.AddItem(SaveFileToolbarItem);
            toolbar.AddItem(SaveAsFileToolbarItem);

            toolbar.AddItem(new vxToolbarSpliter(vxEngine, 5));

            toolbar.AddItem(ImportToolbarItem);
            toolbar.AddItem(ExportFileToolbarItem);

            toolbar.AddItem(new vxToolbarSpliter(vxEngine, 5));

            toolbar.AddItem(RunGameToolbarItem);
            //toolbar.AddItem(StopGameToolbarItem);

            toolbar.AddItem(new vxToolbarSpliter(vxEngine, 5));

            toolbar.AddItem(AddItemModeToolbarItem);
            toolbar.AddItem(SelectItemModeToolbarItem);
            #endregion

            //Set Initial State
            SelectItemModeToolbarItem.ToggleState = true;
            MouseClickState = vxEnumSanboxMouseClickState.SelectItem;
        }
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        public override void LoadContent()
        {
            InitialiseLevel();


            ///////////////////////////////////////////////////////////////////////
            //Initialise Camera Code
            ///////////////////////////////////////////////////////////////////////
            #region Set Up Camera

            base.LoadContent();
            Camera.CameraType = CameraType.CharacterFPS;

            character = new CharacterControllerInput(BEPUPhyicsSpace, Camera, vxEngine);

            //Since this is the character playground, turn on the character by default.
            character.Activate();

            //Having the character body visible would be a bit distracting.
            character.CharacterController.Body.Tag = "noDisplayObject";

            SimulationStart();
            SimulationStop();

            //
            //Grabbers
            //
            grabber = new MotorizedGrabSpring();
            BEPUPhyicsSpace.Add(grabber);
            rayCastFilter = RayCastFilter;


            #endregion

            DoFog   = true;
            FogNear = 20;
            FogFar  = Camera.FarPlane / 4;

            Envrio envr = new Envrio(vxEngine, vxEngine.vxContentManager.LoadModel("Models/courtyard/td_courtyard"), Vector3.Zero);

            //Envrio envr = new Envrio(vxEngine, vxEngine.vxContentManager.LoadModel("Models/castle/mdl_castle"), new Vector3(0, 1, 0));

            //waterItems.Add(new vxWaterEntity(vxEngine, Vector3.Up, new Vector3(50, 0.25f, 50)));


            envr.SpecularIntensity = 1;
            //envr.SpecularIntensity = 100;
            //envr.SpecularPower = 5f;
            //envr.DoFog = false;

            light = new vxLightEntity(vxEngine, new Vector3(0, 2, 0), LightType.Point, Color.Orange, 10, 1);

            //This is a little convenience method used to extract vertices and indices from a model.
            //It doesn't do anything special; any approach that gets valid vertices and indices will work.

                        #if !TECHDEMO_PLTFRM_GL
            ModelDataExtractor.GetVerticesAndIndicesFromModel(envr.vxModel.ModelMain, out staticTriangleVertices, out staticTriangleIndices);

            //var staticMesh = new StaticMesh(staticTriangleVertices, staticTriangleIndices, new AffineTransform(Matrix3X3.CreateFromAxisAngle(Vector3.Up, MathHelper.Pi), new Vector3(0, -10, 0)));
            var staticMesh = new StaticMesh(staticTriangleVertices, staticTriangleIndices,
                                            new AffineTransform(new Vector3(1),
                                                                Quaternion.CreateFromRotationMatrix(Matrix.CreateRotationX(-MathHelper.PiOver2) * Matrix.CreateRotationY(0)),
                                                                new Vector3(0)));
            staticMesh.Sidedness = TriangleSidedness.Counterclockwise;

            BEPUPhyicsSpace.Add(staticMesh);
            BEPUDebugDrawer.Add(staticMesh);
                        #endif

            int size = 100;
            BEPUPhyicsSpace.Add(new Box(new Vector3(0, -5, 0), size, 10, size));

            vxTabPage Straights = new vxTabPage(vxEngine, tabControl, "Items");
            tabControl.AddItem(Straights);

            vxScrollPanel ScrollPanel_GeneralItemsPage = new vxScrollPanel(new Vector2(0, 0),
                                                                           vxEngine.GraphicsDevice.Viewport.Width - 150, vxEngine.GraphicsDevice.Viewport.Height - 75);

            //Cubes
            ScrollPanel_GeneralItemsPage.AddItem(new vxScrollPanelSpliter(vxEngine, "Items"));
            ScrollPanel_GeneralItemsPage.AddItem(RegisterNewSandboxItem(WoodenCrate.EntityDescription));

            //Add the scrollpanel to the slider tab page.
            Straights.AddItem(ScrollPanel_GeneralItemsPage);

            //IndexedCubeTest cube = new IndexedCubeTest(vxEngine, new Vector3(4, 4, 0));


            Teapot t = new Teapot((GameEngine)vxEngine, new Vector3(4, 4, 0));
            t.SetMesh(Matrix.CreateTranslation(new Vector3(4, 2, 0)), true, true);

            ConcreteCube cc = new ConcreteCube((GameEngine)vxEngine, new Vector3(0, 5, 0));
            cc.SetMesh(Matrix.CreateTranslation(new Vector3(0, 2, 0)), true, true);


            ModelObjs mo = new ModelObjs((GameEngine)vxEngine, new Vector3(-4, 4, 0));
            mo.SetMesh(Matrix.CreateTranslation(new Vector3(0, 2, 8)), true, true);

            vxEngine.InputManager.ShowCursor = true;
        }