public void HandleDragEnd(MapInteractionManager.DraggingEventArgs e)
        {
            for (int i = 0; i < zones.Count; i++)
            {
                for (int y = 0; y < zones[i].TilesInZone.Count; y++)
                {
                    if (zones[i].TilesInZone[y] == e.StartTile)
                    {
                        zones[i].TilesInZone.AddRange(e.TileSelectionData.Tiles);
                        zones[i].verts.AddRange(e.TileSelectionData.Vertices);

                        Rect rect = new Rect((int)e.StartTile.TilePosition.x, (int)e.StartTile.TilePosition.y,
                                             (int)(e.StartTile.TilePosition.x - MapInteractionManager.Instance.GetCurrentTile().TilePosition.x),
                                             (int)(e.StartTile.TilePosition.y -
                                                   MapInteractionManager.Instance.GetCurrentTile().TilePosition.y));

                        DecalProjectorComponent tempProjector = new DecalProjectorComponent();

                        zoneObject.GetComponent <DecalProjectorComponent>().m_Size = new Vector3(rect.width, 200, rect.height);
                        Instantiate(zoneObject, new Vector3(rect.x, 200, rect.y), Quaternion.identity);


                        Debug.Log($"Extended existing zone {zones[i].AssetId}");
                        return;
                    }
                }
            }

            Debug.Log(e.EndTile);
            Rect rect1 = new Rect(
                (int)e.EndTile.TilePosition.y,
                (int)e.EndTile.TilePosition.y,
                (int)(Math.Abs(e.StartTile.TilePosition.x - e.EndTile.TilePosition.x)),
                (int)(Math.Abs(e.StartTile.TilePosition.y - e.EndTile.TilePosition.y)));

            zoneObject.GetComponent <DecalProjectorComponent>().m_Size = new Vector3(rect1.width, 200, rect1.height);
            Instantiate(zoneObject, new Vector3(rect1.x, 50, rect1.y), Quaternion.identity);

            var tempZone = new TestZone(e.TileSelectionData.Tiles);

            tempZone.verts = e.TileSelectionData.Vertices;
            isDraggingZone = false;

            CalculateMesh();
        }
Esempio n. 2
0
        private void HandleDragSelectEndEvent(MapInteractionManager.DraggingEventArgs e)
        {
            var actionParams = GetLandscapingActionParameters();

            if (e.AlternateFunctionEnabled)
            {
                actionParams.NewTerrainType = (int)e.StartTile.BottomLeftVertexTerrain;
            }
            if (!TerrainModificationEnabled)
            {
                new PaintTerrain(actionParams).ExecuteAction();
            }
            else
            {
                new LevelTerrain(actionParams,
                                 e.StartTile.GetHeight()).ExecuteAction();
            }

            _isDragSelecting = false;
            Debug.Log("Stopped dragging");
        }