private static void GenerateMain(BuildingLot _lot)
    {
        // PosX
        Vector3 pos = _lot.transform.position + new Vector3(_lot.GetOffsetX() +
                                                            _lot.GetCurrentBuildingWidth(), 0.0f, _lot.GetOffsetZ() + (float)panelSize / 2);

        GeneratePosXPanels(_lot, (int)_lot.GetCurrentBuildingLength(), pos, _lot.GetBuildingPanels());

        // PosZ
        pos = _lot.transform.position + new Vector3(_lot.GetOffsetX() + (float)panelSize / 2, 0.0f,
                                                    _lot.GetOffsetZ() + _lot.GetCurrentBuildingLength());

        GeneratePosZPanels(_lot, (int)_lot.GetCurrentBuildingWidth(), pos, _lot.GetBuildingPanels());

        // NegX
        pos = _lot.transform.position + new Vector3(_lot.GetOffsetX(), 0.0f, _lot.GetOffsetZ() +
                                                    (float)panelSize / 2);

        GenerateNegXPanels(_lot, (int)_lot.GetCurrentBuildingLength(), pos, _lot.GetBuildingPanels());

        // NegZ
        pos = _lot.transform.position + new Vector3(_lot.GetOffsetX() + (float)panelSize / 2, 0.0f,
                                                    _lot.GetOffsetZ());

        GenerateNegZPanels(_lot, (int)_lot.GetCurrentBuildingWidth(), pos, _lot.GetBuildingPanels());

        // PosY
        pos = _lot.transform.position + new Vector3(_lot.GetOffsetX() + (float)panelSize / 2,
                                                    _lot.GetCurrentBuildingHeight() - (float)panelSize / 2, _lot.GetOffsetZ() + (float)panelSize / 2);

        GeneratePosYPanels(_lot, (int)_lot.GetCurrentBuildingWidth(), (int)_lot.GetCurrentBuildingLength(),
                           pos, _lot.GetBuildingPanels());
    }
    private static void MergeList(BuildingLot _lot, List <Panel> _addedPanels)
    {
        for (int i = _addedPanels.Count - 1; i >= 0; i--)
        {
            for (int j = _lot.GetBuildingPanels().Count - 1; j >= 0; j--)
            {
                // If panel is overlapping, discard them as they must be inside the mesh
                if (_addedPanels[i].Position() == _lot.GetBuildingPanels()[j].Position())
                {
                    _lot.GetBuildingPanels().RemoveAt(j);
                    _addedPanels.RemoveAt(i);
                    break;
                }
            }
        }

        // Add remaining panels
        foreach (Panel panel in _addedPanels)
        {
            _lot.GetBuildingPanels().Add(panel);
        }
    }