private void OnTriggerEnter(Collider other) { PieceComponent piece = other.gameObject.GetComponent <PieceComponent>(); if (piece != null) { postStack.Push(piece); } }
public PieceComponent[] GetPieces() { PieceComponent[] piecesBuffer = new PieceComponent[Pieces.Length]; for (int i = 0; i < Pieces.Length; i++) { piecesBuffer[i] = new PieceComponent(Pieces[i].GetX(), Pieces[i].GetY(), Pieces[i].GetZ()); } return(piecesBuffer); }
public PieceComponent[] GetPieces() { PieceComponent[] output = new PieceComponent[Pieces.Length]; for (int i = 0; i < output.Length; i++) { output[i] = new PieceComponent(Pieces[i].GetX(), Pieces[i].GetY(), Pieces[i].GetZ()); } return(output); }
public void PostInteracted() { if (selectedPieceAsset.Value == null) { // Pick up piece if (!(postStack.Count > 0)) { Debug.Log($"{name}.PostClicked: no pieces to pick up!"); return; } PieceComponent piece = postStack.Pop(); piece.rigidbody.isKinematic = true; piece.transform.position = dropPosition.position; selectedPieceAsset.Value = piece; } else { // Drop piece PieceComponent piece = selectedPieceAsset.Value; piece.transform.position = dropPosition.position; piece.rigidbody.isKinematic = false; selectedPieceAsset.Value = null; } }
static PieceLibrary() { PieceComponent[] currentEntry; //Single Block currentEntry = new PieceComponent[1]; currentEntry[0] = new PieceComponent(0, 0, 0); Entries.Add(new LibraryEntry() { Pieces = currentEntry, Weight = 0.3f }); //4 Long Straight Block currentEntry = new PieceComponent[4]; currentEntry[0] = new PieceComponent(0.5f, 0, 0); currentEntry[1] = new PieceComponent(1.5f, 0, 0); currentEntry[2] = new PieceComponent(-0.5f, 0, 0); currentEntry[3] = new PieceComponent(-1.5f, 0, 0); Entries.Add(new LibraryEntry() { Pieces = currentEntry, Weight = 1f }); //T Block currentEntry = new PieceComponent[4]; currentEntry[0] = new PieceComponent(0, 0, 0); currentEntry[1] = new PieceComponent(1, 0, 0); currentEntry[2] = new PieceComponent(0, 0, 1); currentEntry[3] = new PieceComponent(-1, 0, 0); Entries.Add(new LibraryEntry() { Pieces = currentEntry, Weight = 1f }); //Z Block currentEntry = new PieceComponent[4]; currentEntry[0] = new PieceComponent(0, 0, 0.5f); currentEntry[1] = new PieceComponent(0, 0, -0.5f); currentEntry[2] = new PieceComponent(1, 0, 0.5f); currentEntry[3] = new PieceComponent(-1, 0, -0.5f); Entries.Add(new LibraryEntry() { Pieces = currentEntry, Weight = 1f }); //Little L Block currentEntry = new PieceComponent[3]; currentEntry[0] = new PieceComponent(0, 0, 0); currentEntry[1] = new PieceComponent(1, 0, 0); currentEntry[2] = new PieceComponent(0, 0, 1); Entries.Add(new LibraryEntry() { Pieces = currentEntry, Weight = 1f }); //Big L Block currentEntry = new PieceComponent[4]; currentEntry[0] = new PieceComponent(0, 0, 0); currentEntry[1] = new PieceComponent(-1, 0, 0); currentEntry[2] = new PieceComponent(1, 0, 0); currentEntry[3] = new PieceComponent(1, 0, 1); Entries.Add(new LibraryEntry() { Pieces = currentEntry, Weight = 1f }); }