Пример #1
0
        public void CheckItemAdd(CraftingResources resource, int amount)
        {
            var itemList = GetItemList();

            foreach (var item in itemList)
            {
                Debug.Log(item.Resource);
            }
            Debug.Log("Resource: " + resource + " - amount: " + amount);
            var foundRequest = itemList.FirstOrDefault(i => i.Resource == resource);

            // Check if we have current request for this resource
            if (foundRequest != null)
            {
                if (!_currentRequestData.ContainsKey(resource))
                {
                    var craftingRequest = new TakenCraftingResourceRequest {
                        Request = foundRequest, CurrentAmount = amount
                    };
                    _currentRequestData.Add(resource, craftingRequest);
                }
                else
                {
                    _currentRequestData[resource].AddAmount(amount);
                }
                if (_currentRequestData[resource].Complete)
                {
                    requestRecord.CompleteRequest(this, _currentRequestData[resource].Request);
                    _currentRequestData.Remove(resource);
                }
                requestSystem.Refresh();
            }
        }
Пример #2
0
        public float[] GetSenses()
        {
            var resources  = CraftingUtils.GetCraftingResources();
            var outputSize = resources.Count * TakenCraftingResourceRequest.SensorCount;
            var output     = new float[outputSize];

            for (var i = 0; i < resources.Count; i++)
            {
                var senses = TakenCraftingResourceRequest.GetSenses(_currentRequestData, resources[i]);
                for (var j = 0; j < senses.Length; j++)
                {
                    var index = i * TakenCraftingResourceRequest.SensorCount + j;
                    output[index] = senses[j];
                }
            }

            return(output);
        }