private void CheckStructureToDisplayWaterToggle(StructureBaseSO structure) { if (structure.requireWater) { SetToggle(waterToggle, structure.HasWater()); } else { HideElement(waterToggle.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)); }
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; } } } } } } } }