Ejemplo n.º 1
0
        private byte[] ConvertWorld(ImportedObject obj)
        {
            var world = new NwWorld();

            {
                var texs = new List <NwTexture2D>();
                foreach (var t in obj.Textures)
                {
                    var bm = AssetConverter.ToNwTexture2D(t.SrcBitmap, t.Name);
                    texs.Add(bm);
                }

                var cubes = new List <NwCubemap>();
                cubes.Add(AssetConverter.ToNwTextureCube(new Bitmap[]
                {
                    Resources.posx2,
                    Resources.posy2,
                    Resources.posz2,
                    Resources.negx2,
                    Resources.negy2,
                    Resources.negz2,
                }, null));

                var mats = new List <NwMaterial>();
                foreach (var m in obj.Materials)
                {
                    var mat = AssetConverter.ToNwMaterial(m, m.Name, ref texs, ref cubes);
                    mats.Add(mat);
                }
                world.Texture2Ds = texs.ToArray();
                world.Cubemaps   = cubes.ToArray();
                world.Materials  = mats.ToArray();

                var meshes = new List <NwMesh>();
                foreach (var mesh in obj.Meshes)
                {
                    meshes.Add(AssetConverter.ToNwMesh(mesh));
                }
                world.Meshes = meshes.ToArray();

                var colMeshes = new List <NwColliderMesh>();
                foreach (var mesh in obj.Meshes)
                {
                    colMeshes.Add(AssetConverter.ToNwColliderMesh(mesh));
                }
                world.ColliderMeshes = colMeshes.ToArray();

                world.Environments    = new NwEnvironment[1];
                world.Environments[0] = new NwEnvironment()
                {
                    EnvMap = world.Cubemaps[0].Hash,
                };
            }
            var json = Util.SerializeJson(world);
            var comp = Util.Compress(Encoding.UTF8.GetBytes(json));

            return(comp);
        }