Exemplo n.º 1
0
        public void UpdateVegetationMask()
        {
            if (!enabled || !gameObject.activeSelf)
            {
                return;
            }

            BeaconMaskArea maskArea = new BeaconMaskArea
            {
                Radius   = Radius,
                Position = transform.position
            };

            maskArea.SetFalloutCurve(FalloffCurve.GenerateCurveArray(4096));
            maskArea.Init();
            AddVegetationTypes(maskArea);

            if (_currentMaskArea != null)
            {
                VegetationStudioManager.RemoveVegetationMask(_currentMaskArea);
                _currentMaskArea = null;
            }

            _currentMaskArea = maskArea;
            VegetationStudioManager.AddVegetationMask(maskArea);
        }
Exemplo n.º 2
0
 // ReSharper disable once UnusedMember.Local
 void OnDisable()
 {
     if (_currentMaskArea != null)
     {
         VegetationStudioManager.RemoveVegetationMask(_currentMaskArea);
         _currentMaskArea.Dispose();
         _currentMaskArea = null;
     }
 }
Exemplo n.º 3
0
        // ReSharper disable once UnusedMember.Local
        void OnDisable()
        {
            if (_lineMaskList.Count > 0)
            {
                for (int i = 0; i <= _lineMaskList.Count - 1; i++)
                {
                    VegetationStudioManager.RemoveVegetationMask(_lineMaskList[i]);
                    _lineMaskList[i].Dispose();
                }

                _lineMaskList.Clear();
            }
        }
Exemplo n.º 4
0
        private void UpdateVegetationItemMask()
        {
            CircleMaskArea maskArea = new CircleMaskArea
            {
                Radius           = 0.2f,
                Position         = Position,
                VegetationItemID = _vegetationItemID
            };

            maskArea.Init();
            maskArea.VegetationType = VegetationType;
            SetRemoveVegetationTypes(maskArea);

            if (_currentMaskArea != null)
            {
                VegetationStudioManager.RemoveVegetationMask(_currentMaskArea);
                _currentMaskArea = null;
            }

            _currentMaskArea = maskArea;
            VegetationStudioManager.AddVegetationMask(maskArea);
        }
Exemplo n.º 5
0
        public override void UpdateVegetationMask()
        {
            if (!enabled || !gameObject.activeSelf)
            {
                return;
            }

            List <Vector3>  worldSpaceNodeList = GetWorldSpaceNodePositions();
            PolygonMaskArea maskArea           = new PolygonMaskArea
            {
                RemoveGrass                = RemoveGrass,
                RemovePlants               = RemovePlants,
                RemoveTrees                = RemoveTrees,
                RemoveObjects              = RemoveObjects,
                RemoveLargeObjects         = RemoveLargeObjects,
                AdditionalGrassWidth       = AdditionalGrassPerimiter,
                AdditionalPlantWidth       = AdditionalPlantPerimiter,
                AdditionalTreeWidth        = AdditionalTreePerimiter,
                AdditionalObjectWidth      = AdditionalObjectPerimiter,
                AdditionalLargeObjectWidth = AdditionalLargeObjectPerimiter,

                AdditionalGrassWidthMax       = AdditionalGrassPerimiterMax,
                AdditionalPlantWidthMax       = AdditionalPlantPerimiterMax,
                AdditionalTreeWidthMax        = AdditionalTreePerimiterMax,
                AdditionalObjectWidthMax      = AdditionalObjectPerimiterMax,
                AdditionalLargeObjectWidthMax = AdditionalLargeObjectPerimiterMax,

                NoiseScaleGrass       = NoiseScaleGrass,
                NoiseScalePlant       = NoiseScalePlant,
                NoiseScaleTree        = NoiseScaleTree,
                NoiseScaleObject      = NoiseScaleObject,
                NoiseScaleLargeObject = NoiseScaleLargeObject
            };

            if (maskArea.AdditionalGrassWidthMax < maskArea.AdditionalGrassWidth)
            {
                maskArea.AdditionalGrassWidthMax = maskArea.AdditionalGrassWidth;
            }

            if (maskArea.AdditionalPlantWidthMax < maskArea.AdditionalPlantWidth)
            {
                maskArea.AdditionalPlantWidthMax = maskArea.AdditionalPlantWidth;
            }

            if (maskArea.AdditionalTreeWidthMax < maskArea.AdditionalTreeWidth)
            {
                maskArea.AdditionalTreeWidthMax = maskArea.AdditionalTreeWidth;
            }

            if (maskArea.AdditionalObjectWidthMax < maskArea.AdditionalObjectWidth)
            {
                maskArea.AdditionalObjectWidthMax = maskArea.AdditionalObjectWidth;
            }

            if (maskArea.AdditionalLargeObjectWidthMax < maskArea.AdditionalLargeObjectWidth)
            {
                maskArea.AdditionalLargeObjectWidthMax = maskArea.AdditionalLargeObjectWidth;
            }


            if (IncludeVegetationType)
            {
                AddVegetationTypes(maskArea);
            }

            maskArea.AddPolygon(worldSpaceNodeList);

            if (_currentMaskArea != null)
            {
                VegetationStudioManager.RemoveVegetationMask(_currentMaskArea);
                _currentMaskArea = null;
            }

            _currentMaskArea = maskArea;
            VegetationStudioManager.AddVegetationMask(maskArea);
        }
Exemplo n.º 6
0
        public override void UpdateVegetationMask()
        {
            //float StartTime = Time.realtimeSinceStartup;

            if (!enabled || !gameObject.activeSelf)
            {
                return;
            }

            List <Vector3> worldSpaceNodeList = GetWorldSpaceNodePositions();

            if (_lineMaskList.Count > 0)
            {
                for (int i = 0; i <= _lineMaskList.Count - 1; i++)
                {
                    VegetationStudioManager.RemoveVegetationMask(_lineMaskList[i]);
                }

                _lineMaskList.Clear();
            }

            if (worldSpaceNodeList.Count > 1)
            {
                for (int i = 0; i <= worldSpaceNodeList.Count - 2; i++)
                {
                    if (!Nodes[i].Active)
                    {
                        continue;
                    }
                    float width = LineWidth;
                    if (Nodes[i].OverrideWidth)
                    {
                        width = Nodes[i].CustomWidth;
                    }

                    LineMaskArea maskArea = new LineMaskArea
                    {
                        RemoveGrass                = RemoveGrass,
                        RemovePlants               = RemovePlants,
                        RemoveTrees                = RemoveTrees,
                        RemoveObjects              = RemoveObjects,
                        RemoveLargeObjects         = RemoveLargeObjects,
                        AdditionalGrassWidth       = AdditionalGrassPerimiter,
                        AdditionalPlantWidth       = AdditionalPlantPerimiter,
                        AdditionalTreeWidth        = AdditionalTreePerimiter,
                        AdditionalObjectWidth      = AdditionalObjectPerimiter,
                        AdditionalLargeObjectWidth = AdditionalLargeObjectPerimiter,

                        AdditionalGrassWidthMax       = AdditionalGrassPerimiterMax,
                        AdditionalPlantWidthMax       = AdditionalPlantPerimiterMax,
                        AdditionalTreeWidthMax        = AdditionalTreePerimiterMax,
                        AdditionalObjectWidthMax      = AdditionalObjectPerimiterMax,
                        AdditionalLargeObjectWidthMax = AdditionalLargeObjectPerimiterMax,

                        NoiseScaleGrass       = NoiseScaleGrass,
                        NoiseScalePlant       = NoiseScalePlant,
                        NoiseScaleTree        = NoiseScaleTree,
                        NoiseScaleObject      = NoiseScaleObject,
                        NoiseScaleLargeObject = NoiseScaleLargeObject
                    };

                    if (maskArea.AdditionalGrassWidthMax < maskArea.AdditionalGrassWidth)
                    {
                        maskArea.AdditionalGrassWidthMax = maskArea.AdditionalGrassWidth;
                    }

                    if (maskArea.AdditionalPlantWidthMax < maskArea.AdditionalPlantWidth)
                    {
                        maskArea.AdditionalPlantWidthMax = maskArea.AdditionalPlantWidth;
                    }

                    if (maskArea.AdditionalTreeWidthMax < maskArea.AdditionalTreeWidth)
                    {
                        maskArea.AdditionalTreeWidthMax = maskArea.AdditionalTreeWidth;
                    }

                    if (maskArea.AdditionalObjectWidthMax < maskArea.AdditionalObjectWidth)
                    {
                        maskArea.AdditionalObjectWidthMax = maskArea.AdditionalObjectWidth;
                    }

                    if (maskArea.AdditionalLargeObjectWidthMax < maskArea.AdditionalLargeObjectWidth)
                    {
                        maskArea.AdditionalLargeObjectWidthMax = maskArea.AdditionalLargeObjectWidth;
                    }

                    if (IncludeVegetationType)
                    {
                        AddVegetationTypes(maskArea);
                    }

                    maskArea.SetLineData(worldSpaceNodeList[i], worldSpaceNodeList[i + 1], width);
                    _lineMaskList.Add(maskArea);
                    VegetationStudioManager.AddVegetationMask(maskArea);
                }
            }
            //Debug.Log(Time.realtimeSinceStartup - StartTime);
        }