Commit Graph

57 Commits

Author SHA1 Message Date
Fox McCloud
0d7d639a0d Fixes Lighting (#13745) 2020-07-01 11:26:38 -06:00
Fox McCloud
b3d69aac9b Moves to BYOND 513 (#13650)
* Fixes Orbiting

* moves to 513

* travis update

* check for minor version too
2020-06-26 01:15:59 -06:00
Fox McCloud
ebeee921ca Lighting Optimizations (#13593)
* Lighting Optimizations

* styling

* styling

* welp
2020-06-21 05:08:59 -06:00
Fox McCloud
10a7b897a6 Lighting Performance Improvement (#13436) 2020-05-20 00:21:16 -06:00
AffectedArc07
04ba5c1cc9 File standardisation (#13131)
* Adds the check components

* Adds in trailing newlines

* Converts all CRLF to LF

* Post merge EOF

* Post merge line endings

* Final commit
2020-03-17 18:08:51 -04:00
Fox McCloud
aa49033844 nor-shall-our-souls-falter 2019-09-17 16:06:09 -04:00
Mark van Alphen
6d8ec82733 Fix dynamic lighting on shuttles 2019-05-04 05:51:13 +02:00
Mark van Alphen
ea76fd2136 Add onTransitZ 2019-05-03 19:32:53 +02:00
Mark van Alphen
40c1a25eb5 Lighting fixes 2019-04-27 01:08:17 +02:00
Mark van Alphen
3285efd36c Final lighting updates 2019-04-22 22:43:21 +02:00
Mark van Alphen
75b06fe82c Lighting fixes 2019-04-22 21:47:08 +02:00
Mark van Alphen
d66d0e3203 Area invisibility fix 2019-04-22 21:06:33 +02:00
Mark van Alphen
affae89028 Attempt update to /tg/ lighting system 2019-04-22 19:55:41 +02:00
taukausanake
b7ce683ab1 Merge branch 'pai_light' of https://github.com/Tayyyyyyy/Paradise into pai_light
Conflicts:
	code/game/gamemodes/shadowling/shadowling_abilities.dm
	code/game/objects/items/devices/flashlight.dm
	code/modules/mob/living/carbon/human/human.dm
	code/modules/mob/living/living.dm
	code/modules/mob/living/silicon/robot/robot.dm

 Changes to be committed:
	modified:   code/game/gamemodes/shadowling/shadowling_abilities.dm
	modified:   code/game/machinery/computer/computer.dm
	modified:   code/game/machinery/floodlight.dm
	modified:   code/game/objects/items/devices/flashlight.dm
	modified:   code/game/objects/items/devices/paicard.dm
	modified:   code/modules/clothing/head/hardhat.dm
	modified:   code/modules/clothing/spacesuits/hardsuit.dm
	modified:   code/modules/clothing/spacesuits/plasmamen.dm
	modified:   code/modules/lighting/lighting_atom.dm
	modified:   code/modules/mob/living/carbon/human/human.dm
	modified:   code/modules/mob/living/living.dm
	modified:   code/modules/mob/living/silicon/pai/pai.dm
	modified:   code/modules/mob/living/silicon/pai/software_modules.dm
	modified:   code/modules/mob/living/silicon/robot/robot.dm
	modified:   code/modules/pda/PDA.dm
	modified:   code/modules/power/lighting.dm
	modified:   code/modules/projectiles/gun.dm
2019-02-02 22:53:46 -06:00
tigercat2000
ab032b6737 SSoverlays for human icons, mostly works
Closer to working 100%

But legitimately /tg/ icons

Move lighting to it's own plane, fix observers

Fix humans layering over other objects incorrectly

Nyaaaaa~
2018-11-08 20:24:22 -08:00
Purpose
4d7dd5a6c9 dayum dats defined 2018-10-08 22:48:00 +01:00
tayyyyyyy
8a8f553ab3 Refactor shadowling veil extinguish proc 2018-07-22 19:44:08 -07:00
tigercat2000
7d8c9a731a SS Conversion: Atoms, Machines, n' Mobs
This converts the machine and mob processes to the SMC. Additionally, it
adds the Atom subsystem, which handles all Initialize() calls in place
of the old gameticker. Due to incompatibility with our atmospherics
(FUCK OUR ATMOSPHERICS FOR FUCKING EVER JESUS CHRIST WHO THE FUCK MADE
THIS PIECE OF GODDAMN SHIT) atmospherics machines do not use
Initialize() as they should, instead opting for a custom atmos_init
proc that the air controller handles.
2018-04-28 17:55:15 -07:00
Krausus
471d1d9c98 Lighting performance/profiling tweaks
- Lighting process now yields at 10% of a tick and defers at 80% of a
tick
- There is no longer a limit to how many sources/corners/overlays will
update in a single work run
- Source/corner/overlay totals are now simple counts instead of lists
- Lighting update stats now show updates over each of the previous 5
seconds
- Space turfs now remove their starlight when changing to a different
turf, fixing a runtime
2017-02-19 23:37:54 -05:00
Crazylemon64
11c9f59abd Lighting now states which atom is missing a light_sources list on
runtime
2017-02-17 23:07:43 -08:00
Aurorablade
92c3311b78 Lighting Bugs 2017-02-14 17:02:16 -05:00
Tigercat2000
577df3de36 Add debug light source/corner/overlay instance count 2017-02-12 17:30:10 -08:00
Tigercat2000
129a57bd9b Goonlights
Ports Goon Lighting from /vg/station.

Summary -
 This adds smooth edges to all lighting in order to increase the
 aesthetic appeal of the lighting system.
 It works by using a matrix to change the appearance of the lighting
 overlay sprite, which has been changed to be a base for the matrix to
 modify.
 Ported from /vg/station with the help of @PJB3005. This lighting
 system is a hybrid between Mloc's lighting rewrite and Tobba's
 Goonlights.

Notable changes:
 - Darksight now matters on mobs. The lighting overlays are not
 alpha=255 when they are completely dark, meaning you can still see the
 floor- assuming you can view the turf at all, because it retains the
 luminousity setting.
   - This means Tajaran have 100% night vision again as they are
   intended to. Humans can see in a 3x3 square centered around
   themselves.

   - No, I'm not changing this, if it's even possible. This is how
   BYOND's lighting is meant to work. If you have any complaints about
   game balance, please feel free to make a pull request to change
   see_in_dark values, which will be seperately evaluated.

 - The lighting controller now runs at world.tick_lag, to emulate the
 realtime function of StonedMC. So far with my testing, this hasn't
 caused any noticable performance decreases- the lighting system is
 obviously more expensive than our previous iteration, however, it's not
 the next ZAS ;)

Technical Details:
 - /atom/movable/lighting_overlay/proc/get_clamped_lum has been removed,
 succeeded by /turf/proc/get_lumcount. They behave identically.
 - Turf lighting is actually controlled by four "corner" datums, which
 feed information into the overlay.
 - The way opacity is factored into the system has changed. Anything
 that doesn't use set_opacity is not going to work to block light.
 - /area/lighting_use_dynamic has been renamed to
 /area/dynamic_lighting, for consistency with /turf/dynamic_lighting.
 - Lighting is no longer seperately initialized for away missions. It is
 handled in ChangeTurf() as it should be.

Known & Unfixable issues:
 - There is a 5-10 second delay from starting the round to the lights
 turning on. Attribute it to "the powernet being spun up" if you would
 like to- but it's actually just how long it takes the lighting system
 to update every single turf on the map.

 - When you walk with a light on you, the light will actually jump ahead
 of you before you visually get to the tile. This is because of the
 movement gliding on mobs, realtime lighting actually goes faster than
 the glide takes to complete, so it appears that your lights are moving
 faster than you.

Thank you krausy~

Animated Goonlights

This adds an animate() call to the update_overlays() proc. This makes it
so that any light changes will smoothly transition between the changes
instead of instantly changing their appearance.

Also fixes a few issues pointed out on Github.

Change lighting animation (turns out the old one totally breaks if you toggle a light quickly, whoopsies)

Kill LIGHTING_INSTANT_UPDATES

isturf
2017-02-05 07:08:17 -08:00
Fox-McCloud
ea8080e6c9 Makes Reagents Holder Process and Refactors NOREACT 2017-01-14 20:09:49 -05:00
KasparoVy
a5722fdfc4 Overhaul, adds color2R/G/B helper procs, adds marking/head accessory/body accessory (colours included) randomization in char prefs.
Color2R/G/B helper procs and PR overhaul suggested/co-authored by Krausus.
2016-08-12 22:37:40 -04:00
Crazylemon64
1745c71474 Fixes a bug involving a map template resetting the map loader's
progress
2016-07-06 22:51:48 -07:00
Tigercat2000
9854f48ca9 Assault Pods & Fixes
Fixes:
 - Lighting system bandaid: Lighting overlays can't go below 0 lum ever
 - -tg- shuttles now use changeTurf() and forceMove() appropriately
 - forceMove() actually bothers to update lighting now
 - Fixed teleportlocs including prohibited areas. Sorry wizards, no more
   area teleporting to Central Command.

Misc changes:
 - Moved the emergency shuttle stuff to the modules/shuttles/ folder
 - Moved the cargo shuttle stuff to the modules/shuttles/ folder

Features:
 - Added nukeops assault-pod. Nuke ops may purchase a destination setter
   for 30 telecrystals.
   The assault pod is a shuttle, equipped with 8 turrets that use
   weakbullet3. When an area is selected, a destination will be randomly
   placed in one of the turfs in that area. The pod will gib anyone
   standing in the area where it lands, and overwrite any turfs.
2016-03-19 14:45:45 -07:00
Tigercat2000
e60799474b tgshuttles unfinished 2015-12-03 10:59:06 -08:00
Tastyfish
3f264936a1 Make placing floor plating on space actually update lighting correctly 2015-11-12 22:42:16 -05:00
PJB3005
89ead58167 Fixes light sources getting destroyed after their colour changes (no updates in between) leaving artifacts. 2015-09-12 22:51:10 +02:00
Krausus
61edb3eb95 Further process tweaks
- Integrates Volundr's btime library and associated process scheduler
changes.
- btime is implemented separately from the process scheduler, as precise
time measurement is also useful elsewhere.
- `TimeOfHour` is no longer internally throttled; throttling is instead
done by `SCHECK`.
- If btime's `gettime` cannot be called at world startup, an error will
be output and the world will stop.
- Retains the change to schedule processes according to game time,
rather than real time.
- Removes the (now unused) update queue files.
- Removes the process scheduler testing files.
- These are standalone tests for the process scheduler, completely
unrelated to its use in the full codebase. We never used them.
- Moves the process scheduler defines into __DEFINES.
- Makes the lighting process run once before the round starts.
- Renames `scheck` to `sleepCheck`, to ensure any code that tries to use
`scheck` will fail to compile.
- Adds `SCHECK` and `SCHECK_EVERY` macros that skip calling `sleepCheck`
entirely until a specified number of `SCHECK`s (50 by default) have been
called.
- Makes most processes iterate using their `last_object` variable,
allowing hang recovery to show the type that caused the hang.
- Makes processes output an error when they filter out a type they
refuse to process.
- Rolls the recently-added alarm subsystem into the alarm process.
- Removes the now unused subsystems code.
2015-08-08 09:07:26 -04:00
Krausus
60fed2cf71 Resolves further merge conflicts 2015-08-03 23:40:28 -04:00
Fox-McCloud
aaa6170fe4 Lighting Runtime Fix 2015-08-02 16:57:14 -04:00
Fox-McCloud
1344de844b DVIEW Fixes 2015-08-01 15:20:44 -04:00
Krausus
6d46132b06 Resolves merge conflicts 2015-07-26 06:56:24 -04:00
Fox-McCloud
20099b254f More Lighting Tweaks and Optimizations 2015-07-22 18:20:21 -04:00
PJB3005
d99ab0d2ac I think I just managed to fix all lighting lag. 2015-07-21 15:36:12 +02:00
Krausus
c520ebd8a5 Process and Process Scheduler Tweaks 2015-07-18 13:14:32 -04:00
PJB3005
2b0ea0524f gotta go fast! 2015-07-15 17:22:56 +02:00
Fox-McCloud
545aaf4003 Adds in Lighting Controller Debugability 2015-07-14 04:40:56 -04:00
PJB3005
c860c76e4a Should fix #1401 2015-07-04 17:33:31 +02:00
PJB3005
5540a50ed7 Fixes an unreported issue that caused lights to get stuck 2015-06-26 10:56:33 +02:00
Tigercat2000
d20298e996 -tg- atom pooling system, qdel changes
This commit first and foremost ports the -tg- atom pooling system, and
removes the old experimental system entirely.

Secondly, this PR modifies the qdel system to use a -tg- lookalike
"destroy hint" system, which means that individual objects can tell qdel
what to do with them beyond taking care of things they need to delete.
This ties into the atom pooling system via a new hint define,
QDEL_HINT_PUTINPOOL, which will place the atom in the pool instead of
deleting it as per standard.

Emitter beams are now fully pooled.

Qdel now has semi-compatibility with all datum types, however it is not
the same as -tg-'s "Queue everything!" system. It simply passes it through
the GC immediately and adds it to the "hard del" lists. This means that
reagents can be qdel'ed, but there is no purpose as of yet, as it is more
or less the same as just deleting them, with the added effect of adding
logs of them being deleted to the garbage collector.
2015-06-21 15:47:57 -07:00
PJB3005
d0f32728cd Whatever the hell an underf is, it's gone now 2015-06-20 16:32:31 +02:00
PJB3005
320e481677 Alright 2015-06-20 16:22:51 +02:00
PJB3005
8ad74ebb6e Fixes all your problems...
Except the fact that 75% of paradise is still using del, and you have no pooling.

Or defer_powernet_rebuild, do you guys have that yet?
2015-06-20 14:47:45 +02:00
Fox-McCloud
2ad1c74457 Singularity Refactor 2015-06-10 20:04:28 -04:00
ZomgPonies
6a84ea02a8 Add ALL the sanity 2015-05-15 23:09:09 -04:00
ZomgPonies
b58b31e7cd Fix space cleaner 'cleaning' lighting 2015-05-15 22:59:38 -04:00
Fox-McCloud
05a58fa2f2 Merge pull request #1066 from ZomgPonies/master
Lighting runtime fix
2015-05-15 14:18:16 -04:00