mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-12 16:44:43 +01:00
master
91 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
a4dcdebf39 |
Invests /tg/station Foundation funds into NVIDIA stocks (Adds a particle weather toggle) (#96510)
## About The Pull Request Due to a BYOND bug, large amounts of particles will cause immense lag and framedrops on AMD GPUs, no matter how good the GPU itself is. Unfortunately this is most noticeable with new particle weather, to the point where storms reduce framerate to single digits for players who haven't invested into NVIDIA before the AI market boom. By rendering overlays twice and only enabling one of the planes, we can allow players to toggle between new particle weather (semi-transparent overlays + particles) and old (fully opaque overlays) Unfortunately we don't have a way to check the player's GPU (at least not easily) so players will have to change it themselves https://github.com/user-attachments/assets/0c36fca4-c8a4-42ed-895f-42e853b10f44 (Particle weather is a bit more dense without ghost vision but i'm too lazy to re-record) Closes #96460 (Sort of) ## Changelog 🆑 qol: Particle weather can now be disabled in favor of old weather. !!! AMD GPU USERS NEED TO SWITCH TO OLD WEATHER TO FIX THE LAG!!! /🆑 |
||
|
|
67bbc096a8 |
Introduces particle weather, converts rain and ash storms to it (#96297)
Co-authored-by: Lucy <lucy@absolucy.moe> |
||
|
|
1889ac275f |
Fixes double transforms for emissives, improves related unit test (#95710)
## About The Pull Request [Adds an intermediary render plate for overlay lighting](https://github.com/tgstation/tgstation/commit/34cc054702140677aae94727a54ae83619cae3d7) The emissive plate isn't allowed to draw directly onto an input plane (really almost nothing should be drawing onto input planes). This fixes that. [Improves plane_double_transform unit test](https://github.com/tgstation/tgstation/commit/56f812da2e24bdb82966f1af1adb4e1b648b895d) It was formerly just checking to see if any inputs were directly drawing onto other inputs. Now, we floodfill ## Why It's Good For The Game Somewhat nebulous, I hate double transforms double transforms are evil |
||
|
|
16aef3a2fd |
Completely refactors HUD element management and datumizes inventory HUDs (#95119)
## About The Pull Request This is a port/revival of Kapu's https://github.com/DaedalusDock/daedalusdock/pull/883 By god, please TM this for a while, as HUDs are rather volatile and I might've missed something (also the original PR had harddel issues, so we should probably be on the lookout for those) Instead of being stored in a metric ton of separate variables, all HUD elements are now kept in a ``key -> element`` assoc list, and separate category lists have been turned into a single ``group_key -> list of elements`` assoc list for easier management. This massively simplifies HUD creation and management, and allows us to sanely dynamically modify HUDs without having to keep track of our elements ourselves (harddel fuel) I've also noticed that plasma vessels had... interesting, to say the least, way of managing their HUD and in humans were unable to display it, which I've changed (the element itself is displayed below stamina in non-aliens, as latter occupies the spot where you'd normally see it) Also fixes a bunch of minor unlikely to occur issues with HUD not updating when it should've sometimes. ## Why It's Good For The Game The two most important results of this is that A) we can fix the issue with items larger than 32x32 not displaying properly in inventories (in a separate PR) and B) this paves the way for datumized inventory slots, although that is a separate nightmare Some of this code is also actually over a decade old, and is an absolute nightmare to work with. ## Changelog 🆑 qol: Non-aliens with an implanted plasma vessel now see their plasma level in their HUD instead of just the stat panel refactor: Refactored the entirety of HUD management code, report if anything breaks! /🆑 --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> |
||
|
|
f05aaca61b |
Fixes accidential infinite loop in multiz rendering (#95472)
## About The Pull Request Ok so on the parallax pr I moved a bunch of dumb plane group signal registration to the set home proc. Unfortunately because set_home is run BEFORE update_offset, any created relays will then be offset down X from where they should be. For the master plate, this means #1's relay to transparent plate #0 will instead draw to transparent plate #1 (which of course renders into master plate #1) To fix this I've moved update_offset to BEFORE set_home, so children can hook into it and do things in a sane and normal way. Near as I can tell there's no reason they're ordered as they currently are. I've also added a failsafe check to prevent relay creation before update_offset is called, and attached a CRASH() to such. Interestingly enough this caused crashes on shift right click. That's fun I think |
||
|
|
3729ee3ef3 |
Getting Mad at Parallax (Includes Boomerspace!) (#95382)
## About The Pull Request I want to do stuff with parallax (like placing stuff in the backdrop and moving it around), but I'm in my not doing 100 things in one pr arc so we're doing this piecemeal. To start, I wanted to try adding oldspace back as a parallax layer. This is something I was considering when it was first removed but never got around to, so here we are. I started by [writing a rust program](https://github.com/LemonInTheDark/old_space_gen) to fabricate the required icon state, then realized that all the different parts of space have their own animation delays. There's no way I could make one icon state with all them looping, so instead I split them up into multiple components and then overlayed them together. This works, but is infeasible (my gpu died) at the scale required for parallax (17 480x480 sets, 15 unique delays per 1 set) so I used render targets to render one copy, then mirror it to the rest of the overlays. This works wonderfully, and gets us down to (on my machine) a gpu cost comprable with about medium parallax intensity. I'm open to making these tile bound but I thought making them look "far away" feels better. In the process of all this I got very mad at the existing parallax code, soooooooo Parallax layers are no longer stored on the client, they are stored on and managed by the parallax home atom that holds them for display. Said atom also tracks all the information about how they are selected. Parallax layers no longer take a hud as input, instead expecting a client. (we were just swapping them back and forth and I thought it was dumb). Parallax no longer tries to support passing in a mob that does not actually own the hud it is displayed on. This feature wasn't even being used anymore because it was fully broken, so all it was doing was making the code worse. Parallax no longer has to do a full refresh anytime something about WHAT layers are displayed might have changed. We cache based off the variables we care about, and use the change in state to determine what should happen (this is improved by moving "rendering the layers" fully to the control of the home datum). Parallax no longer directly modifies the hud's plane masters, instead relying on trait based signals to manipulate them (this avoids wasted time in the common event of a needless parallax prefs check). Parallax no longer has 2 procs that are only called together to "remove/readd/update" the layers, instead doing both in a new check() proc. Cleans up some plane master cruft to do with tracking/managing huds (might break, tested, think it's fine). ## Why It's Good For The Game https://github.com/user-attachments/assets/79138a0f-9f6d-447d-843e-0d237db13276 ## Changelog 🆑 add: Added an option for rendering space parallax with old space sprites (the ones from before we invented parallax), they're animated and I feel quite pretty. fix: Space parallax should hopefully behave a little more consistently now refactor: Rewrote a lot of how space parallax handled itself, please yell at me if any bugs make themselves known /🆑 |
||
|
|
a221260c04 |
Adds a preference to adjust emissive bloom size (#94722)
## About The Pull Request Adds a slider to the gameplay tab which allows users to control the size of the emissive bloom. ## Why It's Good For The Game This is mostly visual and doesn't have a noticeable performance impact, but some people might find it distracting or might want a stronger bloom for prettier lights. ## Changelog 🆑 qol: Added a preference to adjust emissive bloom size /🆑 |
||
|
|
4a2efa2928 |
Refactors filters to utilize binary insertion instead of timSort (#93053)
## About The Pull Request update_filters() is more expensive than it should be due to running timSort every time a filter is added or removed, plus we wipe re-initialize the entire atom filter list every time we call it. I swapped it to use binary insertion into the main list, and we can cut down on the amount of filter churn by storing filters in a separate list which we can use Insert on, which allows us to stop constantly deleting and recreating filters completely. ## Why It's Good For The Game Server CPU consumption go down ## Changelog 🆑 refactor: Refactored filters to utilize binary insertion instead of timSort. The server should run somewhat faster now, hopefully. /🆑 |
||
|
|
3d730689f4 |
Implements (a poor imitation of) speculars, improves/fixes unrestricted access overlay lights (#92272)
## About The Pull Request Implements a poor imitation of specular surfaces by encoding "shinyness" into blue channel of emissive overlays, which allows some pixels to be more illuminated than others (by applying lighting multiplied by specular mask onto them a second time) This means that hazard vests, engineering coats, security jackets and firefighter suits no longer outright glow in the dark, but instead amplify light so even the tiniest amounts make them highly visible. I made a pass through all of our emissive overlays and converted ones that made sense into bloom-less/specular ones. https://github.com/user-attachments/assets/2167e26e-f8b8-42d7-a67c-dfc643e1df29 I've also converted unrestricted access airlock overlays into overlay lights instead of ABOVE_LIGHTING overlays, so they should no longer look jank or catch people's clicks. <img width="297" height="262" alt="dreamseeker_LovPHZ7xHQ" src="https://github.com/user-attachments/assets/1bf4d7b8-219a-41ed-aee9-6cdc41803e21" /> Turns out that windoors had incorrect icon states assigned to theirs, so I fixed that too - they should show up again after god knows how many years. ## Why It's Good For The Game ~~Shiny lights make my moth brain go happy~~ Neat visual effects that look more believable than neon glowing stripes, and airlocks no longer have inflated hitboxes with extremely weird visuals. ## Changelog 🆑 add: Added specular overlays - some items like hazard vests or firefighter suits no longer outright glow in the dark, but instead amplify existing light to shine brighter than their surroundings. add: Redid unrestricted access airlock overlays to look less bad fix: Fixed unrestricted access overlays not showing up on windoors. /🆑 |
||
|
|
488986d7be | Render plate code cleanup, moves game effects up to the lit game plate (#92357) | ||
|
|
b0857ce7c4 |
Reduce size of fake rulechat AO from 3 to 2 (#92152)
## About The Pull Request Real AO / old / new <img width="411" height="116" alt="image" src="https://github.com/user-attachments/assets/2544e9c3-1956-4b6a-b299-0ad28e04a808" /> ## Why It's Good For The Game Not perfect, but I found it a little jarring just how large the outline was. ## Changelog 🆑 Melbert qol: Tweaked size of runechat shadow outline. /🆑 |
||
|
|
1e0668802c |
Planecube Optimizations and Job Security: Part One (#91696)
## About The Pull Request This is an atomized revival of #82419, with this part containing the simplest of its features: - Fixes AO pref refreshing the wrong plane, thus not updating until you swap bodies - Removes supermatter's copypasted warp effect - Culls distortion effects when they're not in use because its a chonky filter - Hides the escape menu when its, well, hidden - Fixes hide_highest_offset not working upon parent's creation (we're so good at our jobs hell yeah) - Replaces runechat's AO dropshadow with an outline, because its barely visible due to low opacity. ## Why It's Good For The Game Our rendering performance is shit and we need to improve it, and the first step in this task is optimizing planecube's simplest parts. The next step is conditional culling, better non-multiz handling and parallax rework/removal, but all of those need to be atomized as to prevent the PR from sharing the fate of the original. ## Changelog 🆑 fix: Ambient Occlusion pref should now update immediately upon being changed, instead of having to swap bodies or waiting for server restart to get it updated. code: Slightly improved rendering code/performance just a tiny bit. /🆑 |
||
|
|
c7ec0653e5 |
Fixes parallax breaking when culled (#91677)
## About The Pull Request This has been broken for over 2 years at this point, when parallax children to which the "primary" (offset-0) plane renders itself got culled, it ended up rendering to nowhere aka master, aka showing through blackness. Closes #73471 ## Changelog 🆑 fix: Maps with a large amount of Z levels should no longer randomly display space parallax to players with low multi-z culling settings. /🆑 |
||
|
|
0b7099d916 | [NO GBP] Fixes black character previews (#91616) | ||
|
|
e82f4c375c |
Implements colored bloom for emissives (#91456)
## About The Pull Request Emissive sprites now bloom out a bit (3 pixels, to be specific)   This is done by rendering emissives onto a plate, multiplying them by unlit game rendering plate to color them, then blooming all non-black pixels (1 offset, 2 size, so 100/66/33% brightness) on it and rendering it onto the overlay lighting plane. We use overlay lighting because it slightly detracts from the static lighting plane, so our emissives color their surroundings a bit even in fully lit rooms.  You can make emissives not emit light by setting ``apply_bloom`` to FALSE in ``emissive_appearance()``. This is done by storing bloom in the red color channel and converting bloomless emissives to green, then having both render targets have color matrixes which convert them back to white. ## Why It's Good For The Game Fancy visuals, goes hard. ## Changelog 🆑 add: Emissive objects now have a bit of a colored bloom around them. /🆑 |
||
|
|
9db2f6916b |
Sets prettier to run on the repo (#91379)
## About The Pull Request Prettier (an auto formatter) is set to only run within the tgui folder currently. This removes that limitation, allowing it to automatically format all supported files in the repo (.js, .html, .yml [etc](https://prettier.io/docs/)) I made a few exceptions for bundled and generated files ## Why It's Good For The Game I'm of the opinion that code should look uniform and am lazy enough to want CTRL-S to format files without having to think beyond that ## Changelog |
||
|
|
d3a251abec |
AI multicamera mode fixes (#91105)
## About The Pull Request Fixes https://github.com/tgstation/tgstation/issues/38307 Fixes https://github.com/tgstation/tgstation/issues/77159 Fixes https://github.com/tgstation/tgstation/issues/80465 Fixes https://github.com/tgstation/tgstation/issues/85048 Fixes https://github.com/tgstation/tgstation/issues/90748 Fixes https://github.com/tgstation/tgstation/issues/78878 Fixes camera static being hidden in multicamera mode. Also fixes borders not being drawn  ## Why It's Good For The Game Wallhacks bad ## Changelog 🆑 fix: fixed camera static not being drawn for AI in multicamera mode. Also fixes secondary AI cameras not existing and gives them their AI name /🆑 |
||
|
|
13e1c49c7d |
Planemaster Debugger Refactor (#91094)
## About The Pull Request Rewrote the planemaster debugger to be more legible and useful. Planes are now clustered based on their dependants, all buttons have been moved to the header, connections are highlighted when hovering over nodes and you can see filter type and blend mode when clicking the node (deleting a connection is done through a button in the tooltip)  ## Why It's Good For The Game Old planemaster debugger is horrifically jank to use, has broken visual offsets for all nodes, connections and buttons, and is in a single thousand line long file. ## Changelog 🆑 refactor: Refactored the planemaster debugger tool /🆑 |
||
|
|
0cadafe8e5 |
[NO GBP] Fixes camera consoles crashing clients (#90523)
## About The Pull Request Fixes client crashes when closing windows with byond rendered content. The issue was reintroduced by https://github.com/tgstation/tgstation/pull/90460 Closes: https://github.com/tgstation/tgstation/issues/89330 It does work. (sometimes?) I didn't manage to reproduce the issue locally, but it exists live. ## Why It's Good For The Game Less bugs ## Changelog 🆑 fix: camera consoles, admin supply pod launcher etc. no longer close game when they are closed /🆑 |
||
|
|
8f3f0851be |
Drops support for 515. Bumps compile ands tests to 516 (#90460)
## About The Pull Request Title. If compiled on 515 the game screen will be black ## Why It's Good For The Game There is no reason for it to exist if connecting from 515 is not allowed |
||
|
|
16ae1a7059 |
Fixes weather from Z levels above rendering over players' UI (#90324)
## About The Pull Request Because these didn't have PLANE_CRITICAL_DISPLAY they got cut off if you had multiz culling enabled, which resulted in weather from planes above getting rendered ontop of your UI. Also renamed "Multi-Z Detail" to "Multi-Z Depth" and elaborated on what it does, as "Standard" is a very confusing setting (it actually disables multi-z culling) ## Why It's Good For The Game I had no idea what this setting did until like 2 months ago when I dove into planecube code, I bet none of our players (or even most maintainers) know what it does. ## Changelog 🆑 fix: Fixed weather from Z levels above rendering over players' UI qol: Multi-Z Detail setting has been renamed to Multi-Z Depth with an explanation on what it does. "Standard" setting has been renamed to "No Culling" /🆑 |
||
|
|
8ec049e857 |
[NO GBP] Fixes blue space on lower Z levels (#90251)
## About The Pull Request Closes #90191 ## Changelog 🆑 fix: Fixed blue space on lower Z levels /🆑 |
||
|
|
0b2279d696 |
Obliterating Obscure Overlay Opalescence: Overlay Lighting Rework (#89868)
## About The Pull Request Turns overlay lighting into fake-weighted additive lighting, making it look similar to our current tile lighting.  <details> <summary>More pictures</summary>  This also allows overlay light colors to blend together nicely   </details> Additionally, flashlights can now be spray-painted as blobs of darkness will no longer be a major issue. Non-overlay sources of blobby darkness haven't been affected. ## Why It's Good For The Game Our current overlay lights kinda suck, and there's no way to control how much color they contribute to total lighting.  Also, when two light overlays meet, whichever one is positioned higher on the y axis (due to sidemap), or has been dropped last if they're positioned equally, would completely remove the other one, which looks really bad. ## Changelog 🆑 refactor: Refactored how overlay lights work - having one in your pocket will no longer color air around you into piss qol: Painted flashlights once again emit colored light. /🆑 |
||
|
|
90970eb42d |
Fixes camera consoles crushing client on 516 (#89380)
## About The Pull Request Closes: https://github.com/tgstation/tgstation/issues/89330 Replaced old hacky workaround https://github.com/tgstation/tgstation/pull/80818 with brand new hacky workaround. ## Why It's Good For The Game It is ## Changelog 🆑 fix: fixed camera consoles, spyglasses etc. client crush on 516 /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
498665f0f4 |
Fixes broken shadows on 516 (#89280)
## About The Pull Request Bandaid fix of broken shadows on 516. Renamed refresh button to rebuild for consistency in plane debugger (Edit/Dubug-Planes). Rebuild now also reapplies parallax, so it will not be turned off after rebuild. Closes #89230 ## Why It's Good For The Game faster 516 adoption ## Changelog 🆑 fix: fixed shadows on 516 /🆑 |
||
|
|
8196190aa1 |
Removes a a at at be be of of and and have have (#89155)
## About The Pull Request I just had to one-up https://github.com/tgstation/tgstation/pull/89127. ## Why It's Good For The Game Removes a a at at be be of of and and have have ## Changelog N/A |
||
|
|
d8450b4933 |
Camera eyes have been lightly refactored (among other things...) (#87805)
## About The Pull Request * A generic /mob/eye/camera type has been made, containing everything needed to interface with a cameranet * /mob/eye/ai_eye has been refactored into a generic /mob/eye/camera instance * Advanced cameras no longer inherit from AI eyes, splitting off behaviour * Camera code has been somewhat cleaned up * Probably some more stuff I'm forgetting right now ## Big man Southport:  ## Changelog 🆑 code: made /proc/getviewsize() pure refactor: mob/eye/ai_eye has been restructured, now inheriting from a generic mob/eye/camera type refactor: advanced cameras and their subtypes are now mob/eye/camera/remote subtypes code: the cameranet no longer expects the user to be an AI eye code: remote camera eyes have had their initialization streamlined code: remote cameras handle assigning and unassigning users by themselves now code: remote cameras now use weakrefs instead of hard referencing owners and origins code: also the sentient disease is_define was removed (we don't have those anymore) fix: AI eyes no longer assign real names to themselves, fixing their orbit name /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
22d319fa86 |
Weather planes from The Wallening to fix multi-z weather overlays (#86733)
## About The Pull Request I started doing this for Yogstation, but ended up doing all my testing on TG code since there's more debug tools to use, and @LemonInTheDark said I should upstream it when I was done. So I'm just gonna start here. The whole point of this is to stop multi-z maps from stacking weather overlay effects like  Old pic I know, but you get the point Now it behaves as expected https://github.com/user-attachments/assets/6d737eae-2493-4b48-8870-e4ac73dcbbeb https://github.com/user-attachments/assets/b253aa97-c90d-4049-a97d-940b0ec386d0 <details> <summary>Note: this does not fix the issue of areas out of your view not updating their appearance. 90% sure that's a Byond™️ issue</summary> https://github.com/user-attachments/assets/3db5ce28-2623-4d3e-a5f4-bd561d96010a </details> ## Why It's Good For The Game Isolating weather to its own planes is good for having better control over how it behaves. Since weather overlays are tied to areas it makes them kinda hacky to begin with, but this is a step in reigning them in. ## Changelog 🆑 fix: fixed multi-z weather overlays stacking and not hiding overlays above you /🆑 |
||
|
|
9a9b428b61 |
Wallening Revert [MDB Ignore][IDB Ignore] (#86161)
This PR is reverting the wallening by reverting everything up to
|
||
|
|
e1bf793264 |
Spelling and Grammar Fixes (#86022)
## About The Pull Request Fixes several errors to spelling, grammar, and punctuation. ## Why It's Good For The Game ## Changelog 🆑 spellcheck: fixed a few typos /🆑 |
||
|
|
e47ba6480f |
[NO GBP] Fixes examine balloons not being click transparent even while inactive (#85969)
## About The Pull Request This solution sucks, but byond is after our mortal souls and I wasn't able to find anything better. Something is very wrong with mouse_opacity and the only working solution was making the plane master invisible while its inactive. Closes #85968 ## Why It's Good For The Game They no longer eat your clicks while invisible ## Changelog 🆑 fix: Fixed examine balloons not being click transparent even while inactive /🆑 --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
69e3c0eaf1 |
Wallmount balloons are now clickable (#85887)
## About The Pull Request You can now click wallmount balloons to click the parent object. Doing so removes the shift key modifier, allowing you to interact with them instead of examining https://github.com/user-attachments/assets/d5b5ba95-4401-484a-a1a1-e738fa3ea99c ## Why It's Good For The Game Sideways wallmounts are hard to click, and this is an easy and intuitive way to solve that issue. Also oranges paid me to do this. ## Changelog 🆑 qol: Wallmount balloons are now clickable /🆑 |
||
|
|
4b4e9dff1d |
Wallening [IDB IGNORE] [MDB IGNORE] (#85491)
## What's going on here Kept you waitin huh! This pr resprites most all walls, windows and other "wall adjacent" things to a 3/4th perspective, technical term is "tall" walls (we are very smart). If you're trying to understand the technical details here, much of the "rendering tech" is built off the idea of split-vis. Basically, split a sprite up and render it on adjacent turfs, to prevent seeing "through" walls/doors, and to support seeing "edges" without actually seeing the atom itself. Most of the rest of it is pipelining done to accommodate how icons are cut. ## Path To Merge Almost* all sprites and code is done at this point. There are some things missing both on and off the bounty list, but that will be the case forever unless we force upstream (you guys) to stop adding new shit that doesn't fit the style. I plan on accepting and integrating prs to the current working repo <https://github.com/wall-nerds/wallening> up until a merge, to make contribution simpler and allow things like bounties to close out more easily This pr is quite bulky, even stripping away map changes it's maybe 7000 LOC (We have a few maps that were modified with UpdatePaths, I am also tentatively pring our test map, for future use.) This may inhibit proper review, although that is part of why I am willing to make it despite my perfectionism. Apologies in advance. Due to the perspective shift, a lot of mapping work is going to need to be done at some point. This comes in varying levels of priority. Many wallmounts are offset by hand, some are stuck in the wall/basically cannot be placed on the east/west/north edges of walls (posters), some just don't look great good in their current position. Tests are currently a minor bit yorked, I thought it was more important to get this up then to clean them fully. ## What does it look like?       ## Credits <details> <summary>Historical Mumbojumbo</summary> I am gonna do my best to document how this project came to be. I am operating off third party info and half remembered details, so if I'm wrong please yell at me. This project started sometime in late 2020, as a product of Rohesie trying to integrate and make easier work from Mojave Sun (A recently defunct fallout server) with /tg/. Mojave Sun (Apparently this was LITERALLY JUST infrared baron, that man is insane) was working with tall walls, IE walls that are 48px tall instead of the normal 32. This was I THINK done based off a technical prototype from aao7 proving A it was possible and B it didn't look like dogwater. This alongside oranges begging the art team for 3/4th walls (he meant TGMC style) lead to Rohesie bringing on contributors from general /tg/, including actionninja who would eventually take over as technical lead and Kryson, who would define /tg/'s version of the artstyle. Much of the formative aspects of this project are their work. The project was coming along pretty well for a few months, but ran into serious technical issues with `SIDE_MAP`, a byond map_format that allows for simpler 3/4th rendering. Due to BULLSHIT I will not detail here, the map format caused issues both at random with flickering and heavily with multiz. Concurrent with this, action stepped down after hacking out the rendering tech and starting work on an icon cutter that would allow for simpler icon generation, leaving ninjanomnom to manage the project. Some time passed, and the project stalled out due to the technical issues. Eventually I built a test case for the issues we had with `SIDE_MAP` and convinced lummox jr (byond's developer) to explain how the fuckin thing actually worked. This understanding made the project theoretically possible, but did not resolve the problems with multi-z. Resolving those required a full rework of how rendering like, worked. I (alongside tattle) took over project development from ninjanomnom at this time, and started work on Plane Cube (#69115), which when finished would finally make the project technically feasible. The time between then and now has been slow, progressive work. Many many artists and technical folks have dumped their time into this (as you can see from the credits). I will get into this more below but I would like to explicitly thank (in no particular order) tattle, draco, arcanemusic, actionninja, imaginos, viro and kylerace for keeping the project alive in this time period. I would have curled up into a ball and died if I had to do this all myself, your help has been indispensable. </details> <details> <summary>Detailed Credits</summary> Deep apologies if I have forgotten someone (I am sure I have, if someone is you please contact me). I've done my best to collate from the git log/my memory. Thanks to (In no particular order): Raccoff: Being funny to bully, creating threshold decals for airlocks aa07: (I think) inspiring the project ActionNinja: Laying the technical rock we build off, supporting me despite byond trying to kill him, building the icon cutter that makes this possible ArcaneMusic: Artistic and technical work spanning from the project's start to literally today, being a constant of motivation and positivity. I can't list all the stuff he's done Armhulen: Key rendering work (he's the reason thindows render right), an upbeat personality and a kick in the ass. Love you arm Azlan: Damn cool sprites, consistently Ben10Omintrix: You know ben showed up just to make basic mobs work, he's just fuckin like that man BigBimmer: A large amount of bounty work, alongside just like, throwing shit around. An absolute joy to work with Capsandi: Plaques, blastdoors, artistic work early on CapybaraExtravagante: Rendering work on wall frames Draco: SO MUCH STUFF. Much of the spritework done over the past two years is his, constantly engaged and will take on anything. I would have given up if not for you Floyd: Early rendering work, so early I don't even know the details. Enjoy freedom brother Imaginos16: A guiding hand through the middle years, handled much of the sprite review and contribution for a good bit there Iamgoofball: A dedication to detail and aesthetic goals, spends a lot of effort dissecting feedback with a focus on making things as good as they can be at the jump Infrared: Part of the impetus for the project, made all the xenomorph stuff in the MS style Jacquerel: A bunch of little upkeep/technical things, has done so much sprite gruntwork (WHY ARE THERE SO MANY PAINTING TYPES) Justice12354: Solved a bunch of error sprites (and worked out how to actually make prs to the project) Thanks bro! Kryson: Built the artstyle of the project, carrying on for years even when it was technically dying, only stopping to casually beat cancer. So much of our style and art is Kryson KylerAce: Handled annoying technical stuff for me, built window frame logic and fully got rid of grilles. LemonInTheDark: Rendering dirtywork, project management and just so much fucking time in dreammaker editing sprites Meyhazah: Table buttons, brass windows and alll the old style doors Mothblocks: Has provided constant support, gave me a deadline and motivation, erased worries about "it not being done", gave just SO much money to fill in the critical holes in sprites. Thanks moth MTandi: Contributed art despite his own blackjack and hookers club opening right down the road, I'm sorry I rolled over some of your sprites man I wish we had finished earlier Ninjanomnomnom: Consulted on gags issues, kept things alive through some truly shit times oranges: This is his fault Rohesie: Organized the effort, did much of the initial like, proof of concept stuff. I hope you're doin well whatever you're up to. san7890: Consulting on mapper UX/design problems, being my pet mapper Senefi: Offsetting items with a focus on detail/the more unused canidates SimplyLogan: Detailed map work and mapper feedback, personally very kind even if we end up talking past each other sometimes. Thank you! SpaceSmithers: Just like, random mapping support out of nowhere, and bein a straight up cool dude Tattle: A bunch of misc project management stuff, organizing the discord, managing the test server, dealing with all the mapping bullshit for me, being my backup in case of bus. I know you think you didn't do much but your presence and work have been a great help Thunder12345: Came out of nowhere and just so much of the random bounties, I'm kind of upset about how much we paid him Time-Green: I hooked him in by fucking with stuff he made and now he's just doin shit, thanks for helping out man! Twaticus: Provided artistic feedback and authority for my poor feeble coder brain, believed in the project for YEARS, was a constant source of ❤️ and affirmation unit0016: I have no god damn idea who she is, popped out of nowhere on the github one day and dealt with a bunch of annoying rendering/refactoring. Godspeed random furry thank you for all your effort and issue reports Viro: A bunch of detailed spriting moving towards 3/4ths, both on and off the wallening fork. If anyone believed this project would be done, it was viro Wallem: Artistic review and consultation, was my go-to guy for a long time when the other two spritetainers were inactive Waltermeldon: Cracked out a bunch of rendering work, he's the reason windows look like not dogwater. Alongside floyd and action spent a TON of time speaking to lummox/unearthing how byond rendering worked trying to make this thing happen ZephyrTFA: Added directional airlock helpers, dealt with a big fuckin bugaboo that was living in my brain like it was nothing. Love you brother And finally: The Mojave Sun development team. They provided a testbed for the idea, committed hundreds and hundreds of hours to the artstyle, and were a large reason we caught issues early enough to meaningfully deal with them. Your work is a testament to what longterm effort and deep detailed care produce. I hope you're doing well whatever you're up to. Go out with a bang! </details> ## Changelog 🆑 Raccoff, aa07, ActionNinja, ArcaneMusic, Armhulen, Azlan, Ben10Omintrix, BigBimmer, Capsandi, CapybaraExtravagante, Draco, Floyd, Iamgoofball, Imaginos16, Infrared, Jacquerel, Justice12354, Kryson, KylerAce, LemonInTheDark, Meyhazah, Mothblocks, MTandi, Ninjanomnom, oranges, Rohesie, Runi-c, san7890, Senefi, SimplyLogan, SomeAngryMiner, SpaceSmithers, Tattle, Thunder12345, Time-Green, Twaticus, unit0016, Viro, Waltermeldon, ZephyrTFA with thanks to the Mojave Sun team! add: Resprites or offsets almost all "tall" objects in the game to match a 3/4ths perspective add: Bunch of rendering mumbo jumbo to make said 3/4ths perspective work /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: = <stewartareid@outlook.com> Co-authored-by: Capsandi <dansullycc@gmail.com> Co-authored-by: ArcaneMusic <hero12290@aol.com> Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com> Co-authored-by: SomeAngryMiner <53237389+SomeAngryMiner@users.noreply.github.com> Co-authored-by: KylerAce <kylerlumpkin1@gmail.com> Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: Runi-c <5150427+Runi-c@users.noreply.github.com> Co-authored-by: Roryl-c <5150427+Roryl-c@users.noreply.github.com> Co-authored-by: tattle <article.disaster@gmail.com> Co-authored-by: Senefi <20830349+Peliex@users.noreply.github.com> Co-authored-by: Justice <42555530+Justice12354@users.noreply.github.com> Co-authored-by: BluBerry016 <50649185+unit0016@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com> Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com> Co-authored-by: Rob Bailey <github@criticalaction.net> Co-authored-by: MMMiracles <lolaccount1@hotmail.com> |
||
|
|
5f80128fa9 |
Corrects 200+ instances of "it's" where it should've been "its" instead (#85169)
## About The Pull Request it's - conjunction of "it" and "is" its - possessive form of "it" grammar is hard, and there were a lot of places where "it's" was used where it shouldn't have been. i went and painstakingly searched the entire repository for these instances, spending a few hours on it. i completely ignored the changelog archive, and i may have missed some outliers. most player-facing ones should be corrected, though ## Why It's Good For The Game proper grammar is good ## Changelog 🆑 spellcheck: Numerous instances of "it's" have been properly replaced with "its" /🆑 |
||
|
|
5e753b6788 |
Offset render relays for non-offsetting planes to match highest matching render plane (#84184)
## About The Pull Request **Alternate title: "Fix blind people getting so blind they become deaf when going down a flight of stairs"** So 'bout half a week to a week ago I overheard a friend complaining about blind people not seeing runechat on lower multi-z levels. Asked a bit, apparently they'd reported this about half a year ago, and it's still an issue. So in my never-ending hubris I decided to just go and fix it! Now, admittedly? I really _really_ do not get the rendering system we use. The simple options were right out: we can't allow the fullscreens plane to be offset, as this causes issues with looking up/down, or disallow runechat from being offset, which causes issues with runechat from other levels. After poking our very cool and smart rendering guy several times over the course of the last week, this is what we got to: ### The technical bits We simply make the rendering relays for non-offsetting plane masters point to the highest rendering plane that matches the target. We do this by offsetting the rendering relays in place, by adjusting their plane and layer values to match the new offset, with a new `offset_relays_in_place(new_offset)` proc called in `/datum/plane_master_group/proc/transform_lower_turfs(...)`. Importantly, we compare the current layer values to what they should've been, so we don't accidentally override relays with custom-set layers. This fixes our issue (as tested on wawastation): <details> <summary>Images</summary>    </details> ## Why It's Good For The Game Fixes #80376. ## Changelog 🆑 fix: You can see runechat above fullscreen overlays on lower multi-z levels again. Rejoice, blind players. Please report any weird rendering layering issues. /🆑 |
||
|
|
726dc54d7f |
Use 1,1 instead of CENTER as relay_loc on 516 builds (#84035)
## About The Pull Request As of 516 build 1640, whenever render_source is used, the replacement icon is now _ALWAYS_ anchored to the bottom left of the replaced icon. This kinda breaks things that relied on the previous behavior of everything being centered. ## Testing Evidence   ## Why It's Good For The Game Because having the game work is good. ## Changelog None because 516 is still not a public beta yet. |
||
|
|
466b3df048 |
Refactor removing unused defines. (#82115)
## About The Pull Request Refactors a lot of the unused defines. ## Why It's Good For The Game Refactors a lot of the unused defines. ## Changelog Nothing player facing --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
70651816c2 |
Fixes complex lights not handling moving well, renames lighting defines (#81423)
## About The Pull Request [Fixes static lights not moving](https://github.com/tgstation/tgstation/commit/ffef43c05a55dae414ef94558ecf9b9df709ded7) Worked fine when the owner moved, but if the owner was inside something else, it would try and trigger an update on the PARENT's lights, which are obviously not us. [Renames MOVABLE_LIGHT and STATIC_LIGHT to better describe what they do](https://github.com/tgstation/tgstation/commit/de73a63bd4d97783c69c95370726d1c253ffb8fe) People keep trying to change the lighting system of lamps and it makes me mad. I choose OVERLAY_LIGHT and COMPLEX_LIGHT here, I couldn't figure out a better name for turf matrix lighting. Suggestions welcome ## Why It's Good For The Game Closes #80005 Hopefully improves understanding of lighting at a glance ## Changelog 🆑 fix: Fixes fancy lights not updating their source location when picked up and moved /🆑 |
||
|
|
87c270f3ca |
Removes Halloween Screen Tint (#81355)
## What Reverts tgstation/tgstation#79062 ## Why It was a good idea (I swear) but as an everpresent effect it is far too oppressive and opinionated. It causes issues for people with less then perfect vision, fucked monitor setups (many people it seems) or those who play in the day (can you tell when I do most of my development?) I plan on reusing the concept of bracketing to implement conditional nightvision that makes bright things blow out your screen and such, but that's not happening for a while. I still think it was pretty but it's not worth it ## Changelog 🆑 del: Removes halloween screen tint, we're taking him to retire by the seaside (he was alone and unloved) /🆑 |
||
|
|
7a45a518f7 |
Fixes Cameras views on clients 515.1615 or greater (#80818)
## About The Pull Request Fixes https://github.com/tgstation/tgstation/issues/79954 Turns out the cause of cameras breaking was something weird with how Byond determined the CENTER location for screen_locs on secondary popup maps like cameras and the spyglass. This can be remedied by manually using the LEFT,TOP position for the plane relays. However LEFT,TOP breaks the views for clients 1614 and below so I included a jank solution that should allow any client up to this point have the screen displayed correctly ### 515.1609 views working  ### 515.1623 views working  ## Why It's Good For The Game Cameras working passed 1614 means you can update the server. At some point I suspect Lummox will fix the CENTER position on secondary maps and when that happens it will likely break the current fix. ## Changelog 🆑 fix: popup screen locs will work on clients >1614. Security cameras and Spyglass will work /🆑 --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
d2e517103b |
FOV Hotfix: Actually offsets gameplane render relays (#80307)
## About The Pull Request Whoops. We were basically skipping the master plate of our z level to draw directly onto the one above, so anything not on the game plane (IE: the hud) was getting totally ignored. MEMESSS ## Why It's Good For The Game Closes #80301 |
||
|
|
f03084c1ca |
FOV is Dead (Long Live FOV) (#80062)
## About The Pull Request FOV as it is currently implemented is incompatible* with wallening. I'm doin wallening, so we gotta redo things here. The issue is the masking of mobs. Wallening relies on sidemap (layering based off physical position), which only works on things on the same plane (because planes are basically sheets we render down onto) So rather then masking mobs, let's reuse the masking idea from old fov, and use it to cut out a bit of the game render plane, and blur/over-saturate the bit that's masked out. My hope is this makes things visible in light, but not as much in darkness, alongside making more vivid shit more easily seen (just like real life) Here's some videos, what follows after is the commits I care about (since I had to rip a bunch of planes to nothing, so the files changed tab might be a bit of a mess) Oh also I had to remove the darkness pref since the darkness is doing a lot of the heavy lifting now. I'm sorry. Edit: NEW FOV SPRITES! Thanks dongle your aviator glasses will guide us to a better future. https://github.com/tgstation/tgstation/assets/58055496/afa9eeb8-8b7b-4364-b0c0-7ac8070b5609 https://github.com/tgstation/tgstation/assets/58055496/0eff040c-8bf1-47e4-a4f3-dac56fb2ccc8 ## Commits I Care About [Implements something like fov, but without the planes as layers hell](https://github.com/tgstation/tgstation/commit/a604c7b1c8d74cd27af4d806d85892c1f7e35ba8) Rather then masking out mobs standing behind us, we use a combo color matrix and blur filter to make the stuff covered by fov harder to see. We achive this by splitting the game plane into two, masking both by fov (one normally and one inversely), and then applying effects to one of the two. I want to make the fov fullscreens more gradient, but as an effect this is a good start [Removes WALL_PLANE_UPPER by adding a WALL_PLANE overlay to material walls (init cost comes here)](https://github.com/tgstation/tgstation/commit/25489337392f708cb337fbf05a2329eacdfc5346) @Mothblocks see this. comment in commit explains further but uh, we need to draw material walls to the light mask plane so things actually can be seen on them, but we can't do that and also have them be big, so they get an overlay. Sorry, slight init time bump, about 0.5 seconds. I can kill it with wallening. [Moves SEETHROUGH_PLANE above ABOVE_GAME_PLANE](https://github.com/tgstation/tgstation/commit/beec4c00e01d34a04fba7c2bb98a9b70d27ead82) I don't think it actually wants to draw here @Time-Green I think this was you so pinging for opinion [Resprites FOV masks to be clean (and more consistent)](https://github.com/tgstation/tgstation/pull/80062/commits/f02ad13696b3b17658af612c62848b48609d785d) [f02ad13](https://github.com/tgstation/tgstation/pull/80062/commits/f02ad13696b3b17658af612c62848b48609d785d) This is 100% donglesplonge's work, he's spent a week or so going back and forth with me sharpening these to a mirror shine, real chill ## Why It's Good For The Game Walls are closing in ## Changelog 🆑 LemonInTheDark, Donglesplonge image: Redoes fov "mask" sprites. They're clean, have a very pleasant dithering effect, and look real fuckin good! del: Changed FOV, it no longer hides mobs, instead it blurs the hidden area, and makes it a bit darker/oversaturated /🆑 ###### * It's technically possible if we start using render targets to create 2 sets of sources but that's insane and we aren't doing it |
||
|
|
9254759323 |
Reorganizes the plane master subtypes according to the will of the plane master master (#79745)
Potato's the main plane master guy and I wanted to talk more about how they should be organized. But then someone else merged the pr so now here's the less split up version so I don't look like an ass. |
||
|
|
77dcdb7784 |
Splits up the plane masters file to be easier to browse and reference (#79370)
The title says it all, there is nothing else. Feel free to bikeshed about code organization here. |
||
|
|
2258f12ece |
Tints the screen for halloween (#79062)
## About The Pull Request Adds a color matrix to the game plate on halloween that greyscales slightly and dims/drops dim colors for a harsher dropoff I'm not sure the dropoff is strong enough, can't decide. ## Why It's Good For The Game  ## Changelog 🆑 add: Screen is now more grungy for halloween /🆑 |
||
|
|
b77fa8c2a2 |
Starlight Control (Aurora works now, space gas doesn't touch starlight, narsie ending effects) (#78877)
## About The Pull Request [Implements a setter for starlight variables](https://github.com/tgstation/tgstation/commit/af34f06b418b039b2ead90b29112b30adea4bc68) I want to start to modify starlight more, and that means I need a way to hook into everything that uses it and update it, so we can modify it on the fly. This does that, alongside removing space overlays from nearspace (too many false positives) and making the aurora modify all turfs projecting starlight, rather then all turfs in an area. Do still need to figure out handling for the starlight color usage in turf underlays tho (I gave up, we just keep it static. I'll fix it someday but the render_relay strategy just doesn't work with its masking setup) [Reworks how starlight overlays work](https://github.com/tgstation/tgstation/commit/9da4bc38e223e0ce2d91b0c8beddf1ebba968b9c) Instead of setting color on the overlays directly, we instead store an object with our current settings in every mob's screen, and render_target it down onto our overlays. This lets us update overlay colors VERY trivially. Just need to set color on the overlay var. Makes modifying starlight a lot cheaper. It doesn't work on area overlays, because suffering, and it MIGHT induce extra cost on clients. if it does we can do something about that, we'll play it by ear [Removes parallax starlight coloring.](https://github.com/tgstation/tgstation/commit/5f701a1b137c7d4c333929e4cbfdd9d4aa8656d6) I'm sorta iffy on the color, the effect can be real oppressive in some cases, and I'd like to use starlight color for more events in world, and having it vary can make that looking nice hard. [Adds some visual effects to narsie being summoned](https://github.com/tgstation/tgstation/pull/78877/commits/a423cfcb2ba9c0d729b06c36dd7d38ff68c967c2) As the rune drawing progresses space (starlight and parallax) go from normal to greyscale. Then, right about when narsie shows up, starlight becomes vibrant red. It's a nice effect. I wanna do more shit like this, I think it'll improve vibes significantly. ## Why It's Good For The Game Can't embed it because of github's upload limit, can show a [link](https://cdn.discordapp.com/attachments/458452245256601615/1160821856358645860/2023-10-08_22-31-22.mp4?ex=65360e99&is=65239999&hm=680e33e4e0026b89e132afc50c04a648a24f869eb662f274a381a5de5c5a36f2&) for the narsie stuff Here's [one](https://cdn.discordapp.com/attachments/326831214667235328/1160813747196141568/2023-10-08_22-34-10.mp4?ex=6536070c&is=6523920c&hm=f8d571d1013da89887f49f3fec99f632251eeeac83085aa7dde97009aee3922f&) for the aurora too. This gives us more pretty starlight shit, and the ABILITY to do more pretty starlight shit. I'm pretty jazzed, and I hope people use this proc more (keeping in mind that it's pretty hard on the lighting system, and needs significant delay between changes) ## Changelog 🆑 add: Narsie summoning has had some effects added to space and starlight del: Removes the link between spacegas color and starlight. It was a slight bit too vibrant and I think impacted the vibe too wildly to be incidental. fix: The aurora event actually... works now. Space lights up and all that /🆑 |
||
|
|
734587d519 |
Fixes hud screens on multi z maps (#76917)
## About The Pull Request I forgot to add ``hud_owner`` arg to screens in plane_master.dm, so they were not sending the right args on Initialize. ## Why It's Good For The Game Closes https://github.com/tgstation/tgstation/issues/76892 Closes https://github.com/tgstation/tgstation/pull/76893 ## Changelog 🆑 fix: Multi-z maps should now work again. /🆑 |
||
|
|
06ca7a4481 |
Hud screens now set hud owner in Initialize. (#76772)
## About The Pull Request Adds an arg in huds' screens to add the hud owner in the Initialize, instead of manually setting it every time we need to. This is already done in ``New()`` for lobby screens, which I left intact as lobby screens are used for new players, and are given out before atoms are Initialized. Everything else, however, uses Initialize, so it does not mess with any other args in their own Initializes (like the Escape menu). This also allows us to set the screens' HUDs as a private var, to ensure this won't be messed with in the future. Lastly I replaced instances of ``client`` with ``cannon_client`` to be consistent with a lot of other parts of hud code. ## Why It's Good For The Game Huds are easy to break when they do not have a hud owner, and for something as important as that I believe it should be something you opt-out of when you don't want it, rather than something you opt-into by manually setting hud owner every time. This cuts down on a lot of copy paste in hud code for humans, aliens, etc. ## Changelog 🆑 refactor: Huds now have their hud owner set in Initialize /🆑 |
||
|
|
2b2cb3dff6 |
Hologram Touchup (Init savings edition) (#74793)
## About The Pull Request ### Polishes and Reworks Holograms Hologram generation currently involves a bunch of icon operations, which are slow. Not to mention a series of get flats for the human models, which is even worse. We lose 0.05 seconds of init to em off just the 2 RCD holograms. it hurts man. So instead, let's use filters and render steps to achive the same effect. While I'm here I'll dim the holo light and make it blue, make the hologram and its beam emissive (so they glow), and do some fenangling with move_hologram() (it doesn't clear the hologram off failure anymore, instead relying on callers to do that) to ensure holocalls can't be accidentially ended by moving out of the area. Ah and I added RESET_ALPHA to the emissive appearance flags, cause the alpha does override and fuck with color rendering, which ends up looking dumb. If we're gonna support this stuff it should be first class not accidential. ### Makes Static Not Shit While I'm here (since holograms see static) lets ensure the static plane is always visible if you're seeing through an ai eye. The old solution was limited to applying it to JUST ais, which isn't satisfactory for this sort of thing and missed a LOT of cases (I didn't really get how ai eyes worked before I'ma be honest) I'm adding a signal off the hud for it detecting a change in its eye here. This is semi redundant, but avoids unneeded dupe work, so I'm ok with it. The pipeline here is less sane then I'd like, but it works and that's enough ## Why It's Good For The Game  More pretty, better ux, **static works** ## Changelog 🆑 add: Holograms glow now, pokes at the lighting for holocalls in general a bit to make em nicer. qol: You can no longer accidentally end a holocall (as a non ai) by leaving the area. Felt like garbage fix: Fixes static rendering improperly if viewed by a non ai /🆑 |
||
|
|
7cc6934eff |
Visual fixes (lighting, weird shit, old bugs from a parallax thing) (#73555)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may not be viewable. --> <!-- You can view Contributing.MD for a detailed description of the pull request process. --> ## About The Pull Request [Fixes a bug where anything fully dark on the floor plane would mask the lighting plane](https://github.com/tgstation/tgstation/commit/a1a03dc3393216098890b971b2271d56cb2c7463) I fucked it up boys, needed to take alpha into account here [Fixes pais getting parallax on icebox because their location was nested](https://github.com/tgstation/tgstation/commit/81252e0f45c53918a14cc0148353ec440710f8e5) God I hate this place (Note when I say get I mean they got the plane master that controls it, not that they actually got it displayed. That does appear to sometimes happen but I have no idea why) [Fixes double flashlights not activating if enabled in place](https://github.com/tgstation/tgstation/pull/73555/commits/efb8b641eaaf31990d34d6e311ce3cb21d60d880) [efb8b64](https://github.com/tgstation/tgstation/pull/73555/commits/efb8b641eaaf31990d34d6e311ce3cb21d60d880) cast_directional_light removes the lighting appearance, because it's gonna modify it, but it turns out because appearances are static when they're in like underlays/overlays, this could remove the WRONG UNDERLAY This lead to double held flashlights just... not working until you rotated. V stupid. I've also had to move the flag set to make the overlay add in cast_directional_light work. Depression ## Why It's Good For The Game Closes #73535, closes #73517, closes #73518, and fixes part of #73471 <!-- Argue for the merits of your changes and how they benefit the game, especially if they are controversial and/or far reaching. If you can't actually explain WHY what you are doing will improve the game, then it probably isn't good for the game in the first place. --> ## Changelog <!-- If your PR modifies aspects of the game that can be concretely observed by players or admins you should add a changelog. If your change does NOT meet this description, remove this section. Be sure to properly mark your PRs to prevent unnecessary GBP loss. You can read up on GBP and it's effects on PRs in the tgstation guides for contributors. Please note that maintainers freely reserve the right to remove and add tags should they deem it appropriate. You can attempt to finagle the system all you want, but it's best to shoot for clear communication right off the bat. --> 🆑 fix: Fixes activating two flashlights without moving only turning on one flashlight (until you move) fix: Purely black things drawn on the floor (like carpets, those foam dispensers, etc) will no longer cause things on top of them to be fully masked in darkness /🆑 <!-- Both 🆑's are required for the changelog to work! You can put your name to the right of the first 🆑 if you want to overwrite your GitHub username as author ingame. --> <!-- You can use multiple of the same prefix (they're only used for the icon ingame) and delete the unneeded ones. Despite some of the tags, changelogs should generally represent how a player might be affected by the changes rather than a summary of the PR's contents. --> |