//----- Craftin process -----

        public void StartCraftingOrBuilding(CraftData data)
        {
            if (CanCraft(data))
            {
                ConstructionData construct = data.GetConstruction();
                PlantData        plant     = data.GetPlant();

                if (construct != null)
                {
                    CraftConstructionBuildMode(construct);
                }
                else if (plant != null)
                {
                    CraftPlantBuildMode(plant, 0);
                }
                else
                {
                    StartCrafting(data);
                }

                TheAudio.Get().PlaySFX("craft", data.craft_sound);
            }
        }
        //----- Crafting Completion -----

        //Craft immediately
        public void CraftCraftable(CraftData data)
        {
            ItemData         item      = data.GetItem();
            ConstructionData construct = data.GetConstruction();
            PlantData        plant     = data.GetPlant();
            CharacterData    character = data.GetCharacter();

            if (item != null)
            {
                CraftItem(item);
            }
            else if (construct != null)
            {
                CraftConstruction(construct);
            }
            else if (plant != null)
            {
                CraftPlant(plant, 0);
            }
            else if (character != null)
            {
                CraftCharacter(character);
            }
        }