Commit Graph

639 Commits

Author SHA1 Message Date
Anewbe
4459d7087a Revert "Does more prep for the Event Manager role" 2017-10-04 18:33:34 -05:00
Anewbe
c2c6b5949a Does more prep for the Event Manager role 2017-10-02 21:51:48 -05:00
Neerti
aa454c0e1d Adds Farm PoI
Also fixes various bugs with surface tiles, hopefully.
Adds some documentation to the map file system.
Adds a new 'plane' map, ideal for testing PoIs by loading them manually.
Makes space heaters glow orange.
Adds a new grille type for fancy surface windows.
Adds self planting hydro trays/dirts if a seed is on top of them when the map is loaded.
2017-09-26 01:44:06 -04:00
Neerti
e703d629c6 Fixes the Sun/Weather and Ports Vore's Lighting SS
New lighting system is needed to handle updating literally 14k+ tiles whenever the sun moves.  The straight port seems to have had no adverse effects from what I could see.  Don't know if it's more performant but it doesn't seem to be less.

I didn't expect the latter would be needed for the former.
2017-09-22 12:16:21 -04:00
Anewbe
6ffebcef6e Merge pull request #3775 from Neerti/9/8/2017_tg_maploader_port
Port's TG's Maploader
2017-09-11 17:17:23 -04:00
Neerti
1bc28c07c0 Port's TG's Maploader 2017-09-08 12:49:26 -04:00
Neerti
8f00965cc2 Merge branch 'master' of https://github.com/PolarisSS13/Polaris into 8/10/2017_make_xenobio_old_again
# Conflicts fixed:
#	code/modules/admin/topic.dm
#	code/modules/admin/verbs/debug.dm
#	code/modules/admin/view_variables/helpers.dm
#	code/modules/mob/living/simple_animal/simple_animal.dm
#	code/modules/mob/transform_procs.dm
#	maps/northern_star/polaris-1.dmm
#	polaris.dme
2017-09-05 00:58:27 -04:00
Neerti
4bfcec55f2 work 2017-09-04 21:52:47 -04:00
Woodratt
10c8586db0 Rough port of
a8c9bb786a

Unsure if I even did it correctly, but seems to function in the brief tests done, no compile errors.

In preparation of porting the massive number of floor decals for the new map.
2017-08-21 14:44:25 -07:00
Neerti
9d98406833 Makes Arrivals Shuttle Great
Arrivals shuttle now moves automatically to and from the station.  People still spawn onboard if they join the round with arrivals selected in preferences.
The shuttle is completely automated and will go to the station if someone boards it, and leave if nobody is onboard.
Changes some tape code so it can be mapped in.
Sadly the mapmerger is broken so the map file diff is massive.
2017-08-05 15:18:55 -04:00
Spades
7e4417d31f It's CentCOM not CentCOMM
I swear to god I have fixed this like three times already and somehow it
keeps coming back.
2017-07-21 04:29:39 -04:00
Neerti
7bd7e83250 Removes staff exemption for AFK kicking.
As requested by a few staff members, this serves to keep the staffwho list more representative of who is actually available to help.
The current inactivity timer is rather generous so hopefully this won't impede admins who are actually there.
2017-06-24 15:15:11 -04:00
Anewbe
3997a1510a Merge pull request #3526 from VOREStation/stonedmc-update
StonedMC Update & Hookup
2017-06-16 16:22:26 -05:00
Leshana
2cd91c8bfc Fix /datum/scheduled_task was unable to be GC'd and was deleted.
In addition to fixing the problem, it makes sense.  The observer pattern is overkill for an object type we own; doing it directly in Destroy() is more efficient.
2017-06-14 01:07:35 -04:00
Neerti
18012fa1d1 Port's Bay's Shuttle Cleanup
Shuttles now set themselves up upon being instantiated instead of relying on a monolithic proc in the shuttle controller.
Shuttles can now be defined more cleanly on a per-map basis, as well.
Accidentally fixes a broken admin shuttle.
2017-06-11 11:45:31 -04:00
Leshana
82e6049821 Actually hooks up the StonedMC to run its subsystems in Polaris
* Hooks up informing Master the gameticker actually starts and stops the round subsystems will actually fire! What ho!
* We should convert the gameticker as an MC subsystem someday, and probably completely rewrite it while we are at it becuase it is crazy.  But this should bridge the gap until then.
2017-06-10 19:01:58 -04:00
Leshana
fb92653ac9 Ports "Makes global master vars static"
* https://github.com/tgstation/tgstation/pull/27523
2017-06-10 19:01:58 -04:00
Leshana
6a8abd4f80 Ports tg improvements in StonedMC subsystem
* Ports /tg StonedMC Enhancement - Runlevels - Lets services more precicely define when they want to fire - in the lobby, during game, only after, etc. Includes bugfixes from:
  * https://github.com/tgstation/tgstation/pull/27132
  * https://github.com/tgstation/tgstation/pull/27338
  * https://github.com/tgstation/tgstation/pull/27576
  * https://github.com/tgstation/tgstation/pull/27519
* Ports Standardizes subsystem Shutdown order - https://github.com/tgstation/tgstation/pull/26228
2017-06-10 19:01:58 -04:00
Leshana
82e90a206c Ports "Better repeated MC crash handling"
* From https://github.com/tgstation/tgstation/pull/25813
* If the MC crashes: The problem subsystem will be rebooted on its 2nd strike and disabled on its third.
2017-06-10 19:01:58 -04:00
Leshana
60ffe4b00f Ports garbage collector improvements and bugfixes from tg
* Writes a log of qdel() problems in a condensed format at the end of each round - tgstation/tgstation/pull/26135
* Moves hard dels into their own proc so that it can be profiled more easily, and uses it for the various types.  Includes bugfixes too
  * https://github.com/tgstation/tgstation/pull/26210
  * https://github.com/tgstation/tgstation/pull/26570
* Fix a bug with qdeling non-datums - https://github.com/tgstation/tgstation/pull/27434
* Fix typo - https://github.com/tgstation/tgstation/pull/27730
2017-06-08 00:11:59 -04:00
Leshana
d6b68dabdb Standardize MC subsystem initialization boilerplate
* Based on https://github.com/tgstation/tgstation/pull/25386
* Create macro for defining new subsystem types.
* Create PreInit proc to handle setup that needs to be done before the map loads
* Rename garbage_controller subsystem to garbage so it matches its global SSgarbage variable name.
2017-06-07 23:23:46 -04:00
Leshana
e48b548f2b More and more Destroy() cleanups all across the board - Return qdel hints. 2017-06-05 23:01:41 -04:00
Leshana
d4ebcac3f6 Update radiation system for the new garbage collector. 2017-06-05 22:10:07 -04:00
PsiOmegaDelta
ebe5cc916d Port of @PsiOmegaDelta's Baystation12/Baystation12#16820
Ports tg's garbage collector subsystem and Destroy() returning qdel hints.
2017-06-05 22:10:06 -04:00
Anewbe
b9007d11a8 Merge pull request #3493 from VOREStation/just-stonedmc
Port of StonedMC master controller framework
2017-06-04 16:15:13 -05:00
Leshana
b17fb86721 Tweaks Statpanel and System Initialization 2017-06-01 21:42:08 -04:00
Leshana
90dff0ae63 Ports /tg's StonedMC Subsystem from Baystation12
* Partial port of @PsiOmegaDelta's https://github.com/Baystation12/Baystation12/pull/16820
* Only ports the StonedMC changes, not the garbage collector (forthcoming in future)
2017-05-30 21:00:37 -04:00
Leshana
2c8df87899 Tweak to Radiation Optimization
* Optimized garbage collection of radiation sources until we get qdel() hints.
* Made the RADIATION_LOWER_LIMIT configurable (option for people to save some cpu time)
* Added some comments and broke the proccessor into separate procs for profiling purposes
* Added a changelog.
2017-05-30 13:55:53 -04:00
Leshana
34c73dab69 Optimization/Rewrite of Radiation Controller
* The performance of the radiation controller as-is was not fast enough for inclusion in production servers, but it has some nice featuers, so rewrote it to be more performant.
* Instead of storing the radiation strength for every turf, we only store the sources of radiation, and calculate the strength only for mobs who might be in range.
   * Old method was ray-tracing to every turf in range whether anything was there to be irradiated or not.  Could be hundreds of turfs.  New method only lazily calcualtes strength at a turf if we actually need to know it.   Often times this is zero turfs if nobody is standing in engineering.
  * Removed the automatic processing of objects with "rad_power" set.  Objects are responsible for calling the repository to create/update their radiation sources.   Saves some extra overhead that in practice was redundant with other process controllers.
  * Also tweaked to be more respectful of qdel'd objects and added some comments.
2017-05-25 18:43:56 -04:00
Ben Reeve
6185bbd212 Unified radiation system 2017-05-22 16:24:34 +01:00
Anewbe
42fe5d9ed6 Merge pull request #3412 from VOREStation/pool-closed
Removes the datum pool, as it is not performant.
2017-05-08 17:21:24 -05:00
Leshana
347e759b10 Make the multi-z explosion strength scalar configurable.
* Its much easier to test out and decide what explosion scalar is nice if you can configure it.
* As an added bonus, by setting it to zero this lets you disable multi-z explosions altogether without turning off all of multi-z.
2017-05-04 20:27:15 -04:00
Leshana
44ff1a70c6 Removes the datum pool, as it is not performant.
* Creating new objects is cheap, in fact comparable to the cost of getting it out of the pool, so it doesn't help there.
* Placing items in the pool is far more expensive than letting them garbage collect due to the resetting of vars and such.
2017-05-04 01:58:33 -04:00
Anewbe
0207066256 Merge pull request #3332 from VOREStation/aro-pol-planets
Controllerized Planets
2017-04-22 09:36:04 -05:00
Arokha Sieyes
33c28bbcf3 Allows turf unalloc in planets 2017-04-18 22:03:04 -04:00
Arokha Sieyes
d00c5941ca Controllerized Planets
Controller with deferrals and SCHECKs to be specific. Won't lag while updating the sun, weather, or temperature.

Also moved some vars around. Namely the planet walls are stored on the planet, not in the weather_holder.

Planets now have their own turfs, the controller 'gives' them to the planets each cycle if there are any unallocated turfs in the global lists, to avoid iterating over other planets' turfs if you have more than one, then cuts the lists if you were crazy and some turf added some invalid type. This saves us type-checking in the for() loops later to make them crunch faster. The former operation should only happen once at the start of the game (and maybe very rarely when turfs are added/removed from a map during the game).

With regards to the temperature updates, rebuilding the zone entirely is an intensive operation. Instead we can use this new cheaty proc to do it from over here. ZAS code outside ZAS oh noooo. Well, the option is to snowflake this case into ZAS which is maybe worse?

Only downside to all this is that if you manually set weather and time it might take between 1-60 seconds for the controller to get around to checking if you wanted to update it. That's not that big a deal. If you really want you can now debug that controller and call doWork on it.
2017-04-18 20:08:22 -04:00
Leshana
9a7dda1ad1 Implements footstep sound system and adds sounds to various floor types.
* Adds system for turfs to have "footstep sounds" that play when someone walks over them.
* Adds system for floor types (the kind of turfs where you can put tiles on them) to support the footstep sounds.
* Adds sounds to plating, tiles, wood, and carpet floor types.
* Footstep sound system is configurable in game_options.txt, it can be turned off completely or the volume adjusted.
2017-04-18 11:33:44 -04:00
Neerti
22c329e906 Merge pull request #3305 from VOREStation/aro-pol-planets
Make planets more generic
2017-04-16 01:30:55 -04:00
Arokha Sieyes
aaeae6695a Make planets more generic
So that Sif doesn't have to be the only one!
2017-04-14 21:36:48 -04:00
Leshana
e8af4afc88 Port tg/paradise/good soft-edge lighting
Ports https://github.com/ParadiseSS13/Paradise/pull/6161
Its merged in nearly verbatim as far as the lighting module goes.
Changes outside the lighting module are merged based on our codebase.
2017-04-12 19:11:45 -04:00
Neerti
75cc189723 Merge pull request #3271 from VOREStation/aro-pol-panic
Quick & Dirty Panic Bunker Port
2017-04-11 21:55:59 -04:00
Neerti
f24a252a8e Merge pull request #3281 from VOREStation/fix-scheduled-task-controller
Fix null pointer runtime in scheduled task controller.
2017-04-11 21:54:37 -04:00
Leshana
4f3029fcb2 Fix null pointer runtime in scheduled task controller.
* If the "scheduler" controller is restarted by the process scheduler for
any reason, it will start throwing runtimes every status panel update
because the new replacement instance doesn't initialize its list of
schedule tasks.
* Fix that by copying over the unfinished list from the old instance, but
doing some safety checks to make sure it doesn't copy over bad stuff.
2017-04-11 19:16:35 -04:00
Arokha Sieyes
66327aecc7 Quick & Dirty Panic Bunker Port
Tested on our server, works. Doesn't work if you don't have a DB (how would it?).
2017-04-11 00:13:43 -04:00
Krausus
b183ce3ad2 Process deferral and profiling improvements
* Merges Krausus's https://github.com/ParadiseSS13/Paradise/pull/5472 from Paradise
2017-04-10 22:55:02 -04:00
Anewbe
88b0c6086e Antag Radio changes 2017-03-25 14:19:57 -05:00
Leshana
78563a608e Fix runtime in mob controller loop.
* Any nulls present in the mob_list would cause a runtime when checked if they are gcDestroyed.  Add a null check.
* Noticed that the object controller has the same bug, might as well fix now too.
2017-03-17 18:02:59 -04:00
Anewbe
ae599bb68d Merge pull request #3065 from Neerti/3/6/2017_invisible_spaceships
Ports Vore's Space Traffic Controller feature.
2017-03-13 15:59:09 -05:00
Neerti
b706595d57 Makes red alert and evacs silence the atc
Comments out military ships because lore for them is not finalized.
2017-03-13 07:41:10 -04:00
Neerti
9dbd05e8d4 Ports Vore's Space Traffic Controller feature.
Ports Vore's fluff spaceships that talk on comms every ~40 minutes.
2017-03-08 22:06:48 -05:00