From 90190513ce0f5fb8cf98ef5443c4b34336546dfa Mon Sep 17 00:00:00 2001
From: rainlizard <15337628+rainlizard@users.noreply.github.com>
Date: Mon, 27 Jan 2025 13:02:43 +1100
Subject: [PATCH] fixed new slabs in slab window

---
 Autoload/Slabs.gd                 | 119 ++++++++++++++----------------
 Scenes/CfgLoader.gd               |   2 -
 Scenes/CustomSlabSystem.gd        |   2 -
 Scenes/PickSlabWindow.gd          |   3 +-
 Scenes/SlabDisplay.gd             |  49 +++++++-----
 Shaders/display_texture_2d.shader |   2 +-
 6 files changed, 87 insertions(+), 90 deletions(-)

diff --git a/Autoload/Slabs.gd b/Autoload/Slabs.gd
index 771fe5b3..67358d41 100644
--- a/Autoload/Slabs.gd
+++ b/Autoload/Slabs.gd
@@ -20,8 +20,6 @@ enum {
 	NAME
 	IS_SOLID # Whether units can walk there, and how fortified walls do their bitmask, AND for 3D generation optimization
 	BITMASK_TYPE
-	PANEL_VIEW
-	SIDE_VIEW_Z_OFFSET
 	EDITOR_TAB
 	WIBBLE_TYPE
 	REMEMBER_TYPE
@@ -131,11 +129,6 @@ enum {
 	TAB_OWNER = 4
 	TAB_NONE = 5
 }
-enum {
-	PANEL_TOP_VIEW = 0
-	PANEL_SIDE_VIEW = 1
-	PANEL_DOOR_VIEW = 2
-}
 ########################################################################
 enum {
 	FAKE_CUBE_DATA,
@@ -204,62 +197,62 @@ func fetch_idname(slabID):
 	return ""
 
 var data = {
-00: ["HARD",                  BLOCK_SLAB, BITMASK_BLOCK,         PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  NOT_OWNABLE], # 0
-01: ["GOLD",                  BLOCK_SLAB, BITMASK_BLOCK,         PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  NOT_OWNABLE], # 1
-02: ["DIRT",                  BLOCK_SLAB, BITMASK_BLOCK,         PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  NOT_OWNABLE], # 2
-03: ["TORCH_DIRT",            BLOCK_SLAB, BITMASK_BLOCK,         PANEL_SIDE_VIEW, 4, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  NOT_OWNABLE], # 3
-04: ["DRAPE_WALL",            BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 4, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 4
-05: ["TORCH_WALL",            BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 4, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 5
-06: ["TWINS_WALL",            BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 4, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 6
-07: ["WOMAN_WALL",            BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 4, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 7
-08: ["PAIR_WALL",             BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 4, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 8
-09: ["DAMAGED_WALL",          BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 4, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 9
-10: ["PATH",                  FLOOR_SLAB, BITMASK_FLOOR,         PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  NOT_OWNABLE], # 10
-11: ["PRETTY_PATH",           FLOOR_SLAB, BITMASK_CLAIMED,       PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 11
-12: ["LAVA",                  FLOOR_SLAB, BITMASK_FLOOR,         PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ANIMATED, REMEMBER_LAVA,  NOT_OWNABLE], # 12
-13: ["WATER",                 FLOOR_SLAB, BITMASK_FLOOR,         PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ANIMATED, REMEMBER_WATER, NOT_OWNABLE], # 13
-14: ["ENTRANCE_ZONE",         FLOOR_SLAB, BITMASK_FLOOR,         PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 14
-15: ["ENTRANCE_WALL",         BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 3, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 15
-16: ["TREASURY_AREA",         FLOOR_SLAB, BITMASK_FLOOR,         PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 16
-17: ["TREASURY_WALL",         BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 3, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 17
-18: ["BOOK_SHELVES",          FLOOR_SLAB, BITMASK_FLOOR,         PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 18
-19: ["LIBRARY_WALL",          BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 3, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 19
-20: ["PRISON_AREA",           FLOOR_SLAB, BITMASK_FLOOR,         PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 20
-21: ["PRISON_WALL",           BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 3, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 21
-22: ["TORTURE_AREA",          FLOOR_SLAB, BITMASK_FLOOR,         PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 22
-23: ["TORTURE_WALL",          BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 4, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 23
-24: ["TRAINING_AREA",         FLOOR_SLAB, BITMASK_FLOOR,         PANEL_TOP_VIEW,  3, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 24
-25: ["TRAINING_WALL",         BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 3, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 25
-26: ["HEART_PEDESTAL",        FLOOR_SLAB, BITMASK_FLOOR,         PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 26
-27: ["HEART_WALL",            BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 3, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 27
-28: ["WORKSHOP_AREA",         FLOOR_SLAB, BITMASK_FLOOR,         PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 28
-29: ["WORKSHOP_WALL",         BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 3, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 29
-30: ["SCAVENGE_AREA",         FLOOR_SLAB, BITMASK_FLOOR,         PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 30
-31: ["SCAVENGER_WALL",        BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 3, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 31
-32: ["TEMPLE_POOL",           FLOOR_SLAB, BITMASK_FLOOR,         PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 32
-33: ["TEMPLE_WALL",           BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 3, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 33
-34: ["GRAVE_AREA",            FLOOR_SLAB, BITMASK_FLOOR,         PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 34
-35: ["GRAVE_WALL",            BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 3, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 35
-36: ["HATCHERY",              FLOOR_SLAB, BITMASK_FLOOR,         PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 36
-37: ["HATCHERY_WALL",         BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 3, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 37
-38: ["LAIR_AREA",             FLOOR_SLAB, BITMASK_FLOOR,         PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 38
-39: ["LAIR_WALL",             BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 3, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 39
-40: ["BARRACK_AREA",          FLOOR_SLAB, BITMASK_FLOOR,         PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 40
-41: ["BARRACK_WALL",          BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_SIDE_VIEW, 3, TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 41
-42: ["DOOR_WOODEN",           FLOOR_SLAB, BITMASK_DOOR1,         PANEL_DOOR_VIEW, 3, TAB_NONE,      WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 42
-43: ["DOOR_WOODEN2",          FLOOR_SLAB, BITMASK_DOOR2,         PANEL_DOOR_VIEW, 3, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 43
-44: ["DOOR_BRACE",            FLOOR_SLAB, BITMASK_DOOR1,         PANEL_DOOR_VIEW, 3, TAB_NONE,      WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 44
-45: ["DOOR_BRACE2",           FLOOR_SLAB, BITMASK_DOOR2,         PANEL_DOOR_VIEW, 3, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 45
-46: ["DOOR_STEEL",            FLOOR_SLAB, BITMASK_DOOR1,         PANEL_DOOR_VIEW, 3, TAB_NONE,      WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 46
-47: ["DOOR_STEEL2",           FLOOR_SLAB, BITMASK_DOOR2,         PANEL_DOOR_VIEW, 3, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 47
-48: ["DOOR_MAGIC",            FLOOR_SLAB, BITMASK_DOOR1,         PANEL_DOOR_VIEW, 3, TAB_NONE,      WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 48
-49: ["DOOR_MAGIC2",           FLOOR_SLAB, BITMASK_DOOR2,         PANEL_DOOR_VIEW, 3, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 49
-50: ["SLAB50",                FLOOR_SLAB, BITMASK_SIMPLE,        PANEL_TOP_VIEW,  3, TAB_OTHER,     WIBBLE_OFF,      REMEMBER_PATH,  OWNABLE], # 50
-51: ["BRIDGE_FRAME",          FLOOR_SLAB, BITMASK_SIMPLE,        PANEL_TOP_VIEW,  3, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 51
-52: ["GEMS",                  BLOCK_SLAB, BITMASK_SIMPLE,        PANEL_TOP_VIEW,  3, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  NOT_OWNABLE], # 52
-53: ["GUARD_AREA",            FLOOR_SLAB, BITMASK_SIMPLE,        PANEL_TOP_VIEW,  3, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 53
-54: ["PURPLE_PATH",           FLOOR_SLAB, BITMASK_SIMPLE,        PANEL_TOP_VIEW,  0, TAB_OTHER,     WIBBLE_OFF,      REMEMBER_PATH,  NOT_OWNABLE], # 54
-999: ["AUTOMATIC_WALL",       BLOCK_SLAB, BITMASK_REINFORCED,    PANEL_TOP_VIEW,  0, TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 999
+00: ["HARD",                  BLOCK_SLAB, BITMASK_BLOCK,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  NOT_OWNABLE], # 0
+01: ["GOLD",                  BLOCK_SLAB, BITMASK_BLOCK,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  NOT_OWNABLE], # 1
+02: ["DIRT",                  BLOCK_SLAB, BITMASK_BLOCK,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  NOT_OWNABLE], # 2
+03: ["TORCH_DIRT",            BLOCK_SLAB, BITMASK_BLOCK,         TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  NOT_OWNABLE], # 3
+04: ["DRAPE_WALL",            BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 4
+05: ["TORCH_WALL",            BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 5
+06: ["TWINS_WALL",            BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 6
+07: ["WOMAN_WALL",            BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 7
+08: ["PAIR_WALL",             BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 8
+09: ["DAMAGED_WALL",          BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 9
+10: ["PATH",                  FLOOR_SLAB, BITMASK_FLOOR,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  NOT_OWNABLE], # 10
+11: ["PRETTY_PATH",           FLOOR_SLAB, BITMASK_CLAIMED,       TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 11
+12: ["LAVA",                  FLOOR_SLAB, BITMASK_FLOOR,         TAB_MAINSLAB,  WIBBLE_ANIMATED, REMEMBER_LAVA,  NOT_OWNABLE], # 12
+13: ["WATER",                 FLOOR_SLAB, BITMASK_FLOOR,         TAB_MAINSLAB,  WIBBLE_ANIMATED, REMEMBER_WATER, NOT_OWNABLE], # 13
+14: ["ENTRANCE_ZONE",         FLOOR_SLAB, BITMASK_FLOOR,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 14
+15: ["ENTRANCE_WALL",         BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 15
+16: ["TREASURY_AREA",         FLOOR_SLAB, BITMASK_FLOOR,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 16
+17: ["TREASURY_WALL",         BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 17
+18: ["BOOK_SHELVES",          FLOOR_SLAB, BITMASK_FLOOR,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 18
+19: ["LIBRARY_WALL",          BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 19
+20: ["PRISON_AREA",           FLOOR_SLAB, BITMASK_FLOOR,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 20
+21: ["PRISON_WALL",           BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 21
+22: ["TORTURE_AREA",          FLOOR_SLAB, BITMASK_FLOOR,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 22
+23: ["TORTURE_WALL",          BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 23
+24: ["TRAINING_AREA",         FLOOR_SLAB, BITMASK_FLOOR,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 24
+25: ["TRAINING_WALL",         BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 25
+26: ["HEART_PEDESTAL",        FLOOR_SLAB, BITMASK_FLOOR,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 26
+27: ["HEART_WALL",            BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 27
+28: ["WORKSHOP_AREA",         FLOOR_SLAB, BITMASK_FLOOR,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 28
+29: ["WORKSHOP_WALL",         BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 29
+30: ["SCAVENGE_AREA",         FLOOR_SLAB, BITMASK_FLOOR,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 30
+31: ["SCAVENGER_WALL",        BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 31
+32: ["TEMPLE_POOL",           FLOOR_SLAB, BITMASK_FLOOR,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 32
+33: ["TEMPLE_WALL",           BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 33
+34: ["GRAVE_AREA",            FLOOR_SLAB, BITMASK_FLOOR,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 34
+35: ["GRAVE_WALL",            BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 35
+36: ["HATCHERY",              FLOOR_SLAB, BITMASK_FLOOR,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 36
+37: ["HATCHERY_WALL",         BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 37
+38: ["LAIR_AREA",             FLOOR_SLAB, BITMASK_FLOOR,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 38
+39: ["LAIR_WALL",             BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 39
+40: ["BARRACK_AREA",          FLOOR_SLAB, BITMASK_FLOOR,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 40
+41: ["BARRACK_WALL",          BLOCK_SLAB, BITMASK_REINFORCED,    TAB_OTHER,     WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 41
+42: ["DOOR_WOODEN",           FLOOR_SLAB, BITMASK_DOOR1,         TAB_NONE,      WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 42
+43: ["DOOR_WOODEN2",          FLOOR_SLAB, BITMASK_DOOR2,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 43
+44: ["DOOR_BRACE",            FLOOR_SLAB, BITMASK_DOOR1,         TAB_NONE,      WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 44
+45: ["DOOR_BRACE2",           FLOOR_SLAB, BITMASK_DOOR2,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 45
+46: ["DOOR_STEEL",            FLOOR_SLAB, BITMASK_DOOR1,         TAB_NONE,      WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 46
+47: ["DOOR_STEEL2",           FLOOR_SLAB, BITMASK_DOOR2,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 47
+48: ["DOOR_MAGIC",            FLOOR_SLAB, BITMASK_DOOR1,         TAB_NONE,      WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 48
+49: ["DOOR_MAGIC2",           FLOOR_SLAB, BITMASK_DOOR2,         TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 49
+50: ["SLAB50",                FLOOR_SLAB, BITMASK_SIMPLE,        TAB_OTHER,     WIBBLE_OFF,      REMEMBER_PATH,  OWNABLE], # 50
+51: ["BRIDGE_FRAME",          FLOOR_SLAB, BITMASK_SIMPLE,        TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 51
+52: ["GEMS",                  BLOCK_SLAB, BITMASK_SIMPLE,        TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  NOT_OWNABLE], # 52
+53: ["GUARD_AREA",            FLOOR_SLAB, BITMASK_SIMPLE,        TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 53
+54: ["PURPLE_PATH",           FLOOR_SLAB, BITMASK_SIMPLE,        TAB_OTHER,     WIBBLE_OFF,      REMEMBER_PATH,  NOT_OWNABLE], # 54
+999: ["AUTOMATIC_WALL",       BLOCK_SLAB, BITMASK_REINFORCED,    TAB_MAINSLAB,  WIBBLE_ON,       REMEMBER_PATH,  OWNABLE], # 999
 }
 
 
diff --git a/Scenes/CfgLoader.gd b/Scenes/CfgLoader.gd
index 5a0fc0eb..4d73907c 100644
--- a/Scenes/CfgLoader.gd
+++ b/Scenes/CfgLoader.gd
@@ -183,8 +183,6 @@ func load_terrain_data(cfg): # 4ms
 					setName,
 					setBlockType,
 					setBitmask,
-					Slabs.PANEL_TOP_VIEW, # Affects appearance in slab window
-					0,  # Affects appearance in slab window
 					Slabs.TAB_MAINSLAB, # Good
 					slabSection.get("Wibble", 0),
 					slabSection.get("WlbType", 0),
diff --git a/Scenes/CustomSlabSystem.gd b/Scenes/CustomSlabSystem.gd
index 25d56333..ce15de27 100644
--- a/Scenes/CustomSlabSystem.gd
+++ b/Scenes/CustomSlabSystem.gd
@@ -71,8 +71,6 @@ func add_custom_slab(slab_dict):
 		slab_dict["name"],
 		slab_dict["is_solid"],
 		slab_dict["bitmask"],
-		Slabs.PANEL_TOP_VIEW,
-		0, # SIDE_VIEW_Z_OFFSET
 		Slabs.TAB_CUSTOM,
 		slab_dict["wibble_type"],
 		slab_dict["liquid_type"],
diff --git a/Scenes/PickSlabWindow.gd b/Scenes/PickSlabWindow.gd
index 57965ead..d6ec3fad 100644
--- a/Scenes/PickSlabWindow.gd
+++ b/Scenes/PickSlabWindow.gd
@@ -84,7 +84,7 @@ func add_slabs():
 			
 			var doorSlabData = Slabs.fetch_doorslab_data(slabID)
 			if doorSlabData:
-				if doorSlabData[Slabs.DOORSLAB_ORIENTATION] == 0:
+				if doorSlabData[Slabs.DOORSLAB_ORIENTATION] == 1:
 					continue
 			
 			allSlabIDs.append(slabID)
@@ -116,7 +116,6 @@ func add_slabs():
 						# Fake Slab
 						pass
 			id.set_meta("ID_of_slab", slabID)
-			id.panelView = Slabs.data[slabID][Slabs.PANEL_VIEW]
 			id.set_visual(columnArray)
 			var useName = Slabs.fetch_name(slabID)
 			add_child_to_grid(tabs[putIntoTab][GRIDCON_PATH], id, useName)
diff --git a/Scenes/SlabDisplay.gd b/Scenes/SlabDisplay.gd
index 54e456a2..89488ccf 100644
--- a/Scenes/SlabDisplay.gd
+++ b/Scenes/SlabDisplay.gd
@@ -5,7 +5,6 @@ var dataImage = Image.new()
 var dataTexture = ImageTexture.new()
 
 #var columns = [0,0,0, 0,0,0, 0,0,0]
-var panelView = Slabs.PANEL_TOP_VIEW
 func _ready():
 	add_to_group("SlabDisplay") #Important for when changing texture pack
 	var iconSize = 0.35
@@ -35,31 +34,41 @@ func set_visual(columnArray):
 	dataTexture.create_from_image(dataImage, 0)
 	
 	dataImage.lock()
-	if panelView == Slabs.PANEL_TOP_VIEW:
-		for y in 3:
-			for x in 3:
-				var cubeFace = 0
-				if slabID >= 1000:
-					# Fake slab
-					if Slabs.fake_extra_data.has(slabID) == true:
-						var oCustomSlabSystem = Nodelist.list["oCustomSlabSystem"]
-						cubeFace = oCustomSlabSystem.get_top_fake_cube_face((y*3) + x, slabID)
-				else:
-					# Slabset slab (normal slab)
-					cubeFace = Columnset.get_top_cube_face(columnArray[(y*3) + x], slabID)
-				
-				dataImage.set_pixel(x, y, Color8(cubeFace >> 16 & 255, cubeFace >> 8 & 255, cubeFace & 255))
+	for y in 3:
+		for x in 3:
+			var cubeFace = 0
+			if slabID >= 1000:
+				# Fake slab
+				if Slabs.fake_extra_data.has(slabID) == true:
+					var oCustomSlabSystem = Nodelist.list["oCustomSlabSystem"]
+					cubeFace = oCustomSlabSystem.get_top_fake_cube_face((y*3) + x, slabID)
+			else:
+				# Slabset slab (normal slab)
+				cubeFace = Columnset.get_top_cube_face(columnArray[(y*3) + x], slabID)
+			
+			dataImage.set_pixel(x, y, Color8(cubeFace >> 16 & 255, cubeFace >> 8 & 255, cubeFace & 255))
+	
+	# Handle side view for doors and other tab slabs
+	var isOtherTab = Slabs.data[slabID][Slabs.EDITOR_TAB] == Slabs.TAB_OTHER
+	var isDoor = Slabs.is_door(slabID)
 	
-	if panelView == Slabs.PANEL_SIDE_VIEW or panelView == Slabs.PANEL_DOOR_VIEW:
-		var y = 2
-		if panelView == Slabs.PANEL_DOOR_VIEW: y = 1
+	if (isOtherTab and slabID < 50) or isDoor:
+		var y
+		var sideViewZoffset
 		
-		var sideViewZoffset = Slabs.data[slabID][Slabs.SIDE_VIEW_Z_OFFSET]
+		if isOtherTab:
+			y = 2
+			sideViewZoffset = 4
+		elif isDoor:
+			y = 1
+			sideViewZoffset = 3
+			if slabID == 56: #SecretDoor2
+				y = 0
+				sideViewZoffset = 3
 		
 		for x in 3:
 			for z in range(0, 3):
 				var clmIndex = columnArray[(y*3) + x]
-				
 				var cubeID = Columnset.cubes[clmIndex][sideViewZoffset-z]
 				var cubeFace = Cube.tex[cubeID][Cube.SIDE_SOUTH]
 				dataImage.set_pixel(x, z, Color8(cubeFace >> 16 & 255, cubeFace >> 8 & 255, cubeFace & 255))
diff --git a/Shaders/display_texture_2d.shader b/Shaders/display_texture_2d.shader
index d0f0a469..7fdcb1f4 100644
--- a/Shaders/display_texture_2d.shader
+++ b/Shaders/display_texture_2d.shader
@@ -23,7 +23,7 @@ uniform sampler2DArray dkTextureMap_Split_B2;
 
 uniform vec2 fieldSizeInSubtiles = vec2(0.0, 0.0);
 
-const float DARKENING_FACTOR = 0.35;
+const float DARKENING_FACTOR = 0.333;
 
 // Exact same function as in Godot Source Code
 float calc_mip_level(vec2 texture_coord) {