private void CreateModelForPiece(int id) { Piece piece = board.Pieces[id]; PiecePrototype behavior = db.PiecePrototypes[piece.PrototypeID]; int modelIndex = 0; if (piece.OwnerPlayer == PlayerTurnOrder.First) { modelIndex = behavior.FirstModelIndex; } else if (piece.OwnerPlayer == PlayerTurnOrder.Second) { modelIndex = behavior.SecondModelIndex; } if (modelIndex > db.ModelPrefabs.Count) { modelIndex = 0; } GameObject gobj = (GameObject)Instantiate(db.ModelPrefabs[modelIndex]); gobj.layer = pieceLayer; foreach (var child in gobj.GetComponentsInChildren <Transform>()) { child.gameObject.layer = pieceLayer; } PieceModel model = gobj.AddComponent <PieceModel>(); model.PieceID = id; gobj.transform.position = PiecePositionHelper.FigureCenter(db, piece.BoardPosition); gobj.transform.rotation = Quaternion.Euler(0, piece.OwnerPlayer == PlayerTurnOrder.Second ? 180 : 0, 0); modelGObjs[id] = model; }
private void OnPieceMove(int pieceIndex) { PieceModel model = models.GetModelObject(pieceIndex); Piece data = board.Pieces[pieceIndex]; model.transform.position = PiecePositionHelper.FigureCenter(db, data.BoardPosition); }
private void BuildPattern(ActionIndicatorPattern pattern) { foreach (var ind in pattern.indicators) { IntVector2 boardPos = ind.boardPosition; int height = heights[boardPos.x, boardPos.y]; heights[boardPos.x, boardPos.y]++; int modelIndex = db.Indicators.GetIndexFor(ind.type, ind.strength); GameObject model = GetModel(modelIndex); Vector3 basePosition = PiecePositionHelper.FigureCenter(db, boardPos); Vector3 finalPosition = new Vector3(basePosition.x, basePosition.y + db.Indicators.StackingHeight * height, basePosition.z); model.transform.position = finalPosition; if (ind.decorationModel >= 0) { GameObject decorModel = GetModel(ind.decorationModel); decorModel.transform.position = finalPosition; //decorModel.transform.rotation = Quaternion.Euler(90, 0, 90); } } }