Esempio n. 1
0
    private void addOneMoneyAtMarker(Transform marker, Transform inparent, TerrainTag interrainTag)
    {
        GameObject newObject;

        newObject = moneyElementFactory.GetNewObject();

        //set position & rotation
        newObject.transform.position = marker.position;

        MarkerTag markerTag = newObject.GetComponent <MarkerTag>();

        if (markerTag)
        {
            markerTag.ApplyRotation(marker.rotation, interrainTag.singleTransform.rotation);
        }
        else
        {
            newObject.transform.rotation = marker.rotation;
        }

        if (interrainTag)
        {
            interrainTag.PushToAllElements(newObject.GetComponent <AbstractTag>());
        }

        if (!MakeObstacleSet)
        {
            newObject.transform.parent = inparent;
        }
    }
Esempio n. 2
0
    private void addOneUniqueAtMarker(Transform marker, TerrainTag interrainTag)
    {
        GameObject newObject;

        newObject = uniqueElementFactory.GetNewObjectWithName(marker.name);

        if (!newObject)
        {
            Debug.Log("Object Not Found - " + marker.name);
            return;
        }

        //set position & rotation
        newObject.transform.position = marker.position;

        MarkerTag markerTag = newObject.GetComponent <MarkerTag>();

        if (markerTag)
        {
            markerTag.ApplyRotation(marker.rotation, interrainTag.singleTransform.rotation);
        }
        else
        {
            newObject.transform.rotation = marker.rotation;
        }

        if (interrainTag)
        {
            interrainTag.PushToAllElements(newObject.GetComponent <AbstractTag>());
        }

        if (MakeTerrains)
        {
            GameObject vspObject;
            vspObject = new GameObject();
            Transform vspTerrain = vspObject.transform;

            vspTerrain.parent   = marker.parent;
            vspTerrain.position = marker.position;
            vspTerrain.rotation = marker.rotation;

            marker.parent = null;

            vspTerrain.name = marker.name;
        }
    }
Esempio n. 3
0
    private void addOneTreeAtMarker(Transform marker, TerrainTag interrainTag)
    {
        int                    i;
        GameObject             newObject;
        AbstractElementFactory treeElementFactory = null;

        //findTreeFactory
        for (i = 0; i < treeElementFactories.Count; i++)
        {
            //нашли
            if ((treeElementFactories[i] as GameObject).name == interrainTag.treeElementFactory.name)
            {
                treeElementFactory = (treeElementFactories[i] as GameObject).GetComponent <AbstractElementFactory>();
                break;
            }
        }

        if (!treeElementFactory)
        {
            GameObject newTreeFactory;
            newTreeFactory = Instantiate(interrainTag.treeElementFactory) as GameObject;
            treeElementFactories.Add(newTreeFactory);
            newTreeFactory.name = interrainTag.treeElementFactory.name;
            treeElementFactory  = newTreeFactory.GetComponent <AbstractElementFactory>();
        }


        newObject = treeElementFactory.GetNewObject();

        //set position & rotation
        newObject.transform.position = marker.position;

        MarkerTag marderTag = newObject.GetComponent <MarkerTag>();

        if (marderTag)
        {
            marderTag.ApplyRotation(marker.rotation, interrainTag.singleTransform.rotation);
        }
        else
        {
            newObject.transform.rotation = marker.rotation;
        }

        if (interrainTag)
        {
            interrainTag.PushToAllElements(newObject.GetComponent <AbstractTag>());
        }

        if (MakeTerrains)
        {
            GameObject vspObject;
            vspObject = new GameObject();
            Transform vspTerrain = vspObject.transform;

            vspTerrain.parent   = marker.parent;
            vspTerrain.position = marker.position;
            vspTerrain.rotation = marker.rotation;

            marker.parent = null;

            vspTerrain.name = marker.name;
        }
    }
Esempio n. 4
0
    private IEnumerator addOneObstacleFromSetAtMarker(Transform marker, Transform inparent, TerrainTag interrainTag, int recursion, bool FlagCoRoutine)
    {
        GameObject newObject, vspObject;
        bool       flagCompiled = false;

        newObject = obstacleElementFactory.GetNewObjectWithName(marker.name);

        if (!newObject)
        {
            //Debug.Log (marker.name+" NOT FOUND!!!");
            if (FlagCoRoutine)
            {
                yield return(null);
            }
        }

        //set position & rotation
        newObject.transform.position = marker.position;

        MarkerTag markerTag = newObject.GetComponent <MarkerTag>();

        if (markerTag)
        {
            markerTag.ApplyRotation(marker.rotation, interrainTag.singleTransform.rotation);
        }
        else
        {
            newObject.transform.rotation = marker.rotation;
        }

        if (interrainTag)
        {
            interrainTag.PushToAllElements(newObject.GetComponent <AbstractTag>());
        }

        if (marker.name == "TochkaSbora")
        {
            fermaMissionEmmiter.AddMissionEmmitterListener(newObject.GetComponentInChildren <TochkaSbora>());
            if (fermaMissionEmmiter.GetCurrentMissions().Count == 0)
            {
                newObject.GetComponentInChildren <AbstractEnemy>().MakeInactiveParent();
            }
        }

        //if compiled object
        if (marker.name.Contains("Compiled"))
        {
            flagCompiled = true;
            int j;
            //ищем контейнер
            Transform Container;
            Transform Container2;
            Container = marker.transform.FindChild("ContainerOfObjects");
            if (MakeObstacleSet)
            {
                vspObject  = new GameObject();
                Container2 = vspObject.transform;

                Container2.parent   = Container.parent;
                Container2.position = Container.position;
                Container2.rotation = Container.rotation;

                Container2.name = Container.name;
            }
            else
            {
                Container2 = newObject.transform.FindChild("ContainerOfObjects");
            }
            if (Container)
            {
                Transform[] allChildren = Container.gameObject.GetComponentsInChildren <Transform>();
                //обрабатываем все трансформы
                for (j = 1; j < allChildren.Length; j++)
                {
                    //bug with NUULLS
                    if (allChildren[j].name == "money")
                    {
                        addOneMoneyAtMarker(allChildren[j], Container2, interrainTag);
                        continue;
                    }

                    if (allChildren[j].name == "boost")
                    {
                        addOneBoostAtMarker(allChildren[j], Container2, interrainTag);
                        continue;
                    }
                    //reqursively
                    if (FlagCoRoutine)
                    {
                        yield return(null);
                    }
                    StartCoroutine(addOneObstacleFromSetAtMarker(allChildren[j], Container2, interrainTag, recursion + 1, FlagCoRoutine));
                }
                if (MakeObstacleSet)
                {
                    DestroyImmediate(Container.gameObject);
                }
            }
        }

        if (MakeObstacleSet)
        {
            vspObject = new GameObject();
            if (marker.name == "MonetaContainer")
            {
                vspObject.name = "money";
            }

            else if (marker.name == "VodkaContainer" || marker.name == "MagnitContainer" || marker.name == "PostalContainer" || marker.name == "KopilkaContainer")
            {
                vspObject.name = "boost";
            }
            else
            {
                vspObject.name = marker.name;
            }
            vspObject.transform.position = marker.position;
            vspObject.transform.rotation = marker.rotation;
            vspObject.transform.parent   = inparent;

            if (recursion == 0 && !flagCompiled)
            {
                DestroyImmediate(marker.gameObject);
            }

            if (recursion == 0 && flagCompiled)
            {
                Transform Container = marker.transform.FindChild("ContainerOfObjects");
                Container.parent = vspObject.transform;
                DestroyImmediate(marker.gameObject);
            }
        }
        else
        {
            newObject.transform.parent = inparent;
        }

        if (FlagCoRoutine)
        {
            yield return(null);
        }
    }