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; } }
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; } }
public void setDirection(Molecule.Directions dir) { componentSpriteRenderer.sprite = clickerLibrary.GetSprite("Directions", dir.ToString()); }