示例#1
0
 private void CheckStructureToDisplayGarbageServiceToggle(StructureBaseSO structure)
 {
     if (structure.requireGarbageService)
     {
         SetToggle(garbageServiceToggle, structure.HasGarbageService());
     }
     else
     {
         HideElement(garbageServiceToggle.gameObject);
     }
 }
 private static bool DoesStructureRequireAnyResources(StructureBaseSO structureData)
 {
     return((structureData.requirePower && structureData.HasPower() == false) ||
            (structureData.requireWater && structureData.HasWater() == false) ||
            (structureData.requireSilo && structureData.HasSilo() == false) ||
            (structureData.requireHealthcare && structureData.HasHealthcare() == false) ||
            (structureData.requireLawEnforcement && structureData.HasLawEnforcement() == false) ||
            (structureData.requireFireProtection && structureData.HasFireProtection() == false) ||
            (structureData.requirePostalService && structureData.HasPostalService() == false) ||
            (structureData.requireBankService && structureData.HasBankingService() == false) ||
            (structureData.requireGarbageService && structureData.HasGarbageService() == false));
 }
示例#3
0
 private static void AddFacilityTypeToStructure(Vector3Int gridPosition, GridStructure grid, StructureBaseSO structureData)
 {
     if (DoesStructureRequireAnyResources(structureData))
     {
         var structuresAroundPositions = grid.GetStructurePositionInRange(gridPosition, structureData.maxFacilitySearchRange);
         foreach (var structurePositionNearBy in structuresAroundPositions)
         {
             var data = grid.GetStructureDataFromTheGrid(structurePositionNearBy);
             if (data.GetType() == typeof(SingleFacilitySO))
             {
                 SingleFacilitySO facility = (SingleFacilitySO)data;
                 if ((facility.facilityType == FacilityType.Power && structureData.HasPower() == false && structureData.requirePower) ||
                     (facility.facilityType == FacilityType.Water && structureData.HasWater() == false && structureData.requireWater) ||
                     (facility.facilityType == FacilityType.Silo && structureData.HasSilo() == false && structureData.requireSilo) ||
                     (facility.facilityType == FacilityType.Healthcare && structureData.HasHealthcare() == false && structureData.requireHealthcare) ||
                     (facility.facilityType == FacilityType.LawEnforcement && structureData.HasLawEnforcement() == false && structureData.requireLawEnforcement) ||
                     (facility.facilityType == FacilityType.FireProtection && structureData.HasFireProtection() == false && structureData.requireFireProtection) ||
                     (facility.facilityType == FacilityType.Postal && structureData.HasPostalService() == false && structureData.requirePostalService) ||
                     (facility.facilityType == FacilityType.Banking && structureData.HasBankingService() == false && structureData.requireBankService) ||
                     (facility.facilityType == FacilityType.Garbage && structureData.HasGarbageService() == false && structureData.requireGarbageService) ||
                     (facility.facilityType == FacilityType.Education && structureData.HasEducationService() == false && structureData.requireEducationSerivce))
                 {
                     if (grid.ArePositionsInRange(gridPosition, structurePositionNearBy, facility.singleStructureRange))
                     {
                         if (facility.IsFull() == false)
                         {
                             facility.AddClient(new StructureBaseSO[] { structureData });
                             if (DoesStructureRequireAnyResources(structureData) == false)
                             {
                                 return;
                             }
                         }
                     }
                 }
             }
         }
     }
 }