예제 #1
0
    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++;
            }
        }
    }