mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-03-21 19:23:41 +00:00
* These two are easy * !!!runlevel_flags the fact it was global.runlevel_flags.len has me a bit...iffy on this. * !!!json_cache Same as above. used global. * player_list & observer_mob_list * mechas_list * this wasn't even used * surgery_steps * event_triggers * landmarks_list * dead_mob_list * living_mob_list * ai_list * cable_list * cleanbot_reserved_turfs * listening_objects * silicon_mob_list * human_mob_list * Update global_lists.dm * joblist * mob_list * Update global_lists.dm * holomap_markers * mapping_units * mapping_beacons * hair_styles_list * facial_hair_styles_list * Update global_lists.dm * facial_hair_styles_male_list * facial_hair_styles_female_list * body_marking_styles_list * body_marking_nopersist_list * ear_styles_list * hair_styles_male_list * tail_styles_list * wing_styles_list * escape_list & rune_list & endgame_exits these were all really small * endgame_safespawns * stool_cache * emotes_by_key * random_maps & map_count * item_tf_spawnpoints * narsie_list * active_radio_jammers * unused * paikeys * pai_software_by_key & default_pai_software * plant_seed_sprites * magazine_icondata_keys & magazine_icondata_states * unused * ashtray_cache * light_type_cache * HOLIDAY!!! this one was annoying * faction stuff (red?!) * Update preferences_factions.dm * vs edit removal * backbaglist, pdachoicelist, exclude_jobs * item_digestion_blacklist, edible_tech, blacklisted_artifact_effect, selectable_footstep, hexNums, syndicate_access * string_slot_flags and hexdigits->hexNums * possible_changeling_IDs * vr_mob_tf_options * vr_mob_spawner_options * pipe_colors * vr_mob_spawner_options * common_tools * newscaster_standard_feeds * Update periodic_news.dm * changeling_fabricated_clothing * semirandom_mob_spawner_decisions * id_card_states * Update syndicate_ids.dm * overlay_cache & gear_distributed_to * more * radio_channels_by_freq * Update global_lists.dm * proper * default_medbay_channels & default_internal_channels default_internal_channels is weird as it has a mapbased proc() but that proc is never called... * valid_ringtones * move this * possible_plants * more * separate these moves xeno2chemlist from a hook to a new global list. * tube_dir_list * valid_bloodreagents & monitor_states * Junk * valid_bloodtypes * breach_burn_descriptors & burn * more!! appliance_available_recipes seems uber cursed, re-look at later * Appliance code is cursed * wide_chassis & flying_chassis * allows_eye_color * all_tooltip_styles * direction_table * gun_choices * severity_to_string * old event_viruses * description_icons * MOVE_KEY_MAPPINGS * more more * pai & robot modules * Update global_lists.dm * GEOSAMPLES Also swaps a .len to LAZYLEN() * shieldgens * reagent recipies * global ammo types * rad collector * old file and unused global * nif_look_messages * FESH * nifsoft * chamelion * the death of sortAtom * globulins * lazylen that * Update global_lists.dm * LAZY * Theese too * quick fix --------- Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
/* The overmap system allows adding new maps to the big 'galaxy' map. Idea is that new sectors can be added by just ticking in new maps and recompiling. Not real hot-plugging, but still pretty modular. It uses the fact that all ticked in .dme maps are melded together into one as different zlevels. Metaobjects are used to make it not affected by map order in .dme and carry some additional info. ************************************************************* Metaobject ************************************************************* /obj/effect/mapinfo, sectors.dm Used to build overmap in beginning, has basic information needed to create overmap objects and make shuttles work. Its name and icon (if non-standard) vars will be applied to resulting overmap object. 'mapy' and 'mapx' vars are optional, sector will be assigned random overmap coordinates if they are not set. Has two important vars: obj_type - type of overmap object it spawns. Could be overriden for custom overmap objects. landing_area - type of area used as inbound shuttle landing, null if no shuttle landing area. Object could be placed anywhere on zlevel. Should only be placed on zlevel that should appear on overmap as a separate entitety. Right after creation it sends itself to nullspace and creates an overmap object, corresponding to this zlevel. ************************************************************* Overmap object ************************************************************* /obj/effect/map, sectors.dm Represents a zlevel on the overmap. Spawned by metaobjects at the startup. var/area/shuttle/shuttle_landing - keeps a reference to the area of where inbound shuttles should land -CanPass should be overriden for access restrictions -Crossed/Uncrossed can be overriden for applying custom effects. Remember to call ..() in children, it updates ship's current sector. subtype /ship of this object represents spacefaring vessels. It has 'current_sector' var that keeps refernce to, well, sector ship currently in. ************************************************************* Helm console ************************************************************* /obj/machinery/computer/helm, helm.dm On creation console seeks a ship overmap object corresponding to this zlevel and links it. Clicking with empty hand on it starts steering, Cancel-Camera-View stops it. Helm console relays movement of mob to the linked overmap object. Helm console currently has no interface. All travel happens instanceously too. Sector shuttles are not supported currently, only ship shuttles. ************************************************************* Exploration shuttle terminal ************************************************************* A generic shuttle controller. Has a var landing_type defining type of area shuttle should be landing at. On initalizing, checks for a shuttle corresponding to this zlevel, and creates one if it's not there. Changes desitnation area depending on current sector ship is in. Currently updating is called in attack_hand(), until a better place is found. Currently no modifications were made to interface to display availability of landing area in sector. ************************************************************* Landable Ships ************************************************************* Ship - Vessel that can move around on the overmap. It's entire z-level(s) "move" conceptually. Shuttles - Vessel that can jump to shuttle landmarks. Its areas move by transition_turfs. Landable Ship - Vessel that can do both. Sits at a special shuttle landmark for overmap movement mode. ************************************************************* Guide to how make new sector ************************************************************* 0.Map Remember to define shuttle areas if you want sector be accessible via shuttles. Currently there are no other ways to reach sectors from ships. In examples, 4x6 shuttle area is used. In case of shuttle area being too big, it will apear in bottom left corner of it. Remember to put a helm console and engine control console on ship maps. Ships need engines to move. Currently there are only thermal engines. Thermal engines are just a unary atmopheric machine, like a vent. They need high-pressure gas input to produce more thrust. 1.Metaobject All vars needed for it to work could be set directly in map editor, so in most cases you won't have to define new in code. Remember to set landing_area var for sectors. 2.Overmap object If you need custom behaviour on entering/leaving this sector, or restricting access to it, you can define your custom map object. Remember to put this new type into spawn_type var of metaobject. 3.Shuttle console Remember to place one on the actual shuttle too, or it won't be able to return from sector without ship-side recall. Remember to set landing_type var to ship-side shuttle area type. shuttle_tag can be set to custom name (it shows up in console interface) 5.Engines Actual engines could be any type of machinery, as long as it creates a ship_engine datum for itself. 6.Tick map in and compile. Sector should appear on overmap (in random place if you didn't set mapx,mapy) TODO: shuttle console: checking occupied pad or not with docking controllers ?landing pad size detection non-zlevel overmap objects field generator meteor fields speed-based chance for a rock in the ship debris fields speed-based chance of debirs in the ship a drone EMP nebulaes */