Commit Graph

515 Commits

Author SHA1 Message Date
Lohikar
51c967d554 Kill a bunch of unneeded lists (#2851)
Removes a bunch of default lists from /obj, /obj/item, and /obj/structure, replacing them with either lazylists or adding behavior to the null value.

Null armor is now considered identical to having armor with 0 armor in each category, null attack_verb results in the text "attacked" being used.
2017-06-28 23:10:33 +03:00
Lohikar
300f238111 vg Holomaps (#2844)
Ports vorestation's implementation of /vg/'s holomaps.

Holomaps are an in-game object that shows a map of (most) of the station with departments highlighted, to aid in navigation around the station. Maintenance, high-security, and asteroid areas are excluded from the maps.

Adds approximately 1.5 seconds to server boot to generate maps.

Holomaps were added at:

Arrivals shuttle dock, north of checkpoint.
Surface level lift.
By entrance to security on main level.
North of the kitchen.
South of Engineering, near tech storage.
Beside the IA office.
Near the lift on each sub-level department.
2017-06-27 20:40:40 +03:00
Lohikar
bec02b1524 More lighting optimizations (#2789)
Mostly micro-optimizations on a few loops, but also includes more non-mem-hack optimizations for white light such as that created by the default sun.

Movable light updates are done on Move/forceMove now instead of Entered/Exited.

Removed pointless cache_u value.
2017-06-22 13:36:12 +03:00
Lohikar
05cceb7a1a Queued icon update tweaks (#2787)
changes:

Queued icon updates now update the atom's associated openspace overlay or openturf.
update_oo() renamed to update_above(), and moved up to /atom. Only meaningful on /turf (updates above openturf if present) and /atom/movable (updates associated OO if present).
Demoted SSfalling to a regular subsystem (1ds tickrate).
Increased SSlighting's tickrate from 2 ds to 1 ds.
2017-06-22 13:23:30 +03:00
Lohikar
8445d042dc Miscellaneous fixes (#2774)
changes:

Fixed various GC failures.
Converted integrated radios (used in PDA cartridges) to Initialize.
Added a missing Destroy to the QM PDA cartridge's integrated radio.
Fixed a runtime when mineturfs with no ore were destroyed by explosions.
Fixed a runtime when explosions attempted to Z-travel.
Minor radio performance improvements.
Converted radio globals to defines.
Changed the Security-I and Medical-I frequencies to use the same colors as their respective departments.
Fixes #2646.
2017-06-21 00:09:55 +03:00
Lohikar
fa5a8eecd9 PDA sorting fixes & tweaks (#2760)
changes:

Fixed the PDA list not being sorted.
PDAs now show if they have a pen in them or not in their examine text.
PDAs can be ctrl-shift-clicked to remove their pen.
Added a proc designed to simplify common mob sanity checks; see comments for documentation.
2017-06-19 01:26:24 +03:00
skull132
618c227107 ZAS blocks zones in places. (#2759)
Makes openturf stop ZAS zone propagation, so it would have smaller lists to scan while navigating air around. In effect, they work similarly to doors.
2017-06-19 01:08:08 +03:00
skull132
36cb778548 Add roofs (#2737)
Implements roofs
2017-06-17 22:18:39 +03:00
Lohikar
1423250412 Update DMM Suite (#2711)
Updates the DMM Suite from /tg/ upstream, adding the ability to load tgm format maps, tick-checks, and better compatibility with SSatoms / Initialize().

Also adds some framework for random ruin generation, though it is not functional yet.
2017-06-15 12:41:45 +03:00
Lohikar
0d08d096f0 Fix MultiZAS (#2614)
changes:

MultiZAS now actually works.
The ZAS connection diagnostic verb is now aware of MultiZ.
Potential performance improvement for ZAS connections.
Probably should not be merged until shuttles have roofs unless people want to take their chances at outrunning ZAS getting off the shuttle.
2017-06-10 22:38:41 +03:00
Lohikar
51c9007508 Conveyor Tweaks (#2638)
changes:

Conveyor belts are now tick-checked.
Added a conveyor_act proc so objects can override default conveyor behavior.
Conveyor belts no longer affect objects in zero-G.
Conveyor belts no longer use spawn.
2017-06-10 09:29:20 +03:00
Lohikar
42464b68e2 Timed verbs (#2620)
This PR adds a new helper (ADD_VERB_IN(target, time, verb)) to add verbs to a mob using timers instead of spawn.

Also converted a few instances of spawn-verb-adding to the new helper.
2017-06-05 23:36:35 +03:00
Lohikar
95fdd6f925 Kitchen tweaks (#2570)
changes:

Reduced power usage of oven and fryer.
Reduced warm up time of oven and fryer.
Oven now heats up to exactly 200C instead of to 198.85C.
Fixed some issues with cooking appliances' sanity checks.
Recipe datums are now initialized once instead of per-appliance.
Moved some cooking verbs to the Objects tab instead of a null category.
2017-06-05 11:20:55 +03:00
skull132
61826d2fa1 SOFTREF macro (#2574)
Adds a SOFTREF macro because it's an actual PITA to write out. Refactors all applicable usecases of it to use it. I've left out some NanoUI stuff because you know my preference at being explicit when needed.
2017-06-02 20:22:38 +03:00
Lohikar
eef922d41d Additional macros (#2571)
Adds some nonsensical defines from /tg/ that may prove useful for debugging.

Thanks BYOND.
2017-06-02 16:08:54 +03:00
Alberyk
681a658890 Replaces all references in game of the exodus with the nss aurora II (#2555)
Fixes #2501
Also, using cameras won't show exodus anymore
2017-06-01 19:47:18 +03:00
Lohikar
90b6691c8f Sunlight (#2542)
Implements a configurable sun for a sunlight effect using the lighting engine.
Abuses Z-lights to illuminate Zs in a semi-realistic way.

Kinda slow at setting state, but state changes shouldn't lag & are rare.

Also adds the ability to create lights that ignore visibility when calculating range, causing them to shine through objects/walls.
2017-05-31 11:43:18 +03:00
Lohikar
15c1b4969b Convert some overlays (#2525)
changes:

Converted some overlays to SSoverlay.
2017-05-29 13:04:57 +03:00
Lohikar
0f1079e840 Fix ZAS defines (#2478)
Properly moves ZAS defines into the ZAS defines file & removes docs file from compile. ZLEVELS has been renamed to MULTIZAS to better explain what it does.
2017-05-27 23:12:50 +03:00
skull132
547e78d93c Implement powersink surge (#2452)
Implements suggestion https://forums.aurorastation.org/viewtopic.php?f=21&p=78011 in the following fashion:

Powersinks explode ~18 minutes after being placed on normal SMES setup. Obviously more input from engineering will make this process go faster.
Upon reaching their capacity, they will now cause a larger area power surge. The surge will smash all lights belonging to APCs within close to moderate proximity, and call EMP act on all connected powernet items that are within range (severity depending on distance). All of those items have a small chance to cause a minor explosion as well, primarily because EMP act is fucking whimpy.
2017-05-27 12:25:47 +03:00
skull132
755ce490db Rewriting multiz movement to be gooder (#2464)
Intent: implement all of the features from #2442 while also unfucking the multiz movement files to be more readable and not recurse.

To that end, this PR does the following:

All multiz travel is now arbitrated by SSfalling. This will eliminate the need for recursion without relying on timers. Timers would be a bit scary.
The call chain for multiz movement now looks like this (in terms of overwritable procs):
can_fall() (Can lead into fall_impact() & fall_collateral() if returns FALSE)
fall_through() IF current block is open space ELSE fall_impact() & fall_collateral()
Removed almost every istype(src, A) check in the movement.dm file by exercising proper parenting and call chains.
Documented and standardized the contents of multiz/movement.dm. Because this is an API we're going to be relying on very heavily, I'd like to get this right before we move on.
A lot of minor tweaks, like swapping usr over to the applicable mob, and so on.
2017-05-27 02:14:35 +03:00
Alberyk
e71299699e Adds more mixed gamemodes and make them votable (#2420)
-allow voting for most mixed gamemodes, with exception of bughunt and infection
-adds crossfire(merc and heister), also adds a raider frequency to don't mix them with mercs
-adds siege(rev and merc)
-adds visitors(ninja and wizard)
2017-05-26 22:15:32 +03:00
Lohikar
4d6d382967 Job subsystem & Player Spawn Tweaks (#2403)
Converts the job controller into a subsystem, including absolute paths. Also cleans up some mob despawn code.

changes:

The job master is now a subsystem. Job init moved out of EMI.
Custom loadout now properly overrides job equipment on spawn.
Odin despawn timers are now deleted on arrival shuttle launch.
Cryogenic storage despawn is now handled by the job controller.
Backpack equipping has been fully moved to equip_backpack().
equip_backpack() will now equip departmental backpacks.
Job backpack selection is now set via. vars instead of overriding a proc.
Fixes #2180.
2017-05-23 12:10:30 +03:00
Lohikar
d8b6ba2c6c ZAS Performance Improvements (#2308)
This PR converts ZAS' c_airblock procs into a single macro for performance reasons, as well as allows CanPass to be bypassed for atoms that do not require special air blocking behavior.

Appears to have a significant effect on performance, needs more detailed testing.

Some objects are likely missing canpass flags, I only set the obvious ones. Please comment if you find one I missed.

Might fix #2152.
2017-05-20 19:00:15 +03:00
Lohikar
58b953a3fc Cross-Z Lighting (#2281)
This PR edits the lighting engine's turf selection algorithm to also include turfs below openturf tiles, allowing for cross-Z lighting.

changes:

Lights now will now shine down Z-levels when they light up an open turf.
Commented-out openturf starlight pending making it not pummel SSlighting.
Openspace overlays are now only queued if they are not already in the queue.
Lighting overlays will now also update their associated openturf overlay on update if they have one.
Removed an old unused message from the asteroid generation subsystem.
2017-05-20 14:24:04 +03:00
Lohikar
c08922a181 MC subsystem tick overrun compensation (#2270)
Port of tgstation/tgstation#27196.

This PR makes the MC track how much a subsystem goes over its allotted tick limit and reduce how much of a tick it is allocated in later fires, as well as delaying later fires if the overrun is high enough.

Subsystems with SS_KEEP_TIMING will not be delayed due to overruns, but they will still get a reduced tick allocation.

Should lead to less tick-drift due to SSgarbage hard-deletions.
2017-05-17 13:51:46 +03:00
Lohikar
fac6d7916c Lighting performance tweaks (#2200)
Port of tgstation/tgstation#26975.

Changes the lighting engine to apply lighting changes in one step using stored lum value differences instead of two steps (remove_lum, add_lum).

Seems to show a speedup in lighting updates as well as a reduction in server memory usage due to aggressive freeing of unneeded lists.

Lighting overlays also default to fullbright instead of fulldark so movable area transitions look less strange.
2017-05-15 22:25:13 +03:00
Lohikar
aa83743543 Queued table icon updates (#2206)
changes:

Tables now use queue_icon_update() to trigger icon updates.
SSicon_update has been promoted to SS_TICKER to reduce delay in icon updates.
SSicon_update now only has one queue.
This should prevent excessive table icon updates & mitigate table-lag from nar'sie.
2017-05-13 12:52:13 +03:00
Lohikar
6ef9191275 Kill airlocks' process(), SSpower, and misc. performance tweaks (#2175)
changes:

Airlocks no longer tick (exceptions: firedoors, uranium airlocks)
Airlock commands run before round-start are queued to run at round-start.
Airlock commands that failed to run are scheduled to try again in 2 seconds with timers.
Callbacks can now be registered with SSticker to run at round-start in a non-blocking way.
Added a new subsystem (SSpower) for handling power-related functions. Currently doesn't do a whole lot, but this will likely eventually change.
RCON functionality has been moved from SSmachinery to SSpower.
The global cable list has been moved into SSpower.
Powernet sensors no longer process purely to keep themselves in the global machines list, instead they are added to a list in SSpower.
Power terminals no longer pointlessly tick.
Removed some variables from SSticker that weren't used by anything.
Holographic overlays such as those used by consoles are now cached.
Xenoarcheology setup is now tick-checked.
ZAS now uses post-fire timing.
The req_access and req_one_access lists are no longer initialized by default on all /obj types.
Openturfs will only emit starlight if they are bordering a non-openturf dynamically lit turf.
Powernets are now stored in SSpower instead of being a global.
The global mouse list is now stored in SSmob instead of being a global.
Fixed some weirdness in APCs' Destroy() caused by a merge.
SSwireless now pre-bakes to reduce round-start processing.
SSwireless no longer uses processing queues.
2017-05-11 22:19:51 +03:00
Lohikar
92c3eee90a Fix priorities (#2178)
changes:

Fixed subsystems priorities file that somehow got fucked up by git merge.
Tweaked some subsystem priorities so ZAS doesn't starve other subsystems of CPU time.
Promoted SSeffects to a non-background subsystem to reduce effect lag during explosions.
Removed double-processing of cascade rift caused by it adding itself to processing_objects in addition to already being processed in SScalamity.
2017-05-07 14:45:44 +03:00
Lohikar
f6dc33a465 Newmap - SMC, Openturf, Arrivals Controller, and Mine Turf Improvements (#1958)
* Replace SSingulo with SScalamity; processing cleanup
- SScalamity now handles blobs as well as singularity-types.
- Processing subtypes have been simplified to not require a stop_processing definition.

* this is probably important

* Remove cascade disabling SSgarbage

* Fixed a bug where dust() did not qdel the target mob

* Misc fixes

* Fix decals surviving break-to-plating

* Subsystem flag tweaks

* Apparently subsystems are new'd before config is.

* Fix paper icons

* Speculative fix for insane lag

* Better machinery stat

* Make organs not use SSoverlay

* Misc bugfixes & tweaks

* Nightmode fixes

* Changelog for SMC

* Port /tg/'s improved MC crash handling

* Add some more SS Recover() procs

* supply_controller -> SScargo

* More New() -> Initialize()

* pAI and robot construction overlays

* Fix cargo unit tests

* Merge the DMM Suite's atom/New() into atoms_init

* Lighting pre-baking

* Lighting initialization logging

* Fix some bad SS init orders

* Fix SSlighting logging; rename Processes to MC

* Speculative fix for insane GC lag

* Prebaked openturf/icon_smooth & fix lighting prebake

* SS init status; SSatoms LATEQDEL

* Fix bug with MC init stat panel

* Fix parallax

* Misc

* Ignore SS_NO_DISPLAY during init

* apparently this is important

* REEEEEE

* Image GC fixes; broadcaster radio-new sanity

* RCON Cleanup

* Move pAI recruiter into subsystem

* Move global solars list into sun subsystem

* Make chickens not use a global

* Demote SSdisposals to SS_BACKGROUND; garbage-debug cleanup

* Speed up space init a little

* Fix bad timer flags on floor drying

* Subsystem panic-restart verb for mins

* Explosion speedup

* Minor subsystem & MC logging tweaks

* SSopenturf improvements

* Make pipenet actually initialize (whoops)

* Minor tweaks

* Implement lighting rounding

* comments are hard okay

* Minor lattice tweaks

* Fix some timer issues & better closet init

* Timer sanity

* Request console tweaks + Storage init sanity

* Minor SSmachiner RCON improvements

* Further reduce world-start timer count

* Standardize subsystem logging

* Garbage hard delete profiling from /tg/

* Timer hang detection & recovery

* Log machines that sleep in process() and fuck up SSmachinery

* Fix an issue with external airlocks sleeping in process()

* Failsafe logging

* Minor tweaks

* Revert "Request console tweaks + Storage init sanity"

This reverts commit 98d3579e35.

* Re-implement RC changes

* Fix SQL FT saving

* Fix SSmachinery sleep in disposals

* Minor SS tweaks

* Paper fixes

* Blood drying fixes

* Merge gameticker and SSticker

* Minor global list init cleanup

* Lagcheck biogenerator & bags

* Tweak SScargo init order; RIG Initialize()

* Caching tweaks

* Remove rogue comma

* Initialize fixes

* Lighting destroy cleanup

* Fix emagging airlocks

* Initial SSicon implementation

* Tweaks & Fixes

* Fire + Air alarm queued icon updates

* Overlays + Queued icon cleanup

* Runtime & background fixes

* Kill some meaningless set statements

* Kill some image qdels

* Bump up lighting rounding val

* Fix adv. scanner destroy runtimes

* Remove unneeded icon update limiting

* Move icon smoothing into helpers

* Show a warning if DM 510 compiles without memory leak hack enabled

* Re-organize subsystems & MC defines a little

* Airlock SFX

* Log of Changes

* Make SSicon_update disable itself when not doing anything

* Fix respawn verb runtime when used early in server-init

* Add more information to MC's stat_entry()

* Replace direct refernces to gcDestroyed with QDEL* macros

* plant_controller -> SSplants

* More plant tweaks

* Add more humor to changelog

* Move parallax globals into SSparallax

* Lighting responsiveness tweaks

* Fix parallax init order & better MC init panel stat

* Make mobs GC

* More overlays + Remove intercom spawn()

* SSfast_process; make pinpointers not use spawn-recursion to process
Also made the SM Cascade beach process with SSprocessing instead of a spawn loop.

* Update changelog

* Mob GC tweaks

* Del() cleanup

* Fix insomniac ZAS connection edges

* Minor pAI cleanup

* Convert more things to SSoverlay; fix duplicated overlay in field gens

* SM Bluespace turf tweaks

* Update SSgarbage debug globals list

* Human-type qdel tweaks

* Subsystem suspension; stat_entry improvements

* SQL Statistics cleanup

* Fix runtimes with ambrosia

* More disable() -> suspend(); fix nightmode again

* Human qdel fix; minor tweaks

* Update turbolift to work with StonedMC

* Make lifts use timers instead of a subsystem

* Make SSassets start earlier

* Convert the radio controller into a subsystem

* Fix some missing CHECK_TICKs in asteroid generation

* MC stat tweaks; make shouldnt_see a typecache

* Kill some redundant debug-controller entries

* radio_controller -> SSradio

* Better SSgarbage hard-del logging from /tg/ upstream

* Logging tweaks + GELF

* Misc client caching improvements

* Slime SSoverlay

* Oven icon fixes

* Implant fixes
- Death implants will no longer spam Common on death of user.
- Death implants should handle a deleted user better.

* Holder tweaks + Welding tool Initialize()

* Fix some bad subsystem logging

* Fix suit cooling units spawning without cells

* Starlight tweaks

* Gibber infinite gib fix

* More SSoverlay stuff

* Make crates use CUT_OVERLAY_IN

* Make SSarrivals suspend instead of disable

* Make openturf use split/phased tick checks

* Speculative fix for unwet timer runtimes

* Blood overlay tweaks/fixes

* Update crusher to play nice with SMC + SSoverlay

* Openturf improvements and fixes

* Minor turbolift tweaks

* Lighting performance improvements + ChangeTurf tweaks

* this is probably important

* Fix wall weld noises on changeturf

* More ChangeTurf tweaks

* Explosion tweaks

* Pre-game lobby tweaks

* Openturf tweaks

* Prevent admins from starting the game before init finishes

* Fix Travis

* Kill an unused var

* Fix ChangeTurf runtimes on openturfs

* Fixes

* Browser datum fixes, asset caching

* Update changelog

* Changelog

* Lobby tweaks

* Ticker tweaks; kill ticker var

* Further lobby tweaks

* Cascade tweaks

* air_master -> SSair

* Reduce overhead from radio autosay

* alarm_manager -> SSalarm

* bomb_processor -> SSexplosives

* corp_regs -> SSlaw

* ZAS overlay fixes

* Small wall icon optimization

* Fix effects master

* Assembly tweaks

* Megavend fixes

* Shuttle fixes

* Camera alert performance improvements

* Fix some world.log spam from lighting overlays

* Fix some Initialize() procs

* Openspace responsiveness tweaks

* Make HE pipes animate through openturfs

* Kill a spawn
2017-05-02 14:40:40 -04:00
skull132
77c7e23ebe Port initial Bay12 object listener fix (#2106)
Port of Baystation12/Baystation12#13264

Large PR to put into Master, but the bug is really annoying and since it affect a traitor item, an often used one, I'll take the risk.

Fixes #1956
Fixes explosives implants and lawgiver not working.
2017-04-19 10:15:19 +03:00
Lohikar
f35680ba7a Fix cameras (#2091)
changes:

Cameras now use DVIEW instead of a temporary dummy mob to calculate visibility.
Cameras now render smooth lighting as old-style lights.
Lighting overlays are now a DMI instead of a PNG.
Fixes #1974.
2017-04-14 13:29:09 +03:00
Lohikar
591fe86468 Organ Runtime Fix (#2005)
changes:

Added a QDELETED check to organ processing so they won't continue to process if they were erroneously left in the processing objects list after being deleted.
Fixed a bad robotic organ check on spiders.
2017-03-28 22:07:52 +03:00
Lohikar
2a0353d8f9 Progress bar pref (#1938)
changes:

Players can now toggle progress bars on/off in Preferences.
This just adds another flag to the parallax toggles pref to keep things simple.
2017-03-19 11:39:23 +02:00
Lohikar
63eafb3643 Code Cleanup: Destroy() fixes part 1 + Misc Fixes (#1933)
In this PR:

Destroy() fixes backported from PR #1783.
JaniPDA fixes & improvements.
Chickens no longer consume their own eggs.
Language adding in setup is now 100% more sane.
Chemical dispensers now actually check that the user is still alive before renaming.
Ghosts are now marked as non-simulated atoms.
Non-simulated atoms no longer trigger proximity listeners.
Vendors no longer accept synthetic tools as stocking options.
Fixes #812.
Fixes #1877, Fixes #1929.
Fixes #1930.
Fixes #1152, Fixes #1917.
Fixes #1902.
Fixes #1165.
2017-03-18 23:06:24 +02:00
Lohikar
d3242f13a5 Abstract machinery, intercom listener, and directional hardhat lights (#1918)
changes:

Added an abstract-machinery helper type for interacting with power systems without duplicating power code.
Changed intercoms to use abstract machines to handle power state changes instead of polling with process().
Hardhat lights are now directional (LIGHT_WIDE)
Fixes #1922.
2017-03-18 20:06:45 +02:00
Lohikar
161457b079 Fix nightmode (#1891)
changes:

Fixes nightmode.
2017-03-18 20:02:58 +02:00
Lohikar
cd52c36313 Lighting fixes part 307 (#1896)
changes:

Fixes missing icon for powered off night-mode tubes.
Nerfs borg floodlight back to sanity.
Reduces the light power on red-alert level fire alarms a bit.
2017-03-12 11:51:07 +02:00
Lohikar
e2725ab4cb Computer dark visibility tweaks (#1829)
changes:

Holo-computers' displays now draw above the lighting layer, allowing them to be seen in the dark.
APCs' displays now draw above the lighting layer, allowing them to be seen in the dark.
2017-03-05 22:28:11 +02:00
Lohikar
f8e808f617 /vg/ AME port (#1831)
changes:

Ported /vg/'s anti-matter engine.
Anti-matter engine is now orderable from cargo.
Anti-matter fuel is now orderable from cargo.
Using 1 of each AM crate from Cargo, you can get 240 kW.

Note: We already have this engine in our code, this is just an update to it.
2017-03-05 22:05:57 +02:00
Lohikar
97856e8735 Improved scheduler (#1864)
changes:

Rewrote scheduler to use a sorted linked-list to store scheduled tasks so that only one element needs to be checked if none of the tasks are ready to fire.
Scheduler now checks tasks every 2 ds.
Adding tasks to an empty scheduler or tasks that are triggered after any existing tasks is fast, but adding tasks that trigger between two existing tasks requires iterating through some of the task list.

It's no addtimer(), but it's something.
2017-03-05 02:01:06 +02:00
Lohikar
dceacd805b Directional lighting tweaks (#1833)
changes:

Flashlights now default to LIGHT_WIDE directional lighting.
Glowsticks, Lamps, Flares, and Slime Cores use LIGHT_OMNI.
Maglights use LIGHT_NARROW.
Heavy-duty flashlights use LIGHT_SEMI.
EVA suits default to LIGHT_WIDE.
Lanterns use LIGHT_OMNI, as well as now having a more appropriate light color.
Floodlights use LIGHT_WIDE, as well as having a more appropriate light color.
Synthetics default to LIGHT_WIDE. (including drones)
Added some predefined light_wedge values to the lighting defines file.
Fixed some bad angles that screwed up north/south lights in some cases.
2017-02-25 22:12:13 +02:00
Lohikar
65e0f3de97 Simpler lighting process, bug fixes, & modular computer tweaks (#1809)
Fixes #1806
Fixes #1730
Fixes #1747
Partially addresses #1763
Addresses #1283
Fixes #1799
Fixes #1816
Fixes #1813
2017-02-24 20:24:31 +02:00
NanakoAC
6e16ad88ff Nanako's cooking rework (#1743) 2017-02-17 20:08:45 +02:00
Lohikar
a50d0a8390 Machinery performance tweaks (#1744)
changes:

Machines' process() has been separated from auto_use_power().
Lights no longer process() and instead use auto_use_power() for power calculations.
Computers that didn't really need to process() no longer process().
Airlocks now use the scheduler to auto-close instead of process()ing.
Fixed a bug where clicking on an AI Status display to set its status did not work.
2017-02-15 22:07:47 +02:00
Lohikar
bc441ab9d6 Miscellaneous Tweaks (#1720)
changes:

Refactored footstep sounds to use less operations & only calculate for human-types.
Improved the logging detail of the lighting profiler.
Fixed some shuttle corners that weren't correctly working with parallax space.
Converted get_turf() into a compiler macro.
Solars are now dynamically lit.
Silenced warning from lighting overlays pooling themselves when updated on a space tile.
Fixed a bug where securing a girder was instant when it was supposed to have a delay.
2017-02-07 18:46:39 +02:00
Lohikar
f544fe43b1 Processor-driven effects system & Minor Lighting Performance Tweaks (#1697)
Adds a new process-based effects system with the goal of reducing insane lag from sparks.
Currently only supports sparks, but should be easily extendable to other types of effects.
Also fixes a bug with airlocks where the light from bolts wasn't updating.

Refactors bears slightly to reduce duplicated code & pointless spark object creation and destruction.
Lighting profiler will now log /turf locations & names correctly.
Doors will no longer trigger way more visibility checks than they need to.
2017-02-04 03:34:13 +02:00
Lohikar
2165054918 Minor Lighting Process Improvements (#1682)
This PR reduces the tick rate of the lighting process from 1 ds interval to 10 ds interval, and removes some pointless updates from Destroy().

Also removes some left over defines from update_type and darkness overlays that I forgot to remove earlier.

Fixes #1683.
2017-02-01 19:48:28 +02:00
Lohikar
0cba68911d Lighting Overhaul & General process improvements (#1612)
This is it. The big one.
Risk: Very large. This modifies or rewrites several important systems.
Some things still need balancing, but that's probably better done if/when this hits dev.

changes:

New smooth lighting system.
Machinery split into three processes: machinery, powernet, pipenet Removed due to breakage. Refactored into multi-step process.
Mob process rewritten.
NanoUI process rewritten.
Objects process rewritten.
Tweaked color output of station lights.
Slime core lights now emit colored light.
Fixed light update frequency issue with fire alarms, hydroponics trays, and airlocks.
Increased light emission from bolted airlocks.
Miscellaneous performance improvements.
New datum pool implementation.
New lighting usage profiler.
Lighting system now tracks UV light, which is not visible to players.
Space now has a parallax effect.
Disabled Spin View verbs due to incompatibility with the new lighting system.
Disabled hallucination view spin due to incompatibility with the new lighting system.
Lighting system now initializes in the lobby before the round starts to reduce BoR deadtime.
Added UV light tracking to lighting engine; dionae now gain energy exclusively from UV light.
Added colored lighting to a few consoles that used default (white) light.
2017-01-29 01:13:54 +02:00