Instantiate With UI Buttons

I can infinitely place campfires even before I have wood. What is wrong?

using UnityEngine;

public class Crafting : MonoBehaviour {
	private Inventory inventory;
	public GameObject Campfire;
	public Transform Drop;
	public GameObject Campfirepreview;
	public bool Craft;
	// Use this for initialization
	void Start () {
		Campfirepreview.SetActive (false);
	}
	
	// Update is called once per frame
	void Update () {
		if (Input.GetMouseButtonDown (1)) {
			if (!Craft) {
				Inventory.Wood = Inventory.Wood-3;
				!Craft = Craft;
				Instantiate (Campfire, Drop.position, Drop.rotation); 
				Campfirepreview.SetActive (false);
				}
			}
		
		}
	}


	public void CampfireSpawn(){
		if(Inventory.Wood > 2){
			Campfirepreview.SetActive (true);
			Craft = !Craft;

		}
	}
}

You need to call CampfireSpawn() before your if statment in your update function && make the other two if statements nested in it. Also, on a side note, I have no idea what is happening on line 19. False = true? Does this cause a compiler error? If you know, then my hat is off to you, sir.