public void InstantiateSeparateDashBoardCardHolder(PlayerController playerController) { cardType = CardType.dashboard; GameObject tempDashboardObject = Instantiate(GameManager.Ins.dashBoardCardHolder, transform.position, Quaternion.identity) as GameObject; tempDashboardObject.name = tempDashboardObject.name + playerController.dashBoardCardHolder.Count; GameObject tempPositionObject = Instantiate(GameManager.Ins.cardsPositionPointsObject, transform.position, Quaternion.identity) as GameObject; tempDashboardObject.GetComponent <DashBoardCardHolder>().cardsPositionPoints.Add(tempPositionObject.GetComponent <CardsPositionPoints>()); tempPositionObject.transform.parent = tempDashboardObject.transform; transform.parent = tempPositionObject.transform; DashboardPositionData dashboardPositionData = dashBoardCardHolder.GetPosition(gameObject); //dashboardPositionData.index =0; //print ("dashBoardCardHolder "+dashBoardCardHolder.name); dashBoardCardHolder.DestroyCardsPositionPoints(cardsPositionPoints); if (dashBoardCardHolder.cardsPositionPoints.Count <= 0) { playerController.DestroyDashboard(dashBoardCardHolder); } dashBoardCardHolder = tempDashboardObject.GetComponent <DashBoardCardHolder> (); playerController.dashBoardCardHolder.Add(dashBoardCardHolder); tempPositionObject.GetComponent <CardsPositionPoints> ().cards = this; tempDashboardObject.GetComponent <DashBoardCardHolder>().id = tempDashboardObject.GetComponent <DashBoardCardHolder>().id + 1; tempPositionObject.GetComponent <CardsPositionPoints> ().id = tempDashboardObject.GetComponent <DashBoardCardHolder>().id; cardsPositionPoints = tempPositionObject.GetComponent <CardsPositionPoints>() as CardsPositionPoints; }
public void InstantiateOnDashBoardCardHolder(Cards tempCard) { DashboardPositionData dashboardPositionData = tempCard.dashBoardCardHolder.GetPosition(gameObject); if (!dashboardPositionData.sameObject) { GameObject tempPositionObject = Instantiate(GameManager.Ins.cardsPositionPointsObject, dashboardPositionData.position, Quaternion.identity) as GameObject; transform.position = tempPositionObject.transform.position; transform.parent = tempPositionObject.transform; tempPositionObject.transform.parent = tempCard.dashBoardCardHolder.transform; tempCard.dashBoardCardHolder.cardsPositionPoints.Add(tempPositionObject.GetComponent <CardsPositionPoints>()); if (dashboardPositionData.index < tempCard.dashBoardCardHolder.cardsPositionPoints.Count && !dashboardPositionData.isLast) { CardsPositionPoints temppositionpoint = tempCard.dashBoardCardHolder.cardsPositionPoints [dashboardPositionData.index]; tempCard.dashBoardCardHolder.cardsPositionPoints [dashboardPositionData.index] = tempCard.dashBoardCardHolder.cardsPositionPoints [tempCard.dashBoardCardHolder.cardsPositionPoints.Count - 1]; for (int i = (dashboardPositionData.index + 1); i < tempCard.dashBoardCardHolder.cardsPositionPoints.Count; i++) { CardsPositionPoints temppositionpoint2 = tempCard.dashBoardCardHolder.cardsPositionPoints [i]; tempCard.dashBoardCardHolder.cardsPositionPoints [i] = temppositionpoint; temppositionpoint = temppositionpoint2; } } else if (dashboardPositionData.isLast) { print("added to last postiion"); transform.position = dashboardPositionData.position; } if (cardType == CardType.dashboard) { dashBoardCardHolder.DestroyCardsPositionPoints(cardsPositionPoints); } else { packInitiator.DestroyCardPosition(cardsPositionPoints); } cardType = CardType.dashboard; cardsPositionPoints = tempPositionObject.GetComponent <CardsPositionPoints>() as CardsPositionPoints; this.dashBoardCardHolder = tempCard.dashBoardCardHolder; dashBoardCardHolder.id = dashBoardCardHolder.id + 1; tempPositionObject.GetComponent <CardsPositionPoints> ().id = dashBoardCardHolder.id; tempPositionObject.GetComponent <CardsPositionPoints> ().cards = this; } else { //transform.position = dashboardPositionData.position; transform.position = cardsPositionPoints.transform.position; } }
public DashboardPositionData GetPosition(GameObject cardObj) { DashboardPositionData dashboardPositionData = new DashboardPositionData(); Vector3 cardPosition = cardObj.transform.position; int n = -1; int foundAtIndex = -1; bool flag = false; for (int i = 0; i < cardsPositionPoints.Count; i++) { if(cardPosition.x == cardsPositionPoints[i].transform.position.x){ n = i; print (" equal at "+i); } if(cardObj == cardsPositionPoints[i].cards.gameObject){ //print ("card already exist, fount at index "+i); foundAtIndex = i; } } if (n >= 0) { if(cardObj != cardsPositionPoints[n].cards.gameObject){ //print("current card "+cardObj.name+" is equal in position to card "+cardsPositionPoints [n].cards.name+" at index "+n); dashboardPositionData.index = n; dashboardPositionData.position = cardsPositionPoints [n].transform.position; for (int i = n; i < cardsPositionPoints.Count; i++) { cardsPositionPoints [i].transform.position += cardIncrement; } }else{ //print ("card is equal in position with itself"); dashboardPositionData.sameObject = true; } }else{ if(cardsPositionPoints.Count <= 1){ //print ("only one card"); if(cardPosition.x > cardsPositionPoints[0].transform.position.x){ //print ("card is at end point, card name is "+cardObj.name+" first card is "+cardsPositionPoints[0].cards.gameObject.name); dashboardPositionData.index = 0; dashboardPositionData.position = cardsPositionPoints [0].transform.position+cardIncrement; dashboardPositionData.isLast = true; }else { //print ("card is at first point, card name is "+cardObj.name+" first card is "+cardsPositionPoints[0].cards.gameObject.name); dashboardPositionData.index = 0; dashboardPositionData.position = cardsPositionPoints [0].transform.position; cardsPositionPoints [0].transform.position += cardIncrement; } }else{ for (int i = 0; i < cardsPositionPoints.Count; i++) { if(cardPosition.x < cardsPositionPoints[i].transform.position.x && !flag){ if(cardObj != cardsPositionPoints[i].cards.gameObject){ //print ("card "+cardObj.name+" position is less than "+cardsPositionPoints[i].cards.gameObject.name); if(foundAtIndex >= 0 && foundAtIndex < i){ if(cardObj != cardsPositionPoints[i-1].cards.gameObject){ dashboardPositionData.index = i; dashboardPositionData.position = cardsPositionPoints [i-1].transform.position; //print ("card "+cardObj.name+" found at index "+foundAtIndex+" is less than i "+i+" where card at i is "+cardsPositionPoints[i].cards.gameObject.name); for(int j = foundAtIndex+1; j < i; j++) cardsPositionPoints[j].transform.position-=cardIncrement; } else{ //print ("card is greater than in position with itself"); dashboardPositionData.sameObject = true; } } else if(foundAtIndex >= 0 && foundAtIndex > i){ int ivalue = 0; if((i-1) < 0) ivalue = 0; else ivalue = i-1; dashboardPositionData.index = ivalue; dashboardPositionData.position = cardsPositionPoints [ivalue].transform.position; //print ("card "+cardObj.name+" found at index "+foundAtIndex+" is greater than i "+i+" where card at i is "+cardsPositionPoints[i].cards.gameObject.name); for(int j = ivalue; j < foundAtIndex; j++) cardsPositionPoints[j].transform.position+=cardIncrement; } else{ int ivalue = 0; if((i-1) < 0) ivalue = 0; else ivalue = i-1; dashboardPositionData.index = ivalue; dashboardPositionData.position = cardsPositionPoints [ivalue].transform.position; //print ("card "+cardObj.name+" found at index "+foundAtIndex+" is greater than i "+i+" where card at i is "+cardsPositionPoints[i].cards.gameObject.name); for(int j = ivalue; j < cardsPositionPoints.Count; j++) cardsPositionPoints[j].transform.position+=cardIncrement; } flag = true; }else{ //print ("card is less than in position with itself"); dashboardPositionData.sameObject = true; } } else if(i == (cardsPositionPoints.Count-1) && !flag){ if(cardObj != cardsPositionPoints[i].cards.gameObject){ //print ("card "+cardObj.name+" position is last to card "+cardsPositionPoints[i].cards.gameObject.name); dashboardPositionData.index = i; dashboardPositionData.position = cardsPositionPoints [i].transform.position+cardIncrement; dashboardPositionData.isLast = true; flag = true; }else{ //print ("card is last in position with itself"); dashboardPositionData.sameObject = true; } } } } } return dashboardPositionData; }
public DashboardPositionData GetPosition(GameObject cardObj) { DashboardPositionData dashboardPositionData = new DashboardPositionData(); Vector3 cardPosition = cardObj.transform.position; int n = -1; int foundAtIndex = -1; bool flag = false; for (int i = 0; i < cardsPositionPoints.Count; i++) { if (cardPosition.x == cardsPositionPoints[i].transform.position.x) { n = i; print(" equal at " + i); } if (cardObj == cardsPositionPoints[i].cards.gameObject) { //print ("card already exist, fount at index "+i); foundAtIndex = i; } } if (n >= 0) { if (cardObj != cardsPositionPoints[n].cards.gameObject) { //print("current card "+cardObj.name+" is equal in position to card "+cardsPositionPoints [n].cards.name+" at index "+n); dashboardPositionData.index = n; dashboardPositionData.position = cardsPositionPoints [n].transform.position; for (int i = n; i < cardsPositionPoints.Count; i++) { cardsPositionPoints [i].transform.position += cardIncrement; } } else { //print ("card is equal in position with itself"); dashboardPositionData.sameObject = true; } } else { if (cardsPositionPoints.Count <= 1) { //print ("only one card"); if (cardPosition.x > cardsPositionPoints[0].transform.position.x) { //print ("card is at end point, card name is "+cardObj.name+" first card is "+cardsPositionPoints[0].cards.gameObject.name); dashboardPositionData.index = 0; dashboardPositionData.position = cardsPositionPoints [0].transform.position + cardIncrement; dashboardPositionData.isLast = true; } else { //print ("card is at first point, card name is "+cardObj.name+" first card is "+cardsPositionPoints[0].cards.gameObject.name); dashboardPositionData.index = 0; dashboardPositionData.position = cardsPositionPoints [0].transform.position; cardsPositionPoints [0].transform.position += cardIncrement; } } else { for (int i = 0; i < cardsPositionPoints.Count; i++) { if (cardPosition.x < cardsPositionPoints[i].transform.position.x && !flag) { if (cardObj != cardsPositionPoints[i].cards.gameObject) { //print ("card "+cardObj.name+" position is less than "+cardsPositionPoints[i].cards.gameObject.name); if (foundAtIndex >= 0 && foundAtIndex < i) { if (cardObj != cardsPositionPoints[i - 1].cards.gameObject) { dashboardPositionData.index = i; dashboardPositionData.position = cardsPositionPoints [i - 1].transform.position; //print ("card "+cardObj.name+" found at index "+foundAtIndex+" is less than i "+i+" where card at i is "+cardsPositionPoints[i].cards.gameObject.name); for (int j = foundAtIndex + 1; j < i; j++) { cardsPositionPoints[j].transform.position -= cardIncrement; } } else { //print ("card is greater than in position with itself"); dashboardPositionData.sameObject = true; } } else if (foundAtIndex >= 0 && foundAtIndex > i) { int ivalue = 0; if ((i - 1) < 0) { ivalue = 0; } else { ivalue = i - 1; } dashboardPositionData.index = ivalue; dashboardPositionData.position = cardsPositionPoints [ivalue].transform.position; //print ("card "+cardObj.name+" found at index "+foundAtIndex+" is greater than i "+i+" where card at i is "+cardsPositionPoints[i].cards.gameObject.name); for (int j = ivalue; j < foundAtIndex; j++) { cardsPositionPoints[j].transform.position += cardIncrement; } } else { int ivalue = 0; if ((i - 1) < 0) { ivalue = 0; } else { ivalue = i - 1; } dashboardPositionData.index = ivalue; dashboardPositionData.position = cardsPositionPoints [ivalue].transform.position; //print ("card "+cardObj.name+" found at index "+foundAtIndex+" is greater than i "+i+" where card at i is "+cardsPositionPoints[i].cards.gameObject.name); for (int j = ivalue; j < cardsPositionPoints.Count; j++) { cardsPositionPoints[j].transform.position += cardIncrement; } } flag = true; } else { //print ("card is less than in position with itself"); dashboardPositionData.sameObject = true; } } else if (i == (cardsPositionPoints.Count - 1) && !flag) { if (cardObj != cardsPositionPoints[i].cards.gameObject) { //print ("card "+cardObj.name+" position is last to card "+cardsPositionPoints[i].cards.gameObject.name); dashboardPositionData.index = i; dashboardPositionData.position = cardsPositionPoints [i].transform.position + cardIncrement; dashboardPositionData.isLast = true; flag = true; } else { //print ("card is last in position with itself"); dashboardPositionData.sameObject = true; } } } } } return(dashboardPositionData); }