Commit Graph

714 Commits

Author SHA1 Message Date
Atermonera
50efc3c01f Merge pull request #5502 from Anewbe/glob_is_hungry_for_souls
Partially ports the GLOB system
2018-08-22 11:32:13 -07:00
Verkister
e02cb60542 Fixes incorrect ETA in crew transfer announcement 2018-08-18 12:27:55 +03:00
Anewbe
eebb627f00 Partially ports the GLOB system 2018-08-14 18:14:09 -05:00
Neerti
6ffd299fd7 Merge pull request #5461 from Atermonera/supply_nanoUI
Refactors supply controller
2018-08-04 02:55:15 -04:00
Atermonera
9c081d5cc7 Merge pull request #5466 from Woodratt/08022018_HolomapPort
Holomap Port
2018-08-03 17:06:37 -07:00
Woodratt
cd20465d38 Holomap Port
- Port of Holomaps from Virgo
2018-08-02 15:52:56 -07:00
atermonera
ef6c5abf15 Refactors supply controller.
Supply consoles now run nanoUI
2018-07-31 19:11:02 -07:00
Neerti
8639d49c34 Begins work on lightning. 2018-07-28 11:08:30 -04:00
atermonera
95398466de refactors supply controller 2018-07-22 13:44:44 -07:00
Neerti
bca4277e4f Fixes indoor weather, hopefully for real this time. 2018-07-19 20:25:05 -04:00
Neerti
d3754f8bfc Attempts to fix indoor rain. 2018-07-17 21:30:02 -04:00
Arokha Sieyes
434950bbcc Fixes some planets controller runtimes
Comes up if you use outdoor turfs in places other than planet z-levels
2018-07-04 21:58:22 -04:00
Mechoid
4cd51ff79f Allows AIs to produce and control maint/construction/mining drones. (#5282)
* Allows AIs to control maint/construction drones.

* Radio control online.

* Things Not Saving

* Drone control respects intellicores.

* Config control, AI drones are disableable if the AI isn't an antag.

* There's a diff so it must have saved. Right?

* No un/wrenching of the core.

* Complies to Replies.
2018-06-15 19:14:16 -05:00
Anewbe
9e28740697 Merge pull request #5322 from VOREStation/pol-planetstart
Move planets to SSplanets
2018-06-15 18:05:25 -05:00
Arokha Sieyes
462effc1d2 Creates SSplanets subsystem
For SPEEDYNESS

It probably works. I mean it's hard to sit there for 8 hours and test it. But it seems to work okay. At worst if it doesn't you'll have weather that doesn't make sense. ;v
2018-06-02 19:09:35 -04:00
Arokha Sieyes
d8eebde5a2 Planet controller startup delay 2018-06-02 12:36:47 -04:00
Leshana
30f10be83e Split and clarify global lists of processing vs non-processing machinery. (#5307)
* Renaming local var 'machines' to avoid confusion with the global var of same name.

* Delete the unused process scheduler machinery.dm file.  Long since replaced with SSmachines

* Split and clarify global lists of processing vs non-processing machinery.

- Renamed the list of processing machinery from "machines" to "processing_machines"
- Added new global list "machines" to be a list of all machines.
- Since nearly every reference to machines actually wanted to iterate over all machines anyway, this works out great.
2018-05-28 12:56:49 -07:00
Arokha Sieyes
6b4be2d7a8 Paranoid logging and byond account age
Adds the PARANOIA_LOGGING setting to config.txt (and PANIC_BUNKER which was missing for some reason) and updates example.

PARANOIA_LOGGING (also available as a verb for admins in Server) begins notifying admins of any 0day byond accounts, or users who have never joined before. For when you don't quite want to panic bunker.

Also makes this information available in player panel. Requires SQL connection.
2018-05-22 23:03:53 -04:00
Atermonera
44cc2e26c7 Merge pull request #5229 from Neerti/4/29/2018_remove_world_REMOVE_WORLD
for(var/bad_code in world)
2018-05-01 13:00:18 -07:00
Neerti
62ce4196e5 Bonus: Make Travis Show the Active Edges 2018-04-29 18:43:02 -04:00
Neerti
be73b8c36a for(var/bad_code in world)
Removes a very large amount of world loops.
Adds a macro to painlessly generate a global list, and the needed code to modify the list when an object is made or deleted automatically.
Cleans up some commented out code.
2018-04-29 17:55:04 -04:00
Neerti
e3e1a7ad9c Upgrades Planetary Weather to vis_contents (#5170)
* Upgrades Planetary Weather to vis_contents
Makes the weather on Sif use vis_contents instead of overlays, which should fix all weather-related icon issues, and may or may not be faster.
Weather updates instantly now.
Fixes indoor PoIs having outdoor weather.

* Tries to appease Travis
2018-04-28 20:40:11 -07:00
Anewbe
a75c575491 Merge pull request #5200 from VOREStation/vplk-stonedmc-sync
Port "The Punisher" (subsystems/MC impovement) from TG
2018-04-24 15:20:57 -05:00
Kyle Spier-Swenson
1884742ca2 Random micro optimization to the mc I thought of while looking at something else
We can save the second ss_flags access by using bitflag ma~~th~~gic
(Ported from tgstation/tgstation#36352)
2018-04-20 17:55:08 -04:00
Leshana
0094c74b64 Ports "The punisher!"
* From tgstation/tgstation#27196
* The mc will now punish subsystems that overrun their tick allotment with less allotment in later fires.
* The punisher also delays the next fire of subsystems that overrun. Because of how this is ends up being calculated, this will almost never actually kick in, but sometimes subsystems like garbage will overrun into multiple ticks, so delaying their next fire is needed.
* The punisher does not delay the next fire of SS_TICKER subsystems (tgstation/tgstation#34964)
Note: SS_KEEP_TIMING subsystems do not get their next fire delayed.
2018-04-20 17:55:07 -04:00
Leshana
63257bf40b Use define constants for subsystem init order and priority.
Replaced all hard coded numbers for subsystem priority with defines in subsystem.dm - Much easier to see them in order that way.
2018-04-20 13:18:55 -04:00
Leshana
c4d714dea8 Replaces set_light with direct update_lumcount for planet suns.
Setting lights on every single turf takes way too long.  Instead of havingto create a light source for every single outdoor turf, we find the corners to light up and apply the sunlight to them directly.
We also make sure to avoid having planet sunlight being 4x too strong, which would happen if we naively looped over all corners of all outdoor turfs.
Note: This has the side effect of making the sun's light and color ACCURATELY reflected on turfs.  Previous code doubled up on light and appeared brighter than it should.
2018-04-18 21:54:58 -04:00
Leshana
471e544a61 Revert "Merge pull request #4779 from Neerti/2/1/2018_make_the_sun_not_lag_again"
This reverts commit f4df29713d, reversing
changes made to 337e5e7436.
2018-04-18 18:08:16 -04:00
Neerti
d81c990e22 Merge branch 'master' of https://github.com/PolarisSS13/Polaris into 2/1/2018_make_the_sun_not_lag_again 2018-04-13 11:26:12 -04:00
Aronai Sieyes
7d3aec96fd Arranges lots of things into planes (#5072)
* Rearranges a billion things into planes

* Make cryotubes fancy

* Update Travis

* Fix hiding logic
2018-03-28 12:59:12 -07:00
Neerti
70ac478aea Merge pull request #5065 from VOREStation/vs-port-3204
[PORT] Revamp logging for consistency
2018-03-20 21:13:47 -04:00
Atermonera
c1ed3a0c6c Merge pull request #5060 from Anewbe/away_kicker
AFK Kicker should affect ghosts and people in the lobby
2018-03-19 12:17:24 -07:00
Atermonera
2e63e856d0 Merge pull request #5053 from Anewbe/zas_priority
Should speed up ZAS
2018-03-16 11:25:18 -07:00
Anewbe
5212fa152b Species names should now use defines 2018-03-15 20:24:45 -05:00
Arokha Sieyes
7f93f3cca7 POLARIS: Moves daily logs into being folders rather than files 2018-03-13 18:20:59 -04:00
Anewbe
e2bade91c8 AFK Kicker should affect ghosts and people in the lobby 2018-03-13 15:02:49 -05:00
Anewbe
9f56416684 Merge pull request #5037 from VOREStation/aro-updateicons
Rewrite human/update_icons()
2018-03-11 21:03:10 -05:00
Anewbe
d4d2f1d0ad Should speed up ZAS 2018-03-11 19:41:00 -05:00
Anewbe
6c2c57fb65 Merge pull request #5044 from VOREStation/vplk-qdel-log-oops
Reduce qdel log file by 150000%
2018-03-10 15:04:32 -06:00
Leshana
b666e76d7d Reduce qdel log file by 150000%
Fix indenting error that caused it to log repeatedly.  Also put it in its own file to match the pattern used by overlays and initialize.
2018-03-09 23:53:15 -05:00
Leshana
74332405a8 Optimize scheduler process by sorting its task list
It previously had to iterate over EVERY task in its list every time.   With lots of queued tasks that is slow.
Instead we sort it by schedule time.   That means when iterating thru list, if we get to a single task that is in the future, so are all remaining.
2018-03-08 22:27:47 -05:00
Leshana
4c5b7655b5 U_I Phase 2.5: Fix *swish deleting tail overlay
All more cases of "don't call apply/remove multiple times!
2018-03-08 19:34:01 -05:00
Leshana
741e02407a Port SSoverlays & Convert turfs to use it (#5004)
* Added "Display Initialize() Log" admin debug command so you can see it mid-round.

* Ported the core of the overlays management subsystem from /tg

- Added SSoverlays subsystem for compiling overlay lists and applying them to atoms in a controlled anti-lag subsystem.
- Added vars and procs to atom which should eventually replace all direct interaction with BYOND's /atom/overlays var outside the subsystem.
- Added OVERLAY_QUEUED flag to var/atom/flags bitfield.
- Added small framework for subsystem performance tracking. So far used only by SSoverlays
- Added admin debug command "Display overlay Log" to see performance stats mid-round.

* Fix runtime on universal pipe adaptor update_icons

* Workaround for appearance_bro not initialized

Unfortuantely BYOND's initialization order is strange, and the appearance_bro var is only half initialized when map starts to load, causing errors.  We temporarily fix by moving it to be a global-scoped global.

* Convert fire alarms to use add_overlay() A good first test.

* Convert turfs to use add_overlays(), eliminating the turf_overlay_holder!

- Converted as much as I could find about turf overlays to use add_overlay().
- This should be enough to stop BYOND from crashing, so we can eliminate the turf_overlay_holder hack.
- This also lets us remove the anti-corruption hacks from walls and open space.
- ZAS gas overlays can use priority overlays, so this also fixes the gas-goes-away-when-crowbarring-plating issue.
- Stuff like that

* Convert turf overlay interactions to use add_overlay.

Note: This is a plain and simple conversion of existing code to use SSoverlays. However I look at the line changed, and note that that line likely never fully worked as intended, as it has no way of re-applying itself.
I would make it use a priority overlay, but there is no code present for *removing* said overlay from neighbors when it is no longer required.  That code should be implemented by original author.
2018-03-05 19:43:23 -06:00
Arokha Sieyes
2d192edeb7 POLARIS?: Attempt to find the source of qdel'd images 2018-02-20 10:00:48 -05:00
Aronai Sieyes
78d7ef1d72 Port Bay-style attack animations (#4827)
* POLARIS: Attack animations

* POLARIS: Overlay flick system

You can't do this in Byond, unfortunately, so here's some code from /tg/

* Make attack anims a preference
2018-02-15 22:02:04 -06:00
Neerti
b95562a2ff Planetary Lighting Optimization Attempt
Changes how lighting is applied to the Surface.

The current method works by making every tile glow in a specific color and intensity. The issue is that when it is time to change the color/intensity, it can take the light controller a considerable amount of time for it to update every tile (estimated to be around 14,000 tiles), which can take a minute or two for the lighting controller to finish.

New method is to have a special light source for the surface, with different properties to the 'regular' light source that most things use for making light. The special version doesn't care about line of sight or lighting falloff. This special light source is applied to a series of invisible 'sun' objects that get generated as the planetary controller gets created. When the lights need to change, the lighting controller has to change a much smaller group of objects instead of literally every outdoor tile.
2018-02-10 07:18:08 -05:00
Leshana
676efe73e5 Move Xenoarcheology globals and initialization into a subsystem
* Move the global spawning_turfs lists from master_controller into SSxenoarch.  Rename all references.
* Move the call to SetupXenoarch from master_controller.setup() to SSxenoarch.Initialize()  Put SSxenoarch init order near the end to match current behavior.
2018-02-06 01:08:10 -05:00
Anewbe
f56597efed Merge pull request #4727 from VOREStation/vplk-bitfields
Code fix for stat_entry on NO_FIRE subsystems
2018-02-05 22:46:25 -06:00
Leshana
2c90995dcc Let objects register to be informed when shuttles have been setup.
* Switch /obj/shuttle_connector to use it instead of the icky process hack.
2018-02-05 15:50:15 -05:00
Leshana
8bec38ee00 Implement SSshuttles subsystem
* Replaces the shuttle_controller and shuttle process with the shuttles subsystem.  Instead of docking ports being initialized by the game ticker, its part of the StonedMC Master init order.
* The main advantage of this is control over the initialization order, as well as letting Master be aware of CPU we're using up with shuttle processing.
* By being part of the Master init order, we reduce the uncertainty about "are objects initialized yet?" which is nice, since shuttle docks break if machines aren't finished initializing!
2018-02-05 15:50:14 -05:00