示例#1
0
        public void DrawBox(Device d3ddevice, EditorCamera cam)
        {
            if (!enabled || !drawCube)
            {
                return;
            }

            BoundingSphere gizmoSphere = new BoundingSphere()
            {
                Center = new Vertex(affectedPoint.X, affectedPoint.Y, affectedPoint.Z), Radius = handleSize
            };

            MatrixStack transform = new MatrixStack();

            transform.Push();
            transform.TranslateLocal(affectedPoint.X, affectedPoint.Y, affectedPoint.Z);
            transform.ScaleLocal(handleSize, handleSize, handleSize);
            RenderInfo boxRenderInfo = new RenderInfo(Gizmo.BoxMesh, 0, transform.Top, Gizmo.StandardMaterial, BoxTexture, FillMode.Solid, gizmoSphere);

            RenderInfo.Draw(new List <RenderInfo>()
            {
                boxRenderInfo
            }, d3ddevice, cam);
            transform.Pop();
        }
        public override void Render(Device dev, EditorCamera cam)
        {
            if (texs_main == null)
            {
                texs_main = ObjectHelper.GetTextures("WINDY_BACK", texlist_main, dev);
            }
            if (texs_clouds == null)
            {
                texs_clouds = ObjectHelper.GetTextures("WINDY_BACK", texlist_clouds, dev);
            }
            List <RenderInfo> result    = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            dev.SetRenderState(RenderState.ZWriteEnable, true);
            transform.Push();
            transform.NJTranslate(cam.Position.X, 0, cam.Position.Z);
            transform.NJScale(1.4f, 1.4f, 1.4f);
            // Bottom
            transform.Push();
            transform.NJScale(1.25f, 1.0f, 1.25f);
            transform.NJTranslate(0, models[2].Position.Y, 0);
            result.AddRange(models[2].DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs_main, meshes[2], EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            transform.Pop();
            // Main skybox
            result.AddRange(models[0].DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs_main, meshes[0], EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            // Clouds
            transform.Push();
            transform.NJTranslate(0, models[1].Position.Y, 0);
            result.AddRange(models[1].DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs_clouds, meshes[1], EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            transform.Pop();
            transform.Pop();
            RenderInfo.Draw(result, dev, cam);
        }
示例#3
0
        public override void Render(Device dev, EditorCamera cam)
        {
            List <RenderInfo> result    = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            Texture[] texs = ObjectHelper.GetTextures(texname);
            // Sky
            transform.Push();
            transform.NJTranslate(0.0f, -4000.0f, 0.0f);
            transform.NJScale(Skybox_Scale);
            result.AddRange(skytop.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, skytopmesh, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            transform.Pop();
            // Bottom cloud 1
            transform.Push();
            transform.NJTranslate(0.0f, -4000.0f, 0.0f);
            transform.NJScale(24.0f, 1.0f, 26.0f);
            result.AddRange(skybottom.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, skybottommesh, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            transform.Pop();
            // Bottom cloud 2
            transform.Push();
            transform.NJTranslate(0.0f, -2000.0f, 0.0f);
            transform.NJScale(24.0f, 1.0f, 26.0f);
            result.AddRange(skybottom.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, skybottommesh, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            transform.Pop();
            // Egg Carrier
            transform.Push();
            carriermdl.ProcessTransforms(transform);
            carriermdl.ProcessVertexData();
            dev.SetRenderState(RenderState.ZWriteEnable, true);
            result.AddRange(carriermdl.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, ObjectHelper.GetTextures("SHOOTING0"), carriermesh, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting, boundsByMesh: true));
            transform.Pop();
            RenderInfo.Draw(result, dev, cam, true);
        }
示例#4
0
        public override void Render(Device dev, EditorCamera cam)
        {
            switch (Act)
            {
            case 0:
                texs_bg = ObjectHelper.GetTextures("MR_SKY02");
                break;

            case 1:
                texs_bg = ObjectHelper.GetTextures("MR_SKY00");
                break;

            case 2:
                texs_bg = ObjectHelper.GetTextures("MR_SKY00");
                break;
            }
            List <RenderInfo> result    = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            transform.Push();
            transform.NJTranslate(cam.Position.X, 0, cam.Position.Z);
            transform.NJScale(2.0f, 2.0f, 2.0f);
            transform.NJScale(Skybox_Scale);
            result.AddRange(model.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs_bg, meshes, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            transform.Pop();
            RenderInfo.Draw(result, dev, cam);
        }
示例#5
0
        public override void Render(Device dev, EditorCamera cam)
        {
            float x, y, z;

            switch (Act)
            {
            case 0:
            default:
                x = 0;
                y = 600;
                z = 2500;
                break;

            case 1:
                x = 0;
                y = 1050;
                z = -2500;
                break;

            case 2:
                x = 0;
                y = 750;
                z = 0;
                break;
            }
            NJS_OBJECT modelSky    = (timeOfDay != 0 && Act != 2) ? modelsDark[0] : modelsNormal[0];
            NJS_OBJECT modelBottom = (timeOfDay != 0 && Act != 2) ? modelsDark[1] : modelsNormal[1];

            Mesh[] meshSky    = (timeOfDay != 0 && Act != 2) ? meshesDark[0] : meshesNormal[0];
            Mesh[] meshBottom = (timeOfDay != 0 && Act != 2) ? meshesDark[1] : meshesNormal[1];
            texs = ObjectHelper.GetTextures("OBJ_SKYDECK");
            List <RenderInfo> result1   = new List <RenderInfo>();
            List <RenderInfo> result2   = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            transform.Push();
            transform.NJTranslate(x, y, z);
            transform.NJScale(1.7f, 1.0f, 1.7f);
            transform.NJScale(Skybox_Scale);
            result1.AddRange(modelSky.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, meshSky, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            RenderInfo.Draw(result1, dev, cam);
            dev.SetRenderState(RenderState.ZWriteEnable, true);
            transform.NJScale(1.0f, 1.0f, 1.0f);
            result2.AddRange(modelBottom.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, meshBottom, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            transform.NJTranslate(0.0f, -100.0f, 0.0f);
            result2.AddRange(modelBottom.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, meshBottom, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            if (timeOfDay != 0 && Act != 2)
            {
                transform.NJTranslate(0.0f, -600.0f, 0.0f);
                transform.NJScale(Skybox_Scale);
                result2.AddRange(modelBottom.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, meshBottom, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
                transform.NJScale(1.0f, 1.0f, 1.0f);
                transform.NJTranslate(0.0f, -100.0f, 0.0f);
                result2.AddRange(modelBottom.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, meshBottom, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            }
            transform.Pop();
            RenderInfo.Draw(result2, dev, cam);
        }
示例#6
0
        /// <summary>
        /// Draws the gizmo onscreen.
        /// </summary>
        /// <param name="d3ddevice"></param>
        /// <param name="cam"></param>
        public void Draw(Device d3ddevice, EditorCamera cam)
        {
            d3ddevice.SetRenderState(RenderState.ZEnable, true);
            d3ddevice.BeginScene();

            RenderInfo.Draw(Render(d3ddevice, new MatrixStack(), cam), d3ddevice, cam);

            d3ddevice.EndScene();             //all drawings before this line
        }
示例#7
0
        public override void Render(Device dev, EditorCamera cam)
        {
            List <RenderInfo> result    = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            Texture[] texs = ObjectHelper.GetTextures("SHOOTING0");
            result.AddRange(carriermdl.DrawModelTree(dev, transform, texs, carriermesh));
            RenderInfo.Draw(result, dev, cam);
        }
示例#8
0
        public override void Render(Device dev, EditorCamera cam)
        {
            List <RenderInfo> result    = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            transform.Push();
            dev.SetRenderState(RenderState.ZWriteEnable, true);
            result.AddRange(model.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, ObjectHelper.GetTextures("CHAOS4_OBJECT"), mesh, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            transform.Pop();
            RenderInfo.Draw(result, dev, cam);
        }
示例#9
0
        public override void RenderLate(Device dev, EditorCamera cam)
        {
            List <RenderInfo> result    = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            texs = ObjectHelper.GetTextures("OBJ_CHAOS7");
            transform.Push();
            result.AddRange(models[1].DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, meshes[1], EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            transform.Pop();
            RenderInfo.Draw(result, dev, cam);
        }
示例#10
0
        public override void Render(Device dev, EditorCamera cam)
        {
            texs = ObjectHelper.GetTextures("BG_SHAREOBJ");
            MatrixStack transform = new MatrixStack();

            transform.Push();
            transform.NJTranslate(cam.Position);
            transform.NJScale(Skybox_Scale);
            RenderInfo.Draw(model.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, meshes, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting), dev, cam);
            transform.Pop();
        }
示例#11
0
        public override void Render(Device dev, EditorCamera cam)
        {
            texs1 = ObjectHelper.GetTextures("bgtex17");
            List <RenderInfo> result1   = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            transform.Push();
            transform.NJTranslate(cam.Position.X, -886.5248f, cam.Position.Z);
            transform.NJScale(Skybox_Scale);
            result1.AddRange(model1.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs1, mesh1, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            transform.Pop();
            RenderInfo.Draw(result1, dev, cam);
        }
示例#12
0
        private void RenderEggCarrierSkyClear(Device dev, EditorCamera cam)
        {
            List <RenderInfo> result    = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            transform.Push();
            transform.NJTranslate(cam.Position.X, 0, cam.Position.Z);
            transform.NJScale(Skybox_Scale);
            result.AddRange(model3.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, ObjectHelper.GetTextures("EC_SEA"), mesh3, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            transform.NJScale(1.0f, 1.0f, 1.0f);
            transform.Pop();
            RenderInfo.Draw(result, dev, cam);
        }
示例#13
0
        /// <summary>
        /// Draws the gizmo onscreen.
        /// </summary>
        /// <param name="d3ddevice"></param>
        /// <param name="cam"></param>
        public void Draw(Device d3ddevice, EditorCamera cam)
        {
            if ((affectedPoint == null) || (!enabled))
            {
                return;
            }

            d3ddevice.SetRenderState(RenderState.ZEnable, true);
            d3ddevice.BeginScene();

            RenderInfo.Draw(Render(d3ddevice, new MatrixStack(), cam), d3ddevice, cam);

            d3ddevice.EndScene();             //all drawings before this line
        }
        public override void Render(Device dev, EditorCamera cam)
        {
            List <RenderInfo> result    = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            transform.Push();
            transform.NJTranslate(cam.Position.X, 0, cam.Position.Z);
            transform.NJScale(Skybox_Scale);
            Texture[] texs = ObjectHelper.GetTextures("BG_BEACH");
            result.AddRange(model1.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, mesh1));
            result.AddRange(model2.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, mesh2));
            transform.Pop();
            RenderInfo.Draw(result, dev, cam);
        }
示例#15
0
        public override void RenderLate(Device dev, EditorCamera cam)
        {
            switch (Act)
            {
            case 0:
            default:
                return;

            case 1:
                texs_ocean = ObjectHelper.GetTextures("PAST01");
                break;

            case 2:
                texs_ocean = ObjectHelper.GetTextures("PAST02");
                break;
            }
            List <RenderInfo> result3   = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            dev.SetRenderState(RenderState.ZWriteEnable, false);
            for (int o = 0; o < SADXOceanData.WaterSurfaces.Count; o++)
            {
                SADXOceanData.WaterSurfaceData water = SADXOceanData.WaterSurfaces[o];
                transform.Push();
                transform.NJTranslate(water.Center);
                transform.Push();
                for (int i = 0; i < water.WrapX; i++)
                {
                    for (int z = 0; z < water.WrapZ; z++)
                    {
                        result3.Add(new RenderInfo(water.Meshes[z], 0, transform.Top, SADXOceanData.Material, texs_ocean?[water.TextureWaves], dev.GetRenderState <FillMode>(RenderState.FillMode), water.Bounds));
                    }
                    transform.NJTranslate(water.WrapXZ, 0, 0);
                }
                transform.Pop();
                transform.Push();
                transform.NJTranslate(0, 1, 0);
                for (int i = 0; i < water.WrapX; i++)
                {
                    for (int z = 0; z < water.WrapZ; z++)
                    {
                        result3.Add(new RenderInfo(water.Meshes[z], 0, transform.Top, SADXOceanData.Material, texs_ocean?[water.TextureSea], dev.GetRenderState <FillMode>(RenderState.FillMode), water.Bounds));
                    }
                    transform.NJTranslate(water.WrapXZ, 0, 0);
                }
                transform.Pop();
                transform.Pop();
            }
            RenderInfo.Draw(result3, dev, cam);
        }
示例#16
0
        public override void Render(Device dev, EditorCamera cam)
        {
            List <RenderInfo> result    = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            transform.Push();
            Texture[] texs = ObjectHelper.GetTextures("WINDY_BACK2");
            for (int i = 0; i < 3; i++)
            {
                result.AddRange(models[i].DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, meshes[i]));
            }
            transform.Pop();
            RenderInfo.Draw(result, dev, cam);
        }
示例#17
0
        public override void Render(Device dev, EditorCamera cam)
        {
            dev.SetRenderState(RenderState.ZWriteEnable, true);
            MatrixStack transform = new MatrixStack();

            texs_bg = ObjectHelper.GetTextures("E101R_BG");
            List <RenderInfo> result = new List <RenderInfo>();

            transform.Push();
            transform.NJTranslate(cam.Position.X, 0, cam.Position.Z);
            result.AddRange(model.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs_bg, meshes, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            transform.Pop();
            RenderInfo.Draw(result, dev, cam);
        }
示例#18
0
        public override void Render(Device dev, EditorCamera cam)
        {
            if (NoRender)
            {
                return;
            }
            MatrixStack transform = new MatrixStack();

            transform.Push();
            transform.NJTranslate(cam.Position);
            transform.NJScale(Skybox_Scale);
            RenderInfo.Draw(model.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, ObjectHelper.GetTextures("BG_SHAREOBJ"), meshes), dev, cam);
            transform.Pop();
        }
示例#19
0
        public override void Render(Device dev, EditorCamera cam)
        {
            List <RenderInfo> result    = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            transform.Push();
            Texture[] texs = ObjectHelper.GetTextures("SHOOTING0");
            carriermdl.ProcessTransforms(transform);
            carriermdl.ProcessVertexData();
            dev.SetRenderState(RenderState.ZWriteEnable, true);             // Z write is disabled for skybox by default
            result.AddRange(carriermdl.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, carriermesh, boundsByMesh: true));
            transform.Pop();
            RenderInfo.Draw(result, dev, cam, true);
        }
示例#20
0
        public override void Render(Device dev, EditorCamera cam)
        {
            texs_bg      = ObjectHelper.GetTextures("SS_BG");
            texs_advss03 = ObjectHelper.GetTextures("ADVSS03");
            texs_advss04 = ObjectHelper.GetTextures("ADVSS04");
            List <RenderInfo> result    = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            transform.Push();
            transform.NJTranslate(cam.Position.X, 0, cam.Position.Z);
            transform.NJScale(Skybox_Scale);
            result.AddRange(model.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs_bg, meshes, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            transform.Pop();
            RenderInfo.Draw(result, dev, cam);
        }
示例#21
0
        public override void Render(Device dev, EditorCamera cam)
        {
            texs = ObjectHelper.GetTextures("WINDY_BACK3");
            List <RenderInfo> result    = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            transform.Push();
            transform.NJTranslate(cam.Position);
            transform.NJScale(Skybox_Scale);
            for (int i = 0; i < 4; i++)
            {
                result.AddRange(models[i].DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, meshes[i], EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            }
            transform.Pop();
            RenderInfo.Draw(result, dev, cam);
        }
示例#22
0
        public override void Render(Device dev, EditorCamera cam)
        {
            List <RenderInfo> result    = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            transform.Push();
            transform.NJTranslate(cam.Position.X, 0, cam.Position.Z);
            transform.NJScale(Skybox_Scale);
            Texture[] texs = ObjectHelper.GetTextures("WINDY_BACK");
            for (int i = 0; i < 5; i++)
            {
                result.AddRange(models[i].DrawModelTree(dev, transform, texs, meshes[i]));
            }
            transform.Pop();
            RenderInfo.Draw(result, dev, cam);
        }
示例#23
0
        public override void Render(Device dev, EditorCamera cam)
        {
            if (model == null)
            {
                return;
            }
            texs = ObjectHelper.GetTextures("MR_SKY0" + Act.ToString());
            List <RenderInfo> result    = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            transform.Push();
            transform.NJTranslate(cam.Position.X, 0, cam.Position.Z);
            transform.NJScale(Skybox_Scale);
            result.AddRange(model.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, meshes, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            transform.Pop();
            RenderInfo.Draw(result, dev, cam);
        }
示例#24
0
        public override void Render(Device dev, EditorCamera cam)
        {
            texs_bg_beach  = ObjectHelper.GetTextures("BG_BEACH");
            texs_obj_beach = ObjectHelper.GetTextures("OBJ_BEACH");
            List <RenderInfo> result1   = new List <RenderInfo>();
            List <RenderInfo> result2   = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            // Part 1 - skybox (no Z Write)
            transform.Push();
            transform.NJTranslate(cam.Position.X, 0, cam.Position.Z);
            transform.NJScale(Skybox_Scale);
            result1.AddRange(model1.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs_bg_beach, mesh1, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            result1.AddRange(model2.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs_bg_beach, mesh2, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            transform.Pop();
            RenderInfo.Draw(result1, dev, cam);
            // Bridge in Act 1
            if (Act == 0)
            {
                dev.SetRenderState(RenderState.ZWriteEnable, true);
                transform.Push();
                // Main part 1
                transform.NJTranslate(2803.0f, -1.0f, 365.0f);
                result2.AddRange(modelbridge.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs_obj_beach, meshbridge, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
                // Repeated parts
                transform.NJTranslate(75.0f, 9.5f, 0.0f);
                for (int i = 0; i < 25; i++)
                {
                    // 1
                    transform.NJTranslate(20.0f, 0.0f, 0.0f);
                    result2.AddRange(modelbridge2.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs_obj_beach, meshbridge2, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
                    // 2
                    transform.NJTranslate(20.0f, 0.0f, 0.0f);
                    result2.AddRange(modelbridge3.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs_obj_beach, meshbridge3, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
                }
                // Small chunk
                transform.NJTranslate(20.0f, 0.0f, 0.0f);
                result2.AddRange(modelbridge2.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs_obj_beach, meshbridge2, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
                // Main part 2
                transform.NJTranslate(95.0f, -9.5f, 0.0f);                 // Y is 0.0 in original code at 0x501AD6, no idea why
                result2.AddRange(modelbridge4.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs_obj_beach, meshbridge4, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
                transform.Pop();
                RenderInfo.Draw(result2, dev, cam);
            }
        }
示例#25
0
        private void RenderEggCarrierSkyCloud(Device dev, EditorCamera cam, float yPos)
        {
            List <RenderInfo> result    = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            transform.Push();
            dev.SetRenderState(RenderState.ZWriteEnable, true);
            dev.SetRenderState(RenderState.SourceBlend, Blend.SourceAlpha);
            dev.SetRenderState(RenderState.DestinationBlend, Blend.One);
            transform.NJTranslate(cam.Position.X, yPos, cam.Position.Z);
            transform.NJScale(3.0f, 1.0f, 3.0f);
            transform.NJScale(Skybox_Scale);
            result.AddRange(model2.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, ObjectHelper.GetTextures("EC_SKY"), mesh2, EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            transform.NJScale(1.0f, 1.0f, 1.0f);
            dev.SetRenderState(RenderState.SourceBlend, Blend.SourceAlpha);
            dev.SetRenderState(RenderState.DestinationBlend, Blend.InverseSourceAlpha);
            transform.Pop();
            RenderInfo.Draw(result, dev, cam);
        }
示例#26
0
        private void RenderWater(Device dev, EditorCamera cam)
        {
            Texture[] texs_ocean;
            dev.SetRenderState(RenderState.ZWriteEnable, true);
            if (!IsMRGarden)
            {
                texs_ocean = ObjectHelper.GetTextures("GARDEN00SSOBJ");
            }
            else
            {
                texs_ocean = ObjectHelper.GetTextures("GARDEN02MR_DAYTIME");
                if (texs_ocean == null)
                {
                    texs_ocean = ObjectHelper.GetTextures("GARDEN02MR_EVENING");
                }
                if (texs_ocean == null)
                {
                    texs_ocean = ObjectHelper.GetTextures("GARDEN02MR_NIGHT");
                }
            }
            List <RenderInfo> result3   = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            for (int o = 0; o < SADXOceanData.WaterSurfaces.Count; o++)
            {
                SADXOceanData.WaterSurfaceData water = SADXOceanData.WaterSurfaces[o];
                transform.Push();
                transform.NJTranslate(water.Center);
                transform.Push();
                transform.NJTranslate(0, -1, 0);
                for (int i = 0; i < water.WrapX; i++)
                {
                    for (int z = 0; z < water.WrapZ; z++)
                    {
                        result3.Add(new RenderInfo(water.Meshes[z], 0, transform.Top, SADXOceanData.Material, texs_ocean?[water.TextureSea], dev.GetRenderState <FillMode>(RenderState.FillMode), water.Bounds));
                    }
                    transform.NJTranslate(water.WrapXZ, 0, 0);
                }
                transform.Pop();
                transform.Pop();
            }
            RenderInfo.Draw(result3, dev, cam);
        }
示例#27
0
        public override void RenderLate(Device dev, EditorCamera cam)
        {
            if (TimeOfDay != 0 || Act > 2)
            {
                return;
            }
            Texture[]         texs_ocean = ObjectHelper.GetTextures("ADV_EC0" + Act.ToString());
            List <RenderInfo> result3    = new List <RenderInfo>();
            MatrixStack       transform  = new MatrixStack();

            for (int o = 0; o < SADXOceanData.WaterSurfaces.Count; o++)
            {
                SADXOceanData.WaterSurfaceData water = SADXOceanData.WaterSurfaces[o];
                transform.Push();
                transform.NJTranslate(cam.Position.X, 0, cam.Position.Z);
                transform.NJScale(2.0f, 1.0f, 2.0f);
                transform.NJTranslate(water.Center);
                transform.Push();
                for (int i = 0; i < water.WrapX; i++)
                {
                    for (int z = 0; z < water.WrapZ; z++)
                    {
                        result3.Add(new RenderInfo(water.Meshes[z], 0, transform.Top, SADXOceanData.Material, texs_ocean?[water.TextureWaves], dev.GetRenderState <FillMode>(RenderState.FillMode), water.Bounds));
                    }
                    transform.NJTranslate(water.WrapXZ, 0, 0);
                }
                transform.Pop();
                transform.Push();
                transform.NJTranslate(0, 1, 0);
                for (int i = 0; i < water.WrapX; i++)
                {
                    for (int z = 0; z < water.WrapZ; z++)
                    {
                        result3.Add(new RenderInfo(water.Meshes[z], 0, transform.Top, SADXOceanData.Material, texs_ocean?[water.TextureSea], dev.GetRenderState <FillMode>(RenderState.FillMode), water.Bounds));
                    }
                    transform.NJTranslate(water.WrapXZ, 0, 0);
                }
                transform.Pop();
                transform.Pop();
            }
            RenderInfo.Draw(result3, dev, cam);
        }
示例#28
0
        public override void Render(Device dev, EditorCamera cam)
        {
            float x;
            float y;
            float z;

            texs = ObjectHelper.GetTextures("OBJ_MOUNTAIN");
            List <RenderInfo> result    = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            transform.Push();
            switch (Act)
            {
            case 0:
            default:
                x = 0;
                y = 0;
                z = 0;
                break;

            case 1:
                x = -500.0f;
                y = 700.0f;
                z = 3000.0f;
                break;

            case 2:
                x = 0;
                y = 0;
                z = 100;
                break;
            }
            transform.NJTranslate(x, y, z);
            transform.NJScale(Skybox_Scale);
            for (int i = 0; i < 4; i++)
            {
                result.AddRange(models[i].DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, meshes[i], EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            }
            transform.Pop();
            RenderInfo.Draw(result, dev, cam);
        }
示例#29
0
        public override void Render(Device dev, EditorCamera cam)
        {
            if (Act == 1 || Act == 3)
            {
                return;
            }
            texs = ObjectHelper.GetTextures("BG_ICECAP");
            List <RenderInfo> result    = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            transform.Push();
            transform.NJTranslate(cam.Position.X, cam.Position.Y, cam.Position.Z);
            switch (Act)
            {
            case 0:
            default:
                for (int i = 0; i < 3; i++)
                {
                    result.AddRange(models[i].DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, meshes[i], EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
                }
                break;

            case 2:
                transform.NJScale(Skybox_Scale);
                if (cam.Position.Y > -4000.0f || cam.Position.Y < -18500.0f)
                {
                    for (int i = 0; i < 2; i++)
                    {
                        result.AddRange(models[i].DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, meshes[i], EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
                    }
                    if (cam.Position.Y > -4000.0f)
                    {
                        transform.NJRotateY(0xC000);
                        result.AddRange(models[2].DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs, meshes[2], EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
                    }
                }
                break;
            }
            transform.Pop();
            RenderInfo.Draw(result, dev, cam);
        }
        public override void Render(Device dev, EditorCamera cam)
        {
            if (texs_sora62 == null)
            {
                texs_sora62 = ObjectHelper.GetTextures("WINDY_BACK3", texlist_sora62, dev);
            }
            if (texs_sora96 == null)
            {
                texs_sora96 = ObjectHelper.GetTextures("WINDY_BACK3", texlist_sora96, dev);
            }
            List <RenderInfo> result    = new List <RenderInfo>();
            MatrixStack       transform = new MatrixStack();

            transform.Push();
            transform.NJTranslate(cam.Position);
            result.AddRange(models[0].DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs_sora96, meshes[0], EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            result.AddRange(models[1].DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs_sora62, meshes[1], EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            result.AddRange(models[2].DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, texs_sora62, meshes[2], EditorOptions.IgnoreMaterialColors, EditorOptions.OverrideLighting));
            transform.Pop();
            RenderInfo.Draw(result, dev, cam);
        }