public ComponentSubGrid GetClosestComponentGrid(Vector3 worldPoint, string exception) { ComponentSubGrid closestSubGrid = null; float distance = 10000; MainStoreComponent main_c = dm.dispensary.Main_c; if (main_c != null && exception != "MainStore") { if (main_c.grid.grids.Count > 0) { foreach (ComponentSubGrid grid in main_c.grid.grids) { float newDistance = Vector3.Distance(worldPoint, grid.gameObject.transform.position); if (newDistance < distance) { distance = newDistance; closestSubGrid = grid; } } } } if (dm.dispensary.Storage_cs.Count > 0) { for (int i = 0; i < dm.dispensary.Storage_cs.Count; i++) { StorageComponent storage_c = dm.dispensary.Storage_cs[i]; if (storage_c.grid.grids.Count > 0 && exception != "Storage" + i) { foreach (ComponentSubGrid grid in storage_c.grid.grids) { float newDistance = Vector3.Distance(worldPoint, grid.gameObject.transform.position); if (newDistance < distance) { distance = newDistance; closestSubGrid = grid; } } } } } GlassShopComponent glass_c = dm.dispensary.Glass_c; if (glass_c != null && exception != "GlassShop") { if (glass_c.grid.grids.Count > 0) { foreach (ComponentSubGrid grid in glass_c.grid.grids) { float newDistance = Vector3.Distance(worldPoint, grid.gameObject.transform.position); if (newDistance < distance) { distance = newDistance; closestSubGrid = grid; } } } } SmokeLoungeComponent lounge_c = dm.dispensary.Lounge_c; if (lounge_c != null && exception != "SmokeLounge") { if (lounge_c.grid.grids.Count > 0) { foreach (ComponentSubGrid grid in lounge_c.grid.grids) { float newDistance = Vector3.Distance(worldPoint, grid.gameObject.transform.position); if (newDistance < distance) { distance = newDistance; closestSubGrid = grid; } } } } WorkshopComponent workshop_c = dm.dispensary.Workshop_c; if (workshop_c != null && exception != "Workshop") { if (workshop_c.grid.grids.Count > 0) { foreach (ComponentSubGrid grid in lounge_c.grid.grids) { float newDistance = Vector3.Distance(worldPoint, grid.gameObject.transform.position); if (newDistance < distance) { distance = newDistance; closestSubGrid = grid; } } } } if (dm.dispensary.Growroom_cs.Count > 0) { for (int i = 0; i < dm.dispensary.Growroom_cs.Count; i++) { GrowroomComponent growroom_c = dm.dispensary.Growroom_cs[i]; if (growroom_c.grid.grids.Count > 0 && exception != "Growroom" + i) { foreach (ComponentSubGrid grid in growroom_c.grid.grids) { float newDistance = Vector3.Distance(worldPoint, grid.gameObject.transform.position); if (newDistance < distance) { distance = newDistance; closestSubGrid = grid; } } } } } if (dm.dispensary.Processing_cs.Count > 0) { for (int i = 0; i < dm.dispensary.Processing_cs.Count; i++) { ProcessingComponent processing_c = dm.dispensary.Processing_cs[i]; if (processing_c.grid.grids.Count > 0 && exception != "Processing" + i) { foreach (ComponentSubGrid grid in processing_c.grid.grids) { float newDistance = Vector3.Distance(worldPoint, grid.gameObject.transform.position); if (newDistance < distance) { distance = newDistance; closestSubGrid = grid; } } } } } if (dm.dispensary.Hallway_cs.Count > 0) { for (int i = 0; i < dm.dispensary.Hallway_cs.Count; i++) { HallwayComponent hallway_c = dm.dispensary.Hallway_cs[i]; if (hallway_c.grid.grids.Count > 0 && exception != "Hallway" + i) { foreach (ComponentSubGrid grid in hallway_c.grid.grids) { float newDistance = Vector3.Distance(worldPoint, grid.gameObject.transform.position); if (newDistance < distance) { distance = newDistance; closestSubGrid = grid; } } } } } return(closestSubGrid); }
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); }