Commit Graph

132 Commits

Author SHA1 Message Date
Neerti
fe33977812 Adds Submap (PoI) Seeding Procedure
Mostly ports /tg/'s method of seeding submaps into specific z-levels.
Due to the low number of submaps present, all of the PoIs are guaranteed to spawn. As more are added, this should fix itself.
2017-11-21 19:21:39 -05:00
Cameron Lennox
15a6472d14 Pol Sync 2017-10-08 17:44:25 -04: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
Leshana
18b1828631 Merge branch 'master' of https://github.com/PolarisSS13/Polaris into polaris-sync-20170630 2017-06-30 22:31:43 -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
Leshana
bce8cfad6d Converts the lighting process controller to a StonedMC subsystem
* No changes to lighting logic at all, it still processes sources, corners, and overlays in that order.
* Also optimized the initial creation of lighting overlays, and made it include CHECK_TICKs
* Removed the statistics gathering, at least for now.
2017-06-16 23:08:41 -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
Leshana
9c3bbb7505 Converts the mob process controller to a StonedMC subsystem 2017-06-12 22:46:47 -04:00
Leshana
8d129759ed 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-11 23:48:15 -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
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
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
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
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
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
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
Neerti
1d9e7c8c08 works on planet stuff 2017-02-06 20:45:21 -05:00
Neerti
3e3036aaa8 Correct new and old event tickers. 2016-10-02 18:39:56 -04:00
Neerti
699e04adf9 Adds Groundwork for New Event System
Adds what I hope to be able to make a sort of intelligent system that in the future will be able to decide what event would be the best to choose at any given moment.  A lot of this will probably get rewritten later.
You can use the new debug verb Show GM Status to have it show some data about itself, such as player activity across the whole server.
Currently, the system cannot actually run any events, as they don't exist and it's been disabled.  The plan is to have the events themselves do most of the heavy lifting for stuff like set-up and weights.
When the overarching system is more refined, a lot of new events will be madem and most of our old ones will be ported, and improved upon too.
For now, adding this lets me see what the system thinks about a round that has people playing on it and not just me on a test server.
2016-10-02 12:35:16 -04:00
SinTwo
eabefc538a Revert "Merge branch 'master' of https://github.com/PolarisSS13/Polaris into NanoGrade"
This reverts commit 6bb5409349, reversing
changes made to f6a83d5ee0.
2016-08-15 12:58:00 -04:00
SinTwo
fe46fac5cc final new NanoUI fixes and tgui port 2016-07-27 23:01:26 -04:00
Yoshax
f75d509e7f Ports event system from Bay 2016-06-01 22:05:04 +01:00
Yoshax
0fb98bbabd Scheduler now uses btime, and other improvements 2016-06-01 17:56:07 +01:00
Datraen
996ce92f7f Merge pull request #1184 from Yoshax/510prep
Ports Byond 510 preperations from Bay
2016-03-20 13:45:40 -04:00
Yoshax
8be10d96dd Ports Byond 510 preperations from Bay
Updates comment

Updates supply file
2016-03-14 18:21:44 +00:00
Kelenius
acc78a8000 Changes types of ghosts and eyes
``/mob/dead/observer`` -> ``/mob/observer/dead``
``/mob/eye`` -> ``/mob/observer/eye``

Reason being that they are similar in that they both don't interact with
the world in any way. Some procs were shared, some checks as well, and
it overall makes more sense this way. Plus, there were no ``/mob/dead``
mobs.
2016-02-20 15:36:05 +03:00
Kelenius
c9c9dde819 Removes old unticked code 2016-02-01 12:47:20 +03:00
PsiOmega
709840f848 Merge remote-tracking branch 'upstream/dev-freeze' into dev
Conflicts:
	code/modules/admin/DB ban/functions.dm
2015-09-26 08:48:37 +02:00
PsiOmega
145d8d91ef Merge remote-tracking branch 'upstream/master' into dev-freeze
Conflicts:
	code/_helpers/unsorted.dm
2015-09-26 08:43:06 +02:00
GinjaNinja32
8ed4faf7b2 Add proc/crash_with, fix two incorrect qdel calls 2015-09-23 13:29:54 +01:00
PsiOmegaDelta
23a3433e67 Moves nanomanager.close_uis(src) into datum/proc/Destroy() instead of /obj/Destroy() now that NanoUI supports datums. 2015-09-08 08:32:09 +02:00
PsiOmegaDelta
9057655da6 Merge remote-tracking branch 'upstream/dev-freeze' into dev
Conflicts:
	code/modules/clothing/clothing.dm
	code/modules/clothing/spacesuits/spacesuits.dm
	code/modules/clothing/spacesuits/void/merc.dm
	code/modules/clothing/spacesuits/void/void.dm
	code/modules/mob/living/carbon/human/examine.dm
	code/modules/mob/living/silicon/ai/ai.dm
2015-08-24 10:31:30 +02:00
PsiOmegaDelta
c376c08cc0 Merge remote-tracking branch 'upstream/master' into dev-freeze
Conflicts:
	code/game/objects/structures/girders.dm
	code/modules/mob/living/carbon/human/human_damage.dm
2015-08-24 10:23:12 +02:00
Atlantis
5811b6021e Machinery controller now reports amounts of powernets and pipenets as well. 2015-08-20 23:06:52 +02:00
Atlantis
e30e461843 Corrects supermatter fluctuations v2
- Better implementation of #10714
- This fix corrects the issue by merging pipenet process to machinery process to ensure order of execution doesn't change randomly. This shouldn't have any performance effect as pipenet process doesn't have much work anyway (not to be confused with air process that runs ZAS, this one only called process() on each pipenet). Screenshot of profiler (pipenet process highlighted, idle server with one player, engine set up) http://i.imgur.com/ecCg6rS.png
- Unlike previous fix, this does not come with various game-affecting side effects, players shouldn't see a change (except for the fact that odd fluctuations introduced by devmerge disappear). Previous fix buffed engine output as side effect, and caused one TEG to generate considerably more than second TEG, which caused TEGs to begin sparking despite overall output being below 1MW.
2015-08-20 22:23:45 +02:00
PsiOmegaDelta
120ce3f20c Merge remote-tracking branch 'upstream/dev' into 150705-SecretAdminDatums
Conflicts:
	code/modules/admin/topic.dm
2015-08-20 14:16:35 +02:00
Zuhayr
7e8713039a Merge branch 'master' of https://github.com/Baystation12/Baystation12 into dev-freeze 2015-08-16 05:40:47 -07:00
mwerezak
4b21f5f8ad Fixes pipes disappearing when wrenching fails 2015-08-15 15:46:52 -04:00