示例#1
0
    private void DrawCursor(Vector3 mouseWorldPos)
    {
        Vector3Int tilePos    = grid.WorldToCell(mouseWorldPos);
        Vector3    drawCoords = grid.GetCellCenterWorld(tilePos);

        switch (clickMode)
        {
        case ClickMode.PLACING:
            //clickPreview.sprite clickerLibrary.GetSprite("Molecule", "Standard");
            if (tilemap.HasTile(tilePos))
            {
                clickPreview.setConnections(amountDirs);
                clickPreview.setPosition(true, drawCoords);
            }
            else
            {
                clickPreview.setPosition(false);
            }
            break;

        case (ClickMode.DIRECTIONS):
            clickDirection = getMouseDirection(placedPos, mouseWorldPos);
            clickPreview.setDirection(clickDirection);
            clickPreview.setConnections(amountDirs);
            break;
        }
    }
示例#2
0
    private void InterpretMouse(Vector3 mouseWorldPos)
    {
        Vector3Int tilePos    = grid.WorldToCell(mouseWorldPos);
        Vector3    drawCoords = grid.GetCellCenterWorld(tilePos);

        switch (clickMode)
        {
        case ClickMode.PLACING:
            if (Input.GetMouseButtonDown(0))
            {
                clickPos = tilePos;
            }

            if (Input.GetMouseButtonUp(0))
            {
                if (clickPos == tilePos)
                {
                    if (PlaceMolecule(clickPos))
                    {
                        placedPos = drawCoords;
                        clickMode = ClickMode.DIRECTIONS;
                    }
                }
            }
            break;

        case (ClickMode.DIRECTIONS):
            if (Input.GetMouseButtonDown(0))
            {
                clickDirection = getMouseDirection(placedPos, mouseWorldPos);
            }

            if (Input.GetMouseButtonUp(0))
            {
                if (clickDirection == getMouseDirection(placedPos, mouseWorldPos))
                {
                    switch (PlaceDir())
                    {
                    case PlaceDirResult.INVALID:
                        break;

                    case PlaceDirResult.VALID_CONTINUE:
                        break;

                    case PlaceDirResult.VALID_STOP:
                        clickMode = ClickMode.PLACING;
                        break;
                    }
                }
            }
            break;
        }
    }
示例#3
0
 public void setDirection(Molecule.Directions dir)
 {
     componentSpriteRenderer.sprite = clickerLibrary.GetSprite("Directions", dir.ToString());
 }