diff --git a/scripts/Utility.cs b/scripts/Utility.cs index 9abaf30..26cbc47 100644 --- a/scripts/Utility.cs +++ b/scripts/Utility.cs @@ -15,5 +15,7 @@ public partial class Utility public const int LayersCount = 3; public static readonly Vector2I LeftFieldBoundary = new Vector2I(305,76); public static readonly Vector2I RightFieldBoundary = new Vector2I(755,376); + public static readonly Vector2 Tile = new Vector2(Utility.TileWidth, Utility.TileHeight); + } diff --git a/scripts/components/level/PlantField.cs b/scripts/components/level/PlantField.cs index 35ef88b..a609ef8 100644 --- a/scripts/components/level/PlantField.cs +++ b/scripts/components/level/PlantField.cs @@ -7,8 +7,6 @@ namespace Newlon.Components.Level; public partial class PlantField : Node2D { private Sprite2D _plantSetter; - private readonly Vector2 tile = new Vector2(Utility.TileWidth, Utility.TileHeight); - private PlantResource _resource; private Seedpacket _slot; private bool _previousCanPlace; @@ -39,7 +37,7 @@ public partial class PlantField : Node2D _plantSetter.GlobalPosition = mouse_pos; // Getting position in grid coordinates - var expected_pos = (_plantSetter.GlobalPosition / tile).Ceil() * tile - new Vector2(20, 14); + var expected_pos = (_plantSetter.GlobalPosition / Utility.Tile).Ceil() * Utility.Tile - new Vector2(20, 14); // Checking for boundaries bool inBoundary = expected_pos.X > Utility.LeftFieldBoundary.X && expected_pos.X < Utility.RightFieldBoundary.X && expected_pos.Y > Utility.LeftFieldBoundary.Y && expected_pos.Y < Utility.RightFieldBoundary.Y; @@ -82,11 +80,11 @@ public partial class PlantField : Node2D { var plant = _resource.Scene.Instantiate(); PoolContainer.Instance.Plants.AddChild(plant); - plant.GlobalPosition = (_plantSetter.GlobalPosition / tile).Ceil() * tile - new Vector2(20, 14); + plant.GlobalPosition = (_plantSetter.GlobalPosition / Utility.Tile).Ceil() * Utility.Tile - new Vector2(20, 14); plant.Resource = _resource; plant.Line = (int)plant.GlobalPosition.Y/Utility.TileHeight; - PoolContainer.Instance.EntityField[_resource.Layer].Add(plant.GlobalPosition, plant as IEntity); + PoolContainer.Instance.EntityField[_resource.Layer].Add(plant.GlobalPosition, plant); RuntimeLevelData.Instance.SpendSun(_resource.Cost);