Exemple #1
0
    void initSolutionObject(SolutionObject e)
    {
        GameObject position = GameObject.Find(e.pos);

        GameObject elem = InstantiatePrefabWithName(e.name);

        elem.transform.position = position.transform.position;

        GameObject newParent = GameObject.Find("SolutionObjects");

        elem.transform.parent = newParent.transform;

        if (elem.GetComponent <DropData>() != null)
        {
            elem.GetComponent <DropData>().acceptedElements = e.acceptedElements;
        }

        /*if (elem.transform.Find ("target") != null) {
         *              GameObject targetObj = elem.transform.Find ("target").gameObject;
         *              targetObj.GetComponent<SpriteRenderer> ().
         *      }*/

        // B3 ?
        if (e.requiredObject())
        {// && elem.transform.Find ("object2find") != null) {
            print("required object");
            GameObject object2find = InstantiatePrefabWithName(e.acceptedElements);
            object2find.name = "similarObjectToFind";
            object2find.transform.SetParent(elem.transform);
            Transform location = elem.GetComponent <DropData>().findFreePosition();
            if (location != null)
            {
                moveObjectToPlaceWithName(object2find, location.name);
                //object2find.transform.position = location.position;
                object2find.GetComponent <DragNDropData>().moveable = false;
                //string layer = "solutionPlace";
                //if (location.gameObject.GetComponent<SpriteRenderer> () != null) {
                //	layer = location.gameObject.GetComponent<SpriteRenderer> ().sortingLayerName;
                //}
                //object2find.GetComponent<SpriteRenderer> ().sortingLayerName = location.gameObject.GetComponent<SpriteRenderer> ().sortingLayerName;
                object2find.GetComponent <DragNDropData>().DeactivateColliders();
            }
        }
        // B4 ?
        if (e.requiredImage() && elem.transform.Find("image") != null)
        {
            print("Target Image of the solution element needs to be updated");

            GameObject target = elem.transform.Find("image").gameObject;
            if (target != null)
            {
                LevelData data = GameObject.FindObjectOfType <GameManager>().getCurrentLevelData();
                target.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Sprites/" + data.sceneName + "/" + e.acceptedElements + "Image");
                print("Target image updated !");
            }
            else
            {
                print("pb when updating the target image");
            }
        }
        else if (elem.transform.Find("image") != null)
        {
            // hide target Image
            GameObject target = elem.transform.Find("image").gameObject;
            if (target != null)
            {
                target.SetActive(false);
            }
        }

        foreach (Element element in e.elements)
        {
            GameObject elem2 = initElementInPos(element);
            // solution objects already placed must not be moved
            elem2.GetComponent <DragNDropData>().moveable = false;
        }

        string difficulty = GameObject.FindObjectOfType <GameManager>().getCurrentLevelData().difficulty;

        if (!difficulty.Equals("EXPERT") && !difficulty.Equals("ADVANCED"))
        {
            GameObject.Find("FeedbacksManager").GetComponent <FeedbacksManager>().DisplayElem2Find(e, elem);
        }

        foreach (SolutionArea solArea in e.solutionAreas)
        {
            //print ("we look for " + solArea.pos);
            Transform area = elem.transform.Find(solArea.pos);
            //print (area.gameObject);
            area.gameObject.GetComponent <DropData>().acceptedElements = solArea.acceptedElement;
            area.gameObject.GetComponent <DropData>().dropable         = true;
            area.gameObject.GetComponent <DropData>().solutionArea     = true;
        }
        //target.tag = e.acceptedElements;
        //elem.transform.Find ("target").gameObject.tag = e.acceptedElements;
    }