Ejemplo n.º 1
0
    private void OnTriggerEnter(Collider other)
    {
        PieceComponent piece = other.gameObject.GetComponent <PieceComponent>();

        if (piece != null)
        {
            postStack.Push(piece);
        }
    }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
 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);
 }
Ejemplo n.º 4
0
 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;
     }
 }
Ejemplo n.º 5
0
    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
        });
    }