NEUS Projects
SL2 Mapping Environment (8/21/2020) - Printable Version

+- NEUS Projects (https://neus-projects.net/forums)
+-- Forum: Sigrogana Legend 2 (OOC) (https://neus-projects.net/forums/forumdisplay.php?fid=8)
+--- Forum: Submissions (https://neus-projects.net/forums/forumdisplay.php?fid=6)
+---- Forum: Mapping (https://neus-projects.net/forums/forumdisplay.php?fid=43)
+---- Thread: SL2 Mapping Environment (8/21/2020) (/showthread.php?tid=1800)



SL2 Mapping Environment (8/21/2020) - Neus - 09-23-2015

The SL2 Mapping Environment is a BYOND environment that you can use the BYOND map editor to create new maps for the game with. If you are unfamiliar with the BYOND map editor, it's a very simple point-and-click editor, and the environment has comments in some of the files to help. Further help can be sought on this forum.

Download Link (08/21/2020)

This .rar contains everything you need to create maps for the game. Extract it to a folder, open up the .dme, read stuff, and so on. The ease of use will likely depend on how used you are to BYOND's map editor, but if you need help or want to ask basic questions, I'll make a topic for that. People who know how to work the map editor or know the answer can then give you the help you need!


Re: SL2 Mapping Environment (v1) - Neus - 09-28-2015

SL2 Mapping Environment v2 is out. Download link in the OP. This one contains the following new inclusions;
  • A new variable for doors that determines if closing and opening it should also change its opacity or not. (change_opacity; 1 is normal behavior, 0 does not change opacity).
  • A bunch of tac_field objs and premade_battle turfs/objs to help create new battlefield maps. Refer to the new file in Old Placeables for how to set them up, or look at the new battle backgrounds example map to see how they're set up in SL2.



Re: SL2 Mapping Environment (v2) - Neus - 06-19-2016

SL2 Mapping Environment v2.2 is now available. Included in this version is the Argentyle Caverns maptiles and placeables, as well as the Argentyle Caverns map file itself as an example map.


Re: SL2 Mapping Environment (v2) - Snake - 05-11-2017

Hello! I'm not Dev and sorry for posting this here, but.

Everyone will find some cursed error that will make the map maker go bonkers, so for whoever faces this error (It's mostly a one-time thing, post 'fix'), here's the link on how to fix it, just to save some time. http://www.neus-projects.net/viewtopic.php?f=42&t=2328&p=13111#p13111 All credits to Mivereous.

Don't forget to press Ctrl + K after.


Re: SL2 Mapping Environment (7/10/2019) - Neus - 05-24-2020

http://www.neus-projects.net/sl2mapping052420.rar

This version contains the old Cellsvich as per a request in suggestions.


RE: SL2 Mapping Environment (5/24/2020) - Neus - 07-02-2020

The link in the post above is once again active.

The next version is being worked on still and will include 47-state autojoining for various tile types, which should make mapping terrain, cliffs, walls, and pathways much faster and easier. I'm currently in the process of converting some existing icons and turf types (a few each day between working on other things), as well as testing the autojoining matching, so once I feel like I have everything useful together, I'll upload it then.

That will probably be sometime this month (July).


RE: SL2 Mapping Environment (5/24/2020) - Neus - 08-21-2020

Additions:
- Location Saving; The mapping environment will save the location you were last at to make testing maps between adjustments easier.
- Turf click: Clicking a turf will show its icon_state, y_end (for cliffs and buildings), autojoin_elevate, and x,y,z coordinates. This is useful if you have any issues with autojoining.
- Autojoining; Support for 47 state autojoining. Essentially this means that you can avoid the busywork of setting up icon states exactly as you want them by letting the game join with adjacent tiles for you.

You can see an example of this in the autojoin testing map and the mountain path map. (To get to them, compile the environment and note the order of the 'loading [map].dmm', then use set-z to go to the z level that matches its order. IE, if autojoin testing.dmm is third in the list, use set-z 3.)

You can also check the respective .dmm files to see how they're setup.

General Autojoin Guide:

- You do not really have to do anything special to make autojoining work. The default behavior is likely fine for most cases. However, in the event that you want to change the way a certain turf joins with other tiles, you can make a new definition (DO THIS IN #New Stuff AND NOT IN THE DEFAULT AUTOJOIN FILES.) and change them accordingly:
  • t_type - When set to a path type (IE, /turf/autojoin/my_thing), this turf will autojoin towards adjacent turfs of that type. By default, this is used with cliff type autojoin tiles if there are any walls they should join with - this allows them to 'smooth' into vertical sections of the wall.
  • aj_paths, aj_walls, aj_terrain, aj_cliffs, aj_building, aj_roof - When set to 1, this turf will autojoin with any other adjacent turfs of that specific type. For example, terrain type autojoin turfs have aj_walls, aj_paths, aj_building, and aj_roof set to 1 by default - this allows the terrain to continue uninterrupted when it encounters these tiles. (Otherwise, they would not join, and you would have 'edges' around these turfs, which looks quite bad.)

Autojoin Turf Types:
  • paths - These are generally intended to be paths. Usually it's a good idea to utilize an icon state with transparency so that when you place it on the map, the tile below it will show through.
  • walls - These are walls that border the tiles they occupy, which are dense and opaque. Their autojoin_elevate is 1 by default so that front-facing cliff walls will work with them.
  • terrain - This is the generic terrain that covers the ground. By default, it will join with walls, paths, building, and roof type autojoin turfs (so that it looks like actual ground and you don't get odd edgiing around those turfs). By default, these are non-dense, however special directional density and global density can be setup using various procedures (though, you generally don't have to worry about this.)
  • cliffs - These are essentially 'front-facing' walls like the edges of a cliff. They are dense, but not opaque. They generally have a t_type set to the wall autojoin turf that they're meant to 'fall off' from, or for special instances such as cliff walls from terrain elevation differences, those terrain turfs instead. They also will not join with other cliffs of the same type unless they both end on the same y position (to show things like jagged cliff edges or multiple layers of depth, etc.)
  • building - These are buildings. They function similar to cliffs in that they do not join with other turfs of the same type unless both 'rows' end on the same y position. Their autojoin_elevate is set to null, meaning that any terrain that will join with it, will still join with it regardless of its elevation. (For example, if you wanted to put a building on a hill made of high elevation autojoin terrain.)
  • roof - These tiles are the rooves for various buildings. Just like buildings they have autojoin_elevate of null, for the same reasons. Note that you can set the color of certain roof types by modifying its color variable to a hex value or a color matrix.

autojoin_elevate:

- Autojoining supports a variable called autojoin_elevate (default of 0). This determines the joining rules of other autojoin turfs, even those of the same type, that have different elevation. cliffs, by default, are treated as having 1 elevation higher than their actual autojoin_elevate var for their specified t_type (this is so things such as terrain will join with them properly).

There are only a few times you may need to worry about this variable. Its primary purpose is to support same terrain turf stacking (such as in the mountain_path.dmm map). If you are using elevated turfs along with cliff walls, just make sure you use the same autojoin_elevate on each level. IE, if you have a default terrain turf, and want to add cliff walls, simply leave the cliff walls at the default value as well. Essentially, simply use the same autojoin_elevate value for the cliffs as the terrain tile they will end on. (You do not need to take into account the additional +1 given to the cliffs for t_type.)

Tilesetter:

- Generally, if requested, I will try and convert existing tiles used in the game to the autojoin format for the mapping environment. If you want to do this yourself, for some reason, you can use a program called Tilesetter (available for free here: https://www.tilesetter.org/ ) to do so. (Note: Please only use resources which are freely available for use or that you created yourself. Please do not use things such as RPG Maker tilesets, unless the author specifies they are free to use.)

You can find more information on how to use Tilesetter on the website. Once you have a working blob set, select all of it (starting from the top left of the very first tile, to the bottom right empty tile directly below the bottom right most tile. If you select more than this, it will not work.) and export it into .png format.

Then, create a new .dmi file. Uncheck 'use size from file', make sure the DMI Size is 32x32, and click Graphic -> Import. Select the .png file you just exported. Once this is done, save the .dmi file and close it.

In the mapping environment, use the verb 'covner-from-tilesetter47'. Select the .dmi file you just made. You will then be prompted to save the converted .dmi file (you can simply overwrite the .dmi file you selected, or save it to a new icon, whatever you prefer.) This new .dmi will have all of its states automatically and named for use in the autojoining system.

From there you can simply set your autojoin turf's icon to this .dmi and all should work as intended.

Final Notes:
- If your autojoin turf icon features transparency in one of its states, there is some behavior regarding the map editor that you should be aware of. If the icon_state of the turf you are placing completely fills the 32x32 icon space, it will replace every other turf in the tile you place it on. This is normal and perfectly fine behavior if every icon_state will be the same.

If you have, for example, a situation like dark_forest's icons, where there are things such as corners that show the tile underneath of them, then you will want to make sure the icon_state that you are placing them down with has some transparency as well. If you look in icons/autojoin/autojoin_terrain_darkforest.dmi for example; I have added an icon_state called 'e1' that features a hole in the middle.

When you place an icon that is not fully covering 32x32, such as this state, the map editor will add the turf below it to the newly placed one as an underlay. However, the turf underneath of it is only an underlay; it will not, for example, autojoin with other turfs, etc. Its appearance will not be changed. This may cause some some problems when you are layering these turfs.

If you need an underlay to have a specific icon_state, you will have to right-click that turf and set it manually. This should generally not be a huge issue, but is something to note if the map layers get complex.

- You can add icon_states to the autojoin icons freely, such as for the above example, and you can set the icon_state of autojoin turfs you lay down to anything (such as the above) and it will still autojoin properly. Do not, however, modify the existing states in the icon file.