Example #1
0
        private void setupTankList(bool calledByPlayer)
        {
            tankList.Clear();

            // First find the amounts each tank type is filled with

            List <List <float> > resourceList = new List <List <float> >();

            string[] resourceTankArray = resourceAmounts.Split(';');
            for (int tankCount = 0; tankCount < resourceTankArray.Length; tankCount++)
            {
                resourceList.Add(new List <float>());
                string[] resourceAmountArray = resourceTankArray[tankCount].Split(',');
                for (int amountCount = 0; amountCount < resourceAmountArray.Length; amountCount++)
                {
                    try
                    {
                        resourceList[tankCount].Add(float.Parse(resourceAmountArray[amountCount]));
                    }
                    catch
                    {
                        Debug.Log("FSfuelSwitch: error parsing resource amount " + tankCount + "/" + amountCount + ": " + resourceTankArray[amountCount]);
                    }
                }
            }

            // Then find the kinds of resources each tank holds, and fill them with the amounts found previously, or the amount hey held last (values kept in save persistence/craft)

            string[] tankArray = resourceNames.Split(';');
            for (int tankCount = 0; tankCount < tankArray.Length; tankCount++)
            {
                FSmodularTank newTank = new FSmodularTank();
                tankList.Add(newTank);
                string[] resourceNameArray = tankArray[tankCount].Split(',');
                for (int nameCount = 0; nameCount < resourceNameArray.Length; nameCount++)
                {
                    engine.FSresource newResource = new engine.FSresource(resourceNameArray[nameCount].Trim(' '));
                    if (resourceList[tankCount] != null)
                    {
                        if (nameCount < resourceList[tankCount].Count)
                        {
                            newResource.maxAmount = resourceList[tankCount][nameCount];
                            if (calledByPlayer)
                            {
                                newResource.amount = resourceList[tankCount][nameCount];
                            }
                            else
                            {
                                newResource.amount = getResource(nameCount);
                            }
                        }
                    }
                    newTank.resources.Add(newResource);
                }
            }
        }
        private void setupTankList(bool calledByPlayer)
        {
            tankList     = new List <FSmodularTank>();
            weightList   = new List <double>();
            tankCostList = new List <double>();

            // First find the amounts each tank type is filled with

            List <List <double> > resourceList        = new List <List <double> >();
            List <List <double> > initialResourceList = new List <List <double> >();

            string[] resourceTankArray        = resourceAmounts.Split(';');
            string[] initialResourceTankArray = initialResourceAmounts.Split(';');
            if (initialResourceAmounts.Equals("") ||
                initialResourceTankArray.Length != resourceTankArray.Length)
            {
                initialResourceTankArray = resourceTankArray;
            }
            Log.dbg("FSDEBUGRES: {0} {1}", resourceTankArray.Length, resourceAmounts);
            for (int tankCount = 0; tankCount < resourceTankArray.Length; tankCount++)
            {
                resourceList.Add(new List <double>());
                initialResourceList.Add(new List <double>());
                string[] resourceAmountArray        = resourceTankArray[tankCount].Trim().Split(',');
                string[] initialResourceAmountArray = initialResourceTankArray[tankCount].Trim().Split(',');
                if (initialResourceAmounts.Equals("") ||
                    initialResourceAmountArray.Length != resourceAmountArray.Length)
                {
                    initialResourceAmountArray = resourceAmountArray;
                }
                for (int amountCount = 0; amountCount < resourceAmountArray.Length; amountCount++)
                {
                    try
                    {
                        resourceList[tankCount].Add(double.Parse(resourceAmountArray[amountCount].Trim()));
                        initialResourceList[tankCount].Add(double.Parse(initialResourceAmountArray[amountCount].Trim()));
                    }
                    catch
                    {
                        Log.err("FSfuelSwitch: error parsing resource amount {0}/{1}: '{2}': '{3}'", tankCount, amountCount, resourceTankArray[amountCount], resourceAmountArray[amountCount].Trim());
                    }
                }
            }

            // Then find the kinds of resources each tank holds, and fill them with the amounts found previously, or the amount hey held last (values kept in save persistence/craft)

            string[] tankArray = resourceNames.Split(';');
            for (int tankCount = 0; tankCount < tankArray.Length; tankCount++)
            {
                FSmodularTank newTank = new FSmodularTank();
                tankList.Add(newTank);
                string[] resourceNameArray = tankArray[tankCount].Split(',');
                for (int nameCount = 0; nameCount < resourceNameArray.Length; nameCount++)
                {
                    engine.FSresource newResource = new engine.FSresource(resourceNameArray[nameCount].Trim(' '));
                    if (resourceList[tankCount] != null)
                    {
                        if (nameCount < resourceList[tankCount].Count)
                        {
                            newResource.maxAmount = resourceList[tankCount][nameCount];
                            newResource.amount    = initialResourceList[tankCount][nameCount];
                        }
                    }
                    newTank.resources.Add(newResource);
                }
            }
        }
Example #3
0
        private void setupTankList(bool calledByPlayer)
        {
            tankList = new List<FSmodularTank>();
            weightList = new List<double>();
            tankCostList = new List<double>();

            // First find the amounts each tank type is filled with

            List<List<double>> resourceList = new List<List<double>>();
            List<List<double>> initialResourceList = new List<List<double>>();
            string[] resourceTankArray = resourceAmounts.Split(';');
            string[] initialResourceTankArray = initialResourceAmounts.Split(';');
            if (initialResourceAmounts.Equals("") ||
                initialResourceTankArray.Length != resourceTankArray.Length)
            {
                initialResourceTankArray = resourceTankArray;
            }
            //Debug.Log("FSDEBUGRES: " + resourceTankArray.Length+" "+resourceAmounts);
            for (int tankCount = 0; tankCount < resourceTankArray.Length; tankCount++)
            {
                resourceList.Add(new List<double>());
                initialResourceList.Add(new List<double>());
                string[] resourceAmountArray = resourceTankArray[tankCount].Trim().Split(',');
                string[] initialResourceAmountArray = initialResourceTankArray[tankCount].Trim().Split(',');
                if (initialResourceAmounts.Equals("") ||
                    initialResourceAmountArray.Length != resourceAmountArray.Length)
                {
                    initialResourceAmountArray = resourceAmountArray;
                }
                for (int amountCount = 0; amountCount < resourceAmountArray.Length; amountCount++)
                {
                    try
                    {
                        resourceList[tankCount].Add(double.Parse(resourceAmountArray[amountCount].Trim()));
                        initialResourceList[tankCount].Add(double.Parse(initialResourceAmountArray[amountCount].Trim()));
                    }
                    catch
                    {
                        Debug.Log("FSfuelSwitch: error parsing resource amount " + tankCount + "/" + amountCount + ": '" + resourceTankArray[amountCount] + "': '" + resourceAmountArray[amountCount].Trim()+"'");
                    }
                }
            }

            // Then find the kinds of resources each tank holds, and fill them with the amounts found previously, or the amount hey held last (values kept in save persistence/craft)

            string[] tankArray = resourceNames.Split(';');
            for (int tankCount = 0; tankCount < tankArray.Length; tankCount++)
            {
                FSmodularTank newTank = new FSmodularTank();
                tankList.Add(newTank);
                string[] resourceNameArray = tankArray[tankCount].Split(',');
                for (int nameCount = 0; nameCount < resourceNameArray.Length; nameCount++)
                {
                    engine.FSresource newResource = new engine.FSresource(resourceNameArray[nameCount].Trim(' '));
                    if (resourceList[tankCount] != null)
                    {
                        if (nameCount < resourceList[tankCount].Count)
                        {
                            newResource.maxAmount = resourceList[tankCount][nameCount];
                            newResource.amount    = initialResourceList[tankCount][nameCount];
                        }
                    }
                    newTank.resources.Add(newResource);
                }
            }            
        }