Ejemplo n.º 1
0
        private void InitializeObjects()
        {
            for (int i = 0; i < 5; i++)
            {
                normalBlocks[i] = new GeneralObject(1)
                {
                    GroupIDs = new int[] { i + 1 },
                    Color1ID = i + 1,
                    Color2ID = i + 21,
                };

                moveTriggers[i] = new MoveTrigger(0, i + 1);

                pickupItems[i] = new PickupItem(1275)
                {
                    TargetItemID = i + 1,
                };

                pickupTriggers[i] = new PickupTrigger(i + 1, 0);

                colorTriggers[i] = new ColorTrigger(i + 1)
                {
                    CopiedColorID = i + 21,
                };

                instantCountTriggers[i] = new InstantCountTrigger(i + 1, i + 1, 0);

                collisionBlocks[i] = new CollisionBlock
                {
                    BlockID = i + 1,
                };

                collisionTriggers[i] = new CollisionTrigger(i + 1, i + 21, i + 1);
            }

            allObjects = new LevelObjectCollection(normalBlocks.Concat(moveTriggers).Concat(pickupItems).Concat(pickupTriggers).Concat(colorTriggers).Concat(instantCountTriggers).Concat(collisionBlocks).Concat(collisionTriggers));
        }
Ejemplo n.º 2
0
        public TestSceneIDMigrationBackend()
        {
            Children = new Drawable[]
            {
                new SpriteText
                {
                    Anchor = Anchor.Centre,
                    Origin = Anchor.Centre,
                    Font   = new FontUsage(size: 26),
                    Text   = "Nothing to see here, too bored to make friendly visualized messages indicating test cases"
                }
            };

            var normalBlocks         = new GeneralObject[5];
            var moveTriggers         = new MoveTrigger[5];
            var pickupItems          = new PickupItem[5];
            var pickupTriggers       = new PickupTrigger[5];
            var colorTriggers        = new ColorTrigger[5];
            var instantCountTriggers = new InstantCountTrigger[5];
            var collisionBlocks      = new CollisionBlock[5];
            var collisionTriggers    = new CollisionTrigger[5];

            for (var i = 0; i < 5; i++)
            {
                normalBlocks[i] = new GeneralObject(1)
                {
                    GroupIDs = new[] { i + 1 },
                    Color1ID = i + 1,
                    Color2ID = i + 21
                }
            }
            ;
            for (var i = 0; i < 5; i++)
            {
                moveTriggers[i] = new MoveTrigger(0, i + 1);
            }
            for (var i = 0; i < 5; i++)
            {
                pickupItems[i] = new PickupItem(1275)
                {
                    TargetItemID = i + 1
                }
            }
            ;
            for (var i = 0; i < 5; i++)
            {
                pickupTriggers[i] = new PickupTrigger(i + 1, 0);
            }
            for (var i = 0; i < 5; i++)
            {
                colorTriggers[i] = new ColorTrigger(i + 1)
                {
                    CopiedColorID = i + 21
                }
            }
            ;
            for (var i = 0; i < 5; i++)
            {
                instantCountTriggers[i] = new InstantCountTrigger(i + 1, i + 1, 0);
            }
            for (var i = 0; i < 5; i++)
            {
                collisionBlocks[i] = new CollisionBlock
                {
                    BlockID = i + 1
                }
            }
            ;
            for (var i = 0; i < 5; i++)
            {
                collisionTriggers[i] = new CollisionTrigger(i + 1, i + 21, i + 1);
            }

            var allObjects = new LevelObjectCollection(normalBlocks.Concat(moveTriggers).Concat(pickupItems)
                                                       .Concat(pickupTriggers).Concat(colorTriggers).Concat(instantCountTriggers).Concat(collisionBlocks)
                                                       .Concat(collisionTriggers).ToList());

            var level = new Level
            {
                Name         = "ID Migration Test Level",
                Description  = "This is a test level to help testing the ID migration feature in the backend",
                LevelObjects = allObjects
            };

            var editor = new Editor(level);

            var step0 = new SourceTargetRange(1, 5, 6);
            var step1 = new SourceTargetRange(21, 25, 46);
            var step2 = new SourceTargetRange(1, 25, 26);
            var step3 = new SourceTargetRange(8, 8, 10);

            AddStep("Perform Group ID migration 1-5 > 6-10",
                    () => editor.PerformGroupIDMigration(new List <SourceTargetRange> {
                step0
            }));
            AddAssert("Verify Group ID migration", () => VerifyGroupIDMigration(step0.TargetFrom));
            AddStep("Perform Color ID migration 1-25 > 26-50",
                    () => editor.PerformColorIDMigration(new List <SourceTargetRange> {
                step2
            }));
            AddAssert("Verify Color ID migration", () => VerifyColorIDMigration(step2.TargetFrom, step1.TargetFrom));
            AddStep("Perform Item ID migration 1-5 > 6-10",
                    () => editor.PerformItemIDMigration(new List <SourceTargetRange> {
                step0
            }));
            AddAssert("Verify Item ID migration", () => VerifyItemIDMigration(step0.TargetFrom));
            AddStep("Perform Block ID migration 21-25 > 46-50",
                    () => editor.PerformBlockIDMigration(new List <SourceTargetRange> {
                step1
            }));
            AddAssert("Verify Block ID migration", () => VerifyBlockIDMigration(step0.SourceFrom, step1.TargetFrom));
            // TODO: Add more test steps with multiple step ID migrations

            bool VerifyGroupIDMigration(int targetFrom)
            {
                for (var i = 0; i < 5; i++)
                {
                    if (normalBlocks[i].GetGroupID(0) != i + targetFrom)
                    {
                        return(false);
                    }
                }
                for (var i = 0; i < 5; i++)
                {
                    if (moveTriggers[i].TargetGroupID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                for (var i = 0; i < 5; i++)
                {
                    if (instantCountTriggers[i].TargetGroupID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                for (var i = 0; i < 5; i++)
                {
                    if (collisionTriggers[i].TargetGroupID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                return(true);
            }

            bool VerifyColorIDMigration(int targetFromA, int targetFromB)
            {
                for (var i = 0; i < 5; i++)
                {
                    if (normalBlocks[i].Color1ID != i + targetFromA)
                    {
                        return(false);
                    }
                    if (normalBlocks[i].Color2ID != i + targetFromB)
                    {
                        return(false);
                    }
                }

                for (var i = 0; i < 5; i++)
                {
                    if (colorTriggers[i].TargetColorID != i + targetFromA)
                    {
                        return(false);
                    }
                    if (colorTriggers[i].CopiedColorID != i + targetFromB)
                    {
                        return(false);
                    }
                }

                return(true);
            }

            bool VerifyItemIDMigration(int targetFrom)
            {
                for (var i = 0; i < 5; i++)
                {
                    if (pickupItems[i].TargetItemID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                for (var i = 0; i < 5; i++)
                {
                    if (pickupTriggers[i].TargetItemID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                return(true);
            }

            bool VerifyBlockIDMigration(int targetFromA, int targetFromB)
            {
                for (var i = 0; i < 5; i++)
                {
                    if (collisionBlocks[i].BlockID != i + targetFromA)
                    {
                        return(false);
                    }
                }
                for (var i = 0; i < 5; i++)
                {
                    if (collisionTriggers[i].PrimaryBlockID != i + targetFromA)
                    {
                        return(false);
                    }
                    if (collisionTriggers[i].SecondaryBlockID != i + targetFromB)
                    {
                        return(false);
                    }
                }

                return(true);
            }
        }
    }
}
Ejemplo n.º 3
0
    public IEnumerator Begin()
    {
        int i = 0;

        if (exe == (ExecutionType)0) //Sequential
        {
            while (i < triggers.Length)
            {
                float      d1 = delay[i], time = 0, d2 = 0;
                GameObject trigger = triggers[i];

                while (time <= d1)
                {
                    time += Time.deltaTime;
                    yield return(null);
                }

                switch (trigger.gameObject.tag)
                {
                // MOVE TRIGGER
                case "MoveTrigger":
                    MoveTrigger move = trigger.GetComponent <MoveTrigger>();
                    d2   = move.getDuration();
                    time = 0;

                    //Debug.Log("Trigger " +  i);
                    StartCoroutine(move.Move());

                    while (time <= d2 && !ignorefinish)
                    {
                        time += Time.deltaTime;
                        yield return(null);
                    }
                    while (move.getFinished() != true && !ignorefinish)
                    {
                        //Debug.Log("Waiting to finish");
                        yield return(null);
                    }

                    move.StopAllCoroutines();
                    break;

                // SPAWN TRIGGER
                case "SpawnTrigger":
                    SpawnTrigger spawn = trigger.GetComponent <SpawnTrigger>();
                    spawn.StopAllCoroutines();
                    StartCoroutine(spawn.Begin());

                    if (spawn.exe == ExecutionType.Parallel)
                    {
                        while (spawn.getFinished() != true && !ignorefinish)
                        {
                            //Debug.Log("Waiting to finish");
                            yield return(null);
                        }
                    }

                    break;

                // MUSIC TRIGGER
                case "MusicTrigger":
                    MusicTrigger music = trigger.GetComponent <MusicTrigger>();
                    d2   = music.getDuration();
                    time = 0;

                    // Volume
                    if (music.mode == MusicTrigger.Mode.volume)
                    {
                        StartCoroutine(music.setMusicVolume());

                        while (music.getFinished() != true && !ignorefinish)
                        {
                            //Debug.Log("Waiting to finish");
                            yield return(null);
                        }
                    }

                    // Change Song
                    else if (music.mode == MusicTrigger.Mode.music)
                    {
                        music.setBGMusic();
                    }

                    music.StopAllCoroutines();
                    break;

                // TOGGLE TRIGGER
                case "ToggleTrigger":
                    ToggleTrigger toggle = trigger.GetComponent <ToggleTrigger>();
                    StartCoroutine(toggle.Toggle());
                    while (toggle.getFinished() != true && !ignorefinish)
                    {
                        //Debug.Log("Waiting to finish");
                        yield return(null);
                    }
                    break;

                // COLOR TRIGGER
                case "ColorTrigger":
                    ColorTrigger color = trigger.GetComponent <ColorTrigger>();
                    color.SpawnActivate();
                    while (!color.getFinished() && !ignorefinish)
                    {
                        //Debug.Log("Waiting to finish");
                        yield return(null);
                    }
                    break;

                // SHAKE TRIGGER
                case "ShakeTrigger":
                    ShakeTrigger shake = trigger.GetComponent <ShakeTrigger>();
                    shake.SpawnActivate();
                    break;

                default:
                    break;
                }

                i++;

                if (i == triggers.Length && loop)
                {
                    i = 0;
                }

                yield return(null);
            }
        }


        else if (exe == (ExecutionType)1) //Parallel
        {
            finished = false;
            float longestDelay = 0, time = 0;

            while (i < triggers.Length)
            {
                GameObject trigger = triggers[i];

                switch (trigger.gameObject.tag)
                {
                // MOVE TRIGGER
                case "MoveTrigger":
                    MoveTrigger move = trigger.GetComponent <MoveTrigger>();
                    longestDelay = Mathf.Max(move.getDuration(), longestDelay);

                    //Debug.Log("Trigger " +  i);
                    StartCoroutine(move.Move());
                    break;

                // SPAWN TRIGGER
                case "SpawnTrigger":
                    SpawnTrigger spawn = trigger.GetComponent <SpawnTrigger>();
                    spawn.StopAllCoroutines();
                    StartCoroutine(spawn.Begin());
                    break;

                // MUSIC TRIGGER
                case "MusicTrigger":
                    MusicTrigger music = trigger.GetComponent <MusicTrigger>();
                    longestDelay = Mathf.Max(music.getDuration(), longestDelay);

                    // Volume
                    if (music.mode == MusicTrigger.Mode.volume)
                    {
                        StartCoroutine(music.setMusicVolume());
                    }

                    // Change Song
                    else if (music.mode == MusicTrigger.Mode.music)
                    {
                        music.setBGMusic();
                    }
                    break;

                // TOGGLE TRIGGER
                case "ToggleTrigger":
                    ToggleTrigger toggle = trigger.GetComponent <ToggleTrigger>();
                    longestDelay = Mathf.Max((toggle.on_targets.Length + toggle.off_targets.Length) * Time.fixedDeltaTime * 10, longestDelay);
                    StartCoroutine(toggle.Toggle());
                    break;

                // COLOR TRIGGER
                case "ColorTrigger":
                    ColorTrigger color = trigger.GetComponent <ColorTrigger>();
                    color.SpawnActivate();
                    break;

                default:
                    break;
                }

                i++;
            }
            while (time <= longestDelay)
            {
                time += Time.deltaTime;
                yield return(null);
            }

            finished = true;
        }
    }
Ejemplo n.º 4
0
        public void IDMigration()
        {
            var normalBlocks         = new GeneralObject[5];
            var moveTriggers         = new MoveTrigger[5];
            var pickupItems          = new PickupItem[5];
            var pickupTriggers       = new PickupTrigger[5];
            var colorTriggers        = new ColorTrigger[5];
            var instantCountTriggers = new InstantCountTrigger[5];
            var collisionBlocks      = new CollisionBlock[5];
            var collisionTriggers    = new CollisionTrigger[5];

            for (int i = 0; i < 5; i++)
            {
                normalBlocks[i] = new GeneralObject(1)
                {
                    GroupIDs = new int[] { i + 1 },
                    Color1ID = i + 1,
                    Color2ID = i + 21,
                }
            }
            ;
            for (int i = 0; i < 5; i++)
            {
                moveTriggers[i] = new MoveTrigger(0, i + 1);
            }
            for (int i = 0; i < 5; i++)
            {
                pickupItems[i] = new PickupItem(1275)
                {
                    TargetItemID = i + 1,
                }
            }
            ;
            for (int i = 0; i < 5; i++)
            {
                pickupTriggers[i] = new PickupTrigger(i + 1, 0);
            }
            for (int i = 0; i < 5; i++)
            {
                colorTriggers[i] = new ColorTrigger(i + 1)
                {
                    CopiedColorID = i + 21,
                }
            }
            ;
            for (int i = 0; i < 5; i++)
            {
                instantCountTriggers[i] = new InstantCountTrigger(i + 1, i + 1, 0);
            }
            for (int i = 0; i < 5; i++)
            {
                collisionBlocks[i] = new CollisionBlock
                {
                    BlockID = i + 1,
                }
            }
            ;
            for (int i = 0; i < 5; i++)
            {
                collisionTriggers[i] = new CollisionTrigger(i + 1, i + 21, i + 1);
            }

            var allObjects = new LevelObjectCollection(normalBlocks.Concat(moveTriggers).Concat(pickupItems).Concat(pickupTriggers).Concat(colorTriggers).Concat(instantCountTriggers).Concat(collisionBlocks).Concat(collisionTriggers).ToList());

            var level = new Level
            {
                Name         = "ID Migration Test Level",
                Description  = "This is a test level to help testing the ID migration feature in the backend",
                LevelObjects = allObjects,
            };

            var editor = new Editor(level);

            var step0 = new SourceTargetRange(1, 5, 6);
            var step1 = new SourceTargetRange(21, 25, 46);
            var step2 = new SourceTargetRange(1, 25, 26);
            var step3 = new SourceTargetRange(8, 8, 10);

            editor.PerformGroupIDMigration(new List <SourceTargetRange> {
                step0
            });
            Assert.IsTrue(VerifyGroupIDMigration(step0.TargetFrom));
            editor.PerformColorIDMigration(new List <SourceTargetRange> {
                step2
            });
            Assert.IsTrue(VerifyColorIDMigration(step2.TargetFrom, step1.TargetFrom));
            editor.PerformItemIDMigration(new List <SourceTargetRange> {
                step0
            });
            Assert.IsTrue(VerifyItemIDMigration(step0.TargetFrom));
            editor.PerformBlockIDMigration(new List <SourceTargetRange> {
                step1
            });
            Assert.IsTrue(VerifyBlockIDMigration(step0.SourceFrom, step1.TargetFrom));
            // TODO: Add more test steps with multiple step ID migrations

            bool VerifyGroupIDMigration(int targetFrom)
            {
                for (int i = 0; i < 5; i++)
                {
                    if (normalBlocks[i].GetGroupID(0) != i + targetFrom)
                    {
                        return(false);
                    }
                }
                for (int i = 0; i < 5; i++)
                {
                    if (moveTriggers[i].TargetGroupID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                for (int i = 0; i < 5; i++)
                {
                    if (instantCountTriggers[i].TargetGroupID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                for (int i = 0; i < 5; i++)
                {
                    if (collisionTriggers[i].TargetGroupID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                return(true);
            }

            bool VerifyColorIDMigration(int targetFromA, int targetFromB)
            {
                for (int i = 0; i < 5; i++)
                {
                    if (normalBlocks[i].Color1ID != i + targetFromA)
                    {
                        return(false);
                    }
                    if (normalBlocks[i].Color2ID != i + targetFromB)
                    {
                        return(false);
                    }
                }
                for (int i = 0; i < 5; i++)
                {
                    if (colorTriggers[i].TargetColorID != i + targetFromA)
                    {
                        return(false);
                    }
                    if (colorTriggers[i].CopiedColorID != i + targetFromB)
                    {
                        return(false);
                    }
                }
                return(true);
            }

            bool VerifyItemIDMigration(int targetFrom)
            {
                for (int i = 0; i < 5; i++)
                {
                    if (pickupItems[i].TargetItemID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                for (int i = 0; i < 5; i++)
                {
                    if (pickupTriggers[i].TargetItemID != i + targetFrom)
                    {
                        return(false);
                    }
                }
                return(true);
            }

            bool VerifyBlockIDMigration(int targetFromA, int targetFromB)
            {
                for (int i = 0; i < 5; i++)
                {
                    if (collisionBlocks[i].BlockID != i + targetFromA)
                    {
                        return(false);
                    }
                }
                for (int i = 0; i < 5; i++)
                {
                    if (collisionTriggers[i].PrimaryBlockID != i + targetFromA)
                    {
                        return(false);
                    }
                    if (collisionTriggers[i].SecondaryBlockID != i + targetFromB)
                    {
                        return(false);
                    }
                }
                return(true);
            }
        }
    }
}
Ejemplo n.º 5
0
    void Awake()
    {
        string path   = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/Geometry Dash RetroFunk/Created Levels/" + gameObject.GetComponent <ResourcesManager>().levelName + "/" + gameObject.GetComponent <ResourcesManager>().levelName + ".json";
        level  lvlObj = JsonUtility.FromJson <level>(File.ReadAllText(path));

        rM = GameObject.Find("ResourcesManager").GetComponent <ResourcesManager>();

        if (lvlObj.song.nameMp3 != null && lvlObj.song.nameWav != null)
        {
            GetSong songScript = GameObject.Find("GetSong").GetComponent <GetSong>();
            songScript.nameMp3 = lvlObj.song.nameMp3;
            songScript.nameWav = lvlObj.song.nameWav;
            songScript.StartDownload();
        }

        GameObject complete = GameObject.Find("LevelCompletedTrigger");

        if (lvlObj.levelComplete.position == new Vector3(0, 0, 0))
        {
            complete.transform.position = new Vector3(40, 15, 0);
        }
        else
        {
            complete.transform.position = lvlObj.levelComplete.position;
        }

        foreach (LevelObjects.Object m in lvlObj.objects)
        {
            GameObject p = Instantiate(objects[m.numberOfObject - 1]) as GameObject;
            p.name = "Object" + m.numberOfObject;
            p.transform.position   = m.position;
            p.transform.localScale = m.scale;
            p.transform.rotation   = m.rotation;
            p.GetComponent <ObjectPriorities>().group      = m.group;
            p.GetComponent <SpriteRenderer>().sortingOrder = m.layer;
            p.GetComponent <ObjectPriorities>().isOnCenter = m.IsOnCenter;
            p.GetComponent <SpriteRenderer>().color        = m.color;
        }
        foreach (LevelObjects.CustomObject1 m in lvlObj.customObject1)
        {
            GameObject p = Instantiate(CustomObject1) as GameObject;
            p.name = "CustomObject1";
            p.transform.position   = m.position;
            p.transform.localScale = m.scale;
            p.transform.rotation   = m.rotation;
            p.GetComponent <ObjectPriorities>().group      = m.group;
            p.GetComponent <SpriteRenderer>().sortingOrder = m.layer;
            p.transform.GetChild(0).GetComponent <SpriteRenderer>().sortingOrder = m.layer;
            p.GetComponent <ObjectPriorities>().isOnCenter      = m.IsOnCenter;
            p.GetComponent <SpriteRenderer>().color             = m.color;
            p.GetComponentInChildren <CustomObject>().nameImage = m.image;
            StartCoroutine(p.GetComponentInChildren <CustomObject>().DownloadImage(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/Geometry Dash RetroFunk/Created Levels/" + rM.levelName + "/Sprites/" + m.image));
        }
        foreach (LevelObjects.Spike1 m in lvlObj.spike1)
        {
            GameObject p = Instantiate(Spike1) as GameObject;
            p.name = "Spike1";
            p.transform.position   = m.position;
            p.transform.localScale = m.scale;
            p.transform.rotation   = m.rotation;
            p.GetComponent <ObjectPriorities>().group      = m.group;
            p.GetComponent <SpriteRenderer>().sortingOrder = m.layer;
            p.GetComponent <ObjectPriorities>().isOnCenter = m.IsOnCenter;
            p.GetComponent <SpriteRenderer>().color        = m.color;
        }
        foreach (LevelObjects.Cameras m in lvlObj.cameras)
        {
            GameObject c = GameObject.FindGameObjectWithTag("GameCamera");
            c.transform.position = m.position;
            c.transform.rotation = m.rotation;
            c.GetComponent <ObjectPriorities>().group      = m.group;
            c.GetComponent <ObjectPriorities>().isOnCenter = m.IsOnCenter;
        }
        foreach (LevelObjects.ColorTriggerJSON m in lvlObj.colorTrigger)
        {
            GameObject p = Instantiate(ColorTrigger) as GameObject;
            p.name = "ColorTrigger";
            ColorTrigger script = p.GetComponent <ColorTrigger>();
            p.transform.position = m.position;
            p.GetComponent <ObjectPriorities>().group = m.group;
            script.group   = m.group;
            script.seconds = m.seconds;
            script.r       = m.color.x;
            script.b       = m.color.z;
            script.g       = m.color.y;
            script.a       = m.color.w;
        }
        foreach (LevelObjects.MoveTriggerJSON m in lvlObj.moveTrigger)
        {
            GameObject p = Instantiate(MoveTrigger) as GameObject;
            p.name = "MoveTrigger";
            MoveTrigger script = p.GetComponent <MoveTrigger>();
            p.transform.position = m.position;
            p.GetComponent <ObjectPriorities>().group = m.group;
            script.group   = m.group;
            script.seconds = m.seconds;
            script.x       = m.x;
            script.y       = m.y;
            script.z       = m.z;
        }
        foreach (LevelObjects.RotateTriggerJSON m in lvlObj.rotateTrigger)
        {
            GameObject p = Instantiate(RotateTrigger) as GameObject;
            p.name = "RotateTrigger";
            RotateTrigger script = p.GetComponent <RotateTrigger>();
            p.transform.position = m.position;
            p.GetComponent <ObjectPriorities>().group = m.group;
            script.group          = m.group;
            script.groupObject    = m.groupObject;
            script.seconds        = m.seconds;
            script.x              = m.x;
            script.y              = m.y;
            script.z              = m.z;
            script.rotateInObject = m.rotateInObject;
        }
        foreach (LevelObjects.ScaleTriggerJSON m in lvlObj.scaleTrigger)
        {
            GameObject p = Instantiate(ScaleTrigger) as GameObject;
            p.name = "ScaleTrigger";
            ScaleTrigger script = p.GetComponent <ScaleTrigger>();
            p.transform.position = m.position;
            p.GetComponent <ObjectPriorities>().group = m.group;
            script.group   = m.group;
            script.seconds = m.seconds;
            script.x       = m.x;
            script.y       = m.y;
            script.z       = m.z;
        }
        foreach (LevelObjects.BloomTriggerJSON m in lvlObj.bloomTrigger)
        {
            GameObject p = Instantiate(BloomTrigger) as GameObject;
            p.name = "BloomTrigger";
            BloomTrigger script = p.GetComponent <BloomTrigger>();
            p.transform.position = m.position;
            script.seconds       = m.seconds;
            script.intensityGoal = m.intensity;
            script.thresholdGoal = m.threshold;
        }
        foreach (LevelObjects.TVTriggerJSON m in lvlObj.tvTrigger)
        {
            GameObject p = Instantiate(TVTrigger) as GameObject;
            p.name = "TVTrigger";
            TVTrigger script = p.GetComponent <TVTrigger>();
            p.transform.position  = m.position;
            script.seconds        = m.seconds;
            script.colorDriftGoal = m.colorDrift;
            script.scanLinesGoal  = m.scanLines;
        }
        foreach (LevelObjects.DisableEnableTriggerJSON m in lvlObj.disableEnableTrigger)
        {
            GameObject p = Instantiate(DisableEnableTrigger) as GameObject;
            p.name = "DisableEnableTrigger";
            DisableEnableTrigger script = p.GetComponent <DisableEnableTrigger>();
            p.transform.position = m.position;
            p.GetComponent <ObjectPriorities>().group = m.group;
            script.group           = m.group;
            script.disableOrEnable = m.disableOrEnable;
        }
        foreach (LevelObjects.FollowTriggerJSON m in lvlObj.followTrigger)
        {
            GameObject p = Instantiate(FollowTrigger) as GameObject;
            p.name = "FollowTrigger";
            FollowTrigger script = p.GetComponent <FollowTrigger>();
            p.transform.position = m.position;
            p.GetComponent <ObjectPriorities>().group = m.group;
            script.group         = m.group;
            script.groupToFollow = m.groupToFollow;
            script.follow        = m.follow;
        }
        foreach (LevelObjects.StartColorTriggerJSON m in lvlObj.startColorTrigger)
        {
            GameObject p = Instantiate(StartColorTrigger) as GameObject;
            p.name = "StartColorTrigger";
            StartColor script = p.GetComponent <StartColor>();
            p.transform.position = m.position;
            p.GetComponent <ObjectPriorities>().group = m.group;
            script.group      = m.group;
            script.groupColor = m.groupColor;
        }
        foreach (LevelObjects.KillZone m in lvlObj.killZone)
        {
            GameObject p = Instantiate(KillZone) as GameObject;
            p.name = "KillZone";
            p.transform.position   = m.position;
            p.transform.localScale = m.scale;
            p.transform.rotation   = m.rotation;
            p.GetComponent <ObjectPriorities>().group      = m.group;
            p.GetComponent <ObjectPriorities>().isOnCenter = m.IsOnCenter;
        }
    }
Ejemplo n.º 6
0
    public void saveFunction()
    {
        saveObjects = new Save();

        GetSong songScript = GameObject.Find("GetSong").GetComponent <GetSong>();

        LevelObjects.Song song = new LevelObjects.Song();
        song.nameMp3     = songScript.nameMp3;
        song.nameWav     = songScript.nameWav;
        saveObjects.song = song.getJSON();


        GameObject levelComplete = GameObject.Find("LevelCompletedTrigger");

        LevelObjects.LevelComplete complete = new LevelObjects.LevelComplete();
        complete.position         = levelComplete.transform.position;
        saveObjects.levelComplete = complete.getJSON();

        allObjects  = GameObject.FindGameObjectsWithTag("Objects");
        allCameras  = GameObject.FindGameObjectsWithTag("GameCamera");
        allTriggers = GameObject.FindGameObjectsWithTag("Trigger");

        foreach (GameObject m in allObjects)
        {
            if (m.name.Split(LevelObjects.numberChars, StringSplitOptions.None)[0] == "Object")
            {
                Debug.Log(m.name);
                ReturnPositionAfterPlay properties = m.GetComponent <ReturnPositionAfterPlay>();
                ObjectPriorities        priorities = m.GetComponent <ObjectPriorities>();
                Color color             = m.GetComponent <SpriteRenderer>().color;
                int   layer             = m.transform.GetComponent <SpriteRenderer>().sortingOrder;
                LevelObjects.Object obj = new LevelObjects.Object();
                obj.position       = properties.position;
                obj.scale          = properties.scale;
                obj.rotation       = properties.rotation;
                obj.group          = priorities.group;
                obj.layer          = layer;
                obj.IsOnCenter     = priorities.isOnCenter;
                obj.color          = color;
                obj.numberOfObject = int.Parse(m.name.Split(new string[] { "Object" }, StringSplitOptions.None)[1]);
                if (saveObjects.objects == null)
                {
                    saveObjects.objects += obj.getJSON();
                }
                else
                {
                    saveObjects.objects += "," + obj.getJSON();
                }
            }
            else if (m.name == "CustomObject1")
            {
                ReturnPositionAfterPlay properties = m.GetComponent <ReturnPositionAfterPlay>();
                ObjectPriorities        priorities = m.GetComponent <ObjectPriorities>();
                Color  color = m.GetComponent <SpriteRenderer>().color;
                int    layer = m.transform.GetComponent <SpriteRenderer>().sortingOrder;
                string image = m.GetComponentInChildren <CustomObject>().nameImage;
                LevelObjects.CustomObject1 obj = new LevelObjects.CustomObject1();
                obj.position   = properties.position;
                obj.scale      = properties.scale;
                obj.rotation   = properties.rotation;
                obj.group      = priorities.group;
                obj.layer      = layer;
                obj.IsOnCenter = priorities.isOnCenter;
                obj.color      = color;
                obj.image      = image;
                if (saveObjects.customObject1 == null)
                {
                    saveObjects.customObject1 += obj.getJSON();
                }
                else
                {
                    saveObjects.customObject1 += "," + obj.getJSON();
                }
            }
            else if (m.name == "Spike1")
            {
                ReturnPositionAfterPlay properties = m.GetComponent <ReturnPositionAfterPlay>();
                ObjectPriorities        priorities = m.GetComponent <ObjectPriorities>();
                Color color             = m.GetComponent <SpriteRenderer>().color;
                int   layer             = m.transform.GetComponent <SpriteRenderer>().sortingOrder;
                LevelObjects.Spike1 obj = new LevelObjects.Spike1();
                obj.position   = properties.position;
                obj.scale      = properties.scale;
                obj.rotation   = properties.rotation;
                obj.group      = priorities.group;
                obj.layer      = layer;
                obj.IsOnCenter = priorities.isOnCenter;
                obj.color      = color;
                if (saveObjects.spike1 == null)
                {
                    saveObjects.spike1 += obj.getJSON();
                }
                else
                {
                    saveObjects.spike1 += "," + obj.getJSON();
                }
            }
        }
        foreach (GameObject m in allCameras)
        {
            ReturnPositionAfterPlay properties = m.GetComponent <ReturnPositionAfterPlay>();
            ObjectPriorities        priorities = m.GetComponent <ObjectPriorities>();
            LevelObjects.Cameras    obj        = new LevelObjects.Cameras();
            obj.position   = properties.position;
            obj.rotation   = properties.rotation;
            obj.group      = priorities.group;
            obj.IsOnCenter = priorities.isOnCenter;
            if (saveObjects.cameras == null)
            {
                saveObjects.cameras += obj.getJSON();
            }
            else
            {
                saveObjects.cameras += "," + obj.getJSON();
            }
        }
        foreach (GameObject m in allTriggers)
        {
            Vector3 position = m.GetComponent <ReturnPositionAfterPlay>().position;
            if (m.name == "ColorTrigger")
            {
                ColorTrigger script = m.GetComponent <ColorTrigger>();
                LevelObjects.ColorTriggerJSON obj = new LevelObjects.ColorTriggerJSON();
                obj.position = position;
                obj.group    = script.group;
                obj.seconds  = script.seconds;
                obj.color    = script.colorFinish * 255;
                if (saveObjects.colorTrigger == null)
                {
                    saveObjects.colorTrigger += obj.getJSON();
                }
                else
                {
                    saveObjects.colorTrigger += "," + obj.getJSON();
                }
            }
            else if (m.name == "MoveTrigger")
            {
                MoveTrigger script = m.GetComponent <MoveTrigger>();
                LevelObjects.MoveTriggerJSON obj = new LevelObjects.MoveTriggerJSON();
                obj.position = position;
                obj.group    = script.group;
                obj.seconds  = script.seconds;
                obj.x        = script.x;
                obj.y        = script.y;
                obj.z        = script.z;
                if (saveObjects.moveTrigger == null)
                {
                    saveObjects.moveTrigger += obj.getJSON();
                }
                else
                {
                    saveObjects.moveTrigger += "," + obj.getJSON();
                }
            }
            else if (m.name == "RotateTrigger")
            {
                RotateTrigger script = m.GetComponent <RotateTrigger>();
                LevelObjects.RotateTriggerJSON obj = new LevelObjects.RotateTriggerJSON();
                obj.position       = position;
                obj.group          = script.group;
                obj.groupObject    = script.groupObject;
                obj.seconds        = script.seconds;
                obj.x              = script.x;
                obj.y              = script.y;
                obj.z              = script.z;
                obj.rotateInObject = script.rotateInObject;
                if (saveObjects.rotateTrigger == null)
                {
                    saveObjects.rotateTrigger += obj.getJSON();
                }
                else
                {
                    saveObjects.rotateTrigger += "," + obj.getJSON();
                }
            }
            else if (m.name == "ScaleTrigger")
            {
                ScaleTrigger script = m.GetComponent <ScaleTrigger>();
                LevelObjects.ScaleTriggerJSON obj = new LevelObjects.ScaleTriggerJSON();
                obj.position = position;
                obj.group    = script.group;
                obj.seconds  = script.seconds;
                obj.x        = script.x;
                obj.y        = script.y;
                obj.z        = script.z;
                if (saveObjects.scaleTrigger == null)
                {
                    saveObjects.scaleTrigger += obj.getJSON();
                }
                else
                {
                    saveObjects.scaleTrigger += "," + obj.getJSON();
                }
            }
            else if (m.name == "BloomTrigger")
            {
                BloomTrigger script = m.GetComponent <BloomTrigger>();
                LevelObjects.BloomTriggerJSON obj = new LevelObjects.BloomTriggerJSON();
                obj.position  = position;
                obj.intensity = script.intensityGoal;
                obj.threshold = script.thresholdGoal;
                obj.seconds   = script.seconds;
                if (saveObjects.bloomTrigger == null)
                {
                    saveObjects.bloomTrigger += obj.getJSON();
                }
                else
                {
                    saveObjects.bloomTrigger += "," + obj.getJSON();
                }
            }
            else if (m.name == "TVTrigger")
            {
                TVTrigger script = m.GetComponent <TVTrigger>();
                LevelObjects.TVTriggerJSON obj = new LevelObjects.TVTriggerJSON();
                obj.position   = position;
                obj.scanLines  = script.scanLinesGoal;
                obj.colorDrift = script.colorDriftGoal;
                obj.seconds    = script.seconds;
                if (saveObjects.tvTrigger == null)
                {
                    saveObjects.tvTrigger += obj.getJSON();
                }
                else
                {
                    saveObjects.tvTrigger += "," + obj.getJSON();
                }
            }
            else if (m.name == "DisableEnableTrigger")
            {
                DisableEnableTrigger script = m.GetComponent <DisableEnableTrigger>();
                LevelObjects.DisableEnableTriggerJSON obj = new LevelObjects.DisableEnableTriggerJSON();
                obj.position        = position;
                obj.group           = script.group;
                obj.disableOrEnable = script.disableOrEnable;
                if (saveObjects.disableEnableTrigger == null)
                {
                    saveObjects.disableEnableTrigger += obj.getJSON();
                }
                else
                {
                    saveObjects.disableEnableTrigger += "," + obj.getJSON();
                }
            }
            else if (m.name == "FollowTrigger")
            {
                FollowTrigger script = m.GetComponent <FollowTrigger>();
                LevelObjects.FollowTriggerJSON obj = new LevelObjects.FollowTriggerJSON();
                obj.position      = position;
                obj.group         = script.group;
                obj.groupToFollow = script.groupToFollow;
                obj.follow        = script.follow;
                if (saveObjects.followTrigger == null)
                {
                    saveObjects.followTrigger += obj.getJSON();
                }
                else
                {
                    saveObjects.followTrigger += "," + obj.getJSON();
                }
            }
            else if (m.name == "StartColorTrigger")
            {
                StartColor script = m.GetComponent <StartColor>();
                LevelObjects.StartColorTriggerJSON obj = new LevelObjects.StartColorTriggerJSON();
                obj.position   = position;
                obj.group      = script.group;
                obj.groupColor = script.groupColor;
                if (saveObjects.startColorTrigger == null)
                {
                    saveObjects.startColorTrigger += obj.getJSON();
                }
                else
                {
                    saveObjects.startColorTrigger += "," + obj.getJSON();
                }
            }
            else if (m.name == "KillZone")
            {
                ReturnPositionAfterPlay properties = m.GetComponent <ReturnPositionAfterPlay>();
                ObjectPriorities        priorities = m.GetComponent <ObjectPriorities>();
                LevelObjects.KillZone   obj        = new LevelObjects.KillZone();
                obj.position   = properties.position;
                obj.scale      = properties.scale;
                obj.rotation   = properties.rotation;
                obj.group      = priorities.group;
                obj.IsOnCenter = priorities.isOnCenter;
                if (saveObjects.killZone == null)
                {
                    saveObjects.killZone += obj.getJSON();
                }
                else
                {
                    saveObjects.killZone += "," + obj.getJSON();
                }
            }
        }
        ResourcesManager path = gameObject.GetComponent <ResourcesManager>();
        string           json = "{" +
                                saveObjects.getAllObjects()
                                + "}";
        string jsonPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/Geometry Dash RetroFunk/Created Levels/" + path.levelName + "/" + path.levelName + ".json";

        File.WriteAllText(jsonPath, json);
    }