public void InitializeRequirements() { if (Data.ModuleTypeUnderConstruction != Module.Unspecified) { Data.ResourceCount = new Dictionary <Matter, float>(); BuildingData buildingData = Construction.BuildData[Data.ModuleTypeUnderConstruction]; RequiredProgressSeconds = buildingData.BuildTimeHours * SunOrbit.GameSecondsPerMartianMinute * 60f; ResourceList = new List <ResourceComponent>(); //todo: change to Construction.Requirements[underconstruction].keys when that's a dict of <resource, entry> and not a list RequiredResourceMask = new Matter[buildingData.Requirements.Count]; int i = 0; foreach (IResourceEntry required in buildingData.Requirements) { Data.ResourceCount[required.Type] = 0; RequiredResourceMask[i] = required.Type; i++; } int j = 0; int radius = Construction.BuildRadius(Data.ModuleTypeUnderConstruction); foreach (Transform t in this.transform) { if (j < 4)//poles { t.localPosition = new Vector3(j % 2 == 0 ? -radius: radius, 0f, j < 2 ? -radius : radius); } else //tape { int coeff = j % 2 == 0 ? -1 : 1; t.localPosition = new Vector3(j < 6 ? 0 : radius * coeff, 1f, j > 5 ? 0 : radius * coeff); t.localScale = new Vector3(radius * 2, .2f, .01f); } j++; } } }