Пример #1
0
 public override bool TrySet(CarPart newPart, PartSlot previousSlot)
 {
     if (IsCompatible(newPart.type))
     {
         return(base.TrySet(newPart, previousSlot));
     }
     else
     {
         return(false);
     }
 }
Пример #2
0
    public void ShowInventory(CarPart carPart)
    {
        InventoryPanel.SetActive(true);

        gridItem.SetItemOnUI(carPart);

        /*
         * print(carPart.part);
         * gridItem.GetComponentInChildren<Text>().text = carPart.part.ToString();
         */
    }
Пример #3
0
        private void LoadPartAttributes(CarPart carPart, DBCarPart carPartInfo)
        {
            AttributeOffsetTable attributeOffsetTable = _attributeOffsetTables[carPartInfo.AttributeTableOffset];

            foreach (var attributeOffset in attributeOffsetTable.Offsets)
            {
                var attribute = _preparedAttributes[attributeOffset];

                carPart.Attributes.Add(attribute);
            }
        }
Пример #4
0
 /// <summary>
 /// Method that loops through all parts and updates the quantity of the
 /// provided <paramref name="part"/>.
 /// </summary>
 /// <param name="part">The part that needs to be restocked.</param>
 /// <param name="quantity">The desired quantity to be purchased.</param>
 public static void PurchaseParts(CarPart part, int quantity)
 {
     foreach (PartQuantity pq in GetAllParts())
     {
         if (pq.PartId == part.GetId())
         {
             pq.Restock(quantity);
             break;
         }
     }
 }
Пример #5
0
        public bool Update(CarPart carPart)
        {
            _context.CarParts.Update(carPart);

            if (_context.SaveChanges() == 0)
            {
                return(false);
            }

            return(true);
        }
Пример #6
0
 public void Damage(CarPart part, string Mesh)
 {
     if (part.Transform.parent != null)
     {
         part.ShowMesh(Mesh);
         part.Transform.GetComponent <MeshRenderer>().sharedMaterial = _dirtyBodywork;
         Recrdng.Current.RecordDamage(VId, RecEventType.Crunch, part.Transform.name, Mesh);
     }
     Crash2AudioSource.Play();
     Damg = true;
 }
Пример #7
0
 /// <summary>
 /// Method that checks if a part is in stock and determines if it needs to be purchased.
 /// </summary>
 /// <param name="cp"> The part that is being counted.</param>
 /// <returns></returns>
 private static bool ForRestock(CarPart cp)
 {
     foreach (PartQuantity pq in UnavailableParts)
     {
         if (pq.PartId == cp.GetId())
         {
             return(true);
         }
     }
     return(false);
 }
Пример #8
0
 /**
  * Returns false if already occupied.
  * Otherwise sets item at posiiton and returns true.
  */
 public virtual bool TrySet(CarPart newPart, PartSlot previousSlot)
 {
     if (!IsSet())
     {
         ForceSet(newPart, previousSlot, null);
         return(true);
     }
     else
     {
         return(false);
     }
 }
Пример #9
0
 public Car(string teamName, Driver driver, CarPart motor, CarPart gearbox, CarPart suspension,
            CarPart brakes, CarPart tyres, int fuel)
 {
     this.teamName   = teamName;
     this.driver     = driver;
     this.motor      = motor;
     this.gearbox    = gearbox;
     this.suspension = suspension;
     this.brakes     = brakes;
     this.tyres      = tyres;
     this.fuel       = fuel;
 }
Пример #10
0
        public JsonResult CreateEditCarPart(string strCarpart)
        {
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            CarPart    entity = serializer.Deserialize <CarPart>(strCarpart);
            CarPartDAO dao    = new CarPartDAO();

            entity.MetaTitle   = Common.convertToUnSign.convert(entity.Name);
            entity.Description = (String)System.Net.WebUtility.HtmlDecode(entity.Description);
            int res = dao.CreateEditCarPart(entity, (string)Session[Common.CommonConstants.USER_NAME]);

            return(Json(new { res = res }));
        }
Пример #11
0
        //Car
        static internal int GetLvl1CarPartCost(CarPart carPart)
        {
            int cost = 0;

            switch (carPart)
            {
            case CarPart.Chassis:
                cost = 1292539;
                break;

            case CarPart.Engine:
                cost = 3311737;
                break;

            case CarPart.FWing:
                cost = 1551354;
                break;

            case CarPart.RWing:
                cost = 1504126;
                break;

            case CarPart.Underbody:
                cost = 510128;
                break;

            case CarPart.Sidepods:
                cost = 459831;
                break;

            case CarPart.Cooling:
                cost = 454545;
                break;

            case CarPart.Gearbox:
                cost = 3098104;
                break;

            case CarPart.Brakes:
                cost = 697674;
                break;

            case CarPart.Suspension:
                cost = 1181545;
                break;

            case CarPart.Electronics:
                cost = 938416;
                break;
            }

            return(cost);
        }
Пример #12
0
    public void DestroyParts(CarPart.PartType inType)
    {
        List <CarPart> partInventory = this.GetPartInventory(inType);

        for (int index = 0; index < partInventory.Count; ++index)
        {
            CarPart carPart = partInventory[index];
            partInventory[index] = (CarPart)null;
            carPart.DestroyCarPart();
        }
        partInventory.Clear();
    }
Пример #13
0
    public bool TryAddItem(CarPart newPart)
    {
        foreach (InteractiveSlot slot in slots)
        {
            if (slot.TrySet(newPart, null))
            {
                return(true);
            }
        }

        return(false);
    }
Пример #14
0
 public void ApplyStats(CarPart inPart)
 {
     if (this.HasActivationRequirement())
     {
         return;
     }
     inPart.stats.rulesRisk             += this.riskLevel;
     inPart.stats.maxPerformance        += this.maxStatBoost;
     inPart.stats.partCondition.redZone += this.redZone;
     inPart.stats.maxReliability        += this.maxReliabilityBoost;
     inPart.stats.SetStat(CarPartStats.CarPartStat.MainStat, inPart.stats.stat + this.statBoost);
     inPart.stats.SetStat(CarPartStats.CarPartStat.Reliability, inPart.stats.reliability + this.reliabilityBoost);
 }
Пример #15
0
        public async Task <ActionResult <bool> > Post([FromBody] CarPart item)
        {
            int result;

            try{
                result = (await _toDoService.AddToDoItem(item));
                return(Ok(result));
            }
            catch (Exception ex) {
                result = 0;
                return(BadRequest(result));
            }
        }
Пример #16
0
    private void SaveCarInformation()
    {
        CarPart CarToSave = new CarPart();

        try
        {
            if (hfID.Value != "")
            {
                CarToSave.Id = Convert.ToInt32(hfID.Value);
            }
            CarToSave.IsActive = cbActive.Checked;
            //CarToSave.main_picture
            if (ddlMarkers.SelectedIndex > 0)
            {
                CarToSave.MakerId = Convert.ToInt32(ddlMarkers.SelectedValue);
            }
            if (ddlModels.SelectedIndex > 0)
            {
                CarToSave.ModelId = Convert.ToInt32(ddlModels.SelectedValue);
            }
            if (ddlcarPartType.SelectedIndex > 0)
            {
                CarToSave.TypeId = Convert.ToInt32(ddlcarPartType.SelectedValue);
            }
            if (txtSalePrice.Text != "")
            {
                CarToSave.Price = Convert.ToDecimal(txtSalePrice.Text);
            }
            //if (txtPriority.Text != "") { CarToSave.Periority = Convert.ToInt32(txtPriority.Text); }
            if (txtDesc.Text != "")
            {
                CarToSave.Description = txtDesc.Text;
            }
            if (ddlYears.SelectedIndex > 0)
            {
                CarToSave.YearId = Convert.ToInt32(ddlYears.SelectedValue);
            }
            var result = new CarPartsManager().SaveCarPart(CarToSave);
            if (result != null)
            {
                //go to Cars images list.
                string url = ResolveClientUrl("CarPartsImages.aspx?categoryType=cars&masterId=") + result; //"CarsView.aspx";
                Response.Redirect(url);
            }
            else
            {
                lblError.Text = Resources.AdminResources_en.ErrorSave;
            }
        }
        catch { lblError.Text = Resources.AdminResources_en.ErrorSave; }
    }
Пример #17
0
        public async Task <IActionResult> Create(Guid?carGradeId, CarPartEditModel model)
        {
            if (carGradeId == null)
            {
                this.NotFound();
            }

            var fileName = Path.GetFileName(ContentDispositionHeaderValue.Parse(model.PartPath.ContentDisposition).FileName.Value.Trim('"'));
            var fileExt  = Path.GetExtension(fileName);

            if (!CarPartsController.AllowedExtensions.Contains(fileExt))
            {
                this.ModelState.AddModelError(nameof(model.PartPath), "This file type is prohibited");
            }

            var carGrade = await this._context.CarGrades
                           .SingleOrDefaultAsync(m => m.Id == carGradeId);

            if (carGrade == null)
            {
                this.NotFound();
            }


            if (this.ModelState.IsValid)
            {
                var carPart = new CarPart
                {
                    CarGradeId  = carGrade.Id,
                    Name        = model.Name,
                    Description = model.Description
                };

                var attachmentPath = Path.Combine(this.hostingEnvironment.WebRootPath, "attachments/parts", carPart.Id.ToString("N") + fileExt);
                carPart.PartPath = $"/attachments/parts/{carPart.Id:N}{fileExt}";
                using (var fileStream = new FileStream(attachmentPath, FileMode.CreateNew, FileAccess.ReadWrite, FileShare.Read))
                {
                    await model.PartPath.CopyToAsync(fileStream);
                }

                carPart.Id = Guid.NewGuid();
                this._context.Add(carPart);
                await this._context.SaveChangesAsync();

                return(this.RedirectToAction("Details", "CarGrades", new { carGradeId = carGrade.Id }));
            }
            this.ViewData["CarGradeId"] = new SelectList(this._context.CarGrades, "Id", "GradePath");
            this.ViewBag.CarGrades      = carGrade;
            return(this.View(model));
        }
Пример #18
0
        // GET: CarParts/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CarPart carPart = db.CarParts.Find(id);

            if (carPart == null)
            {
                return(HttpNotFound());
            }
            return(View(carPart));
        }
Пример #19
0
        public bool AddCarPart(CarPart newPart)
        {
            try
            {
                this.context.CarParts.Add(newPart);
                this.context.Commit();
            }
            catch (Exception ex)
            {
                return(this.LogError(ex));
            }

            return(true);
        }
Пример #20
0
        public IHttpActionResult DeleteCarPart(string id)
        {
            CarPart carPart = db.CarParts.Find(id);

            if (carPart == null)
            {
                return(NotFound());
            }

            db.CarParts.Remove(carPart);
            db.SaveChanges();

            return(Ok(carPart));
        }
Пример #21
0
    public CarPart GetHighestStatPartOfType(CarPart.PartType inType)
    {
        CarPart        carPart       = (CarPart)null;
        List <CarPart> partInventory = this.GetPartInventory(inType);

        for (int index = 0; index < partInventory.Count; ++index)
        {
            if (!partInventory[index].IsBanned && (carPart == null || (double)partInventory[index].stats.statWithPerformance > (double)carPart.stats.statWithPerformance))
            {
                carPart = partInventory[index];
            }
        }
        return(carPart);
    }
Пример #22
0
    private void SetBaseStats(CarPart inPart)
    {
        Engineer personOnJob = (Engineer)this.mTeam.contractManager.GetPersonOnJob(Contract.Job.EngineerLead);

        inPart.stats = new CarPartStats(inPart);
        float inValue = (float)(this.seasonPartStartingStat[inPart.GetPartType()] + (int)Math.Floor(personOnJob.Stats.PartContributionStats.GetStat(inPart.stats.statType)));

        inPart.stats.level          = this.GetLevelFromComponents(inPart);
        inPart.stats.maxPerformance = this.mTeam.carManager.GetCar(0).ChassisStats.improvability * 2f;
        inPart.stats.SetStat(CarPartStats.CarPartStat.Reliability, GameStatsConstants.initialReliabilityValue);
        inPart.stats.maxReliability        = GameStatsConstants.initialMaxReliabilityValue;
        inPart.stats.partCondition.redZone = GameStatsConstants.initialRedZone;
        inPart.stats.SetStat(CarPartStats.CarPartStat.MainStat, inValue);
    }
Пример #23
0
    public void AddPart(CarPart inPart)
    {
        switch (inPart.GetPartType())
        {
        case CarPart.PartType.Brakes:
            this.brakesInventory.Add(inPart);
            break;

        case CarPart.PartType.Engine:
            this.engineInventory.Add(inPart);
            break;

        case CarPart.PartType.FrontWing:
            this.frontWingInventory.Add(inPart);
            break;

        case CarPart.PartType.Gearbox:
            this.gearboxInventory.Add(inPart);
            break;

        case CarPart.PartType.RearWing:
            this.rearWingInventory.Add(inPart);
            break;

        case CarPart.PartType.Suspension:
            this.suspensionInventory.Add(inPart);
            break;

        case CarPart.PartType.RearWingGT:
            this.rearWingGTInventory.Add(inPart);
            break;

        case CarPart.PartType.BrakesGT:
            this.brakesGTInventory.Add(inPart);
            break;

        case CarPart.PartType.EngineGT:
            this.engineGTInventory.Add(inPart);
            break;

        case CarPart.PartType.GearboxGT:
            this.gearboxGTInventory.Add(inPart);
            break;

        case CarPart.PartType.SuspensionGT:
            this.suspensionGTInventory.Add(inPart);
            break;
        }
    }
Пример #24
0
    void Placement(bool shouldPlace = false)
    {
        // Top-left-most colliding tile is the origin tile used to validate placement
        PartPlacementTile origin = null;
        var worldRect            = partSprite.GetComponent <RectTransform>().rect;

        foreach (var item in tileOptions)
        {
            var localRect = new Rect(
                worldRect.position + (Vector2)this.transform.position - (Vector2)item.transform.position,
                worldRect.size
                );
            if (item.GetComponent <RectTransform>().rect.Overlaps(localRect))
            {
                if (!origin)
                {
                    origin = item;
                }
                else
                {
                    var curPos = origin.transform.position;
                    var newPos = item.transform.position;
                    if (newPos.y > curPos.y || (newPos.y == curPos.y && newPos.x < curPos.x))
                    {
                        origin = item;
                    }
                }
            }
        }

        if (origin)
        {
            // Validate placement
            carBuilder.IntentToPlacePart(part, origin.x, origin.y);
            if (shouldPlace)
            {
                var success = carBuilder.PlacePart(part, origin.x, origin.y);
                if (success)
                {
                    // Add part to grid
                    part   = null;
                    isDone = true;
                    closedHandSprite.SetActive(false);
                    openHandSprite.SetActive(false);
                    Destroy(partSprite);
                }
            }
        }
    }
Пример #25
0
        public bool DeleteCarPart(int Id)
        {
            CarPart entity = db.CarParts.Find(Id);

            db.CarParts.Remove(entity);
            try
            {
                db.SaveChanges();
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Пример #26
0
        public async Task <int> Update(CarPart carPart)
        {
            var result = _context.CarParts.FirstOrDefault(item => item.ID == carPart.ID);

            if (result != null)
            {
                result.ManufacturerName = carPart.ManufacturerName;
                result.PartDescription  = carPart.PartDescription;
                result.PartName         = carPart.PartName;
                result.PartNumber       = carPart.PartNumber;

                _context.CarParts.Update(result);
            }
            return(await _context.SaveChangesAsync());
        }
Пример #27
0
    public void IntentToPlacePart(CarPart part, uint x, uint y)
    {
        var isValid = PlacementIsValid(part, x, y);

        for (var yCell = y; yCell < y + part.height; yCell++)
        {
            for (var xCell = x; xCell < x + part.width; xCell++)
            {
                if (xCell < tileGrid.GetLength(0) && yCell < tileGrid.GetLength(1))
                {
                    tileGrid[xCell, yCell].GetComponent <Image>().color = isValid ? Color.yellow : Color.red;
                }
            }
        }
    }
Пример #28
0
        // GET: CarParts/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CarPart carPart = db.CarParts.Find(id);

            if (carPart == null)
            {
                return(HttpNotFound());
            }
            ViewBag.link1 = new SelectList(db.UserRegisters, "email", "password", carPart.link1);
            return(View(carPart));
        }
        public ActionResult Get(int id)
        {
            CarPart retval = null;

            using (var db = new EfContext())
            {
                db.CarParts.FirstOrDefault(x => x.ID == id).VisitsNumber++;
                db.SaveChanges();
                retval = db.CarParts
                         .Include(x => x.Shop)
                         .Include(x => x.CarBrand)
                         .FirstOrDefault(x => x.ID == id);
            }
            return(Json(retval, JsonRequestBehavior.AllowGet));
        }
Пример #30
0
    private CarPart GetDefaultPart(CarPart.PartType inType, Team inTeam)
    {
        CarPart partEntity = CarPart.CreatePartEntity(inType, this.championship);

        partEntity.stats.SetStat(CarPartStats.CarPartStat.MainStat, (float)(GameStatsConstants.specPartValues[this.championship.championshipID] + RandomUtility.GetRandom(0, 10)));
        partEntity.stats.SetStat(CarPartStats.CarPartStat.Reliability, 0.8f);
        partEntity.stats.partCondition.SetCondition(0.8f);
        partEntity.stats.partCondition.redZone = GameStatsConstants.initialRedZone;
        partEntity.stats.maxReliability        = 1f;
        partEntity.stats.maxPerformance        = 0.0f;
        partEntity.buildDate   = Game.instance.time.now;
        partEntity.stats.level = 0;
        partEntity.PostStatsSetup(this.championship);
        return(partEntity);
    }
Пример #31
0
 CarProduced()
 {
     Parts = new CarPart[0];
 }
Пример #32
0
 public CarProduced(FactoryId id, string employeeName, string carModel, CarPart[] parts)
 {
     Id = id;
     EmployeeName = employeeName;
     CarModel = carModel;
     Parts = parts;
 }
Пример #33
0
 ReceiveShipmentInCargoBay()
 {
     CarParts = new CarPart[0];
 }
Пример #34
0
 public CarBlueprint(string designName, CarPart[] requiredParts)
 {
     DesignName = designName;
     RequiredParts = requiredParts;
 }
Пример #35
0
 /// <summary>
 /// 添加组件
 /// </summary>
 /// <param name="__part"></param>
 /// <returns></returns>
 public static bool AddPart(CarPart __part)
 {
     return AddPart(__part.Name);
 }
Пример #36
0
    ///// <summary>
    ///// (弃用)生成模型
    ///// </summary>
    ///// <param name="__name">模型名字</param>
    ///// <param name="__path">模型路径</param>
    //static void InitObject(string __name, string __path)
    //{
    //    if (IsInitObject)
    //    {
    //        object _asset = Resources.Load(__path);
    //        if (_asset is GameObject)
    //        {
    //            GameObject _obj = GameObject.Instantiate<GameObject>(Resources.Load<GameObject>(__path));
    //            objects.Add(__name, _obj);
    //        }
    //        else
    //        {
    //            Texture2D _tex = _asset as Texture2D;
    //            GameObject _carBody = objects[car.CarBaseModle];
    //            _carBody.GetComponent<Renderer>().material.mainTexture = _tex;
    //        }
    //    }
    //}
    /// <summary>
    /// 生成模型
    /// </summary>
    /// <param name="__name">模型名字</param>
    /// <param name="__path">模型路径</param>
    static void InitObject(CarPart __part)
    {
        if (IsInitObject)
        {
            if (__part.Assets == null)
                return;
            Object _asset = Resources.Load(__part.Assets[0].AssetPath);
            if (__part.Name == carBodyName)
            {
                GameObject _obj = GameObject.Instantiate(_asset) as GameObject;
                objects.Add(carBodyName, _obj);
                Component[] _coms = _obj.GetComponentsInChildren<MeshRenderer>();
                for (int i = 0; i < _coms.Length; i++)
                {
                    objects.Add(_coms[i].name, _coms[i].gameObject);
                }
            }
            else
            {
                partObjects.Add(__part.Name, new List<GameObject>());

                for (int i = 0; i < __part.Assets.Count; i++)
                {
                    Object _tempAsset = Resources.Load(__part.Assets[i].AssetPath);
                    if (_tempAsset is GameObject) //如果资源是模型
                    {
                        GameObject _obj = GameObject.Instantiate(_tempAsset) as GameObject;
                        partObjects[__part.Name].Add(_obj);
                        if (!string.IsNullOrEmpty(__part.Assets[i].Target))
                        {
                            if (objects.ContainsKey(__part.Assets[i].Target))
                            {
                                if (!oldPartObjects.ContainsKey(__part.Assets[i].Target))
                                {
                                    oldPartObjects.Add(__part.Assets[i].Target, objects[__part.Assets[i].Target]);
                                    objects[__part.Assets[i].Target].SetActive(false);
                                    if (Scene1_UI.CarSeleted == "Tiguan")
                                    {
                                        _obj.transform.parent = objects[__part.Assets[i].Target].transform.parent;
                                    }
                                    else
                                    {
                                        _obj.transform.SetParent(objects[__part.Assets[i].Target].transform.parent, false);
                                    }
                                }
                                else
                                {
                                    for (int j = 0; j < car.Parts.Count; j++)
                                    {
                                        CarPart _tempPart = AppData.GetCarPartData(car.CarBaseModle, car.Parts[j]);
                                        if (_tempPart.HasTarget(__part.Assets[i].Target))
                                        {
                                            RemovePart(_tempPart);
                                            oldPartObjects.Add(__part.Assets[i].Target, objects[__part.Assets[i].Target]);
                                            objects[__part.Assets[i].Target].SetActive(false);
                                            break;
                                        }
                                    }
                                }
                            }
                            else
                            {
                                throw new System.Exception("组件" + __part.Name + "的Asset[" + i + "]的Target不存在");
                            }
                        }
                    }
                    else if (_tempAsset is Material)//如果资源是材质
                    {
                        if (!string.IsNullOrEmpty(__part.Assets[i].Target))
                        {

                            if (objects.ContainsKey(__part.Assets[i].Target))
                            {
                                MeshRenderer _renderer = objects[__part.Assets[i].Target].GetComponent<MeshRenderer>();
                                if (!oldPartMaterials.ContainsKey(__part.Assets[i].Target))
                                {
                                    oldPartMaterials.Add(__part.Assets[i].Target, _renderer.material);
                                }
                                else
                                {
                                    for (int j = 0; j < car.Parts.Count; j++)
                                    {
                                        CarPart _tempPart = AppData.GetCarPartData(car.CarBaseModle, car.Parts[j]);
                                        if (_tempPart.HasTarget(__part.Assets[i].Target))
                                        {
                                            RemovePart(_tempPart);
                                            oldPartMaterials.Add(__part.Assets[i].Target, _renderer.material);
                                            break;
                                        }
                                    }
                                }
                                _renderer.material = _tempAsset as Material;
                            }
                            else
                            {
                                throw new System.Exception("组件" + __part.Name + "的Asset[" + i + "]的Target不存在");
                            }
                        }
                    }
                    else if (_tempAsset is Texture2D)//如果资源是贴图
                    {
                        if (!string.IsNullOrEmpty(__part.Assets[i].Target))
                        {

                            if (objects.ContainsKey(__part.Assets[i].Target))
                            {
                                if (oldTextures.ContainsKey(__part.Assets[i].Target))
                                {
                                    for (int j = 0; j < car.Parts.Count; j++)
                                    {
                                        CarPart _tempPart = AppData.GetCarPartData(car.CarBaseModle, car.Parts[j]);
                                        if (_tempPart.HasTarget(__part.Assets[i].Target))
                                        {
                                            RemovePart(_tempPart);
                                            break;
                                        }
                                    }
                                }

                                MeshRenderer _renderer = objects[__part.Assets[i].Target].GetComponent<MeshRenderer>();
                                oldTextures.Add(__part.Assets[i].Target, _renderer.material.mainTexture);
                                _renderer.material.mainTexture = _tempAsset as Texture2D;
                            }
                            else
                            {
                                throw new System.Exception("组件" + __part.Name + "的Asset[" + i + "]的Target不存在");
                            }
                        }
                    }
                }
            }

        }
    }
Пример #37
0
    ///// <summary>
    ///// (弃用)删除模型
    ///// </summary>
    ///// <param name="__name"></param>
    //static void DeleteModel(string __name)
    //{
    //    if (IsInitObject)
    //    {
    //        GameObject.Destroy(objects[__name]);
    //        objects.Remove(__name);
    //    }
    //}
    static void DeletePart(CarPart __part)
    {
        if (IsInitObject)
        {
            //组件物体删掉
            if (partObjects.ContainsKey(__part.Name))
            {
                for (int i = 0; i < partObjects[__part.Name].Count; i++)
                {
                    GameObject.Destroy(partObjects[__part.Name][i]);
                }
                partObjects.Remove(__part.Name);
            }

            for (int i = 0; i < __part.Assets.Count; i++)
            {
                if (string.IsNullOrEmpty(__part.Assets[i].Target))
                    continue;

                //旧的组件还原
                if (oldPartObjects.ContainsKey(__part.Assets[i].Target))
                {
                    oldPartObjects[__part.Assets[i].Target].SetActive(true);
                    oldPartObjects.Remove(__part.Assets[i].Target);
                }

                //材质还原
                if (oldPartMaterials.ContainsKey(__part.Assets[i].Target))
                {
                    GameObject _obj = objects[__part.Assets[i].Target];
                    MeshRenderer _renderer = _obj.GetComponent<MeshRenderer>();
                    GameObject.Destroy(_renderer.material);
                    _renderer.material = oldPartMaterials[__part.Assets[i].Target];
                    oldPartMaterials.Remove(__part.Assets[i].Target);
                }

                //移除贴图
                if (oldTextures.ContainsKey(__part.Assets[i].Target))
                {
                    GameObject _obj = objects[__part.Assets[i].Target];
                    MeshRenderer _renderer = _obj.GetComponent<MeshRenderer>();
                    _renderer.material.mainTexture = oldTextures[__part.Assets[i].Target];
                    oldTextures.Remove(__part.Assets[i].Target);

                }
            }

        }
    }
Пример #38
0
 /// <summary>
 /// 移除指定的组件
 /// </summary>
 /// <param name="__part"></param>
 /// <returns></returns>
 public static bool RemovePart(CarPart __part)
 {
     return RemovePart(__part.Name);
 }
Пример #39
0
 public ReceiveShipmentInCargoBay(FactoryId id, string shipmentName, CarPart[] carParts)
 {
     Id = id;
     ShipmentName = shipmentName;
     CarParts = carParts;
 }