Map Merger: Difference between revisions

From Yogstation-13
Jump to navigation Jump to search
imported>Jordie0608
(Guide to using map merger tool)
 
(Adds disclaimer on python version not being definite. See https://discord.com/channels/134720091576205312/825400622852603914/830551839056986184)
 
(15 intermediate revisions by 7 users not shown)
Line 1: Line 1:
Before any change to a map, it is good to use the Map Merger tools. What these do is cut down the number of lines which Dream Maker thinks have changed, since it usually interprets any change to the map as a rewrite of all ~8000 lines.
'''Before you PR any change to a map, you need to use the Map Merger tools.'''


The Map Merger tools presently only work for windows as they utilize .bat files.
This is required for a few reasons:


If you have difficulty using these tools, ask for help in irc://irc.rizon.net/coderbus
# It rewrites the map to minimize differences between different versions of the map (DreamMakers map editor rewrites a lot of the tile keys). This makes the git diff between different map changes much smaller.
# Maintainers can actually verify the changes you are making are what you say they are by simply viewing the diff (for small changes at least).
# The less changes there are in any given map diff, the easier it is for git to merge it without running into unexpected conflicts, which in most cases you have to either manually resolve or require you to remap your changes.


== Using the tools ==
If you have difficulty using these tools, ask for help in [https://discord.gg/0keg6hQH05Ha8OfO #mapping].
 
==Using mapmerger==
{|
{|
|-
|-
|'''1. Install Java'''
|'''1. Install Python 3.7'''  
|If you don't have Java already installed it can be downloaded from: [http://www.java.com/en/download/index.jsp]
|It can be found [https://www.python.org/downloads/ here]. Future versions of Python may or may not work, the following guide was tested with Python 3.7.
|-
|'''2. PATH Java'''
|To test if Java is in your PATH, open Git Bash and type "Java". If it says "unknown command" you will need to add JAVA/bin to your PATH. See here for how: [https://www.java.com/en/download/help/path.xml]
|-
|'''3. Backup'''
|It's not strictly necessary to, but usually a good idea to make a backup of your map at this point.
|-
|-
|'''2. PATH Python'''
|This step is mostly applicable to windows users, you must make sure to add python to your path. [https://file.house/DA6H.png There will be an option for this when you install python.]
|-
|-
|'''4. Prepare map'''
|'''3. Prepare Maps'''
|Run prepare_Map.bat in the tools/mapmerge/ directory.
|Run "Prepare Maps.bat" in the \tools\mapmerge2 directory.
|-
|-
|'''5. Edit your map'''
|'''4. Edit your map'''
|Make your changes to the map here. Remember to save them!
|Make your changes to the map here. Remember to save them and compile!
|-
|-
|'''6. Clean map'''
|'''5. Clean map'''
|Run clean_Map.bat in the tools/mapmerge/ directory. Don't worry if it says there are ~8000 differences, just ignore that for now.
|Run "mapmerge.bat" in the \tools\mapmerge2 directory. Scroll through the list and type the appropriate map number(s).
|-
|-
|'''7. Check differences'''
|'''7. Check differences'''
|Use your application of choice to look at the differences between revisions of your code. If it's reading ~8000 line differences then you've done something wrong, go back and try again.
|Use your git application of choice to look at the differences between revisions of your code and commit the result.
|-
|-
|'''8. Commit'''
|'''8. Commit'''
|Your map is now ready to be committed, rejoice.
|Your map is now ready to be committed.
|}
|}


== Editing different maps ==
[[Category:Guides]] [[Category:Game Resources]]
The Map Merger tools are configured for the main map, presently tgstation 2.1.2, and will not work if you're trying to edit a different map. To fix this, open both prepare_map.bat and clean_map.bat and change "set MAPFILE=tgstation.2.1.2.dmm" to the map which you're trying to edit. For instance, if you want to use the Map Merger tools for a map called "MyFirstMap.2", you would change it to "set MAPFILE=MyFirstMap.2".
{{Contribution guides}}

Latest revision as of 05:24, 11 April 2021

Before you PR any change to a map, you need to use the Map Merger tools.

This is required for a few reasons:

  1. It rewrites the map to minimize differences between different versions of the map (DreamMakers map editor rewrites a lot of the tile keys). This makes the git diff between different map changes much smaller.
  2. Maintainers can actually verify the changes you are making are what you say they are by simply viewing the diff (for small changes at least).
  3. The less changes there are in any given map diff, the easier it is for git to merge it without running into unexpected conflicts, which in most cases you have to either manually resolve or require you to remap your changes.

If you have difficulty using these tools, ask for help in #mapping.

Using mapmerger

1. Install Python 3.7 It can be found here. Future versions of Python may or may not work, the following guide was tested with Python 3.7.
2. PATH Python This step is mostly applicable to windows users, you must make sure to add python to your path. There will be an option for this when you install python.
3. Prepare Maps Run "Prepare Maps.bat" in the \tools\mapmerge2 directory.
4. Edit your map Make your changes to the map here. Remember to save them and compile!
5. Clean map Run "mapmerge.bat" in the \tools\mapmerge2 directory. Scroll through the list and type the appropriate map number(s).
7. Check differences Use your git application of choice to look at the differences between revisions of your code and commit the result.
8. Commit Your map is now ready to be committed.
Contribution guides
General Hosting a server, Setting up git, Guide to GitKraken, Downloading the source code, Guide to contributing to the game, Reporting issues, Game resources category, Guide to changelogs
Database (MySQL) Setting up the database, MySQL
Coding Understanding SS13 code, SS13 for experienced programmers, Text Formatting
Mapping Guide to mapping, Room Structure, Map merger
Spriting Guide to spriting
Wiki Guide to contributing to the wiki, Wikicode, Styleguide