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); } }