Exemplo n.º 1
0
    public void DestroyObject()
    {
        Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit))
        {
            gameData        = gameObject.GetComponent <BuildingManager>().gameData;
            objectResources = hit.collider.gameObject.GetComponent <ObjectResources>();

            if (hit.collider.tag == "Resources")
            {
                for (int i = 0; i < gameData.playerResources.Length; i++)
                {
                    for (int p = 0; p < objectResources.resources.Count; p++)
                    {
                        if (gameData.playerResources[i].resourceName == objectResources.resources[p].resourceName)
                        {
                            gameData.playerResources[i].resourceAmount += objectResources.resources[p].resourceAmount;
                        }
                    }
                }
            }

            Destroy(hit.collider.gameObject);
        }
    }
        internal static ObjectResources CalculateResourceStates(Dictionary <byte, Resource> resourcesPresent, float surfaceTemperature)
        {
            ObjectResources objectResources = new ObjectResources();

            foreach (KeyValuePair <byte, Resource> resource in resourcesPresent)
            {
                if (surfaceTemperature < resource.Value.MeltingPoint)
                {
                    objectResources.Solids.Add(resource.Key, resource.Value);
                }
                else if (surfaceTemperature < resource.Value.BoilingPoint)
                {
                    objectResources.Liquids.Add(resource.Key, resource.Value);
                }
                else
                {
                    objectResources.Atmospherics.Add(resource.Key, resource.Value);
                }
            }

            return(objectResources);
        }