doorways.html 53 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082
  1. <!doctype html>
  2. <html lang="en" class="no-js">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1">
  6. <link rel="prev" href="archetypes.html">
  7. <link rel="next" href="dungeon-flow.html">
  8. <link rel="icon" href="../assets/images/favicon.ico">
  9. <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.11">
  10. <title>Doorways - DunGen</title>
  11. <link rel="stylesheet" href="../assets/stylesheets/main.4af4bdda.min.css">
  12. <link rel="stylesheet" href="../assets/stylesheets/palette.06af60db.min.css">
  13. <script src="https://unpkg.com/iframe-worker/shim"></script>
  14. <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  15. <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
  16. <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
  17. <link rel="stylesheet" href="../stylesheets/extra.css">
  18. <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
  19. </head>
  20. <body dir="ltr" data-md-color-scheme="slate" data-md-color-primary="black" data-md-color-accent="cyan">
  21. <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
  22. <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
  23. <label class="md-overlay" for="__drawer"></label>
  24. <div data-md-component="skip">
  25. <a href="#core-concepts-doorways" class="md-skip">
  26. Skip to content
  27. </a>
  28. </div>
  29. <div data-md-component="announce">
  30. </div>
  31. <header class="md-header md-header--shadow" data-md-component="header">
  32. <nav class="md-header__inner md-grid" aria-label="Header">
  33. <a href="../index.html" title="DunGen" class="md-header__button md-logo" aria-label="DunGen" data-md-component="logo">
  34. <svg width="100%" height="100%" viewBox="0 0 258 272" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
  35. <path d="M79,20.998C103.163,20.998 126.827,20.993 150.49,21.002C156.512,21.004 156.994,21.502 157,27.603C157.008,36.435 157.275,45.279 156.89,54.094C156.689,58.68 158.685,61.484 161.849,64.242C170.723,71.978 179.515,79.812 188.188,87.772C190.849,90.214 193.071,93.217 195.28,95.995C199.425,101.209 199.993,100.532 203.73,100.441C209.056,100.311 214.403,100.217 219.713,100.549C222.988,100.754 224.083,99.873 224.059,96.517C223.93,78.354 223.952,60.189 224.044,42.025C224.059,38.949 223.341,37.434 219.868,37.603C214.383,37.872 208.877,37.791 203.381,37.715C199.579,37.663 197.517,38.715 197.907,43.168C198.327,47.964 197.807,52.836 198.065,57.655C198.263,61.366 196.432,62.919 193.348,61.885C188.656,60.311 184.193,58.029 179.724,55.858C179.188,55.598 179.033,54.157 179.028,53.262C178.979,44.43 179.007,35.598 178.995,26.766C178.99,22.857 180.241,20.823 184.822,20.897C200.816,21.158 216.816,20.988 232.814,21.004C239.132,21.01 240.996,22.894 240.998,29.241C241.006,56.07 241.005,82.9 240.998,109.729C240.997,114.795 238.959,117.469 233.922,117.935C228.649,118.423 223.32,118.407 218.015,118.42C208.355,118.444 198.68,117.994 189.04,118.408C184.225,118.615 181.96,116.755 180.231,112.653C175.241,100.811 167.104,91.401 156.54,84.26C153.778,82.394 150.001,81.189 146.67,81.142C126.51,80.86 106.344,81.107 86.182,80.92C81.723,80.878 80.502,82.453 80.517,86.753C80.64,122.394 80.606,158.037 80.499,193.679C80.487,197.764 81.821,199.148 86.047,199.093C103.375,198.866 120.707,198.998 138.038,198.998C159.059,198.998 178.198,184.319 182.849,163.942C184.15,158.243 183.93,152.135 183.91,146.215C183.896,141.846 185.254,139.882 189.885,139.936C204.381,140.105 218.88,139.974 233.378,140.01C238.862,140.024 240.989,142.215 240.993,147.822C241.011,180.317 241.012,212.813 240.992,245.308C240.988,250.939 238.967,252.977 233.218,252.985C205.722,253.022 178.226,253.017 150.73,252.989C145.524,252.983 144.074,251.47 144.001,246.325C143.982,244.992 144.14,243.641 143.973,242.329C143.34,237.341 146.132,235.979 150.411,235.99C160.395,236.016 171.06,236.112 181.183,236.112C181.349,229.59 181.592,223.106 181.957,216.723C182.112,214.015 183.166,213.054 185.926,212.937C199.005,212.385 199.002,212.308 199.002,225.465C199.002,236.846 199.003,236.883 210.211,236.618C214.669,236.512 219.122,236.203 223.998,235.966L223.998,215.809C223.998,197.812 223.911,179.813 224.071,161.817C224.103,158.195 223.211,156.729 219.348,156.922C213.399,157.218 207.424,157 201.518,157C200.995,162.216 201.49,167.296 200.093,171.982C197.761,179.807 196.375,184.335 192.2,189.003C186.463,195.42 180.539,202.401 173.212,206.467C165.218,210.904 155.809,213.982 146.533,214.772C140.003,215.328 133.915,215.112 127.586,214.988C124.239,214.923 122.845,216.06 122.934,219.622C123.145,228.116 123.005,236.618 123.001,245.117C122.998,251.059 121.128,252.977 115.061,252.989C97.897,253.025 80.733,253.002 63.568,253.002C51.404,253.002 39.239,253.028 27.074,252.99C21.11,252.972 19.972,251.911 19.969,246.171C19.952,212.512 20.027,178.852 19.931,145.193C19.92,141.244 21.512,139.936 25.206,139.967C36.037,140.056 46.872,139.868 57.7,140.066C61.659,140.139 62.704,138.654 62.9,134.816C63.079,131.328 63.031,127.859 62.985,124.329C62.92,119.388 61.017,118.259 56.858,118.302C47.864,118.397 38.869,118.381 29.875,118.42C29.044,118.424 28.21,118.569 27.382,118.535C20.483,118.255 19.854,117.626 19.858,110.743C19.874,83.582 19.901,56.422 19.946,29.261C19.957,22.709 21.747,21.005 28.509,21.001C45.173,20.992 61.836,20.998 79,20.998M40.806,37.592C39.579,39.018 37.305,40.427 37.283,41.871C37.009,60.012 37.047,78.158 37.045,96.302C37.045,98.812 38.187,100.243 40.973,100.24C46.626,100.235 52.281,100.327 57.93,100.537C61.815,100.681 63.165,99.043 63.06,95.156C62.832,86.672 62.99,78.177 63.001,69.687C63.01,63.101 65.168,60.989 71.882,60.989C92.36,60.99 112.837,60.999 133.315,60.997C139.718,60.996 139.987,60.711 139.998,54.125C140.004,50.629 139.757,47.111 140.059,43.642C140.457,39.073 138.568,37.373 134.101,37.395C103.319,37.551 72.535,37.595 40.806,37.592M62.997,200.455C62.997,187.472 63.078,174.487 62.886,161.507C62.863,159.996 61.38,157.25 60.476,157.208C52.923,156.859 45.347,157.01 37.87,157.01C37.87,182.364 37.917,206.983 37.817,231.602C37.803,235.205 39.289,236.074 42.623,236.055C62.599,235.939 82.576,236.005 102.552,235.977C103.642,235.975 104.732,235.678 105.997,235.493C105.997,229.703 105.875,224.216 106.048,218.738C106.137,215.898 105.136,214.958 102.315,214.998C93.661,215.12 85.004,215.009 76.348,215.006C62.998,215 62.998,215.006 62.997,200.455Z" style="fill:currentColor;fill-rule:nonzero;"/>
  36. <g transform="matrix(1,0,0,1,91.4761,179.778)">
  37. <text x="0px" y="0px" style="font-family:'Arial-BoldMT', 'Arial', sans-serif;font-weight:700;font-size:110px;fill:currentColor;">D</text>
  38. </g>
  39. </svg>
  40. </a>
  41. <label class="md-header__button md-icon" for="__drawer">
  42. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
  43. </label>
  44. <div class="md-header__title" data-md-component="header-title">
  45. <div class="md-header__ellipsis">
  46. <div class="md-header__topic">
  47. <span class="md-ellipsis">
  48. DunGen
  49. </span>
  50. </div>
  51. <div class="md-header__topic" data-md-component="header-topic">
  52. <span class="md-ellipsis">
  53. Doorways
  54. </span>
  55. </div>
  56. </div>
  57. </div>
  58. </nav>
  59. </header>
  60. <div class="md-container" data-md-component="container">
  61. <main class="md-main" data-md-component="main">
  62. <div class="md-main__inner md-grid">
  63. <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
  64. <div class="md-sidebar__scrollwrap">
  65. <div class="md-sidebar__inner">
  66. <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
  67. <label class="md-nav__title" for="__drawer">
  68. <a href="../index.html" title="DunGen" class="md-nav__button md-logo" aria-label="DunGen" data-md-component="logo">
  69. <svg width="100%" height="100%" viewBox="0 0 258 272" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
  70. <path d="M79,20.998C103.163,20.998 126.827,20.993 150.49,21.002C156.512,21.004 156.994,21.502 157,27.603C157.008,36.435 157.275,45.279 156.89,54.094C156.689,58.68 158.685,61.484 161.849,64.242C170.723,71.978 179.515,79.812 188.188,87.772C190.849,90.214 193.071,93.217 195.28,95.995C199.425,101.209 199.993,100.532 203.73,100.441C209.056,100.311 214.403,100.217 219.713,100.549C222.988,100.754 224.083,99.873 224.059,96.517C223.93,78.354 223.952,60.189 224.044,42.025C224.059,38.949 223.341,37.434 219.868,37.603C214.383,37.872 208.877,37.791 203.381,37.715C199.579,37.663 197.517,38.715 197.907,43.168C198.327,47.964 197.807,52.836 198.065,57.655C198.263,61.366 196.432,62.919 193.348,61.885C188.656,60.311 184.193,58.029 179.724,55.858C179.188,55.598 179.033,54.157 179.028,53.262C178.979,44.43 179.007,35.598 178.995,26.766C178.99,22.857 180.241,20.823 184.822,20.897C200.816,21.158 216.816,20.988 232.814,21.004C239.132,21.01 240.996,22.894 240.998,29.241C241.006,56.07 241.005,82.9 240.998,109.729C240.997,114.795 238.959,117.469 233.922,117.935C228.649,118.423 223.32,118.407 218.015,118.42C208.355,118.444 198.68,117.994 189.04,118.408C184.225,118.615 181.96,116.755 180.231,112.653C175.241,100.811 167.104,91.401 156.54,84.26C153.778,82.394 150.001,81.189 146.67,81.142C126.51,80.86 106.344,81.107 86.182,80.92C81.723,80.878 80.502,82.453 80.517,86.753C80.64,122.394 80.606,158.037 80.499,193.679C80.487,197.764 81.821,199.148 86.047,199.093C103.375,198.866 120.707,198.998 138.038,198.998C159.059,198.998 178.198,184.319 182.849,163.942C184.15,158.243 183.93,152.135 183.91,146.215C183.896,141.846 185.254,139.882 189.885,139.936C204.381,140.105 218.88,139.974 233.378,140.01C238.862,140.024 240.989,142.215 240.993,147.822C241.011,180.317 241.012,212.813 240.992,245.308C240.988,250.939 238.967,252.977 233.218,252.985C205.722,253.022 178.226,253.017 150.73,252.989C145.524,252.983 144.074,251.47 144.001,246.325C143.982,244.992 144.14,243.641 143.973,242.329C143.34,237.341 146.132,235.979 150.411,235.99C160.395,236.016 171.06,236.112 181.183,236.112C181.349,229.59 181.592,223.106 181.957,216.723C182.112,214.015 183.166,213.054 185.926,212.937C199.005,212.385 199.002,212.308 199.002,225.465C199.002,236.846 199.003,236.883 210.211,236.618C214.669,236.512 219.122,236.203 223.998,235.966L223.998,215.809C223.998,197.812 223.911,179.813 224.071,161.817C224.103,158.195 223.211,156.729 219.348,156.922C213.399,157.218 207.424,157 201.518,157C200.995,162.216 201.49,167.296 200.093,171.982C197.761,179.807 196.375,184.335 192.2,189.003C186.463,195.42 180.539,202.401 173.212,206.467C165.218,210.904 155.809,213.982 146.533,214.772C140.003,215.328 133.915,215.112 127.586,214.988C124.239,214.923 122.845,216.06 122.934,219.622C123.145,228.116 123.005,236.618 123.001,245.117C122.998,251.059 121.128,252.977 115.061,252.989C97.897,253.025 80.733,253.002 63.568,253.002C51.404,253.002 39.239,253.028 27.074,252.99C21.11,252.972 19.972,251.911 19.969,246.171C19.952,212.512 20.027,178.852 19.931,145.193C19.92,141.244 21.512,139.936 25.206,139.967C36.037,140.056 46.872,139.868 57.7,140.066C61.659,140.139 62.704,138.654 62.9,134.816C63.079,131.328 63.031,127.859 62.985,124.329C62.92,119.388 61.017,118.259 56.858,118.302C47.864,118.397 38.869,118.381 29.875,118.42C29.044,118.424 28.21,118.569 27.382,118.535C20.483,118.255 19.854,117.626 19.858,110.743C19.874,83.582 19.901,56.422 19.946,29.261C19.957,22.709 21.747,21.005 28.509,21.001C45.173,20.992 61.836,20.998 79,20.998M40.806,37.592C39.579,39.018 37.305,40.427 37.283,41.871C37.009,60.012 37.047,78.158 37.045,96.302C37.045,98.812 38.187,100.243 40.973,100.24C46.626,100.235 52.281,100.327 57.93,100.537C61.815,100.681 63.165,99.043 63.06,95.156C62.832,86.672 62.99,78.177 63.001,69.687C63.01,63.101 65.168,60.989 71.882,60.989C92.36,60.99 112.837,60.999 133.315,60.997C139.718,60.996 139.987,60.711 139.998,54.125C140.004,50.629 139.757,47.111 140.059,43.642C140.457,39.073 138.568,37.373 134.101,37.395C103.319,37.551 72.535,37.595 40.806,37.592M62.997,200.455C62.997,187.472 63.078,174.487 62.886,161.507C62.863,159.996 61.38,157.25 60.476,157.208C52.923,156.859 45.347,157.01 37.87,157.01C37.87,182.364 37.917,206.983 37.817,231.602C37.803,235.205 39.289,236.074 42.623,236.055C62.599,235.939 82.576,236.005 102.552,235.977C103.642,235.975 104.732,235.678 105.997,235.493C105.997,229.703 105.875,224.216 106.048,218.738C106.137,215.898 105.136,214.958 102.315,214.998C93.661,215.12 85.004,215.009 76.348,215.006C62.998,215 62.998,215.006 62.997,200.455Z" style="fill:currentColor;fill-rule:nonzero;"/>
  71. <g transform="matrix(1,0,0,1,91.4761,179.778)">
  72. <text x="0px" y="0px" style="font-family:'Arial-BoldMT', 'Arial', sans-serif;font-weight:700;font-size:110px;fill:currentColor;">D</text>
  73. </g>
  74. </svg>
  75. </a>
  76. DunGen
  77. </label>
  78. <ul class="md-nav__list" data-md-scrollfix>
  79. <li class="md-nav__item">
  80. <a href="../index.html" class="md-nav__link">
  81. <span class="md-ellipsis">
  82. Introduction
  83. </span>
  84. </a>
  85. </li>
  86. <li class="md-nav__item">
  87. <a href="../changelog.html" class="md-nav__link">
  88. <span class="md-ellipsis">
  89. Changelog
  90. </span>
  91. </a>
  92. </li>
  93. <li class="md-nav__item md-nav__item--nested">
  94. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
  95. <div class="md-nav__link md-nav__container">
  96. <a href="../getting-started/index.html" class="md-nav__link ">
  97. <span class="md-ellipsis">
  98. Getting Started
  99. </span>
  100. </a>
  101. <label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="0">
  102. <span class="md-nav__icon md-icon"></span>
  103. </label>
  104. </div>
  105. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
  106. <label class="md-nav__title" for="__nav_3">
  107. <span class="md-nav__icon md-icon"></span>
  108. Getting Started
  109. </label>
  110. <ul class="md-nav__list" data-md-scrollfix>
  111. <li class="md-nav__item">
  112. <a href="../getting-started/1-creating-tiles.html" class="md-nav__link">
  113. <span class="md-ellipsis">
  114. 1. Creating Tiles
  115. </span>
  116. </a>
  117. </li>
  118. <li class="md-nav__item">
  119. <a href="../getting-started/2-doorways.html" class="md-nav__link">
  120. <span class="md-ellipsis">
  121. 2. Doorways
  122. </span>
  123. </a>
  124. </li>
  125. <li class="md-nav__item">
  126. <a href="../getting-started/3-dungeon-flow.html" class="md-nav__link">
  127. <span class="md-ellipsis">
  128. 3. Dungeon Flow Basics
  129. </span>
  130. </a>
  131. </li>
  132. <li class="md-nav__item">
  133. <a href="../getting-started/4-scene-setup.html" class="md-nav__link">
  134. <span class="md-ellipsis">
  135. 4. Scene Setup & First Generation
  136. </span>
  137. </a>
  138. </li>
  139. </ul>
  140. </nav>
  141. </li>
  142. <li class="md-nav__item md-nav__item--active md-nav__item--nested">
  143. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" checked>
  144. <div class="md-nav__link md-nav__container">
  145. <a href="index.html" class="md-nav__link ">
  146. <span class="md-ellipsis">
  147. Core Concepts
  148. </span>
  149. </a>
  150. <label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="0">
  151. <span class="md-nav__icon md-icon"></span>
  152. </label>
  153. </div>
  154. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="true">
  155. <label class="md-nav__title" for="__nav_4">
  156. <span class="md-nav__icon md-icon"></span>
  157. Core Concepts
  158. </label>
  159. <ul class="md-nav__list" data-md-scrollfix>
  160. <li class="md-nav__item">
  161. <a href="tiles.html" class="md-nav__link">
  162. <span class="md-ellipsis">
  163. Tiles & Tile Component
  164. </span>
  165. </a>
  166. </li>
  167. <li class="md-nav__item">
  168. <a href="weighting.html" class="md-nav__link">
  169. <span class="md-ellipsis">
  170. Weighting
  171. </span>
  172. </a>
  173. </li>
  174. <li class="md-nav__item">
  175. <a href="tile-sets.html" class="md-nav__link">
  176. <span class="md-ellipsis">
  177. Tile Sets
  178. </span>
  179. </a>
  180. </li>
  181. <li class="md-nav__item">
  182. <a href="archetypes.html" class="md-nav__link">
  183. <span class="md-ellipsis">
  184. Archetypes
  185. </span>
  186. </a>
  187. </li>
  188. <li class="md-nav__item md-nav__item--active">
  189. <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
  190. <label class="md-nav__link md-nav__link--active" for="__toc">
  191. <span class="md-ellipsis">
  192. Doorways
  193. </span>
  194. <span class="md-nav__icon md-icon"></span>
  195. </label>
  196. <a href="doorways.html" class="md-nav__link md-nav__link--active">
  197. <span class="md-ellipsis">
  198. Doorways
  199. </span>
  200. </a>
  201. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  202. <label class="md-nav__title" for="__toc">
  203. <span class="md-nav__icon md-icon"></span>
  204. Table of contents
  205. </label>
  206. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  207. <li class="md-nav__item">
  208. <a href="#what-is-a-doorway" class="md-nav__link">
  209. <span class="md-ellipsis">
  210. What is a Doorway?
  211. </span>
  212. </a>
  213. </li>
  214. <li class="md-nav__item">
  215. <a href="#creating-a-doorway" class="md-nav__link">
  216. <span class="md-ellipsis">
  217. Creating a Doorway
  218. </span>
  219. </a>
  220. </li>
  221. <li class="md-nav__item">
  222. <a href="#placement-rules" class="md-nav__link">
  223. <span class="md-ellipsis">
  224. Placement Rules
  225. </span>
  226. </a>
  227. </li>
  228. <li class="md-nav__item">
  229. <a href="#the-doorway-component" class="md-nav__link">
  230. <span class="md-ellipsis">
  231. The Doorway Component
  232. </span>
  233. </a>
  234. <nav class="md-nav" aria-label="The Doorway Component">
  235. <ul class="md-nav__list">
  236. <li class="md-nav__item">
  237. <a href="#connectors-blockers" class="md-nav__link">
  238. <span class="md-ellipsis">
  239. Connectors &amp; Blockers
  240. </span>
  241. </a>
  242. <nav class="md-nav" aria-label="Connectors &amp; Blockers">
  243. <ul class="md-nav__list">
  244. <li class="md-nav__item">
  245. <a href="#ensuring-correct-placement-of-doorway-prefabs" class="md-nav__link">
  246. <span class="md-ellipsis">
  247. Ensuring Correct Placement of Doorway Prefabs
  248. </span>
  249. </a>
  250. </li>
  251. <li class="md-nav__item">
  252. <a href="#tags" class="md-nav__link">
  253. <span class="md-ellipsis">
  254. Tags
  255. </span>
  256. </a>
  257. </li>
  258. </ul>
  259. </nav>
  260. </li>
  261. </ul>
  262. </nav>
  263. </li>
  264. <li class="md-nav__item">
  265. <a href="#doorway-sockets" class="md-nav__link">
  266. <span class="md-ellipsis">
  267. Doorway Sockets
  268. </span>
  269. </a>
  270. <nav class="md-nav" aria-label="Doorway Sockets">
  271. <ul class="md-nav__list">
  272. <li class="md-nav__item">
  273. <a href="#purpose" class="md-nav__link">
  274. <span class="md-ellipsis">
  275. Purpose
  276. </span>
  277. </a>
  278. </li>
  279. <li class="md-nav__item">
  280. <a href="#default-socket" class="md-nav__link">
  281. <span class="md-ellipsis">
  282. Default Socket
  283. </span>
  284. </a>
  285. </li>
  286. <li class="md-nav__item">
  287. <a href="#creating-custom-sockets" class="md-nav__link">
  288. <span class="md-ellipsis">
  289. Creating Custom Sockets
  290. </span>
  291. </a>
  292. </li>
  293. <li class="md-nav__item">
  294. <a href="#overriding-matching-behaviour" class="md-nav__link">
  295. <span class="md-ellipsis">
  296. Overriding Matching Behaviour
  297. </span>
  298. </a>
  299. </li>
  300. </ul>
  301. </nav>
  302. </li>
  303. </ul>
  304. </nav>
  305. </li>
  306. <li class="md-nav__item">
  307. <a href="dungeon-flow.html" class="md-nav__link">
  308. <span class="md-ellipsis">
  309. Dungeon Flow Asset
  310. </span>
  311. </a>
  312. </li>
  313. <li class="md-nav__item">
  314. <a href="flow-editor.html" class="md-nav__link">
  315. <span class="md-ellipsis">
  316. Flow Editor
  317. </span>
  318. </a>
  319. </li>
  320. <li class="md-nav__item">
  321. <a href="dungeon-generator.html" class="md-nav__link">
  322. <span class="md-ellipsis">
  323. Dungeon Generator
  324. </span>
  325. </a>
  326. </li>
  327. </ul>
  328. </nav>
  329. </li>
  330. <li class="md-nav__item md-nav__item--nested">
  331. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
  332. <div class="md-nav__link md-nav__container">
  333. <a href="../advanced-features/index.html" class="md-nav__link ">
  334. <span class="md-ellipsis">
  335. Advanced Features
  336. </span>
  337. </a>
  338. <label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="0">
  339. <span class="md-nav__icon md-icon"></span>
  340. </label>
  341. </div>
  342. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
  343. <label class="md-nav__title" for="__nav_5">
  344. <span class="md-nav__icon md-icon"></span>
  345. Advanced Features
  346. </label>
  347. <ul class="md-nav__list" data-md-scrollfix>
  348. <li class="md-nav__item">
  349. <a href="../advanced-features/props-variety.html" class="md-nav__link">
  350. <span class="md-ellipsis">
  351. Props for Variety
  352. </span>
  353. </a>
  354. </li>
  355. <li class="md-nav__item">
  356. <a href="../advanced-features/doors.html" class="md-nav__link">
  357. <span class="md-ellipsis">
  358. Doors
  359. </span>
  360. </a>
  361. </li>
  362. <li class="md-nav__item">
  363. <a href="../advanced-features/multiple-floors.html" class="md-nav__link">
  364. <span class="md-ellipsis">
  365. Multiple Floors
  366. </span>
  367. </a>
  368. </li>
  369. <li class="md-nav__item">
  370. <a href="../advanced-features/lock-key-system.html" class="md-nav__link">
  371. <span class="md-ellipsis">
  372. Lock & Key System
  373. </span>
  374. </a>
  375. </li>
  376. <li class="md-nav__item">
  377. <a href="../advanced-features/injecting-tiles.html" class="md-nav__link">
  378. <span class="md-ellipsis">
  379. Injecting Special Tiles
  380. </span>
  381. </a>
  382. </li>
  383. <li class="md-nav__item">
  384. <a href="../advanced-features/connection-rules.html" class="md-nav__link">
  385. <span class="md-ellipsis">
  386. Tile Connection Rules
  387. </span>
  388. </a>
  389. </li>
  390. <li class="md-nav__item">
  391. <a href="../advanced-features/attached-dungeons.html" class="md-nav__link">
  392. <span class="md-ellipsis">
  393. Generating Attached Dungeons
  394. </span>
  395. </a>
  396. </li>
  397. <li class="md-nav__item">
  398. <a href="../advanced-features/additional-collisions.html" class="md-nav__link">
  399. <span class="md-ellipsis">
  400. Avoid Collisions With the Scene
  401. </span>
  402. </a>
  403. </li>
  404. <li class="md-nav__item">
  405. <a href="../advanced-features/runtime-events.html" class="md-nav__link">
  406. <span class="md-ellipsis">
  407. Runtime Events & Code Execution
  408. </span>
  409. </a>
  410. </li>
  411. <li class="md-nav__item">
  412. <a href="../advanced-features/post-processing.html" class="md-nav__link">
  413. <span class="md-ellipsis">
  414. Custom Post-Processing
  415. </span>
  416. </a>
  417. </li>
  418. <li class="md-nav__item">
  419. <a href="../advanced-features/character-component.html" class="md-nav__link">
  420. <span class="md-ellipsis">
  421. DunGen Character Component
  422. </span>
  423. </a>
  424. </li>
  425. </ul>
  426. </nav>
  427. </li>
  428. <li class="md-nav__item md-nav__item--nested">
  429. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
  430. <div class="md-nav__link md-nav__container">
  431. <a href="../optimization/index.html" class="md-nav__link ">
  432. <span class="md-ellipsis">
  433. Optimization
  434. </span>
  435. </a>
  436. <label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="0">
  437. <span class="md-nav__icon md-icon"></span>
  438. </label>
  439. </div>
  440. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
  441. <label class="md-nav__title" for="__nav_6">
  442. <span class="md-nav__icon md-icon"></span>
  443. Optimization
  444. </label>
  445. <ul class="md-nav__list" data-md-scrollfix>
  446. <li class="md-nav__item">
  447. <a href="../optimization/culling.html" class="md-nav__link">
  448. <span class="md-ellipsis">
  449. Built-in Culling
  450. </span>
  451. </a>
  452. </li>
  453. <li class="md-nav__item">
  454. <a href="../optimization/tile-pooling.html" class="md-nav__link">
  455. <span class="md-ellipsis">
  456. Tile Pooling
  457. </span>
  458. </a>
  459. </li>
  460. </ul>
  461. </nav>
  462. </li>
  463. <li class="md-nav__item md-nav__item--nested">
  464. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
  465. <div class="md-nav__link md-nav__container">
  466. <a href="../pathfinding/index.html" class="md-nav__link ">
  467. <span class="md-ellipsis">
  468. Pathfinding
  469. </span>
  470. </a>
  471. <label class="md-nav__link " for="__nav_7" id="__nav_7_label" tabindex="0">
  472. <span class="md-nav__icon md-icon"></span>
  473. </label>
  474. </div>
  475. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
  476. <label class="md-nav__title" for="__nav_7">
  477. <span class="md-nav__icon md-icon"></span>
  478. Pathfinding
  479. </label>
  480. <ul class="md-nav__list" data-md-scrollfix>
  481. <li class="md-nav__item">
  482. <a href="../pathfinding/unity-navmesh.html" class="md-nav__link">
  483. <span class="md-ellipsis">
  484. Unity NavMesh Components
  485. </span>
  486. </a>
  487. </li>
  488. <li class="md-nav__item">
  489. <a href="../pathfinding/astar-pathfinding.html" class="md-nav__link">
  490. <span class="md-ellipsis">
  491. A* Pathfinding Project Pro
  492. </span>
  493. </a>
  494. </li>
  495. <li class="md-nav__item">
  496. <a href="../pathfinding/custom-adapters.html" class="md-nav__link">
  497. <span class="md-ellipsis">
  498. Custom Adapters
  499. </span>
  500. </a>
  501. </li>
  502. </ul>
  503. </nav>
  504. </li>
  505. <li class="md-nav__item md-nav__item--nested">
  506. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
  507. <div class="md-nav__link md-nav__container">
  508. <a href="../integrations/index.html" class="md-nav__link ">
  509. <span class="md-ellipsis">
  510. Integrations
  511. </span>
  512. </a>
  513. <label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="0">
  514. <span class="md-nav__icon md-icon"></span>
  515. </label>
  516. </div>
  517. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
  518. <label class="md-nav__title" for="__nav_8">
  519. <span class="md-nav__icon md-icon"></span>
  520. Integrations
  521. </label>
  522. <ul class="md-nav__list" data-md-scrollfix>
  523. <li class="md-nav__item">
  524. <a href="../integrations/sectr.html" class="md-nav__link">
  525. <span class="md-ellipsis">
  526. SECTR Portal Culling
  527. </span>
  528. </a>
  529. </li>
  530. <li class="md-nav__item">
  531. <a href="../integrations/playmaker.html" class="md-nav__link">
  532. <span class="md-ellipsis">
  533. PlayMaker Actions
  534. </span>
  535. </a>
  536. </li>
  537. </ul>
  538. </nav>
  539. </li>
  540. <li class="md-nav__item md-nav__item--nested">
  541. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
  542. <div class="md-nav__link md-nav__container">
  543. <a href="../troubleshooting/index.html" class="md-nav__link ">
  544. <span class="md-ellipsis">
  545. Troubleshooting
  546. </span>
  547. </a>
  548. <label class="md-nav__link " for="__nav_9" id="__nav_9_label" tabindex="0">
  549. <span class="md-nav__icon md-icon"></span>
  550. </label>
  551. </div>
  552. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
  553. <label class="md-nav__title" for="__nav_9">
  554. <span class="md-nav__icon md-icon"></span>
  555. Troubleshooting
  556. </label>
  557. <ul class="md-nav__list" data-md-scrollfix>
  558. <li class="md-nav__item">
  559. <a href="../troubleshooting/limitations.html" class="md-nav__link">
  560. <span class="md-ellipsis">
  561. Limitations & Considerations
  562. </span>
  563. </a>
  564. </li>
  565. <li class="md-nav__item">
  566. <a href="../troubleshooting/analysis.html" class="md-nav__link">
  567. <span class="md-ellipsis">
  568. Analysis
  569. </span>
  570. </a>
  571. </li>
  572. </ul>
  573. </nav>
  574. </li>
  575. <li class="md-nav__item md-nav__item--nested">
  576. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10" >
  577. <label class="md-nav__link" for="__nav_10" id="__nav_10_label" tabindex="0">
  578. <span class="md-ellipsis">
  579. Reference
  580. </span>
  581. <span class="md-nav__icon md-icon"></span>
  582. </label>
  583. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
  584. <label class="md-nav__title" for="__nav_10">
  585. <span class="md-nav__icon md-icon"></span>
  586. Reference
  587. </label>
  588. <ul class="md-nav__list" data-md-scrollfix>
  589. <li class="md-nav__item">
  590. <a href="../reference/faq.html" class="md-nav__link">
  591. <span class="md-ellipsis">
  592. FAQ
  593. </span>
  594. </a>
  595. </li>
  596. <li class="md-nav__item">
  597. <a href="../reference/cookbook.html" class="md-nav__link">
  598. <span class="md-ellipsis">
  599. Cookbook
  600. </span>
  601. </a>
  602. </li>
  603. </ul>
  604. </nav>
  605. </li>
  606. </ul>
  607. </nav>
  608. </div>
  609. </div>
  610. </div>
  611. <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
  612. <div class="md-sidebar__scrollwrap">
  613. <div class="md-sidebar__inner">
  614. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  615. <label class="md-nav__title" for="__toc">
  616. <span class="md-nav__icon md-icon"></span>
  617. Table of contents
  618. </label>
  619. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  620. <li class="md-nav__item">
  621. <a href="#what-is-a-doorway" class="md-nav__link">
  622. <span class="md-ellipsis">
  623. What is a Doorway?
  624. </span>
  625. </a>
  626. </li>
  627. <li class="md-nav__item">
  628. <a href="#creating-a-doorway" class="md-nav__link">
  629. <span class="md-ellipsis">
  630. Creating a Doorway
  631. </span>
  632. </a>
  633. </li>
  634. <li class="md-nav__item">
  635. <a href="#placement-rules" class="md-nav__link">
  636. <span class="md-ellipsis">
  637. Placement Rules
  638. </span>
  639. </a>
  640. </li>
  641. <li class="md-nav__item">
  642. <a href="#the-doorway-component" class="md-nav__link">
  643. <span class="md-ellipsis">
  644. The Doorway Component
  645. </span>
  646. </a>
  647. <nav class="md-nav" aria-label="The Doorway Component">
  648. <ul class="md-nav__list">
  649. <li class="md-nav__item">
  650. <a href="#connectors-blockers" class="md-nav__link">
  651. <span class="md-ellipsis">
  652. Connectors &amp; Blockers
  653. </span>
  654. </a>
  655. <nav class="md-nav" aria-label="Connectors &amp; Blockers">
  656. <ul class="md-nav__list">
  657. <li class="md-nav__item">
  658. <a href="#ensuring-correct-placement-of-doorway-prefabs" class="md-nav__link">
  659. <span class="md-ellipsis">
  660. Ensuring Correct Placement of Doorway Prefabs
  661. </span>
  662. </a>
  663. </li>
  664. <li class="md-nav__item">
  665. <a href="#tags" class="md-nav__link">
  666. <span class="md-ellipsis">
  667. Tags
  668. </span>
  669. </a>
  670. </li>
  671. </ul>
  672. </nav>
  673. </li>
  674. </ul>
  675. </nav>
  676. </li>
  677. <li class="md-nav__item">
  678. <a href="#doorway-sockets" class="md-nav__link">
  679. <span class="md-ellipsis">
  680. Doorway Sockets
  681. </span>
  682. </a>
  683. <nav class="md-nav" aria-label="Doorway Sockets">
  684. <ul class="md-nav__list">
  685. <li class="md-nav__item">
  686. <a href="#purpose" class="md-nav__link">
  687. <span class="md-ellipsis">
  688. Purpose
  689. </span>
  690. </a>
  691. </li>
  692. <li class="md-nav__item">
  693. <a href="#default-socket" class="md-nav__link">
  694. <span class="md-ellipsis">
  695. Default Socket
  696. </span>
  697. </a>
  698. </li>
  699. <li class="md-nav__item">
  700. <a href="#creating-custom-sockets" class="md-nav__link">
  701. <span class="md-ellipsis">
  702. Creating Custom Sockets
  703. </span>
  704. </a>
  705. </li>
  706. <li class="md-nav__item">
  707. <a href="#overriding-matching-behaviour" class="md-nav__link">
  708. <span class="md-ellipsis">
  709. Overriding Matching Behaviour
  710. </span>
  711. </a>
  712. </li>
  713. </ul>
  714. </nav>
  715. </li>
  716. </ul>
  717. </nav>
  718. </div>
  719. </div>
  720. </div>
  721. <div class="md-content" data-md-component="content">
  722. <article class="md-content__inner md-typeset">
  723. <h1 id="core-concepts-doorways">Core Concepts: Doorways</h1>
  724. <h2 id="what-is-a-doorway">What is a Doorway?</h2>
  725. <p>Doorways are the fundamental mechanism DunGen uses to <strong>connect your Tiles together</strong>. They act as designated attachment points on your Tile prefabs. When generating a dungeon, DunGen attempts to align Doorways from adjacent Tiles to form connections and build the layout.</p>
  726. <p>You define potential connection points by adding Doorway components to your Tile prefabs, as initially covered in the <a href="../getting-started/2-doorways.html">Getting Started</a> guide.</p>
  727. <hr />
  728. <h2 id="creating-a-doorway">Creating a Doorway</h2>
  729. <ol>
  730. <li>Inside your Tile prefab, create an <strong>empty GameObject</strong> where you want a potential connection to form.</li>
  731. <li>Add the <strong>Doorway component</strong> (<code>Add Component &gt; DunGen &gt; Doorway</code>) to this empty GameObject.</li>
  732. <li>Position this empty GameObject precisely (see Placement Rules below).</li>
  733. <li>Ensure this Doorway GameObject is a child of your main Tile prefab's root object.</li>
  734. </ol>
  735. <hr />
  736. <h2 id="placement-rules">Placement Rules</h2>
  737. <p>Correct Doorway placement is <strong>crucial</strong> for DunGen to function properly.</p>
  738. <ul>
  739. <li><strong>Edge of Bounds:</strong> The Doorway's position <em>must</em> lie on the <strong>edge</strong> of the Tile's calculated Axis-Aligned Bounding Box (AABB). If a doorway lies inside the bounds, the bounding box will be shrunk to match its position (potentially causing some geometry to protrude outside the bounding box).</li>
  740. </ul>
  741. <div class="admonition warning">
  742. <p class="admonition-title">Concave Shapes</p>
  743. <p>Doorways cannot be placed on concave sections of a Tile's boundary. They must be accessible from outside the Tile's AABB. See the <a href="../troubleshooting/limitations.html">Limitations</a> page for more details.</p>
  744. </div>
  745. <ul>
  746. <li><strong>Orientation (Z-Axis):</strong> The Doorway GameObject's <strong>local forward (Z) axis</strong> (the blue arrow in the Scene view gizmo) <strong>must point directly outwards</strong>, away from the Tile's interior. This defines the connection direction.</li>
  747. <li><strong>Orientation (Y-Axis):</strong> By default, the doorway's up axis will point towards positive Y. This is the usual up-vector for 3D scenes, but if you're working in 2D, ensure the Doorway's orientation matches your project's "up" direction so connections form correctly in the 2D plane.</li>
  748. </ul>
  749. <hr />
  750. <h2 id="the-doorway-component">The Doorway Component</h2>
  751. <p>The Doorway component holds all the information DunGen needs about this specific connection point:</p>
  752. <ul>
  753. <li><strong>Socket:</strong> This is perhaps the most important setting for controlling connections. It assigns a <strong>Doorway Socket</strong> asset to this doorway. See the dedicated <a href="#doorway-sockets">Doorway Sockets</a> section below for details.</li>
  754. <li><strong>Hide Conditional Objects?:</strong> If checked, connector and blocker scene objects will be hidden to reduce clutter in-editor. This setting has no effect at runtime</li>
  755. </ul>
  756. <hr />
  757. <h3 id="connectors-blockers">Connectors &amp; Blockers</h3>
  758. <p>These sections control what appears at the Doorway's location depending on whether it gets used in the final layout:</p>
  759. <ul>
  760. <li>
  761. <p><strong>Connectors:</strong> Objects placed here are <strong>enabled or spawned</strong> when this Doorway successfully <strong>connects</strong> to another Doorway on an adjacent Tile.</p>
  762. <ul>
  763. <li><strong>Use Case:</strong> Door frames, open doorways, dynamic <a href="../advanced-features/doors.html">Door</a> objects, visual connection flourishes.</li>
  764. <li><strong>Priority:</strong> If both connecting doorways try to spawn a Connector prefab, the one with the <strong>higher priority value</strong> wins and its prefab is spawned. If priorities are equal, one is chosen randomly.</li>
  765. </ul>
  766. </li>
  767. <li>
  768. <p><strong>Blockers:</strong> Objects placed here are <strong>enabled or spawned</strong> when this Doorway remains <strong>unused</strong> (is not connected to another Tile).</p>
  769. <ul>
  770. <li><strong>Use Case:</strong> Walls, closed doors, rubble piles, bookcases - anything to block the unused opening.</li>
  771. </ul>
  772. </li>
  773. </ul>
  774. <p>Both Connectors and Blockers share these configuration options:</p>
  775. <ul>
  776. <li><strong>Random Prefab:</strong> A list where you can assign prefabs to be potentially spawned at the Doorway's position and orientation. The prefab instance will be attached to the Doorway GameObject.<ul>
  777. <li><strong>Weights:</strong> Each prefab has a <a href="weighting.html">Weight</a> controlling its relative chance of being chosen if multiple prefabs are listed. Only <em>one</em> prefab is chosen per connected doorway pair.</li>
  778. <li><strong>Avoid Rotation?:</strong> If checked, the spawned prefab will retain its own prefab rotation instead of inheriting the Doorway's rotation. Useful for props that shouldn't rotate with the doorway.</li>
  779. </ul>
  780. <div class="admonition note">
  781. <p class="admonition-title">Note</p>
  782. <p>For Connectors, one prefab per connected doorway pair will be spawned. For Blockers, one prefab per Doorway component will be spawned.</p>
  783. </div>
  784. </li>
  785. <li><strong>Scene Objects:</strong> A list of GameObjects already present <em>within the Tile prefab itself</em> (as children somewhere) that should be enabled/disabled based on the Doorway's connection state.<ul>
  786. <li>Unlike prefabs, <em>all</em> GameObjects listed here are affected (enabled if the condition is met, disabled otherwise).</li>
  787. </ul>
  788. </li>
  789. </ul>
  790. <hr />
  791. <h4 id="ensuring-correct-placement-of-doorway-prefabs">Ensuring Correct Placement of Doorway Prefabs</h4>
  792. <p>If you're using Connector or Blocker Prefabs (as opposed to Scene Objects), getting the position and rotation right is critical. Since the instantiated prefab will be parented to the Doorway GameObject, it will inherit its position and rotation.</p>
  793. <p>While there are options for <code>Position Offset</code> and <code>Rotation Offset</code>, it's better to just create the prefab with the appropriate offsets built-in. Here's a solid process for doing this:</p>
  794. <ol>
  795. <li>Find an existing Doorway in one of your Tiles.</li>
  796. <li>Create a new GameObject and name it appropriately (e.g., "Standard Doorway Blocker").</li>
  797. <li>Parent the empty GameObject to your Doorway and reset its transform (in the inspector, right-click on <code>Transform</code> and choose <code>Reset</code>).</li>
  798. <li>Add the geometry you want to the new GameObject. Move and rotate <strong>only the child objects</strong>, not the root GameObject. This will ensure that all the geometry will be in the correct place when the prefab is instantiated later.</li>
  799. <li>When done, drag the root GameObject into the project view to turn it into a prefab. We don't need it in the scene hierarchy any more so feel free to delete it.</li>
  800. <li>Assign the new prefab to one of the lists as described earlier.</li>
  801. </ol>
  802. <hr />
  803. <h4 id="tags">Tags</h4>
  804. <ul>
  805. <li><strong>Functionality:</strong> Allows you to assign one or more custom tags to this Doorway.</li>
  806. <li><strong>Purpose:</strong> These tags are used by custom <a href="../advanced-features/connection-rules.html">Tile Connection Rules</a> to allow or deny connections between specific tiles based on the type of doorways DunGen is trying to connect. Tags are extremely versatile and can be used for any number of purposes in your own code.</li>
  807. </ul>
  808. <hr />
  809. <h2 id="doorway-sockets">Doorway Sockets</h2>
  810. <h3 id="purpose">Purpose</h3>
  811. <p>Doorway Sockets are <strong>identifier assets</strong> used to <strong>filter potential connections</strong>. By default, DunGen will only connect two Doorways if they <strong>both share the exact same Socket asset</strong>.</p>
  812. <p>This is essential for:</p>
  813. <ul>
  814. <li><strong>Different Sizes:</strong> Preventing a small doorway from connecting to a large one. Create separate Socket assets like "Small Archway Socket" and "Large Archway Socket" and assign them accordingly.</li>
  815. <li><strong>Different Styles:</strong> Ensuring a "Cave Mouth" doorway only connects to another "Cave Mouth", not a "Castle Door".</li>
  816. <li><strong>Special Connections:</strong> Defining unique sockets for specific connection types, like ladders or teleporters, that shouldn't connect to standard doorways.</li>
  817. </ul>
  818. <h3 id="default-socket">Default Socket</h3>
  819. <p>DunGen includes a "Default" socket. If all your doorways are identical in size and type, you can simply use this default socket for all of them.</p>
  820. <h3 id="creating-custom-sockets">Creating Custom Sockets</h3>
  821. <p>If you need different types of connections:</p>
  822. <ol>
  823. <li>Right-click in the Project view.</li>
  824. <li>Navigate to <code>Create &gt; DunGen &gt; Doorway Socket</code>.</li>
  825. <li>Give the new Socket asset a descriptive name.</li>
  826. <li>Assign this new Socket asset to the <code>Socket Group</code> field on the relevant Doorway components in your Tile prefabs.</li>
  827. </ol>
  828. <hr />
  829. <h3 id="overriding-matching-behaviour">Overriding Matching Behaviour</h3>
  830. <p>While default behaviour requires sockets to match exactly, you can implement more complex logic using <a href="../advanced-features/connection-rules.html#method-2-code-based-rules-advanced">Code-Based Connection Rules</a>.</p>
  831. <hr />
  832. <p>Doorways, combined with Sockets and their Connector/Blocker configurations, are the core elements that allow DunGen to intelligently piece together your pre-designed Tiles into coherent and varied dungeon layouts.</p>
  833. </article>
  834. </div>
  835. <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
  836. <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
  837. </div>
  838. <button type="button" class="md-top md-icon" data-md-component="top" hidden>
  839. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
  840. Back to top
  841. </button>
  842. </main>
  843. <footer class="md-footer">
  844. <nav class="md-footer__inner md-grid" aria-label="Footer" >
  845. <a href="archetypes.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: Archetypes">
  846. <div class="md-footer__button md-icon">
  847. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
  848. </div>
  849. <div class="md-footer__title">
  850. <span class="md-footer__direction">
  851. Previous
  852. </span>
  853. <div class="md-ellipsis">
  854. Archetypes
  855. </div>
  856. </div>
  857. </a>
  858. <a href="dungeon-flow.html" class="md-footer__link md-footer__link--next" aria-label="Next: Dungeon Flow Asset">
  859. <div class="md-footer__title">
  860. <span class="md-footer__direction">
  861. Next
  862. </span>
  863. <div class="md-ellipsis">
  864. Dungeon Flow Asset
  865. </div>
  866. </div>
  867. <div class="md-footer__button md-icon">
  868. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg>
  869. </div>
  870. </a>
  871. </nav>
  872. <div class="md-footer-meta md-typeset">
  873. <div class="md-footer-meta__inner md-grid">
  874. <div class="md-copyright">
  875. <div class="md-copyright__highlight">
  876. Copyright &copy; Aegon Games Ltd.
  877. </div>
  878. Made with
  879. <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
  880. Material for MkDocs
  881. </a>
  882. </div>
  883. </div>
  884. </div>
  885. </footer>
  886. </div>
  887. <div class="md-dialog" data-md-component="dialog">
  888. <div class="md-dialog__inner md-typeset"></div>
  889. </div>
  890. <script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "content.code.copy", "content.tabs.link", "announce.dismiss", "header.autohide", "navigation.footer", "navigation.indexes", "navigation.top", "navigation.tracking"], "search": "../assets/javascripts/workers/search.f8cc74c7.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
  891. <script src="../assets/javascripts/bundle.c8b220af.min.js"></script>
  892. </body>
  893. </html>