public void ShowTransparencyToggle() { if (showingTransparency) { showingTransparency = false; } else { showingTransparency = true; } Dictionary <int, int[, ]> intWallIDs = new Dictionary <int, int[, ]>(); Dictionary <int, int[, ]> extWallIDs = new Dictionary <int, int[, ]>(); switch (componentGrid.gameObject.name) { case "MainStoreComponent": MainStoreComponent main_c = dm.dispensary.Main_c; ComponentWalls mainWalls = main_c.walls; foreach (ComponentSubWalls subWalls in mainWalls.subWalls) { intWallIDs[subWalls.subGridIndex] = main_c.GetIntWallIDs(subWalls.subGridIndex); extWallIDs[subWalls.subGridIndex] = main_c.GetExtWallIDs(subWalls.subGridIndex); } break; case "StorageComponent0": StorageComponent storage_c0 = dm.dispensary.Storage_cs[0]; ComponentWalls storage0Walls = storage_c0.walls; foreach (ComponentSubWalls subWalls in storage0Walls.subWalls) { intWallIDs[subWalls.subGridIndex] = storage_c0.GetIntWallIDs(subWalls.subGridIndex); extWallIDs[subWalls.subGridIndex] = storage_c0.GetExtWallIDs(subWalls.subGridIndex); } break; case "StorageComponent1": StorageComponent storage_c1 = dm.dispensary.Storage_cs[1]; ComponentWalls storage1Walls = storage_c1.walls; foreach (ComponentSubWalls subWalls in storage1Walls.subWalls) { intWallIDs[subWalls.subGridIndex] = storage_c1.GetIntWallIDs(subWalls.subGridIndex); extWallIDs[subWalls.subGridIndex] = storage_c1.GetExtWallIDs(subWalls.subGridIndex); } break; case "StorageComponent2": StorageComponent storage_c2 = dm.dispensary.Storage_cs[2]; ComponentWalls storage2Walls = storage_c2.walls; foreach (ComponentSubWalls subWalls in storage2Walls.subWalls) { intWallIDs[subWalls.subGridIndex] = storage_c2.GetIntWallIDs(subWalls.subGridIndex); extWallIDs[subWalls.subGridIndex] = storage_c2.GetExtWallIDs(subWalls.subGridIndex); } break; case "SmokeLoungeComponent": SmokeLoungeComponent lounge_c = dm.dispensary.Lounge_c; ComponentWalls loungeWalls = lounge_c.walls; foreach (ComponentSubWalls subWalls in loungeWalls.subWalls) { intWallIDs[subWalls.subGridIndex] = lounge_c.GetIntWallIDs(subWalls.subGridIndex); extWallIDs[subWalls.subGridIndex] = lounge_c.GetExtWallIDs(subWalls.subGridIndex); } break; case "GlassShopComponent": GlassShopComponent glass_c = dm.dispensary.Glass_c; ComponentWalls glassShopWalls = glass_c.walls; foreach (ComponentSubWalls subWalls in glassShopWalls.subWalls) { intWallIDs[subWalls.subGridIndex] = glass_c.GetIntWallIDs(subWalls.subGridIndex); extWallIDs[subWalls.subGridIndex] = glass_c.GetExtWallIDs(subWalls.subGridIndex); } break; case "WorkshopComponent": WorkshopComponent workshop_c = dm.dispensary.Workshop_c; ComponentWalls workshopWalls = workshop_c.walls; foreach (ComponentSubWalls subWalls in workshopWalls.subWalls) { intWallIDs[subWalls.subGridIndex] = workshop_c.GetIntWallIDs(subWalls.subGridIndex); extWallIDs[subWalls.subGridIndex] = workshop_c.GetExtWallIDs(subWalls.subGridIndex); } break; case "GrowroomComponent0": GrowroomComponent growroom_c0 = dm.dispensary.Growroom_cs[0]; ComponentWalls growroom0Walls = growroom_c0.walls; foreach (ComponentSubWalls subWalls in growroom0Walls.subWalls) { intWallIDs[subWalls.subGridIndex] = growroom_c0.GetIntWallIDs(subWalls.subGridIndex); extWallIDs[subWalls.subGridIndex] = growroom_c0.GetExtWallIDs(subWalls.subGridIndex); } break; case "GrowroomComponent1": GrowroomComponent growroom_c1 = dm.dispensary.Growroom_cs[1]; ComponentWalls growroom1Walls = growroom_c1.walls; foreach (ComponentSubWalls subWalls in growroom1Walls.subWalls) { intWallIDs[subWalls.subGridIndex] = growroom_c1.GetIntWallIDs(subWalls.subGridIndex); extWallIDs[subWalls.subGridIndex] = growroom_c1.GetExtWallIDs(subWalls.subGridIndex); } break; case "ProcessingComponent0": ProcessingComponent processing_c0 = dm.dispensary.Processing_cs[0]; ComponentWalls processing0Walls = processing_c0.walls; foreach (ComponentSubWalls subWalls in processing0Walls.subWalls) { intWallIDs[subWalls.subGridIndex] = processing_c0.GetIntWallIDs(subWalls.subGridIndex); extWallIDs[subWalls.subGridIndex] = processing_c0.GetExtWallIDs(subWalls.subGridIndex); } break; case "ProcessingComponent1": ProcessingComponent processing_c1 = dm.dispensary.Processing_cs[1]; ComponentWalls processing1Walls = processing_c1.walls; foreach (ComponentSubWalls subWalls in processing1Walls.subWalls) { intWallIDs[subWalls.subGridIndex] = processing_c1.GetIntWallIDs(subWalls.subGridIndex); extWallIDs[subWalls.subGridIndex] = processing_c1.GetExtWallIDs(subWalls.subGridIndex); } break; //intentionally left off hallways (not for any technical reason, just a design choice) } CreateWalls(intWallIDs, extWallIDs); }
public bool belowRoof = false; // true if changed walls transparency public void WallTransparencyController() { try { Vector3 cameraPos = Camera.main.transform.position; if (cameraPos.y <= dm.dispensary.GetRoofYValue()) { belowRoof = true; Ray straightDownRay = new Ray(cameraPos, Vector3.down); RaycastHit[] straightDownHits = Physics.RaycastAll(straightDownRay); foreach (RaycastHit hit in straightDownHits) { if (hit.transform.tag == "Floor") { switch (hit.transform.name) { case "MainStoreComponent": wallsChanged = dm.dispensary.Main_c.walls; if (wallsChanged.showingTransparency) { wallsChanged.ShowTransparencyToggle(); } break; case "StorageComponent0": wallsChanged = dm.dispensary.Storage_cs[0].walls; if (wallsChanged.showingTransparency) { wallsChanged.ShowTransparencyToggle(); } break; case "StorageComponent1": wallsChanged = dm.dispensary.Storage_cs[1].walls; if (wallsChanged.showingTransparency) { wallsChanged.ShowTransparencyToggle(); } break; case "StorageComponent2": wallsChanged = dm.dispensary.Storage_cs[2].walls; if (wallsChanged.showingTransparency) { wallsChanged.ShowTransparencyToggle(); } break; } } } } else { if (belowRoof) { wallsChanged.ShowTransparencyToggle(); wallsChanged = null; belowRoof = false; } dm.dispensary.EnsureTransparency(); } } catch (NullReferenceException) { print("Null error in camera controller. Needs new controller for unity 2019"); } }