コード例 #1
0
 // Use this for initialization
 void Start()
 {
     TopologicalOrder = new List <HashSet <Node> >();
     TrapNodeDict     = new Dictionary <Trapezoid, TrapezoidNode>();
     NodeLines        = new List <GameObject>();
     generator        = GameObject.Find("EdgeGenerator").GetComponent <EdgeGenerator>();
 }
コード例 #2
0
        public void GivenServiceOneDependsOnNonExistingService_NewServiceModelIsAdded()
        {
            var serviceOne = new ServiceModel
            {
                Name         = "one",
                Dependencies = new[]
                {
                    new DependencyStatus {
                        IsHealthy = true, Name = "some other service"
                    }
                }
            };
            var serviceTwo = new ServiceModel {
                Name = "two", Id = 2
            };

            var services = new[]
            {
                serviceOne,
                serviceTwo
            };

            var result = EdgeGenerator.For(services);

            result
            .CreatedServices
            .Should()
            .Contain(edge => edge.Name == "some other service");
        }
コード例 #3
0
        public void GivenServiceOneDependsOnNonExistingService_OneEdgeIsGenerated()
        {
            var serviceOne = new ServiceModel
            {
                Name         = "one",
                Dependencies = new[]
                {
                    new DependencyStatus {
                        IsHealthy = true, Name = "some other service"
                    }
                }
            };
            var serviceTwo = new ServiceModel {
                Name = "two", Id = 2
            };

            var services = new[]
            {
                serviceOne,
                serviceTwo
            };

            var result = EdgeGenerator.For(services);

            result
            .Edges
            .Should()
            .HaveCount(1)
            .And
            .Contain(edge => edge.From == serviceOne.Id && edge.To == 3);
        }
コード例 #4
0
        public IActionResult Index(string environmentName)
        {
            if (environmentName == null)
            {
                environmentName = _defaultEnvironmentName;
            }

            var applicationStatuses = _store.GetFor(environmentName);

            var serviceModels = ServiceModel.FromStatuses(applicationStatuses);

            var result = EdgeGenerator.For(serviceModels);

            var services = serviceModels.Concat(result.CreatedServices).ToArray();

            var model = new EnvironmentStatusModel
            {
                Environment           = environmentName,
                Services              = services,
                Edges                 = result.Edges.ToArray(),
                AvailableEnvironments = _store.GetAvailableEnvironments()
            };

            return(View(model));
        }
コード例 #5
0
    // Função chamada quando este elemento colidir com outro
    private void OnCollisionEnter2D(Collision2D collision)
    {
        Vector2       normal        = collision.contacts[0].normal;
        EdgeGenerator edgeGenerator = collision.transform.GetComponent <EdgeGenerator>();

        if (edgeGenerator != null && normal == Vector2.up)
        {
            MyGameManager.instancia.GameOver();
        }
        direction = Vector2.Reflect(direction, normal);
        direction.Normalize();
    }
コード例 #6
0
ファイル: Ball.cs プロジェクト: eltonnuness/unity-woodbreaker
    void OnCollisionEnter2D(Collision2D collision)
    {
        bool          invalidCollision = false;
        Vector2       normal           = collision.contacts[0].normal;
        Platform      platform         = collision.transform.GetComponent <Platform>();
        EdgeGenerator edgeGen          = collision.transform.GetComponent <EdgeGenerator>();

        if (platform != null)
        {
            if (normal != Vector2.up)
            {
                invalidCollision = true;
            }
            else
            {
                GameObject     particles         = (GameObject)Instantiate(leafParticle, new Vector3(transform.position.x, transform.position.y - 1.1f, transform.position.z), Quaternion.identity);
                ParticleSystem particleComponent = particles.GetComponent <ParticleSystem>();
                Destroy(particles, particleComponent.main.duration + particleComponent.main.startLifetimeMultiplier);
            }
        }
        else if (edgeGen != null)
        {
            if (normal == Vector2.up)
            {
                invalidCollision = true;
            }
        }
        else //block collision
        {
            invalidCollision = false;
            Bounds         colliderBounds    = collision.transform.GetComponent <SpriteRenderer>().bounds;
            Vector3        newPosition       = new Vector3(collision.transform.position.x + colliderBounds.extents.x, collision.transform.position.y - colliderBounds.extents.y, collision.transform.position.z);
            GameObject     particles         = (GameObject)Instantiate(blockParticle, newPosition, Quaternion.identity);
            ParticleSystem particleComponent = particles.GetComponent <ParticleSystem>();
            Destroy(particles, particleComponent.main.duration + particleComponent.main.startLifetimeMultiplier);
            Destroy(collision.gameObject);
            GameController.totalDestroyedBlocks++;
        }
        if (!invalidCollision)
        {
            Debug.Log($"apple object normal: {normal}");
            direction = Vector2.Reflect(direction, normal);
            Debug.Log($"apple object normal after reflection: {direction}");
            direction.Normalize();
            Debug.Log($"apple object normal after reflection with normalize: {direction}");
        }
        else
        {
            GameController.instance.GameOver();
        }
    }
コード例 #7
0
        public void GivenTwoServicesWithoutDependencies_NoEdgesAreGenerated()
        {
            var services = new[]
            {
                new ServiceModel {
                    Name = "one"
                },
                new ServiceModel {
                    Name = "two"
                }
            };

            var result = EdgeGenerator.For(services);

            result
            .Edges
            .Should()
            .BeEmpty();
        }
コード例 #8
0
        public void GivenServiceOneAndTwoDependOnNonExistingService_TwoEdgesAreCreatedToNewService()
        {
            var serviceOne = new ServiceModel
            {
                Name         = "one",
                Dependencies = new[]
                {
                    new DependencyStatus {
                        IsHealthy = true, Name = "some other service"
                    }
                },
                Id = 1
            };
            var serviceTwo = new ServiceModel
            {
                Name         = "two",
                Dependencies = new[]
                {
                    new DependencyStatus {
                        IsHealthy = true, Name = "some other service"
                    }
                },
                Id = 2
            };

            var services = new[]
            {
                serviceOne,
                serviceTwo
            };

            var result = EdgeGenerator.For(services);

            result
            .Edges
            .Should()
            .ContainSingle(edge => edge.From == 1 && edge.To == 3)
            .And
            .ContainSingle(edge => edge.From == 2 && edge.To == 3);
        }