public Level10(int boxesMax, int boxNeed, Vector3 spawnPoint, List<Vector3> billboardList,
            Theme levelTheme, BaseModel levelModel, BaseModel levelModelTwo, BaseModel[] glassModels, Goal catcher,
            Dictionary<OperationalMachine, bool> machines, List<Tube> tubes, LevelCompletionData data, string name)
            : base(10, boxesMax, boxNeed, spawnPoint, billboardList, levelTheme, levelModel, glassModels,
            catcher, null, machines, tubes, data, name)
        {
            currentCameraPoint = RenderingDevice.Camera.Position;

            boxesMaxOne = boxesMax;
            boxesNeedOne = boxNeed;
            boxesMaxTwo = 20;
            boxesNeedTwo = 10;

            spawnTheFirst = spawnPoint;
            spawnTheSecond = new Vector3(197.153f, -4.134f, 1.5f);

            catcherTheFirst = normalCatcher;
            catcherTheSecond = new Goal(new Vector3(313.454f, -3.801f, 5.5f), true);

            baseTheSecond = levelModelTwo;

            Vector3 pos = new Vector3(198.273f, -4.468f, 6.037f);
            ADVertexFormat[] verts = new ADVertexFormat[4];
            verts[0] = new ADVertexFormat(new Vector3(0, 13.686f / 2, -11.359f / 2) + pos, new Vector2(0, 0), Vector3.UnitX);
            verts[1] = new ADVertexFormat(new Vector3(0, -13.686f / 2, -11.359f / 2) + pos, new Vector2(0, 1), Vector3.UnitX);
            verts[2] = new ADVertexFormat(new Vector3(0, 13.686f / 2, 11.359f / 2) + pos, new Vector2(1, 1), Vector3.UnitX);
            verts[3] = new ADVertexFormat(new Vector3(0, -13.686f / 2, 11.359f / 2) + pos, new Vector2(1, 0), Vector3.UnitX);

            buff = new VertexBuffer(RenderingDevice.GraphicsDevice, ADVertexFormat.VertexDeclaration, 4, BufferUsage.WriteOnly);
            buff.SetData(verts);

            blackTex = new Texture2D(RenderingDevice.GraphicsDevice, 1, 1);
            blackTex.SetData(new Color[] { new Color(0, 0, 0, 255) });
        }
            public void Ready()
            {
                box = new Box(new Vector3(0, 0, 20));
                Random r = new Random();
                box.Ent.Orientation = Quaternion.CreateFromAxisAngle(Vector3.UnitY, MathHelper.ToRadians(r.Next(-25, 25))) *
                    Quaternion.CreateFromAxisAngle(Vector3.UnitX, MathHelper.ToRadians(r.Next(-25, 25))) *
                    Quaternion.CreateFromAxisAngle(Vector3.UnitZ, MathHelper.ToRadians(r.Next(-25, 25)));
                RenderingDevice.Camera.SetForResultsScreen();
                GameManager.Space.Add(entity);
                GameManager.State = GameState.Results;
                RenderingDevice.Add(box);

                ADVertexFormat[] verts = new ADVertexFormat[4];
                float halfWidth = 80;
                verts[1] = new ADVertexFormat(new Vector3(-halfWidth, -halfWidth, 0), new Vector2(0, 0), new Vector3(0, 0, 1));
                verts[0] = new ADVertexFormat(new Vector3(-halfWidth, halfWidth, 0), new Vector2(0, 1), new Vector3(0, 0, 1));
                verts[2] = new ADVertexFormat(new Vector3(halfWidth, halfWidth, 0), new Vector2(1, 0), new Vector3(0, 0, 1));
                verts[3] = new ADVertexFormat(new Vector3(halfWidth, -halfWidth, 0), new Vector2(1, 1), new Vector3(0, 0, 1));

                buff = new VertexBuffer(RenderingDevice.GraphicsDevice, ADVertexFormat.VertexDeclaration, 4, BufferUsage.WriteOnly);
                buff.SetData(verts);

                RenderingDevice.Add(buff, Resources.MetalTex);
                RenderingDevice.SetUpLighting(RenderingDevice.LightingData.Results);

                timer.Start();
            }
Example #3
0
        private void onGDMCreation()
        {
            ADVertexFormat[] verts = new ADVertexFormat[4];
            if(sideways)
            {
                verts[0] = new ADVertexFormat(Vector3.Transform(new Vector3(-size, size, 1.5f), Quaternion.CreateFromAxisAngle(Vector3.UnitY, -MathHelper.PiOver2)) + pos, new Vector2(0, 0), new Vector3(0, 0, 1));
                verts[1] = new ADVertexFormat(Vector3.Transform(new Vector3(-size, -size, 1.5f), Quaternion.CreateFromAxisAngle(Vector3.UnitY, -MathHelper.PiOver2)) + pos, new Vector2(0, 1), new Vector3(0, 0, 1));
                verts[2] = new ADVertexFormat(Vector3.Transform(new Vector3(size, size, 1.5f), Quaternion.CreateFromAxisAngle(Vector3.UnitY, -MathHelper.PiOver2)) + pos, new Vector2(1, 1), new Vector3(0, 0, 1));
                verts[3] = new ADVertexFormat(Vector3.Transform(new Vector3(size, -size, 1.5f), Quaternion.CreateFromAxisAngle(Vector3.UnitY, -MathHelper.PiOver2)) + pos, new Vector2(1, 0), new Vector3(0, 0, 1));
            }
            else
            {
                verts[0] = new ADVertexFormat(new Vector3(-size, size, 1.5f) + pos, new Vector2(0, 0), new Vector3(0, 0, 1));
                verts[1] = new ADVertexFormat(new Vector3(-size, -size, 1.5f) + pos, new Vector2(0, 1), new Vector3(0, 0, 1));
                verts[2] = new ADVertexFormat(new Vector3(size, size, 1.5f) + pos, new Vector2(1, 1), new Vector3(0, 0, 1));
                verts[3] = new ADVertexFormat(new Vector3(size, -size, 1.5f) + pos, new Vector2(1, 0), new Vector3(0, 0, 1));
            }

            buff = new VertexBuffer(RenderingDevice.GraphicsDevice, ADVertexFormat.VertexDeclaration, 4, BufferUsage.WriteOnly);
            buff.SetData(verts);

            blackTex = new Texture2D(RenderingDevice.GraphicsDevice, 1, 1);
            blackTex.SetData(new Color[] { new Color(0, 0, 0, 255) });
        }