using System;
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
public class PlaceingObj : MonoBehaviour
{
[SerializeField]
private InputManager InputManager;
private transparentMovement transparentMovement;
[SerializeField]
private DatabaseSO database;
private int selectedObjectIndex=-1;
[SerializeField]
private transparentMovement preview;
void Start()
{
StopPlacement();
}
public void StartPlacement(int ID)
{
StopPlacement();
selectedObjectIndex =database.objectsData.FindIndex(data => data.ID==ID);
preview.StartShowingPlacementPreview(
database.objectsData[selectedObjectIndex].Prefab);
InputManager.OnClicked += PlaceStructure;
InputManager.OnExit += StopPlacement;
}
private void PlaceStructure()
{
GameObject newObject = Instantiate(database.objectsData[selectedObjectIndex].Prefab);
newObject.transform.position=InputManager.SelectMapPosition();
Vector3 mousePosition = InputManager.SelectMapPosition();
preview.UpdatePosition(mousePosition);
}
private void StopPlacement()
{
selectedObjectIndex =-1;
InputManager.OnClicked -= PlaceStructure;
InputManager.OnExit -= StopPlacement;
}
// Update is called once per frame
void Update()
{
if(selectedObjectIndex <0)
return;
Vector3 mousePosition = InputManager.SelectMapPosition();
preview.UpdatePosition(mousePosition);
}
}