From 934e4a1d450b84b55c33cb08e7f047708ca4030a Mon Sep 17 00:00:00 2001
From: Arkerthan <arkerthan@gmail.com>
Date: Thu, 12 Mar 2020 14:47:18 +0100
Subject: [PATCH] add invisible filler cell for special layouts

---
 src/003-assets/CSS/arcologyBuilding.css |  6 +++++-
 src/arcologyBuilding/base.js            |  2 +-
 src/arcologyBuilding/filler.js          | 25 +++++++++++++++++++++++++
 3 files changed, 31 insertions(+), 2 deletions(-)
 create mode 100644 src/arcologyBuilding/filler.js

diff --git a/src/003-assets/CSS/arcologyBuilding.css b/src/003-assets/CSS/arcologyBuilding.css
index 750410612e3..812ac241777 100644
--- a/src/003-assets/CSS/arcologyBuilding.css
+++ b/src/003-assets/CSS/arcologyBuilding.css
@@ -23,7 +23,7 @@ div.building div.outerCell {
     flex-direction: row;
 }
 
-div.building div.innerCell {
+div.building div.innerCell:not(.filler) {
     margin: 3px;
     border: 5px solid;
     padding: 2px;
@@ -154,3 +154,7 @@ div.building div.row div.transportHub {
 div.building div.row div.weaponsManufacturing {
     border-color: springgreen;
 }
+
+div.building div.row div.filler {
+    border-color: transparent;
+}
diff --git a/src/arcologyBuilding/base.js b/src/arcologyBuilding/base.js
index df7d221c991..c33ece874ae 100644
--- a/src/arcologyBuilding/base.js
+++ b/src/arcologyBuilding/base.js
@@ -26,7 +26,7 @@ App.Arcology.cellUpgrade = function(building, cellClass, cellType, newType, key
  * Updates V.arcologies[0].ownership.
  */
 App.Arcology.updateOwnership = function() {
-	const allCells = V.building.findCells(() => true);
+	const allCells = V.building.findCells(cell => !(cell instanceof App.Arcology.Cell.Filler));
 	const ownedCells = allCells.filter(cell => cell.owner === 1);
 
 	const ratio = ownedCells.length / allCells.length;
diff --git a/src/arcologyBuilding/filler.js b/src/arcologyBuilding/filler.js
new file mode 100644
index 00000000000..5b0ba2faa76
--- /dev/null
+++ b/src/arcologyBuilding/filler.js
@@ -0,0 +1,25 @@
+App.Arcology.Cell.Filler = class extends App.Arcology.Cell.BaseCell {
+	constructor(width) {
+		super(1);
+		this._width = width;
+	}
+
+	get width() {
+		return this._width;
+	}
+
+	get colorClass() {
+		return "filler";
+	}
+
+	get className() { return "App.Arcology.Cell.Filler"; }
+
+	static _cleanupConfigScheme(config) {
+		super._cleanupConfigScheme(config);
+		// BC code
+	}
+
+	clone() {
+		return (new App.Arcology.Cell.Filler())._init(this);
+	}
+};
-- 
GitLab