mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-31 12:01:47 +00:00
* Dynamic map loading prototype * Get the title screen working * Fixes the random pod bugs * map configs * Add back the asteroid * Ignore the rotate file * Fix some shit * More shit fixes * Babby's first json * Cyberboss confirmed shitcoder * Makes map rotation great again * Moves the map defines * Delete tgstation2.dm * Convert runtimestation * Convert PubbyStation * Convert OmegaStation * Convert Metastation * Convert Delta Station * Lol file extensions * Reee line endings * Take out the trash * Fix loadallmaps.dm * Deltaassssssstation? * Fix travis * Did I ASK you to change the line endings? * Remove votable maps * Cleanup * Previous config. Load configs in New. Fix splash * Fix this * More generic minetype * STOP TOUCHING THE LINE ENDINGS!!! * Add some flexibility to /obj/screen/splash * Fix the shit * Update gitignore * Smooth transition from last map * Better check * Missed this map rotate check * Remove these checks too * Prep for a future request by @kevinz000 * Fix z2 line endings * Solution for custom .dms * Rename some things, trim some fat * Fixes default map_config * Remove stale comment * Delete the previous config after loading * Don't try to open a non-existent file * Delete the old rotator script * And references to it * Line endings * More line endings * Del checks from when m-config may have not existed * LINE ENDINGS * Update the default map config * Map load error checking for what it's worth * Small cleanup * For case sensitive * File systems * Strip maprotate stuff from build script * Spruce up the _maps tree. Compile some empty space * Make travis simpler * LINEARU ENDARU!!! * tgstation TWO!!! * Lowercase mine type * Dummy dm's for testmerging * Fixes job ordering * If ghosts wanna watch the map load so be it * Let them know what's going on * Fixes z-transitions * Optimize z expansion further * Remove this old var * Fix wiznerd teleportation * Rmove butt * Does the thing * Moved temp configs to the data dir * Un-touch gitignore * Forgot templates.dm * Forgot to include the includer * Fair enough * SILENCE IMBECILE! * @Cyberboss still a fuckboi * Speed things up a bit * Fix a potential bug with the error message * Whatever
74 lines
3.7 KiB
Plaintext
74 lines
3.7 KiB
Plaintext
dmm_suite{
|
|
/*
|
|
|
|
dmm_suite version 1.0
|
|
Released January 30th, 2011.
|
|
|
|
defines the object /dmm_suite
|
|
- Provides the proc load_map()
|
|
- Loads the specified map file onto the specified z-level.
|
|
- provides the proc write_map()
|
|
- Returns a text string of the map in dmm format
|
|
ready for output to a file.
|
|
- provides the proc save_map()
|
|
- Returns a .dmm file if map is saved
|
|
- Returns FALSE if map fails to save
|
|
|
|
The dmm_suite provides saving and loading of map files in BYOND's native DMM map
|
|
format. It approximates the map saving and loading processes of the Dream Maker
|
|
and Dream Seeker programs so as to allow editing, saving, and loading of maps at
|
|
runtime.
|
|
|
|
------------------------
|
|
|
|
To save a map at runtime, create an instance of /dmm_suite, and then call
|
|
write_map(), which accepts three arguments:
|
|
- A turf representing one corner of a three dimensional grid (Required).
|
|
- Another turf representing the other corner of the same grid (Required).
|
|
- Any, or a combination, of several bit flags (Optional, see documentation).
|
|
|
|
The order in which the turfs are supplied does not matter, the /dmm_writer will
|
|
determine the grid containing both, in much the same way as DM's block() function.
|
|
write_map() will then return a string representing the saved map in dmm format;
|
|
this string can then be saved to a file, or used for any other purose.
|
|
|
|
------------------------
|
|
|
|
To load a map at runtime, create an instance of /dmm_suite, and then call load_map(),
|
|
which accepts two arguments:
|
|
- A .dmm file to load (Required).
|
|
- A number representing the z-level on which to start loading the map (Optional).
|
|
|
|
The /dmm_suite will load the map file starting on the specified z-level. If no
|
|
z-level was specified, world.maxz will be increased so as to fit the map. Note
|
|
that if you wish to load a map onto a z-level that already has objects on it,
|
|
you will have to handle the removal of those objects. Otherwise the new map will
|
|
simply load the new objects on top of the old ones.
|
|
|
|
Also note that all type paths specified in the .dmm file must exist in the world's
|
|
code, and that the /dmm_reader trusts that files to be loaded are in fact valid
|
|
.dmm files. Errors in the .dmm format will cause runtime errors.
|
|
|
|
*/
|
|
|
|
verb/load_map(var/dmm_file as file, var/x_offset as num, var/y_offset as num, var/z_offset as num, var/cropMap as num, var/measureOnly as num, no_changeturf as num){
|
|
// dmm_file: A .dmm file to load (Required).
|
|
// z_offset: A number representing the z-level on which to start loading the map (Optional).
|
|
// cropMap: When true, the map will be cropped to fit the existing world dimensions (Optional).
|
|
// measureOnly: When true, no changes will be made to the world (Optional).
|
|
// no_changeturf: When true, turf/AfterChange won't be called on loaded turfs
|
|
}
|
|
verb/write_map(var/turf/t1 as turf, var/turf/t2 as turf, var/flags as num){
|
|
// t1: A turf representing one corner of a three dimensional grid (Required).
|
|
// t2: Another turf representing the other corner of the same grid (Required).
|
|
// flags: Any, or a combination, of several bit flags (Optional, see documentation).
|
|
}
|
|
|
|
// save_map is included as a legacy proc. Use write_map instead.
|
|
verb/save_map(var/turf/t1 as turf, var/turf/t2 as turf, var/map_name as text, var/flags as num){
|
|
// t1: A turf representing one corner of a three dimensional grid (Required).
|
|
// t2: Another turf representing the other corner of the same grid (Required).
|
|
// map_name: A valid name for the map to be saved, such as "castle" (Required).
|
|
// flags: Any, or a combination, of several bit flags (Optional, see documentation).
|
|
}
|
|
} |