public void removeIngredient(GameObject ingredient, BurgerIngredientScript ingScript) { int index = ingredientsAttached.IndexOf(ingredient); if (index != 0) { ingScript.setAttached(false); int tempLen = ingredientListLength; ingredientListLength = index; for (int i = index; i < tempLen; i++) { ingredientScripts[i].resetIngredient(); ingredientsAttached[i].GetComponent <Rigidbody>().AddForce(new Vector3( Random.Range(-100.0f, 100.0f), //X force Random.Range(0.0f, 30.0f), //Y force Random.Range(-100.0f, 100.0f) //Z force )); } ingredientsAttached.RemoveRange(index, tempLen - index); ingredientScripts.RemoveRange(index, tempLen - index); burgerHeight = ingredientScripts[index - 1].getHeightInBurger() + ingredientScripts[index - 1].getHeight(); } else { resetBurger(); } }
//Handling input for rear trigger on controller void handleTrigger() { Ray ray = new Ray(activeController.transform.position, activeController.transform.forward); RaycastHit hit; if (triggerPressed == true) { lineReticle.enabled = false; //Grabbing the object if pointed at by controller and trigger pressed if (Physics.Raycast(ray, out hit, grabRange, interactable) && objHeld == false) { if (hit.transform.gameObject.tag == "Ingredient") { GameObject ingredient = hit.transform.gameObject; BurgerIngredientScript script = ingredient.GetComponent <BurgerIngredientScript>(); if (script.getAttached() == true) { hit.transform.gameObject.transform.parent.GetComponent <BurgerDishScript>().removeIngredient(ingredient, script); } } else if (hit.transform.gameObject.tag == "Utensil") { GameObject controller = activeController.gameObject.GetComponent <OVRTrackedRemote>().m_modelOculusGoController; hit.transform.gameObject.transform.SetPositionAndRotation(controller.transform.position + (controller.transform.forward * 0.5f), new Quaternion(controller.transform.rotation.x, controller.transform.rotation.y, controller.transform.rotation.z, controller.transform.rotation.w)); } objHeld = true; currHeldObj = hit.transform.gameObject; currHeldObj.transform.parent = activeController.transform; currHeldObj.GetComponent <Rigidbody>().useGravity = false; currHeldObj.GetComponent <Rigidbody>().isKinematic = true; } else if (Physics.Raycast(ray, out hit, grabRange, staticItem) && objHeld == false) { if (hit.transform.gameObject.tag == "Button") { manager.judgeBurgers(); } } } else if (triggerPressed == false) { lineReticle.enabled = true; objHeld = false; //If holding an object, it will be released if (currHeldObj != null) { currHeldObj.transform.parent = null; currHeldObj.GetComponent <Rigidbody>().isKinematic = false; currHeldObj.GetComponent <Rigidbody>().useGravity = true; if (currHeldObj.tag == "Ingredient") { currHeldObj.GetComponent <BurgerIngredientScript>().checkAttach(); } currHeldObj = null; } } }
public float JudgeBurger(BurgerDishScript burger) { float cumulativeScore = 0; float returnScore = 0; int numIngredients = 0; int cookTimeModifier = 0; if (burger.getIngListLength() > 0) { for (int i = 0; i < burger.getIngListLength(); i++) { BurgerIngredientScript testIngredient = burger.ingredientScripts [i]; cumulativeScore += BurgerIngValue [(int)testIngredient.getIngredientType()]; Debug.Log("JUDGE " + this.gameObject + "'S SCORE FOR INGREDIENT " + testIngredient.getIngredientType() + " IS " + BurgerIngValue [(int)testIngredient.getIngredientType()]); if (testIngredient.getIngredientType() == BurgerIngType.BUN && i != 0 || testIngredient.getIngredientType() == BurgerIngType.TOPBUN && i != burger.getIngListLength() - 1) { cumulativeScore -= 5; } else if (testIngredient.getIngredientType() != BurgerIngType.BUN && testIngredient.getIngredientType() != BurgerIngType.TOPBUN) { numIngredients++; if (testIngredient.getIngredientType() == BurgerIngType.HAMBURGER) { if (i != 1) { cumulativeScore -= 2; } if (PickyAboutCookTime) { cookTimeModifier = testIngredient.getCookScore(); } } } } returnScore = cumulativeScore / (float)numIngredients; returnScore = Mathf.Clamp(returnScore + (float)cookTimeModifier, 0.0f, 10.0f); Debug.Log(this.gameObject + " RANKS THE BURGER " + returnScore + "POINTS."); return(returnScore); } else { return(0); } }
public void addIngredient(GameObject ingredient, BurgerIngredientScript ingScript) { ingredientsAttached.Add(ingredient); ingredientScripts.Add(ingScript); ingredientListLength++; }