コード例 #1
0
 public BodyType(BodyNames bodyName, int numberOfDoors, int numberOfWheels, int numberOfSeats, TypesOfDrive typeOfDrive)
 {
     BodyName       = bodyName.ToString();
     NumberOfDoors  = numberOfDoors;
     NumberOfWheels = numberOfWheels;
     NumberOfSeats  = numberOfSeats;
     TypeOfDrive    = $"{typeOfDrive}x{numberOfWheels}";
 }
コード例 #2
0
ファイル: SUVFactory.cs プロジェクト: catdog50rus/Polus
        public override CarBase Create(BodyNames bodyName, int doors, int wheels, int seats, TypesOfDrive typesOfDrive,
                                       string model, string generation, Colors color,
                                       double weght, double carrying, decimal price)
        {
            body       = new BodyType(bodyName, doors, wheels, seats, typesOfDrive);
            this.model = new Model(model);
            this.color = new Color(color);
            this.price = price;

            CarBase car = new Suv(body, Brand, this.model, this.color, price)
            {
                CarType  = carType,
                Weght    = weght,
                Сarrying = carrying
            };

            return(car);
        }
コード例 #3
0
        public async Task Initialize()
        {
            try
            {
                var localFolder = ApplicationData.Current.LocalFolder;
                file = await localFolder.CreateFileAsync(FileName, CreationCollisionOption.OpenIfExists);

                if (file != null)
                {
                    using (Stream stream = await file.OpenStreamForReadAsync())
                    {
                        byte[] result = new byte[stream.Length];
                        await stream.ReadAsync(result, 0, (int)stream.Length);

                        var content = Encoding.UTF8.GetString(result, 0, result.Length);

                        var shape = JsonConvert.DeserializeObject <BodyNames>(content);
                        if (shape != null)
                        {
                            this.BodyNames = shape;
                        }
                        else
                        {
                            this.BodyNames.Clear();
                        }
                    }
                    _streamWriter?.Dispose();
                    var stream1 = await file.OpenStreamForWriteAsync();

                    stream1.Seek(0, SeekOrigin.Begin);
                    _streamWriter = new StreamWriter(stream1);
                }
            }
            catch (Exception e)
            {
            }
        }
コード例 #4
0
            /// <summary>
            /// Load the body asset, copy its mesh, and delete it
            /// </summary>
            private void ReloadCharacterBody()
            {
                string OOBase = BodyData?.OOBase ?? Defaults.OOBase;
                string Asset  = BodyData?.Asset ?? (ChaControl.sex == 0 ? Defaults.AssetMale : Defaults.AssetFemale);

#if KK
                if (ChaControl.hiPoly == false)
                {
                    Asset += "_low";
                }
#endif

                GameObject          uncensorCopy = CommonLib.LoadAsset <GameObject>(OOBase, Asset, true);
                SkinnedMeshRenderer bodyMesh     = ChaControl.objBody.GetComponentsInChildren <SkinnedMeshRenderer>(true).FirstOrDefault(x => BodyNames.Contains(x.name));

                //Copy any additional parts to the character
                if (BodyData != null && bodyMesh != null && BodyData.AdditionalParts.Count > 0)
                {
                    foreach (var mesh in uncensorCopy.gameObject.GetComponentsInChildren <SkinnedMeshRenderer>(true))
                    {
                        if (BodyData.AdditionalParts.Contains(mesh.name))
                        {
                            SkinnedMeshRenderer part   = ChaControl.objBody.GetComponentsInChildren <SkinnedMeshRenderer>(true).FirstOrDefault(x => x.name == mesh.name);
                            Transform           parent = bodyMesh.gameObject.GetComponentsInChildren <Transform>(true).FirstOrDefault(c => c.name == mesh.transform.parent.name);
                            if (part == null && parent != null)
                            {
                                var copy = Instantiate(mesh);
                                copy.name             = mesh.name;
                                copy.transform.parent = parent;
                                copy.bones            = bodyMesh.bones.Where(b => b != null && copy.bones.Any(t => t.name.Equals(b.name))).ToArray();
                            }
                        }
                    }
                }

                foreach (var mesh in ChaControl.objBody.GetComponentsInChildren <SkinnedMeshRenderer>(true))
                {
                    if (BodyNames.Contains(mesh.name))
                    {
                        UpdateMeshRenderer(uncensorCopy.gameObject.GetComponentsInChildren <SkinnedMeshRenderer>(true).FirstOrDefault(x => x.name == mesh.name), mesh);
                    }
                    else if (BodyParts.Contains(mesh.name))
                    {
                        UpdateMeshRenderer(uncensorCopy.gameObject.GetComponentsInChildren <SkinnedMeshRenderer>(true).FirstOrDefault(x => x.name == mesh.name), mesh, true);
                    }
                    else if (BodyData != null)
                    {
                        foreach (var part in BodyData.ColorMatchList)
                        {
                            if (mesh.name == part.Object)
                            {
                                UpdateMeshRenderer(uncensorCopy.gameObject.GetComponentsInChildren <SkinnedMeshRenderer>().FirstOrDefault(x => x.name == part.Object), mesh, true);
                            }
                        }
                    }

                    //Destroy all additional parts attached to the current body that shouldn't be there
                    if (AllAdditionalParts.Contains(mesh.name))
                    {
                        if (BodyData == null || !BodyData.AdditionalParts.Contains(mesh.name))
                        {
                            Destroy(mesh);
                        }
                        else
                        {
                            UpdateMeshRenderer(uncensorCopy.gameObject.GetComponentsInChildren <SkinnedMeshRenderer>(true).FirstOrDefault(x => x.name == mesh.name), mesh, true);
                        }
                    }
                }

                Destroy(uncensorCopy);
            }
コード例 #5
0
 public BodyNamesHelper()
 {
     BodyNames = new BodyNames();
 }
コード例 #6
0
 public abstract CarBase Create(BodyNames bodyName, int doors, int wheels, int seats, TypesOfDrive typesOfDrive,
                                string model, string generation, Colors color,
                                double weght, double carrying, decimal price);