limited field creation to specified shape
This commit is contained in:
@@ -66,7 +66,7 @@ public partial class FarmingControls2D : Node2D
|
||||
|
||||
public override void _Input(InputEvent @event)
|
||||
{
|
||||
Vector2 mousePosition = GetViewport().GetMousePosition();
|
||||
Vector2 mousePosition = _camera.GetGlobalMousePosition();
|
||||
|
||||
Vector2I adjustedPosition = new Vector2I(AdjustValue(mousePosition.X), AdjustValue(mousePosition.Y));
|
||||
|
||||
@@ -94,6 +94,14 @@ public partial class FarmingControls2D : Node2D
|
||||
{
|
||||
if(FieldParent == null || _fieldPrefab == null)
|
||||
return;
|
||||
|
||||
bool fieldAllowed = FieldParent.FieldAllowed();
|
||||
GD.Print($"Field allowed at {fieldPosition}: {fieldAllowed}");
|
||||
// only try to instantiate a field if you're in the allowed area
|
||||
if (!fieldAllowed)
|
||||
return;
|
||||
|
||||
|
||||
|
||||
// only instantiate a field if there isn't one already.
|
||||
if(FieldParent.Get(fieldPosition) == null)
|
||||
|
||||
@@ -7,7 +7,26 @@ namespace Babushka.scripts.CSharp.Common.Farming;
|
||||
public partial class FieldService2D : Node2D
|
||||
{
|
||||
[Export] private Dictionary<Vector2I, FieldBehaviour2D> fields = new Dictionary<Vector2I, FieldBehaviour2D>();
|
||||
|
||||
private bool _fieldAllowed = false;
|
||||
|
||||
//Validate
|
||||
|
||||
public void MouseEnteredAllowedArea()
|
||||
{
|
||||
_fieldAllowed = true;
|
||||
}
|
||||
|
||||
public void MouseExitedAllowedArea()
|
||||
{
|
||||
_fieldAllowed = false;
|
||||
}
|
||||
|
||||
public bool FieldAllowed()
|
||||
{
|
||||
return _fieldAllowed;
|
||||
}
|
||||
|
||||
//Create
|
||||
public bool TryAddEntry(Vector2I key, FieldBehaviour2D field)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user