Esempio n. 1
0
        //Activate a piece with the given length (Will always be extended with a begin and end component
        public void Activate(int length, bool low)
        {
            PlatformCombination platformCombination = new PlatformCombination();

            foreach (CombinationObject combination in combiningObjects)
            {
                if (!combination.Taken)
                {
                    platformCombination.combinedGameObject = combination;
                    combination.Taken = true;
                    break;
                }
            }

            //Check if a platform can be made at this time.
            if (platformCombination.combinedGameObject == null)
                return;

            foreach (Platform platform in beginComponents)
            {
                if (!platform.Taken)
                {
                    platformCombination.begin = platform;
                    platform.Taken = true;
                    break;
                }
            }

            for (int i = 0; i < length; i++)
            {
                foreach (Platform platform in middleComponents)
                {
                    if (!platform.Taken)
                    {
                        platformCombination.middle.Add(platform);
                        platform.Taken = true;
                        break;
                    }
                }
            }

            foreach (Platform platform in endComponents)
            {
                if (!platform.Taken)
                {
                    platformCombination.end = platform;
                    platform.Taken = true;
                    break;
                }
            }

            platformCombination.combinedGameObject.rigid.transform.localPosition = new Vector3(16, low ? 2.0f : 3.5f, 0.5f);

            platformCombination.begin.transform.SetParent(platformCombination.combinedGameObject.rigid.transform);
            platformCombination.end.transform.SetParent(platformCombination.combinedGameObject.rigid.transform);
            foreach (Platform platform in platformCombination.middle)
            {
                platform.transform.SetParent(platformCombination.combinedGameObject.rigid.transform);
            }

            float pieceSize = 0.64f;
            float xOffset = 0;

            platformCombination.end.transform.localPosition = new Vector3(0, 0, 0);

            foreach (Platform item in platformCombination.middle)
            {
                xOffset += pieceSize;
                item.transform.localPosition = new Vector3(0 - xOffset, 0, 0);
            }

            platformCombination.begin.transform.localPosition = new Vector3(0 - xOffset - pieceSize, 0, 0);

            spawnedPlatforms.Add(platformCombination);
        }
Esempio n. 2
0
 //Cleans up a combination
 private void DisablePlatformCombination(PlatformCombination platformCombination)
 {
     foreach (Platform platform in platformCombination.middle)
     {
         platform.transform.SetParent(null);
         platform.Disable();
         platform.Taken = false;
     }
     platformCombination.begin.transform.SetParent(null);
     platformCombination.begin.Disable();
     platformCombination.begin.Taken = false;
     platformCombination.end.transform.SetParent(null);
     platformCombination.end.Disable();
     platformCombination.end.Taken = false;
     platformCombination.combinedGameObject.Disable();
     platformCombination.combinedGameObject.Taken = false;
 }