PlacedObject_Done.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class PlacedObject_Done : MonoBehaviour {
  5. public static PlacedObject_Done Create(Vector3 worldPosition, Vector2Int origin, PlacedObjectTypeSO.Dir dir, PlacedObjectTypeSO placedObjectTypeSO) {
  6. Transform placedObjectTransform = Instantiate(placedObjectTypeSO.prefab, worldPosition, Quaternion.Euler(0, placedObjectTypeSO.GetRotationAngle(dir), 0));
  7. PlacedObject_Done placedObject = placedObjectTransform.GetComponent<PlacedObject_Done>();
  8. placedObject.Setup(placedObjectTypeSO, origin, dir);
  9. return placedObject;
  10. }
  11. private PlacedObjectTypeSO placedObjectTypeSO;
  12. private Vector2Int origin;
  13. private PlacedObjectTypeSO.Dir dir;
  14. private void Setup(PlacedObjectTypeSO placedObjectTypeSO, Vector2Int origin, PlacedObjectTypeSO.Dir dir) {
  15. this.placedObjectTypeSO = placedObjectTypeSO;
  16. this.origin = origin;
  17. this.dir = dir;
  18. }
  19. public List<Vector2Int> GetGridPositionList() {
  20. return placedObjectTypeSO.GetGridPositionList(origin, dir);
  21. }
  22. public void DestroySelf() {
  23. Destroy(gameObject);
  24. }
  25. public override string ToString() {
  26. return placedObjectTypeSO.nameString;
  27. }
  28. }