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(); }
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"); }