public void SetThickness(Furniture_Recepteur recepteur, float oldThickness, float newThickness) { Commande commande = new SetThickness(recepteur.getFurniture(), oldThickness, newThickness); commande.Do(); commandeList.Push(commande); editManager.RefreshInfos(); }
public void ScaleFurniture(Furniture_Recepteur recepteur, Vector3 oldScaling, Vector3 newScaling) { Commande commande = new ScaleTo(recepteur.getGameObject(), oldScaling, newScaling); commande.Do(); commandeList.Push(commande); editManager.RefreshInfos(); }
public void RotateFurniture(Furniture_Recepteur recepteur, Vector3 oldRotation, Vector3 newRotation) { Commande commande = new RotateTo(recepteur.getGameObject(), oldRotation, newRotation); commande.Do(); commandeList.Push(commande); editManager.RefreshInfos(); }
public void Do() { GameObject newObject = Load(); newFurniture = new Furniture(id, thickness, newObject); newRecepteur = new Furniture_Recepteur(newObject, newFurniture); }
public void MoveFurniture(Furniture_Recepteur recepteur, Vector3 oldPosition, Vector3 newPosition) { if (oldPosition != newPosition) { Commande commande = new MoveTo(recepteur.getGameObject(), oldPosition, newPosition); commande.Do(); commandeList.Push(commande); } }
public void SetName(Furniture_Recepteur recepteur, string oldName, string newName) { if (oldName != newName) { Commande commande = new SetName(recepteur.getGameObject(), oldName, newName); commande.Do(); commandeList.Push(commande); editManager.RefreshInfos(); } }
public void TestSave() { int nb = transform.childCount; for (int i = 0; i < nb; i++) { GameObject child = transform.GetChild(i).gameObject; Furniture newFurniture = new global::Furniture(child.name, 1f, child); // Le nom de l'objet doit être le même que son prefab Furniture_Recepteur recepteur = new Furniture_Recepteur(child, newFurniture); furnitureList.Add(recepteur); } string[] stringTableau = new string[furnitureList.Count]; for (int j = 0; j < furnitureList.Count; j++) { stringTableau[j] = JsonUtility.ToJson(furnitureList[j].getFurniture()); } System.IO.File.WriteAllLines(Application.dataPath + "/Extra/Saves", stringTableau); }
public void Save() { int nb = transform.childCount; for (int i = 0; i < nb; i++) { GameObject child = transform.GetChild(i).gameObject; Furniture newFurniture = new global::Furniture(child.name, 1f, child); // Le nom de l'objet doit être le même que son prefab Furniture_Recepteur recepteur = new Furniture_Recepteur(child, newFurniture); furnitureList.Add(recepteur); } StreamWriter writer = new StreamWriter(saveName); foreach (Furniture_Recepteur currentFurniture in furnitureList) { writer.WriteLine(JsonUtility.ToJson(currentFurniture.getFurniture())); } writer.Close(); }
void Update() { // Rénitialise les paramètres si l'utilisateur n'est pas en train de sélectionner un objet #region GetMouseButtonDown(1) if (Input.GetMouseButtonDown(1)) { GameObject target = GetClickedGameObject(); if (target != null) { selected = target; recepteur = buildManager.FindInFurnitureList(selected); // Permet de trouver la structure de données contenant l'entité ciblée mouseState = true; screenSpace = Camera.main.WorldToScreenPoint(selected.transform.position); offset = selected.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z)); editPanel.SetActive(true); // Initialise les parametres de la fenetre RefreshInfos(); } else { // Rénitialise les parametres mouseState = false; selected = null; recepteur = null; objectNameInputField.text = "Name"; angleNameInputField_X.text = "0"; angleNameInputField_Y.text = "0"; angleNameInputField_Z.text = "0"; updateInfo = false; oldPosition = new Vector3(0, 0, 0); oldName = null; oldRotation = new Vector3(0, 0, 0); oldScaling = new Vector3(0, 0, 0); oldThickness = 0; editPanel.SetActive(false); } } #endregion // Créé une commande de déplacement si l'utilisateur relâche le bouton #region GetButtonUp(1) if (Input.GetMouseButtonUp(1)) { mouseState = false; updateInfo = false; if (recepteur != null && selected != null) { this.GetComponentInParent <BBuildManager>().MoveFurniture(recepteur, oldPosition, newPosition); } } #endregion // L'utilisateur a sélectionné un objet #region MouseState if (mouseState) { // Conserve la position initiale de l'objet sélectionné, s'effectue qu'une seule fois if (updateInfo == false) { oldPosition = selected.transform.position; updateInfo = true; } // Déplace l'objet sélectionné selon le curseur de la souris Vector3 curScreenSpace = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z); newPosition = Camera.main.ScreenToWorldPoint(curScreenSpace) + offset; selected.transform.position = newPosition; // Met à jour le Furniture_Recepteur if (recepteur != null && selected != null) { recepteur.UpdateInfos(selected); } } #endregion // Commande au clavier pour annuler la dernière action #region CTRL if (Input.GetKeyDown(KeyCode.LeftControl) && Input.GetKeyDown(KeyCode.Z)) { buildManager.Cancel(); } #endregion }