Ejemplo n.º 1
0
    bool checkPassable(GameObject obj, string tag)
    {
        switch (tag)
        {
        case "tile":
            TileScript tile = obj.GetComponent <TileScript>();
            if (tile == null)
            {
                Debug.Log("lol");
                return(false);
            }
            else
            {
                return(tile.isPassable());
            }

        case "furn":
            FurnitureScript furn = obj.GetComponent <FurnitureScript>();
            if (furn == null)
            {
                Debug.Log("lol");
                return(false);
            }
            else
            {
                return(furn.isPassable());
            }

        default:
            return(true);
        }
    }
Ejemplo n.º 2
0
        // Start is called before the first frame update
        private void Start()
        {
            m_currentFurniScript = null;
            m_furnituresData     = new List <Furniture>();

            Sc_WallsCreator = FindObjectOfType <WallsCreator>();
            if (Sc_WallsCreator == null)
            {
                Debug.LogWarning("FurnitureCreator 'Sc_WallCreator' is null");
            }
        }
Ejemplo n.º 3
0
    private void Start()
    {
        btn              = gameObject.GetComponent <Button>();
        furniture        = gm.GetComponent <FurnitureScript>();
        btn.interactable = !furniture.isOnWall;

        Sc_WallsCreator = FindObjectOfType <WallsCreator>();
        if (Sc_WallsCreator == null)
        {
            Debug.LogWarning("IsInteractibleContent 'Sc_WallCreator' is null");
        }
    }
Ejemplo n.º 4
0
    public void ScaleFernitureX(float scale)
    {
        FurnitureScript myscript = furniture.GetComponentInChildren <FurnitureScript>();

        Vector3 tmp = furniture.transform.localScale;

        tmp.x += scale * scaleFactor;
        if (tmp.x < myscript.maxDepth && tmp.x > myscript.minDepth)
        {
            furniture.transform.localScale = tmp;
        }
    }
Ejemplo n.º 5
0
    void ShowUINavigation()
    {
        if (!utilizeObject)
        {
            itemController      = null;
            furnitureController = null;

            ClearMessage();

            if (gameController.ActionNavigatorActiveSelf)
            {
                gameController.actionNavigationController.ClearActionNavigation();
            }
            return;
        }

        if (GameTrigger.isEventScene)
        {
            return;
        }

        if (utilizeObject.CompareTag("Wall"))
        {
            print("wall -----");
            return;
        }

        if (utilizeObject.CompareTag("Item"))
        {
            Debug.Log("utilize Item : " + utilizeObject.name);
            if (itemController == null)
            {
                itemController = utilizeObject.GetComponentInParent <ItemController>();
            }
            itemController.HandItemUIInfo(ref actionText, ref keyCode, ref action);
        }
        else if (utilizeObject.CompareTag("Furniture"))
        {
            Debug.Log("utilize Furniture ; " + utilizeObject.name);
            if (furnitureController == null)
            {
                furnitureController = utilizeObject.GetComponentInParent <FurnitureScript>();
            }
            furnitureController.handFurnitureUIInfo(ref messageText, ref actionText, ref keyCode, ref action);
        }

        if (actionText != null)
        {
            Debug.Log("setActionNavi");
            gameController.actionNavigationController.SetActionNavigation(keyCode, actionText);
        }
    }
Ejemplo n.º 6
0
    public void ScaleFernitureZ(float scale)
    {
        FurnitureScript myscript = furniture.GetComponentInChildren <FurnitureScript>();

        Vector3 tmp = furniture.transform.localScale;

        tmp.z += scale * scaleFactor;

        if (tmp.z < myscript.maxHeight && tmp.z > myscript.minHeight)
        {
            furniture.transform.Translate(0, 0.1f, 0, Space.World);
            furniture.transform.localScale = tmp;
        }
    }
Ejemplo n.º 7
0
 /// <summary>
 ///     Destroy current furniture to cancel its creation
 /// </summary>
 private void CancelFurniture()
 {
     if (m_currentFurniScript)
     {
         //Destroy(m_currentFurniture2DFace);
         Destroy(m_currentFurniture2DTop);
         Destroy(m_currentFurniture3D);
         Destroy(m_currentFurniScript.gameObject);
         Destroy(m_currentFurniture.text2D);
         m_furnituresData.Remove(m_currentFurniture);
         FurnitureListScroll.Instance.UpdateList();
         m_currentFurniture   = null;
         m_currentFurniScript = null;
     }
 }
Ejemplo n.º 8
0
        // Update is called once per frame
        private void Update()
        {
            // RIGIDBODIES
            foreach (var f in m_furnituresData)
            {
                if (f != m_currentFurniture)
                {
                    //if (f.associated3DObject == null) { return; }
                    var rb = f.associated3DObject.GetComponent <Rigidbody>();

                    // Freeze all except if its current selected furniture
                    if (SelectedObjectManager.Instance.currentFurnitureData.Count == 1 &&
                        SelectedObjectManager.Instance.currentFurnitureData[0] == f)
                    {
                        if (f.IsOnWall)
                        {
                            rb.constraints = RigidbodyConstraints.FreezeRotation;
                            rb.useGravity  = false;
                        }
                        else
                        {
                            if (f.CanBePutOnFurniture)
                            {
                                rb.constraints = RigidbodyConstraints.FreezeRotation;
                            }
                            else
                            {
                                rb.constraints = RigidbodyConstraints.FreezeRotation |
                                                 RigidbodyConstraints.FreezePositionY;
                            }
                        }
                    }
                    else
                    {
                        rb.constraints = RigidbodyConstraints.FreezeAll;
                    }

                    // update 2D position if moving
                    if (f.associated3DObject?.GetComponent <Rigidbody>().velocity.magnitude > 0 && f.associated3DObject.activeSelf) //activeSelf Evite de deplacer l'objet 2D quand la 3d est masquer
                    {
                        f.Position = f.associated3DObject.transform.position;
                        f.associated2DObject.transform.position =
                            VectorFunctions.GetExactPositionFrom3DObject(f.associated2DObject, f.associated3DObject,
                                                                         f.Position);
                        //VectorFunctions.Switch3D2D(f.Position);
                        rb.velocity *= 0.5f;
                    }

                    f.text2D.transform.position = f.associated2DObject.transform.position;
                }
            }

            // In creation -> check view then position it
            if (m_currentFurniture != null)
            {
                m_currentFurniture.Move(InputFunctions.GetWorldPoint(GlobalManager.Instance.GetActiveCamera()));
            }
            // Validate
            if (Input.GetMouseButtonDown(0) && m_currentFurniture != null)
            {
                m_currentFurniture.Position = m_currentFurniture3D.transform.position;
                m_currentFurniture          = null;

                if (m_currentFurniScript)
                {
                    Destroy(m_currentFurniScript.gameObject);
                    m_currentFurniScript = null;
                }

                //m_currentFurniture3D.GetComponent<MeshCollider>().enabled = true;
            }

            // in creation -> rotation
            //if (Input.GetMouseButtonDown(1)) { //m_currentFurniture.Rotation = Vector3.Angle(m_currentFurniture.Position,Input.mousePosition); };

            if (Input.GetButtonDown("Cancel"))
            {
                CancelFurniture();
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        ///     Add a furniture (not custom) on scene
        /// </summary>
        /// <param name="furniture">Gameobject containing data in a FurnitureScript (prefab data)</param>
        public void AddFurniture(GameObject furniture)
        {
            FurnitureScript Sc_FurnitureScript = furniture.GetComponent <FurnitureScript>();

            if (Sc_FurnitureScript == null)
            {
                Debug.LogError("FurnitureCreator 'Sc_FurnitureScript' is null");
            }
            else
            {
                if (!Sc_WallsCreator.isOneWall && Sc_FurnitureScript.isOnWall)
                {
                    //To Do..
                    //Management of the case where the object needs a wall but there is not one
                    Debug.Log("The object needs a wall");
                }
                else
                {
                    m_currentFurniScript = Instantiate(furniture).GetComponent <FurnitureScript>();

                    if (!m_currentFurniScript.furniture2DTop)
                    {
                        m_currentFurniture2DTop = Instantiate(backUpFurniture2DTop, parent2DTop);
                    }
                    else
                    {
                        m_currentFurniture2DTop = Instantiate(m_currentFurniScript.furniture2DTop, parent2DTop);
                    }

                    //m_currentFurniture2DFace = Instantiate(m_currentFurniScript.furniture2DFace, parent2DFace);
                    m_currentFurniture3D = Instantiate(m_currentFurniScript.furniture3D, parent3D);

                    m_currentFurniture3D.tag    = "Furniture";
                    m_currentFurniture2DTop.tag = "Furniture";

                    m_currentFurniture2DTop.SetLayerRecursively(9);
                    m_currentFurniture3D.SetLayerRecursively(10);

                    m_currentFurniture = new Furniture
                    {
                        associated2DObject = m_currentFurniture2DTop,
                        associated3DObject = m_currentFurniture3D,
                        Name                = m_currentFurniScript.furnitureName,
                        Position            = m_currentFurniture3D.transform.position,
                        Rotation            = 0,
                        PrefabName          = m_currentFurniScript.resourceName,
                        Type                = m_currentFurniScript.furnitureType,
                        IsOnWall            = m_currentFurniScript.isOnWall,
                        CanBePutOnFurniture = m_currentFurniScript.canBePutOnFurniture,
                        ScaleModifier       = m_currentFurniScript.scaleRatio
                    };


                    m_currentFurniture3D.transform.localScale = m_currentFurniture.ScaleModifier * m_currentFurniture.MeshSize;
                    m_currentFurniture.Size = m_currentFurniture.MeshSize * m_currentFurniture.ScaleModifier;
                    SetFurni2DSize();

                    InitFurnitureText(m_currentFurniture);

                    m_furnituresData.Add(m_currentFurniture);

                    FurnitureListScroll.Instance.UpdateList();
                    SelectedObjectManager.Instance.Select(m_currentFurniture);
                    SelectedObjectManager.Instance.PlaceFurniture(true);

                    //Prioriter d'affichage celon l'objet
                    if (m_currentFurniture2DTop.name == "officeChair")
                    {
                        m_currentFurniture2DTop.transform.position += Vector3.forward;
                    }

                    //OperationsBufferScript.Instance.AddAutoSave("Ajout de " + m_currentFurniture.Name);
                }
            }
        }
Ejemplo n.º 10
0
    public void ChangeTexture()
    {
        FurnitureScript myscript = gameObject.GetComponentInChildren <FurnitureScript>();

        myscript.ChangeTexture();
    }