コード例 #1
0
    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();
    }
コード例 #2
0
    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();
    }
コード例 #3
0
    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();
    }
コード例 #4
0
    public void Do()
    {
        GameObject newObject = Load();

        newFurniture = new Furniture(id, thickness, newObject);

        newRecepteur = new Furniture_Recepteur(newObject, newFurniture);
    }
コード例 #5
0
 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);
     }
 }
コード例 #6
0
 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();
     }
 }
コード例 #7
0
ファイル: SaveExternalScene.cs プロジェクト: Natorkawl/shima
    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);
    }
コード例 #8
0
ファイル: SaveExternalScene.cs プロジェクト: Natorkawl/shima
    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();
    }
コード例 #9
0
ファイル: EditManager.cs プロジェクト: Natorkawl/shima
    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
    }