gather-and-defend/Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs
Felix Boucher 27d72368aa finish integrating level selector
Level selector was already working after work by William but some small bugs remained to be fixed + it wasn't possible to return to level selector once we were in the level.

- it's now possible to go back to level selector from Level
- LevelManagerScript is no longer a singleton (this way, it resets with the Game scene unloading)
- Added a property drawer for using scene files in inspectors
2023-07-23 20:16:44 -04:00

19 lines
692 B
C#

using UnityEngine;
public class ObjectPlaceholder : DraggablePlaceholder
{
public GameObject Prefab { get; set; }
public override void Place()
{
Prefab.Create(transform.position, parent : LevelManager.Instance.LevelTransform);
}
public override bool CanBePlacedHere()
{
var objsOnPosition = LevelManager.Instance.GetAll<ILevelObject>(obj => obj.Position.IsContainedIn(transform.position));
var positionIsCollidable = objsOnPosition.Exists(obj => obj.IsCollidable);
return !positionIsCollidable
&& _lvlBoundsCache.Contains(transform.position)
&& ResourceManager.Instance.EnoughFor(Rock, Wood, Food);
}
}