//Use object event public void UseObject() { if (holdObject != null && (!bInActivity)) { //Debug.Log("Animal Character Use " + holdObject.objectType.ToString()); AFood food = holdObject as AFood; //If it is food and eatable if (food && food.eatable) { currentActivityCoolDown = activityCoolDown; this.bInActivity = true; food.Eat(this); } } }
void Update() { fruitGeneratingTimeRemain -= Time.deltaTime; if (fruitGeneratingTimeRemain < 0f) { if (fruitCount <= maxFruitCount) { //Generate fruit GameObject fruit = Instantiate(fruitPrefab, new Vector3(0, 0, 0), Quaternion.identity); AFood aFood = fruit.GetComponent <APickupObject>() as AFood; aFood.MakeStatic(); aFood.occupied = true; fruit.transform.parent = this.transform; Vector3 boxSize = GetComponent <BoxCollider>().size; fruit.transform.localPosition = new Vector3(Random.Range(-boxSize.x / 4, boxSize.x / 4f), Random.Range(boxSize.y / 3, boxSize.y), Random.Range(-boxSize.z / 4, boxSize.z / 4f)); fruitCount++; } fruitGeneratingTimeRemain = fruitGeneratingTime; } }
public override void Interact(AnimalCharacter animalCharacter) { //Set Activity animalCharacter.currentActivity = EActivity.Cook; //NEED COOK ANIMATION !!!!!!!!!! animalCharacter.animator.SetInteger("animation", 5); animalCharacter.StopMove(); //Action //Debug.Log("ACampfire: Cook"); StartCoroutine(Cook()); IEnumerator Cook() { if (animalCharacter.holdObject != null) { AFood food = animalCharacter.holdObject as AFood; if (food && food.cookable) { Debug.Log("ACampfire Cook:" + food.objectType.ToString()); yield return(new WaitForSeconds(food.cookTime)); //After cook food.cookable = false; food.fullGain += 0.3f; //Change material //Color foodColor = food.gameObject.GetComponent<Renderer>().material.color; //food.gameObject.GetComponent<Renderer>().material.color = // new Color(foodColor.r / 2f, foodColor.g / 2f, foodColor.b / 2, foodColor.a); } } animalCharacter.SetIdle(); } }
public void Initialize(PlayerAttribute <APlayer> player, AFood <TModuleType> food) { this.food = food; this.player = player; }