Guide to mapping: Difference between revisions

Jump to navigation Jump to search
m
shakedown
m (Adjusted layer values for o2/scrubber pipes to 2/4 respectively in the "Do Not Edit These On Map" section as that is the standard I've seen across maps. Also changed the suggested build layer to 3 as that's typically the free layer.)
m (shakedown)
 
Line 74: Line 74:
'''Airlock Lock Helper''' "/obj/effect/mapping_helpers/airlock/locked" - Used to bolt a door at the start of the round.<br>
'''Airlock Lock Helper''' "/obj/effect/mapping_helpers/airlock/locked" - Used to bolt a door at the start of the round.<br>
'''Airlock Unrestricted Side Helper''' "/obj/effect/mapping_helpers/airlock/unres" - Used to remove access restrictions when using the door from one side. The side the arrow faces '''away from''' is the side with no restrictions. See the cloning airlock on boxstation as an example.
'''Airlock Unrestricted Side Helper''' "/obj/effect/mapping_helpers/airlock/unres" - Used to remove access restrictions when using the door from one side. The side the arrow faces '''away from''' is the side with no restrictions. See the cloning airlock on boxstation as an example.
'''Mail Sorting Helper'''"/obj/effect/mapping_helpers/mail_sorting/" - Used on disposal mail sorting pipes to automatically assign the '''sortType''' var on the pipe during late load
===Randomized Templates===
===Randomized Templates===
This short guide will teach you to make a template for YogStation.dmm. It will be assuming you are making two cryo rooms for Medbay.
This short guide will teach you to make a template for YogStation.dmm. It will be assuming you are making two cryo rooms for Medbay.
Line 103: Line 105:
===Shuttles===
===Shuttles===
There are 3 types of shuttle dock:
There are 3 types of shuttle dock:
*Stationary - places where the shuttle can dock
* Stationary - places where the shuttle can dock
*Transit - shuttle as it moves
*Transit - shuttle as it moves
*Mobile - the place with the actual shuttle
*Mobile - the place with the actual shuttle
Line 123: Line 125:


The other variables of note is traveldir, which defines if the shuttle rotates on transit and its angle in degrees (imagine the shuttle is inside a circle, if you want the shuttle going right to left set it to 270 degrees).
The other variables of note is traveldir, which defines if the shuttle rotates on transit and its angle in degrees (imagine the shuttle is inside a circle, if you want the shuttle going right to left set it to 270 degrees).
====Dwidth and Dheight====
==== Dwidth and Dheight====
dwidth/dheight is the offset of the docking_port obj from the (0,0) bounding box corner. If dir = 1 (north), 0,0 is the bottom left corner. This changes for each direction, for example when dir = 2 it's the upper right corner. So dwidth and dheight identify where the bounding box starts relative to the docking port obj, whereas width and height determine the actual width and height of the bounding box.
dwidth/dheight is the offset of the docking_port obj from the (0,0) bounding box corner. If dir = 1 (north), 0,0 is the bottom left corner. This changes for each direction, for example when dir = 2 it's the upper right corner. So dwidth and dheight identify where the bounding box starts relative to the docking port obj, whereas width and height determine the actual width and height of the bounding box.


Line 154: Line 156:
===APC===
===APC===
Each new room needs at least one, this will provide all the power for the room. Any room that is very equipment heavy may need another APC to split the load and prevent early black outs. For each APC make sure the "name" var has an appropriate name (such as Clerk Office APC), the "dir" var is the appropriate direction (see the previous image on what it should be), the "pixel_x" and "pixel_y" vars are corrected, and the "areastring" var is the same as the area it is providing power for.
Each new room needs at least one, this will provide all the power for the room. Any room that is very equipment heavy may need another APC to split the load and prevent early black outs. For each APC make sure the "name" var has an appropriate name (such as Clerk Office APC), the "dir" var is the appropriate direction (see the previous image on what it should be), the "pixel_x" and "pixel_y" vars are corrected, and the "areastring" var is the same as the area it is providing power for.
===Wiring===
=== Wiring===
Make sure the wires lead from the main power grid to each powered APC. If any equipment in your new area requires a wire under it then line it up, connected to the main power grid, and under the machinery. Wires are also helpful when making electrical grills (just dot wire under a grill), make sure the wires touch the main power grid (or they won't shock people). Wiring on the maps are similar to wiring in-game, so if you play [[Engineering]] roles then this shouldn't be a problem.
Make sure the wires lead from the main power grid to each powered APC. If any equipment in your new area requires a wire under it then line it up, connected to the main power grid, and under the machinery. Wires are also helpful when making electrical grills (just dot wire under a grill), make sure the wires touch the main power grid (or they won't shock people). Wiring on the maps are similar to wiring in-game, so if you play [[Engineering]] roles then this shouldn't be a problem.
===Disposals===
===Disposals ===
[[File:MappingGuide2.png|thumb|left|200px|CMO Disposals.]]Most, if not all, rooms should have a disposals unit in them. The disposals unit pictured left is an example of what they should look like; "/obj/machinery/disposal/bin" with "/obj/structure/disposalpipe/trunk" underneath it. Then simply connect disposals pipes to it just like you would pipes.
[[File:MappingGuide2.png|thumb|left|200px|CMO Disposals.]]Most, if not all, rooms should have a disposals unit in them. The disposals unit pictured left is an example of what they should look like; "/obj/machinery/disposal/bin" with "/obj/structure/disposalpipe/trunk" underneath it. Then simply connect disposals pipes to it just like you would pipes.
[[File:MappingGuide3.png|thumb|200px|Connecting segments.]]There are two other types of disposal pipes, pictured in the image on the right: junction (top) and sorting (bottom).
[[File:MappingGuide3.png|thumb|200px|Connecting segments.]]Here is a list of disposal pipes, pictured in the image on the right: junction (top) and sorting (bottom).
Junction pipes serve a purpose like manifolds do to pipes, except they only allow anything coming into the pipe to go out one way. The arrow on the pipe shows the direction anything inside it will go.
<div class="toccolours mw-collapsible mw-collapsed">
'''Junctions'''
<div class="mw-collapsible-content">
A simple joiner of 2 pipes, 2 inputs to 1 output, a one-way junction
</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
'''Sorter'''
<div class="mw-collapsible-content">
like a junction but inverse, this pipe will sort out items into two outputs, tagged (items with altered '''sortType''' vars, [applies to packages marked by the destination tagger] '''sortType''' vars are found [https://github.com/yogstation13/Yogstation/blob/b01b48e41bcf98f330d6e2fb82afe2cac2ab1b07/code/_globalvars/lists/flavor_misc.dm here]) and unsorted (everything else).  


Sorting pipes check for destination tags (from [[Cargo]]) on objects passing through. If a destination tag is found with the same value as the sortType var on the pipe, then it is moved out of the main disposals line. In the image, objects passing through that are tagged to CMO will be moved out into the straight pipe on the right. SortType values for pipes can be found [{{Constant/Giturl}}/blob/b01b48e41bcf98f330d6e2fb82afe2cac2ab1b07/code/_globalvars/lists/flavor_misc.dm here].
when mapping we use disposal/sorting/mail and /sorting/wrap.
Mail sorting is what uses '''sortType''' var to determine where packages go.
Wrap sorting just checks if an item is wrapped in packaging paper or not, pulling wrapped packages. Best used in cargo delivery room to pull out packages that don't have a '''sortType''' applied or overflowed.
</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
'''Mapping Helper: mail_sorting'''
<div class="mw-collapsible-content">
Not a pipe but a helper to help quickly configure sorter pipes during mapping. Placing this over a /sorting/mail sorter will update '''sortType''' var of the pipe to what the helper contains. ''Note if you update the value of '''sortType''' before you place a helper over it will mess up the value what you are trying to assign to (med mail sending to viro). '''DO NOT''' use the /mail_sorting/department when assigning sort. do /department/room'' 
</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
'''Rotator'''
<div class="mw-collapsible-content">
A rotator is a 4-way intersecting pipe with 4 inputs and 4 outputs, depending on where an item enters it will rotate 90 degrees and outputs it that direction. ''(example: E + 90*= S)''
</div>
</div>
===Access===
===Access===
[[File:DoorAccessImage1.png|thumb|300px]]Access to doors is handled by req_access values. There are four when editing a door - req_access, req_access_txt, req_one_access, and req_one_access_txt. The ones we're concerned with are '''req_access_txt''' and '''req_one_access_txt'''.  
[[File:DoorAccessImage1.png|thumb|300px]]Access to doors is handled by req_access values. There are four when editing a door - req_access, req_access_txt, req_one_access, and req_one_access_txt. The ones we're concerned with are '''req_access_txt''' and '''req_one_access_txt'''.  
Line 201: Line 228:
* Debug tab, Debug verbs - enable, Mapping tab, Camera Report/Check Plumbing/Check Power/Test Areas. These will provide you with different checks.
* Debug tab, Debug verbs - enable, Mapping tab, Camera Report/Check Plumbing/Check Power/Test Areas. These will provide you with different checks.
'''If all your checks pass, then [[Map Merger|map merge]] and [[Setting up git|PR]] your change.'''
'''If all your checks pass, then [[Map Merger|map merge]] and [[Setting up git|PR]] your change.'''
==Before Making Your PR==
==Before Making Your PR ==
===Final Requirements===
===Final Requirements===
''This requirement assumes you have made a completely new map. If not, then ignore it and move on to map merger.''
''This requirement assumes you have made a completely new map. If not, then ignore it and move on to map merger.''
Line 235: Line 262:
To fix this problem you need to close dream maker (save the project first, obviously). Open your map (.dmm) file in a text editor, such as notepad or notepad++. Search (ctrl+f) through the file for step_x and step_y and remove any reference to it. Once no more instances of step_x or step_y are found in the file, save it and open it in dream maker once again. Compile the code and movement should work fine once more. Ask on our [{{Constant/Discordurl}} discord] if you need any extra help.
To fix this problem you need to close dream maker (save the project first, obviously). Open your map (.dmm) file in a text editor, such as notepad or notepad++. Search (ctrl+f) through the file for step_x and step_y and remove any reference to it. Once no more instances of step_x or step_y are found in the file, save it and open it in dream maker once again. Compile the code and movement should work fine once more. Ask on our [{{Constant/Discordurl}} discord] if you need any extra help.
{{Contribution guides}}
{{Contribution guides}}
[[Category:Guides]] [[Category:Game Resources]]
[[Category:Guides]]  
[[Category:Game Resources]]

Navigation menu