Splits process_machines() into 3 procs for its actions, trying to
figure out which is causing the lagspikes.
Signed-off-by: Mloc-Hibernia <colmohici@gmail.com>
This was probably bound to happen either way the previous version was based upon a faulty understanding of how the areas worked this is much more robust and only messes with the master areas
and master areas needing power updates call power updates for the each of it's child areas. Also added where messing with SMESes called for an update on all areas power consumption, probably
not required but doing so either way.
We also rebuild the active_areas list every 5 minutes, if you get a engineer that wants to build a new area off of the station with APC's set rebuild_all_areas in the master controller and it will
update instantly, otherwise wait 5 minutes. The only downside to this 5 minutes is you might get free energy until that area becomes active.
We no longer run auto_use_power() on every machine every tick.
We now have a global list of areas, and areas that have an APC in them (all_areas and active_areas) no more looping through world bullshit.
A bunch of snowflakey as fuck machines won't use_power() in their process, you get two options, active and idle, use them!
This means a lot of machines won't double dip on power as well so power usage for the station has dropped about 20%
Because everything is snowflakey as fuck we're going to have some machines that don't force an update on their power usage. Fuck them.
We should catch them with the root obj/machine/proc's forcing updates.
Adds an "Expensive Mobs" list that shows what mobs took more then 1 decisecond to process.
This way if mob controller is going nuts we can debug master controller and see why, or atleast see which mob it is.
as you don't need to provide the full data structure up-front, part of an effort to make NanoUI more accessible.
I have removed the carets (^) from all templates as they are not used any more.
For safety I moved the src_object and user checks from the master controller to the nanoui process proc.
------------------------------------------------------------
nanoui - For creating and updating browser UIs
manomanager - For managing nanouis
Includes the "D:\Development\SS13-TG\code\game\machinery\cryo.dm" rebuilt using Nano.
Templates are stored in /nano/templates
This code is in development, it's also not commented yet.
Adds insulation to doors, modifiable by admins from the ZAS setting panel.
Fixes a logic error with connections. (I am dumb some days)
Improves the runtime detection and reporting.
Improves "zone info" debug verb.
Delayed Jungle setup until after air master initializes
Master controller now properly ceases atmos simulation if runtimes occur (and are detected).
Cleanup more ZAS stuff. FEA_system.dm, ZAS/ZAS_Turfs.dm, ZAS_Zones.dm.
Canisters now autoconnect to portables connectors on creation. (Fixes airlocks not having attached canisters)
Doors can now be made which respect directional door types (e.g. windoors and directional firelocks) and is handled better.
Added in code to debug ZAS tile interactions, currently in the unchecked "Debug" file.
The blasted FloodFill proc now works properly, and zones are connecting right (Should finally fix that damn part of medbay not connecting to the hallway)
Plasma can contaminate again.
The master controller and world startup code has been reworked for faster server boots.
Fixed a runtime originating from a Away Mission map trying to create objects of type "null"
- Added a verb that breaks all airgroups into individually processing tiles and a verb that forces a group-rejoin attempt on all airgroups. Once the verb to break all air groups is used, they will not attempt to recreate until the recreate verb is used. In other words, this is for debugging, not goofing around. Verbs available in debug verbs.
- Some atmos code standardization
- Decreased the pressure resistance of most items by a factor of 10, meaning pressure will finally actually move items around!
I also attempted to speed up air movement, but it caused runtimes and everything moved in checkered patterns and I got scared so I didn't include it in this commit.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5554 316c924e-a436-60f5-8080-3fe189b3f50e
The old one still exists, mainly so the associated admin buttons still work.
At some point I'll add a nice little panel for event stuff and remove the old procs.
event.dm is pretty well commented, and it should be pretty easy to figure it out.
Casualties of the change are space dust (which should probably be implemented separately if we want it back), the black hole event (which was awful), space ninjas (which didn't turn up), ionstorms (the non-admin ones sucked anyway) and CLANG, which I will probably add at some point, if no one else does first.
Also, I removed pierott's throat from the disease outbreak list. f that s.
Thanks to Sukasa and BS12, as my system is loosely based off of theirs.
Thanks Giacom for help with structuring and especially commenting this.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5511 316c924e-a436-60f5-8080-3fe189b3f50e
The next type of mimic is for the staff of animation! They will copy the icon of the object they're copying and will set themselves stats based on the object too. They will not attack the bearer of the staff which made them animated.
Added the option to get the staff on the wizard's spell book.
Added a "friends" var to hostile mobs. It will make the simple animal ignore friends when choosing targets.
Changed the statues from /obj/effect/showcase to /obj/structure/showcase.
Added a new variable to projectiles, "shot_from" is the gun that shot the projectile. It's used to determine what staff animated the mob and it will then add that staff, so it can ignore it when choosing targets.
Added a wander var for simple animals, turning it to 0 will stop the simple animal from moving when idle.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5246 316c924e-a436-60f5-8080-3fe189b3f50e
I did find that your be special preferences, i.e: be alien, be traitor, be changeling and etc, are shared between preferences. I'll ask if this is intentional or not.
-Some minor stuff.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5175 316c924e-a436-60f5-8080-3fe189b3f50e
Removed all the voting-related adminverbs. It's all built into ooc vote verb.
Admins can now make custom votes for literally anything.
If a vote draws it will pick one of the winners at random.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4677 316c924e-a436-60f5-8080-3fe189b3f50e
Failsafe now checks the lighting_controller too. It will restart it if it doesn't progress for 5 cycles (same as MC)
datum/failsafe is now datum/controller/failsafe
The probability of lights breaking after spawn was reduced from tube:10 and bulb:25 to tube:2 bulb:5
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4674 316c924e-a436-60f5-8080-3fe189b3f50e
Things left to do mainly involves stuff interacting with Z8 - counting people as dead, making sure teleports don't work, etc.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4661 316c924e-a436-60f5-8080-3fe189b3f50e
Fixed the failsafe misreporting how long the MC has been dead.
Lighting initialization no longer 'interrupts' the master_controller setup().
Added updated powernet debugging tools. They're in my WIP folder. They are sexy c: It draws the powernet onto the map so you can see what's going on during debugging.
Added tachyon-doppler arrays. They're gonna be something for scientists to measure their bombs with rather than praying for the figures. Nothing spectacular.
Commented out switches, they aren't used and I've been fixing/testing powernets all day. Sorry. If you need them back just PM me and I'll fix them.
Known issues: the merging procs behave silly at intersections. I really tried to fix it but I think I'll make more progress just working on some powernet improvements.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4623 316c924e-a436-60f5-8080-3fe189b3f50e