private IEnumerator BuildingWarmthCheckRoutine(FloorArchitect floor, IStructureSupport ceiling)
        {
            this._hasActiveWarmth = true;
            LocalPlayer.GameObject.SendMessage("HomeWarmth");
            yield return(YieldPresets.WaitPointFiveSeconds);

            for (int i = 0; i < 2; i++)
            {
                bool hasLitFire = true;
                while (hasLitFire && floor != null && floor.gameObject && ceiling != null && (MonoBehaviour)ceiling && ((MonoBehaviour)ceiling).gameObject && this.IsPlayerPositionValid(LocalPlayer.Transform.position, floor, ceiling))
                {
                    i = 0;
                    yield return(YieldPresets.WaitOneSecond);

                    hasLitFire = this.FloorHasLitFire(floor.transform);
                }
                if (!floor || !hasLitFire)
                {
                    break;
                }
                ceiling = this.SearchValidCeiling(floor);
            }
            LocalPlayer.GameObject.SendMessage("LeaveHomeWarmth");
            this._hasActiveWarmth = false;
            yield break;
        }
        private IStructureSupport SearchValidCeiling(FloorArchitect floor)
        {
            IStructureSupport structureSupport = this.SearchValidCeiling <FloorArchitect>(floor);

            if (structureSupport == null)
            {
                structureSupport = this.SearchValidCeiling <RoofArchitect>(floor);
            }
            return(structureSupport);
        }
 private IStructureSupport SearchValidCeiling <T>(FloorArchitect floor) where T : IStructureSupport
 {
     foreach (T t in floor.GetComponentsInChildren <T>())
     {
         if (t != null && t.GetLevel() > floor.GetLevel() + 4f && this.IsPlayerPositionValid(LocalPlayer.Transform.position, floor, t))
         {
             return(t);
         }
     }
     return(null);
 }
Exemple #4
0
 private IStructureSupport SearchValidCeiling <T>(FloorArchitect floor) where T : IStructureSupport
 {
     T[] componentsInChildren = floor.GetComponentsInChildren <T>();
     for (int i = 0; i < componentsInChildren.Length; i++)
     {
         T t = componentsInChildren[i];
         if (t != null && t.GetLevel() > floor.GetLevel() + 4f && this.IsPlayerPositionValid(LocalPlayer.Transform.position, floor, t))
         {
             return(t);
         }
     }
     return(null);
 }
 private void OnTriggerEnter(Collider other)
 {
     if (other.CompareTag("structure") && !this._hasActiveWarmth)
     {
         FloorArchitect componentInParent = other.GetComponentInParent <FloorArchitect>();
         if (componentInParent)
         {
             IStructureSupport structureSupport = this.SearchValidCeiling(componentInParent);
             if (structureSupport != null && this.FloorHasLitFire(componentInParent.transform))
             {
                 base.StartCoroutine(this.BuildingWarmthCheckRoutine(componentInParent, structureSupport));
                 return;
             }
         }
     }
 }
 public void Distort(LocalizedHitData data)
 {
     if (data._damage > 0f)
     {
         Renderer[] componentsInChildren = this._foundation.FoundationRoot.GetComponentsInChildren <Renderer>();
         this.DistortRenderers(data, componentsInChildren);
         if (this._foundation._mode == FoundationArchitect.Modes.ManualSlave)
         {
             FloorArchitect component = base.GetComponent <FloorArchitect>();
             if (component)
             {
                 componentsInChildren = component.FloorRoot.GetComponentsInChildren <Renderer>();
                 this.DistortRenderers(data, componentsInChildren);
             }
         }
     }
 }
        public void GetAllPlanesTest()
        {
            List <FloorArchitect> floorsAr;
            string testFile = @"c:\temp\test\АКР\Base\Tests\Тест-ПостроениеФасада.dwg";

            using (var db = new Database(false, true))
            {
                db.ReadDwgFile(testFile, FileOpenMode.OpenForReadAndAllShare, false, "");
                db.CloseInput(true);
                using (AcadLib.WorkingDatabaseSwitcher dbSwitcher = new AcadLib.WorkingDatabaseSwitcher(db))
                {
                    BaseService baseService = new BaseService();
                    baseService.InitToCreationPanels(db);

                    floorsAr = FloorArchitect.GetAllPlanes(db, baseService);
                }
                db.SaveAs(@"c:\temp\test\АКР\Base\Tests\Тест-ПостроениеФасада-WindowMarks.dwg", DwgVersion.Current);
            }

            Assert.AreEqual(floorsAr.Count, 2);
        }
Exemple #8
0
        public void CreateFacadeTest()
        {
            Inspector.Clear();
            var docTest = Application.DocumentManager.MdiActiveDocument;
            var db      = docTest.Database;

            baseService.ClearPanelsAkrFromDrawing(db);
            // Подготовка - копирование блоков, слоев, стилей, и т.п.
            baseService.InitToCreationPanels(db);

            // Определение фасадов
            List <FacadeMounting> facadesMounting = FacadeMounting.GetFacadesFromMountingPlans();
            List <FloorArchitect> floorsAr        = FloorArchitect.GetAllPlanes(db, baseService);

            // Создание определений блоков панелей по базе
            baseService.CreateBtrPanels(facadesMounting, floorsAr);

            //Создание фасадов
            FacadeMounting.CreateFacades(facadesMounting);

            //Восстановление ассоциативной штриховки в дин блоках сечений
            using (var t = db.TransactionManager.StartTransaction())
            {
                var secBlocks = baseService.Env.BlPanelSections;
                foreach (var item in secBlocks)
                {
                    item.ReplaceAssociateHatch();
                }
                t.Commit();
            }

            if (Inspector.HasErrors)
            {
                Inspector.Show();
            }
        }
Exemple #9
0
 private IEnumerator BuildingWarmthCheckRoutine(FloorArchitect floor, IStructureSupport ceiling)
 {
     BuildingWarmthCheck.< BuildingWarmthCheckRoutine > c__Iterator14C <BuildingWarmthCheckRoutine> c__Iterator14C = new BuildingWarmthCheck.< BuildingWarmthCheckRoutine > c__Iterator14C();