12 Commits

Author SHA1 Message Date
VMSolidus 3b6d0f20ec Light Sensitivity Refactor (#22386)
The last time the Light Sensitivity code was changed, I remarked in a
review that "This should probably be a component so that its code isn't
being run on every mob forever". Well I've gotten around to doing that
myself, except I figured out it's even better off as an Element in this
situation rather than a Component. So this is now my first time adding
Elements to the repo. It turns out they're really awesome when paired
with signals.

This PR removes the hardcoded check for the light senstivity and dark
phobia traits from the Life() path, replacing them instead with two
Elements which hook into the pre-existing signal used to handle vision
updates for human mobs. I've mainly done this to help cut down on the
overwhelmingly high cost of the Life() codepath, which is currently one
of the most expensive paths we have.

While I was at it with refactoring these two, I noticed that there
wasn't a trait selection for either of them, so I added selections for
both traits to the disabilities tab so that players can opt-in to being
light sensitive or afraid of the dark!

<img width="318" height="336" alt="image"
src="https://github.com/user-attachments/assets/a1e60e83-d899-44df-8ea3-0cd5a87c231c"
/>
2026-05-18 19:21:19 +00:00
FabianK3 068352fa46 Powerless airlocks - Closed by default and the emergency override (#21649)
# Summary

This PR updates the default behavior of airlocks on powerloss and adds a
manual override for them.
By default airlocks now keep closed (and close if opened) on powerloss.
Additionally a new mechanic has been added allowing people to manually
open unpowered, unbolted and unsecure airlocks without power by
utilizing a manual override.

## Mechanics

- On power loss doors will stay closed.
- On power loss opened doors will now close.
- Manual override mechanic:
If a door is functional but unpowered and features an override handle
(previously called "insecure" by default, false for vaults and similar)
the user can now engage the manual override. It works by cranking a
hydraulic lever multiple times to force open the door without a crowbar,
this process takes around 15 seconds. The process is divided into
3-second steps each given a ratchet sound. When user waits long enough
the door will open. Doors that have been opened with the manual override
will automatically close again after the door receives power again, just
like the old behavior. While waiting the user will be informed about the
length of the process by seeing a small oil gauge fill up (via chat
message).

Process:
- User clicked unpowered door
- 3 second action (including a ratchet sound) x 5
- Every action feedback is given:
<img width="784" height="169" alt="image"
src="https://github.com/user-attachments/assets/4cf940bb-458b-4bce-8893-3cd96b5b2455"
/>

<hr>

Idea originated from: [Forum
thread](https://forums.aurorastation.org/topic/22728-airlocks-opening-on-powerloss/#findComment-182862)

## Changes

- Renamed `insecure` airlock feature to
`features_powerloss_manual_override`.
- Adjusted default powerloss behavior to close instead to open, if not
already closed.
- Added manual override feature.
- Update all `insecure = FALSE` references to
`features_powerloss_manual_override = FALSE` (vaults and similar
locations).
- Fixed a CI issue with a `RegisterSignal`.
2025-12-19 20:21:16 +00:00
Matt Atlas 94d92803b4 Replaces our lighting system with CM's. (#21465)
Depends on #21458.

Ports https://github.com/cmss13-devs/cmss13/pull/4229, with the original
authors as:

- https://github.com/tgstation/TerraGov-Marine-Corps/pull/1964 for the
lighting controller (A-lexa)
- https://github.com/tgstation/TerraGov-Marine-Corps/pull/4747 and
https://github.com/tgstation/TerraGov-Marine-Corps/pull/7263 for the
lighting (TiviPlus)
- https://github.com/tgstation/tgstation/pull/54520 for the dir lighting
component
- https://github.com/tgstation/tgstation/pull/75018 for the out of
bounds fix in lighting
- https://github.com/tgstation/TerraGov-Marine-Corps/pull/6678 for the
emissives (TiviPlus)

The main driving reason behind this is that current lighting consumes
way too much processing power, especially for things like odysseys/away
sites where a billion light sources are processing/moving at once and
the game slows down to a crawl. Hopefully this improves the situation by
a good margin, but we will need some testmerging to confirm that.
<img width="1349" height="1349" alt="image"
src="https://github.com/user-attachments/assets/1059ba2b-c0c5-495a-9c76-2d75d0c42bf2"
/>
<img width="1349" height="1349" alt="image"
src="https://github.com/user-attachments/assets/9704b0f6-4cf6-4dfd-a6cb-5702ad07d677"
/>


- [x] Resolve todos
- [x] Look into open space fuckery (border objects)

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: JohnWildkins <john.wildkins@gmail.com>
2025-11-04 21:27:42 +00:00
Matt Atlas cca0dfe7b6 Ports /tg/ and CM planemasters to replace our renderers. (#21458)
Part one of our nefarious plans to destroy lag forever, and also
accomplish some cool shit.

This replaces our renderer system with plane masters, this will also be
used to turn skyboxes into backdrops and thus totally remove skybox
updating lag. Additionally, this will let us manipulate entire planes
very easily to do all sorts of zany shit. All credit goes to the
original coders, this is some seriously cool stuff.

Also fixes some bizarre smoothing behaviour, reduces updateoverlays
calls since now not every single structure in the game tries smoothing
with nothing.

<img width="1349" height="1349" alt="image"
src="https://github.com/user-attachments/assets/9b7cecd7-3c47-448b-9dd8-9b904640bf82"
/>
<img width="1349" height="1349" alt="image"
src="https://github.com/user-attachments/assets/647d75a2-1bff-45ca-ab92-0aea10631afd"
/>

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-10-16 11:39:15 +00:00
Fluffy a3a4d46fa7 Hitby refactor (#19624)
Refactored hitby to be in line with TG's version.
Refactored item weight defines to a more clear naming scheme, also in
line with TG's version.
Refactored how the movement bumps are handled, ported signals to handle
them, in preparation for the movement update.
Fixed disposal hit bouncing the hitting atom on the wall.
Items do not push other items anymore if they are tiny.
2024-07-28 20:52:08 +00:00
Fluffy 947487ba62 Updated the Datum Component System and dcs signals handling (#19625)
Updated the Datum Component System and dcs signals handling
2024-07-20 17:33:21 +00:00
Matt Atlas 23c0fd7b4f Autolathe and wires panel TGUI, autolathe queueing. (#17978)
* autolathe 1

* FUCK MY LIFE

* more fixes

* autolathe queueing

* cl

* garbage collection

* wire fixes

* some final tweaks

* on second thought this might be annoying

* fix that

* whoopsies

* that didn't work for shit

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2023-12-21 11:40:49 +00:00
Fluffy d8d063edc6 EMP Refactor & Multi Z-level EMPs (#17781)
* sdfasf

* sdfas

* dsf
2023-12-04 19:37:49 +00:00
Fluffy 4538e2a7cc Fix indentations (#17481)
* cbt

* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

* fsadffsda sad

* sadfasd

* jhn

* dsfa

* saf

* safsad

* sda
2023-10-05 10:15:58 +00:00
Matt Atlas dd482c63af Update the codebase to 515. (#15553)
* Update the codebase to 515.

* edit that

* WHOOPS

* maor

* maybe works

* libcall and shit

* do that too

* remove that

* auxtools isnt updated so get rid of it

* actually remove auxtools lol

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2023-01-23 21:21:37 +01:00
mikomyazaki 6963ba6482 Makes passing arguments to elements work. (#9436)
The components port #8890 only partially implemented a later tg PR #49098 suggested by ninjanomnom here. Missing an important part that affected elements. The result of that was that it wasn't possible to pass any arguments other than the element datum to AddElement().

This PR adds the missing bit, which are the changes in the linked PR here and makes passing arguments to elements work properly.

And another unrelated missing bit that doesn't affect anything (yet)
2020-07-24 11:14:04 +03:00
Matt Atlas 0a162f61ee Ports Components from TG: "I don't actually know what I'm doing" edition (#8890)
God is with us.
2020-05-19 20:59:50 +02:00