public void Execute(BaseEntity entity)
        {
            Gatherer gatherer = entity as Gatherer;

            if (gatherer.path.isFinished && !gatherer.noMatsLeft)
            {
                if (gatherer.CollectMaterialsFromTile(GameWorld.instance.tiles.tiles[TileSystem.GetIndexOfTile(gatherer.position)]))
                {
                    gatherer.path.Set(Path.GetPathTo(GameWorld.instance.tiles.tiles[TileSystem.GetIndexOfTile(gatherer.position)], Material.IDToMaterial(gatherer.matID)));
                }
                else
                {
                    gatherer.state.ChangeState(StoreResourcesState.instance);
                }
                if (gatherer.path.Count == 0)
                {
                    //if (!gatherer.noMatsLeft) {
                    gatherer.state.ChangeState(StoreResourcesState.instance);
                    //} else {
                    gatherer.noMatsLeft = true;
                    //GameWorld.instance.materialCollection += gatherer.inventory;
                    //gatherer.inventory.Clear();
                    //}
                }

                ResourceGatherer.instance.RedrawBackground();
            }
        }