/// <summary> /// Instantiate a Cardboard Box based on an aliment /// </summary> public static GameObject InstantiateCardboardBox(float _t_expiry, AlimentObject _alimentObject) { GameObject go = Instantiate(prefabCardboardBox) as GameObject; go.GetComponent <CardboardBox>().Init(_t_expiry, _alimentObject); return(go); }
public void Init(AlimentObject _alimentObject, AlimentState _state = AlimentState.None) { alimentName = _alimentObject.name; alimentType = _alimentObject.type; nutriments = _alimentObject.nutriments; alimentState = _state; alimentStepState = AlimentStepState.Dirty; expiryState = ExpiryState.Fresh; t_expiry = 9999f; }
public void Init(AlimentObject _alimentObject, float _t_expiry = 0f) { alimentObject = _alimentObject; //if (alimentObject.meshStack != null) GetComponent<MeshFilter>().mesh = alimentObject.meshStack; //if (_alimentObject.materialsStack != null && _alimentObject.materialsStack.Length > 0) GetComponent<MeshRenderer>().materials = _alimentObject.materialsStack; if (_t_expiry != 0f) { t_expiry = _t_expiry; } }
private void CreatePool(AlimentObject aliment, AlimentState _state) { //create pool GameObject go = new GameObject("Pool :" + aliment.name + " " + _state.ToString()); go.transform.parent = transform; Pool newPool = go.AddComponent <Pool>(); KeyValuePair <string, AlimentState> key = new KeyValuePair <string, AlimentState>(aliment.name, _state); // Create a new key with the NAME and the STATE of the current aliment GameObject tmpAliment = FoodDatabase.InstantiateAliment(aliment, _state); newPool.Init(tmpAliment, DefaultSizePool); pools[key] = newPool; }
public static GameObject InstantiateAliment(AlimentObject _alimentObject, AlimentState _state) { if (_alimentObject != null) { // Create go Object toInstantiate = null; GameObject alimentGO = null; foreach (AlimentObject.InfoState infoState in _alimentObject.listState) { if (infoState.state == _state) { toInstantiate = infoState.prefab; } } if (toInstantiate != null) { alimentGO = Instantiate(toInstantiate) as GameObject; } else { Debug.Log("_alimentObject: " + _alimentObject.name + " state " + _state); } // Set Aliment Aliment aliment = alimentGO.AddComponent <Aliment>(); aliment.Init(_alimentObject, _state); return(alimentGO); } //Debug.Log("Aliment " + _nameAliment + " doesn't exist !"); return(null); }
/// <summary> /// Use of Disinfection Post /// </summary> /// <param name="pController"></param> public void Interact(PlayerController pController) { player = pController; GrabableObject objectInHand = pController.pDatas.objectInHand; Gastro gastroInHand = player.pDatas.gastroInHand; // Put object = No object in furnace and object in hand of player if (haveAnObject == false) { if (grabableReceived == null) { Aliment actualAliment; if (gastroInHand != null) { actualAliment = gastroInHand.alimentStocked; } else { actualAliment = objectInHand.GetComponent <Aliment>(); } if (actualAliment != null && actualAliment.alimentState >= AlimentState.Standard && actualAliment.alimentState <= AlimentState.Sample) { AlimentObject actualAlimentObject = FoodDatabase.mapAlimentObject[actualAliment.alimentName]; bool alimenStateExist = false; for (int i = 0; i < actualAlimentObject.listState.Count; i++) { if (actualAlimentObject.listState[i].state == AlimentState.Cooked) { alimenStateExist = true; break; } } if (alimenStateExist) { if (gastroInHand != null) { grabableReceived = player.pDatas.gastroInHand.ReleaseObject(false, false, false); } else { grabableReceived = player.pInteract.ReleaseObject(false, false, false); } grabableReceived.AllowGrab(false); grabableReceived.transform.position = foodPos.position; grabableReceived.transform.rotation = foodPos.rotation; haveAnObject = true; Aliment newAliment = grabableReceived.GetComponent <Aliment>(); // Affect the player player.TeleportTo(playerPosition, true); player.BeginInteractionState(); // transform dirty aliment into fresh aliment if (newAliment != null) { currentStartAction = StartCoroutine(StartAction(newAliment, transformationTime, true)); photonView.RPC("StartActionOnline", RpcTarget.Others, pController.photonView.OwnerActorNr); } } else { GameManager.Instance.PopUp.CreateText("Cet aliment ne peut pas être cuit", 50, new Vector2(0, 300), 3.0f); } } else { GameManager.Instance.PopUp.CreateText("Cet object ne peut pas être déposé ici", 50, new Vector2(0, 300), 3.0f); } } } else if (haveAnObject == true && objectInHand != null) { if (gastroInHand != null && gastroInHand.alimentStocked == null) { StartCoroutine(TakeFood()); } } else if (objectInHand == null && haveAnObject == true) // Take object = object in furnace and no object in hand of player { StartCoroutine(TakeFood()); } else if (gastroInHand != null && haveAnObject == true) // put object impossible = object in furnace and object in hand of player { GameManager.Instance.PopUp.CreateText("Il y a actuellement un objet dans la sauteuse", 50, new Vector2(0, 300), 3.0f); } }
public void Init(float _t_expiry, AlimentObject _alimentObject) { t_expiry = _t_expiry; alimentObject = _alimentObject; }
public void Interact(PlayerController pController) { player = pController; GrabableObject objectInHand = player.pDatas.objectInHand; Gastro gastroInHand = pController.pDatas.gastroInHand; // Put object = No object on post and object in hand of player if (haveAnObject == false && objectInHand != null) { if (gastroInHand == null) { if (grabableReceived == null) { Aliment actualAliment = objectInHand.GetComponent <Aliment>(); string alimentType = actualAliment.alimentType.ToString(); string postType = typeOfTreament.ToString(); if (alimentType == postType) { sameState = true; } else { sameState = false; } Debug.Log(alimentType); Debug.Log(postType); Debug.Log(sameState); if (actualAliment != null && (actualAliment.alimentState == AlimentState.InContent || actualAliment.alimentState == AlimentState.Standard)) { AlimentObject actualAlimentObject = FoodDatabase.mapAlimentObject[actualAliment.alimentName]; bool alimenStateExist = false; for (int i = 0; i < actualAlimentObject.listState.Count; i++) { if (actualAlimentObject.listState[i].state == AlimentState.Clean) { alimenStateExist = true; break; } } if (sameState && alimenStateExist) { grabableReceived = player.pInteract.ReleaseObject(false, false, false); grabableReceived.AllowGrab(false); grabableReceived.AllowPhysic(false); grabableReceived.transform.position = initPos.position; grabableReceived.transform.rotation = initPos.rotation; haveAnObject = true; Aliment newAliment = grabableReceived.GetComponent <Aliment>(); // Affect the player player.TeleportTo(playerPosition, true); player.BeginInteractionState(); // transform dirty aliment into fresh aliment if (newAliment != null) { GeneralError.ErrorNoOutfit(pController); currentStartAction = StartCoroutine(StartAction(newAliment, transformationTime, true, true)); } photonView.RPC("PutObjectInPost", RpcTarget.Others, pController.photonView.OwnerActorNr); } else { GameManager.Instance.PopUp.CreateText("Cet Objet ne peut pas être déposé ici", 50, new Vector2(0, 300), 3.0f); } } else if (objectInHand != null && haveAnObject == true) { GameManager.Instance.PopUp.CreateText("Il y a actuellement un objet sur le poste", 50, new Vector2(0, 300), 3.0f); } else { GameManager.Instance.PopUp.CreateText("Cet Objet ne peut pas être déposé ici", 50, new Vector2(0, 300), 3.0f); } } } else { GameManager.Instance.PopUp.CreateText("Il n'est pas possible d'utiliser un gastro ici", 50, new Vector2(0, 300), 3.0f); } } else { GameManager.Instance.PopUp.CreateText("Cet object ne peut pas être déposé ici", 50, new Vector2(0, 300), 3.0f); } }
/// <summary> /// Use of Disinfection Post /// </summary> /// <param name="pController"></param> public void Interact(PlayerController pController) { player = pController; GrabableObject objectInHand = player.pDatas.objectInHand; Gastro gastroInHand = player.pDatas.gastroInHand; // Put object = No object in furnace and object in hand of player if (haveAnObject == false && objectInHand != null) { if (grabableReceived == null) { Aliment actualAliment; if (gastroInHand != null) { actualAliment = gastroInHand.alimentStocked; } else { actualAliment = objectInHand.GetComponent <Aliment>(); } if (actualAliment != null && (actualAliment.alimentState == AlimentState.Standard || actualAliment.alimentState == AlimentState.Clean)) { AlimentObject actualAlimentObject = FoodDatabase.mapAlimentObject[actualAliment.alimentName]; bool alimenStateExist = false; for (int i = 0; i < actualAlimentObject.listState.Count; i++) { if (actualAlimentObject.listState[i].state == AlimentState.Cut) { alimenStateExist = true; break; } } if (alimenStateExist) { if (player.pDatas.gastroInHand != null) { grabableReceived = player.pDatas.gastroInHand.ReleaseObject(false, false, false); } else { grabableReceived = player.pInteract.ReleaseObject(false, false, false); } grabableReceived.AllowGrab(false); grabableReceived.transform.position = foodPos.position; grabableReceived.transform.rotation = foodPos.rotation; haveAnObject = true; Aliment newAliment = grabableReceived.GetComponent <Aliment>(); // Affect the player player.TeleportTo(playerPosition, true); player.BeginInteractionState(); // transform dirty aliment into fresh aliment if (newAliment != null) { GeneralError.ErrorNoOutfit(pController); currentStartAction = StartCoroutine(StartAction(newAliment, transformationTime, true, true)); } photonView.RPC("PutObjectInPost", RpcTarget.Others, pController.photonView.OwnerActorNr); } else { GameManager.Instance.PopUp.CreateText("Cet aliment ne peut pas être coupé", 50, new Vector2(0, 300), 3.0f); } } else { GameManager.Instance.PopUp.CreateText("Cet object ne peut pas être déposé ici", 50, new Vector2(0, 300), 3.0f); } } } else if (objectInHand == null && haveAnObject == true) // Take object = object in furnace and no object in hand of player { if (player.pDatas.gastroInHand != null) { if (player.pDatas.gastroInHand.StockAliment(objectCutted, true) == false) { GameManager.Instance.PopUp.CreateText("impossible de mettre " + objectCutted.GetComponent <Aliment>().alimentName + " dans le gastro", 50, new Vector2(0, 300), 3.0f); } } else { if (player.pInteract.GrabObject(objectCutted, true) == false) { GameManager.Instance.PopUp.CreateText("impossible de prendre " + objectCutted.GetComponent <Aliment>().alimentName + " dans vos mains", 50, new Vector2(0, 300), 3.0f); } } } else if (objectInHand != null && haveAnObject == true) // put object impossible = object in furnace and object in hand of player { GameManager.Instance.PopUp.CreateText("Il y a actuellement un objet sur le poste", 50, new Vector2(0, 300), 3.0f); } }