Added building flipping

This commit is contained in:
2026-04-13 13:00:49 +01:00
parent 1351bb2245
commit b481b27f8b
3 changed files with 22 additions and 7 deletions

View File

@@ -20,7 +20,7 @@ namespace Fruitomation.Game
private bool[,] InhabitedCells { get; } = new bool[96, 49];
private List<BuildingInfo> Buildings { get; } = new();
public bool AddBuildingAt(Vector2Int position, GameObject prefab, bool updateCellMap = false)
public bool AddBuildingAt(Vector2Int position, GameObject prefab, bool isFlipped)
{
//
GameObject go = Instantiate(prefab, transform);
@@ -41,6 +41,8 @@ namespace Fruitomation.Game
info.Rect.sizeDelta = info.Building.SizeOnGrid * 40;
info.Rect.anchoredPosition = p1 + off1;
info.Rect.transform.localScale = new Vector3(isFlipped ? -1f : 1f, 1f, 1f);
Debug.Log(g0);
//

View File

@@ -16,7 +16,8 @@ namespace Fruitomation.Game
{
if (other.transform.parent.TryGetComponent(out Rigidbody2D body))
{
body?.AddForce(-transform.right * Mathf.PI, ForceMode2D.Impulse);
Vector3 force = new(-transform.localScale.x, 0f, 0f);
body?.AddForce(force * Mathf.PI, ForceMode2D.Impulse);
}
});
}

View File

@@ -25,6 +25,7 @@ namespace Fruitomation.UI
[SerializeField, InspectorReadOnly] private float CurrentMouseClickStrength;
[SerializeField, InspectorReadOnly] private Vector2Int GridPosition;
[SerializeField, InspectorReadOnly] private GameObject SelectedBuildingToBuild;
[SerializeField, InspectorReadOnly] private bool FlipCurrentBuilding;
private readonly ContactFilter2D ContactFilter = new();
private readonly List<Collider2D> Colliders = new();
@@ -38,6 +39,8 @@ namespace Fruitomation.UI
{
SelectedBuildingsBuildingBase = prefab.GetComponent<Building>();
SelectedBuildingToBuild = prefab;
FlipCurrentBuilding = false;
}
private void UpdatePosition()
@@ -145,6 +148,15 @@ namespace Fruitomation.UI
{
BuildingPreview.enabled = true;
//
if (Input.GetKeyDown(KeyCode.R))
{
FlipCurrentBuilding = !FlipCurrentBuilding;
}
//
BuildingPreview.transform.localScale = new Vector3(FlipCurrentBuilding ? -1f : 1f, 1f, 1f);
BuildingPreview.rectTransform.sizeDelta = SelectedBuildingsBuildingBase.SizeOnGrid * 40;
BuildingPreview.sprite = SelectedBuildingsBuildingBase.Sprite;
@@ -166,7 +178,7 @@ namespace Fruitomation.UI
//
if (Input.GetMouseButtonDown(0) && MouseOnGrid)
{
BuildingManager.AddBuildingAt(p1, SelectedBuildingToBuild);
BuildingManager.AddBuildingAt(p1, SelectedBuildingToBuild, FlipCurrentBuilding);
}
}
}