Soft-ish port of https://github.com/NebulaSS13/Nebula/pull/540. Except
we call them singletons.
Repaths all materials as singletons instead of datums, and replaces
material defines from strings to paths so that we can just run
GET_SINGLETON instead of needing to use SSMaterials. This is Step One.
This PR has no player-facing changes.
changes:
- refactor: "Repaths /material to /singleton/material."
- refactor: "Replaces all material string defines to path defines,
replacing SSmaterials procs w/ GET_SINGLETON instead."
- refactor: "Removes all material var edited objects from all maps,
adding new presets where necessary."
- refactor: "Updates recipes unit test to run all recipes against all
material singletons."
---------
Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Co-authored-by: kano-dot <bhutanlikanoxy@gmail.com>
Repaths obj/machinery to obj/structure/machinery. **Note for
reviewers:** the only meaningful changed code exists within
**code/game/objects/structures.dm** and
**code/game/objects/structures/_machinery.dm**, largely concerning
damage procs. With the exception of moving airlock defines to their own
file, ALL OTHER CHANGES ARE STRICTLY PATH CHANGES.
Objects, _categorically_, are largely divided between those you can hold
in your hand/inventory and those you can't. Machinery objects are
already subtypes of Structures behaviorally, this PR just makes their
pathing reflect that, and allows for future work (tool actions, more
health/destruction functionality) to be developed without unnecessary
code duplication.
I have tested this PR by loading up the Horizon and dismantling various
machines and structures with tools, shooting guns of various types
throughout the ship, and detonating a bunch of explosions throughout the
ship.
**power stuff**
- generally 10Xs all power draw stuff so they actually have a
significant effect on assembly power cells.
- buffs some of the lower-end power gen. circuits to go with, but the
higher-end ones can already handle the new numbers
**reagent pump**
- changes adjacent check to use turfs to cover more bases (ie. assembly
being held in-hand, or source/target being in an assembly thats held
in-hand — these being 90% of reagent pump uses)
**tickers**
- shouldn't have appended `SECONDS` to them all. they work as advertised
now (again)
---------
Signed-off-by: c#min7 <sadkermit01@gmail.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
- Updates the **medical analysers** to get health values significant to
Brainmed instead of Pointmed. About 6 years late?
- Adds a **radiation scanner**.
- Adds a **light scanner**.
- Adds a **custom ticker** that can be calibrated between 2 (fast ticker
equivalent) and 600 seconds.
- Adds a **face scanner** that can get basic information about
humanoids, including: name (same as an examiner), general flavourtext,
face flavourtext, species, height, estimated age, and eye colour. Has
applications for species-specific circuitry, identity confirmation, or
flavour usage.
- Adds a **flasher** that functions similarly to the **shocker**, but
applies a non-weakening/non-stunning flash instead. Shocker nerfed to
have much higher power draw, which the flasher also mimics.
- Redid all of the **tickers** to actually use seconds (as advertised in
their descriptions). Their intervals have also been changed to be more
significant: 10-secs, 30-secs, 5-mins, 2-secs (upgraded printer only),
custom 2sec to 10mins (upgraded printer only).
- Adds an **Alden-Saraspova counter circuit**. Scans only immediate
(in-view) surroundings for mineral deposits with artefacts inside and
returns a distance.
- Adds a **bluespace portal circuit**. Consumes bluespace crystals
(either tear apart Telescience OR get high tech levels + every material)
to open a portal with a destination based on a supplied *direction* and
*power*. Worse than telescience in every way (5x5m variance;
cardinal/ordinals only; no cross z-level teleporting; 1-way; BUT it's
portable!)
- Adds a **bubble shield circuit**. Relies on relative coordinate inputs
to generate a low health shield. Max range of 3 tiles. Max lifespan of
60 seconds. Can only project 3 shields at a time.
**To-Do:**
- [x] Test everything
- [x] Add any other quick requests before I hit review
- [x] Fuck around with circuits ingame for a bit to figure out any other
gaps
- [x] Test everything again
---------
Signed-off-by: c#min7 <sadkermit01@gmail.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
Replace /datum/gas_mixture/proc/return_pressure with XGM_PRESSURE(xgm)
macro. Having such a relatively simple statement contributing proc
overhead to procs called millions of times is ridiculous
Rename /datum/gas_mixture/proc/zburn to react, deleting the old react
which was just an alias for it. Free proc overhead
Turn check_combustibility into a macro CHECK_COMBUSTIBLE(is_cmb, xgm).
also rewrite it slightly so that it only needs to do one pass. Its a bit
nasty so I apologize for that, but speeeeed.
Delete most powernet and obj/machinery/power procs for handling power,
replacing them with macros. The fact that we were unironically calling a
draw_power() on APCs to call draw_power() on their terminals to call
draw_power() on their powernet every single process tick was insane.
Turn `between` into a macro alias for clamp() since the param order is
different
turn `Percent` into a macro AS_PCT
Rewrite significant chunks of update_canmove so its not quite as
horrifying of a proc and hopefully doesn't eat the entire mob subsystem
every movement now
This has zero reason to exist in our code base. We have no procs or
variables tied to this. I removed it to make future modifications
cleaner.
---------
Signed-off-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
For a robust crafting system, I need a new materials framework.
For a new materials framework, I need to clean up reagents.
To clean up reagents, I need to pare down foods from reagent holders.
To pare down foods from reagent holders, I need to port edibility
components.
To port edibility components, I need to port processing components.
To port processing components, I need to port tool behaviors.
This is all back-end code, no new features or functionality from this.
V2 of [previous music playing
PR](https://github.com/Aurorastation/Aurora.3/pull/21466). TLDR no
longer uses the connect_range component for implementation because it
turned out a bit too inflexible for overlapping music players.
Removes a NanoUI template for the [TGUI
update](https://github.com/Aurorastation/Aurora.3/pull/21046).
New changelog:
- refactor: "Ported Jukebox's NanoUI interface to TGUI."
- refactor: "Ported Jukebox audio playing functionality to a component."
- refactor: "Sound keys refactored from singletons to datums, along with
larger breakout of sound.dm to allow for easier SFX updates in future."
- code_imp: "Expanded track datums to include track lengths."
- code_imp: "Reorganized music file folders for more intuitive access."
- rscadd: "Earphone status feedback text now includes track length."
- rscadd: "Added autoplay functionality to earphones."
- bugfix: "Fixed earphones' 'Previous Song' verb not sending you to the
end of the playlist when used while the first track is selected."
- bugfix: "Fixed gain adjustment for 'Konyang-1' (-23 dB -> standard
-9.8 dB)."
- bugfix: "Fixed y-offset of audioconsole-running overlay animation to
line up with the actual screen."
---------
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Fixes https://github.com/Aurorastation/Aurora.3/issues/18951
Fixes https://github.com/Aurorastation/Aurora.3/issues/19447
Fixes https://github.com/Aurorastation/Aurora.3/issues/20283
Fixes https://github.com/Aurorastation/Aurora.3/issues/21395
Overhauls a wide variety of INDRA behaviors and related gas/material
properties.
changes:
- balance: "Fusion reaction modifications. Higher radiation and
temperature output, comparable power output."
- balance: "Increased rad resistance modifier of Borosilicate Windows
from 1 -> 4 and (closed) Blast Doors from 1 -> 6."
- balance: "INDRA Field Strength minima/maxima changed from 1-100 ->
20-120. Power costs increased significantly."
- balance: "INDRA instability increase per tick now limited, similar to
Supermatter (prevents sudden instability spike from instantly nuking
it)."
- balance: "APC cell charge rate increased 10x."
- balance: "Rebalanced contents of INDRA hard storage compartment."
- balance: "SMES coils capacities halved, throughputs doubled."
- balance: "SMES unit maximum coil capacity increased from 6 -> 8."
- balance: "TEG maximum power output increased from 500000 -> 2500000."
- balance: "Power wasted from exceeding TEG maximum power output
decreased from 50% to 33%."
- balance: "Portable generators of all types have had their power
generation capacity doubled."
- rscadd: "New 'Fusion Codex' app added for all crew with ACCESS_ENGINE
that details all available nuclear fusion chains."
- rscadd: "Boron added as a singleton/reagent. Poisonous to vaurca,
still usable in nuclear fusion as fuel assembly rods."
- rscadd: "INDRA Field Strength now scales plasma temperature entropy,
power output from temperature multiplier, and instability increase per
tick."
- refactor: "'Boron' gas renamed to 'Helium-3'. Boron is not a gas. Deal
with it."
- refactor: "'Steam' gas renamed to 'Water Vapor'."
- code_imp: "Descriptions added to gas singletons for future use."
- qol: "Minor remap of INDRA control room for usability."
- qol: "Standardized gas canister naming conventions."
- qol: "INDRA and APC TGUI interfaces now use use kW, MW abbreviations
for high wattages."
- bugfix: "INDRA Kinetic Harvester no longer rapidly deselects materials
for harvest when too many are being generated at once."
- bugfix: "INDRA EM Field effect no longer considers the camera within
its reactor chamber a destabilizing influence."
- bugfix: "INDRA reactor core now produces radiation as intended."
- bugfix: "Deuterium and Tritium canisters no longer contain 50%
standard hydrogen (inheritance issue)."
---------
Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Geeves <22774890+Geevies@users.noreply.github.com>
changes:
- qol: "Integrated Electronics camera can now be configured for
different camera networks"
- qol: "Reduced Integrated Electronics speaker functions cooldown from
4s -> 1s, for translating busier conversations. Behave."
- qol: "Add Integrated Electronics component 'size' value to displayed
properties."
- balance: "Increase maximum components and complexity of integrated
circuit 'electronic implant' assembly by 25%."
1. Look up now follows your mob (no more auto-removal when you move,
only when you go below a solid tile). Maybe add a hotkey?
2. Made the codebase work with the latest version of spacemandmm lint.
3. Advanced kits don't work on robotic limbs.
4. Density shifting should now always use set_density. Ported
TRAIT_UNDENSE from CM to better control the density of living mobs.
Fixes weird shifting behaviour with wall leaning -- what was happening
is that mob density was getting reset to TRUE because the mob wasn't
lying down.
5. TGUI say light prefs actually save.
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Fixes#19603Fixes#20558
- bugfix: "Fixes plant bags - now uses storage_slot system, along with
other bag subtypes."
- bugfix: "Borgs can interact with tables again."
- refactor: "Refactors make_exact_fit to be a binary variable."
- refactor: "Refactors storage items to use make_exact_fit instead of
arbitrary max_storage_space values."
- refactor: "Refactors storage items to use defines for storage space."
- bugfix: "Fixes monkey cube boxes having superfluous overlay."
- rscadd: "Updates the progress bar toggle message."
- qol: "Objects that rotated 90 degrees in storage no longer rotate in
storage slots."
<img width="732" alt="dreamseeker_qRVkIlYN78"
src="https://github.com/user-attachments/assets/1226ed22-52c1-4965-a1b4-2290e56a2ab3"
/>
Don't let the large file size scare you, it's just mostly splitting
stuff into contained sprites and putting them in the correct place.
Anyway, resprites most non-resprited devices in devices.dmi, and puts
them in contained sprites.
Also puts any related /obj/item/device into contained sprites too.
That's basically the long and short of it.
Resolved some runtimes for mimic turfs on examine.
All examine headers respect the proc signature.
All examine that do not explicitly need not to, passthrough the arglist
to references examine target procs.
Runtime map now has a bunch of new areas / items with often-tested
stuffs, and some hard-to-put-at-runtime stuffs.
Runtime map jobs now are positioned to make it faster to reach the
aforementioned often-tested stuffs.
Runtime map doesn't generate an overmap anymore by default, which speeds
up the process.
Runtime map now loads in ~11 seconds instead of ~40 seconds as it was
before.
Updated the maploader to be faster in parsing maps.
Bapi is not engaged anymore if we're only measuring the map size, which
speeds up the process.
In fastboot we do not generate the codexes anymore, which speeds up the
process.
In fastboot and if exoplanets and away sites are not enabled, we do not
parse the map templates anymore, which speeds up the process.
Updated the icon smoothing to be faster.
Optimized cargo area code.
Other optimizations.
Refactored all the builtin text procs to use string interpolation
instead.
Added a linting for the above.
This is based on, and should only be merged after, #19847
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.
Standard examination was in an examine box. This makes it so fluff
examines are also in a box.
Fixes#18438
---------
Co-authored-by: Cody Brittain <cbrittain10@live.com>
Our SSOverlays system is outdated, and is likely the cause of many of
the issues seen in #18895. It has also been linked to a massive server
performance decrease.
This brings an updated system from Baystation, hopefully with speed
increases.
Should be testmerged, ideally with #18895.
---------
Co-authored-by: Cody Brittain <cbrittain10@live.com>
Unified most of the procs into one definition, so there are no duplicate
around the codebase.
Marked some of the above as overridable if a good enough case can be
made for them (eg. external dependency or unlikely to be used).
* sdaf
* sdaf
* sdfa
* sadf
* sfda
* gfd
* reduce thrusters volume
* sdafsadsdaf
* sdfa
* Reduced some sound ranges and made some/more not ignore walls for loops
* health analyzers too
* ivdrip adjustment
* most tools now use play_tool_sound to have the sound played, reduced range for it
* pain
* sadfas
* sdfa
* sdfasf
* sfa
* sdf
* might the lord have mercy on our soul
* i cri everidai
* adeste fideles
* sdf
* where will this lead, what's coming next, from your inventions
* dear lord
* gjvhk
* i cri everidai
* fsgf
* sdfa
* sdaf
* hiuhi
* SDQL2 update
* fix that verb
* cl
* fix that
* toworld
* this is pointless
* update info
* siiiiick..
* vv edit update
* fix that
* fix editing vars
* fix VV
* Port the /TG/ globals controller.
* part 1
* part 2
* oops
* part 3
* Hollow Purple
* sadas
* bsbsdb
* muda na agaki ta
* ids 1-15
* 16-31
* 41-75
* bring me back to how things used to be before i lost it all
* the strength of mayhem
* final touches
* cl
* protect some vars
* update sdql2 to use glob
* stuff?
* forgot that is not defined there
* whoops
* observ
* but it never gets better
* a
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
* i alone am the honoured one
* THROUGHOUT HEAVEN AND EARTH I ALONE AM THE HONOURED ONE
* hollow point
* nanana
* ssss
* tgsay final touches
* stuff
* tgui inputs
* help
* carpal tunnel syndrome
* ffff
* again and again and again and again
* hehehehe
* dsada
* readd sanitize
* whoops
* dsad
* nah fuck that
* sd
* fix
* ow
* remove prefs for testmerging
* oops
* oops 2
* fix that
* f
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
* The Pumped Up Kicks Update
Shoes. New shoes. Look at them.
* WELCOME TO THE UNDERGROUND
* for the love of crust
* turns out a var already existed for that but was never implemented ffs
* face it you're never going to make it
* these are winter boots
* removes Paradox's Thinly Veiled Fetish
* shiit
* Apply suggestions from code review
* Update code/modules/clothing/shoes/oxfords.dm
Co-authored-by: Cody Brittain <cbrittain10@yahoo.com>
* oops
* fuck this file
* nice balls, bro
* check out how hard i can pee
* pissing on the moon
* caligaeae
* pee pee poo poo man
* fixes
* damn you
* merge fixes
* knees more
* damn you merge conflict
* fix
* fixes 2
* riding boots
* truly, this fixes things
* dammit ctrl s
---------
Co-authored-by: Cody Brittain <cbrittain10@yahoo.com>
* after dark
* FIXES
* breakin
* butt
* Update code/game/objects/items/devices/floor_painter.dm
Co-authored-by: Cody Brittain <cbrittain10@yahoo.com>
* Update code/game/objects/items/devices/floor_painter.dm
Co-authored-by: Cody Brittain <cbrittain10@yahoo.com>
* Update code/game/objects/structures/lattice.dm
Co-authored-by: Cody Brittain <cbrittain10@yahoo.com>
* testing 1
* a
* FUCK THIS PRESET!!!
* allah
* OTEMACHI
* tis' done
* Project Exorcism : Sneed's Snairs (Formerly Chuck's)
* Update code/game/objects/structures/stool_bed_chair_nest/chairs.dm
* Update code/game/objects/structures/stool_bed_chair_nest/chairs.dm
* Update stools.dm
* Update code/game/objects/structures/stool_bed_chair_nest/stools.dm
* Update code/game/objects/structures/stool_bed_chair_nest/stools.dm
* Update stools.dm
* Update chairs.dm
* Update code/game/objects/structures/stool_bed_chair_nest/chairs.dm
* inhand fixes
* airlocks (matt has cooked)
fuck
* my cody plays the mamba
* fuck
* fixes layering issue
* airlocks and everything else Please fucking kill me
* underlays
* unfuck blending
* finished replacing old ass shit
* your ass is geass
* conflicts die now
* public fat'wa
* progress on walls and windows
* more mapping
* baltimore accents be like
* minor progress
* monitors
* fire alarms and apc adjustments
* apcs pixel adjustments, final airlock look
* also grilles
* shuttle wall start plus shuttle windows
* starting consoles
* table outlines
* I love broke ass sprites
* fixing the stupid ass exterior walls
* light fuckery
* terminal directionals, external airlocks, table fixes, blahblahblah
* fix 1
* fix 2
* some more fixes
* fix chairs
* basic untested railings and updating colors from atteria
* bridge and some fixes
* removing some artifacts on the new walls
* breaking wood tables and adding 4 wall materials
* fix
* compile & wood fixes
* make the horizon compile again
* railings, firedoors, ATMs, intercomms and tables again
* mapping begins also some tweaks to map view of icons
* full tile steel walls
* i sure hope nothing bad happens
* airlock updates (untested)
* reverts most wall machinery
* skull
* wall coloring
* makes the tg wood chill out
* work on airlocks
* hull consistency
* cause you live forever in the lights you make
* whoops can't show that in a christian manga
* terminals should be on walls and everything's hunky dory now
also i changed the wood stuff as per atteria's suggestion
* fixing airlocks
* fixes
* window resprite, coloring adjustments
* scc hull resprite
* new grilles, frame edits, and borosilicate
* greyscale wood palette improvement
* shuttle windows
* window frame fix
* apc update
* refit and reshaded fire alarms
* mapping icon fixes
* table fixes
* map fixes, platforms and stairs
* updates cutter, new walls and terminals
* mapping fixes
* fix preview
* preview fix stone
* stairs
* initial work for the map
* railing and windowpane fuckery
* new external airlocks
* a
* fix the maps in preparation
* wall object pixel offsets
* air alarms D1
* extinguisher cabinets
* APC DESTROYED MISSION ACCOMPLISHED GOOD WORK
* deck 3: floor decals, APCs, air alarms, fire extinguisher cabinets
* deck 3: fireaxe cabinet
* /shuttle_landmark/distress/blue, move base_turf from map to obj def
* intercom presets
* formatting
* deck 1: floor decals
* deck 2: named area fix (LMAO), signs to use single quotes
* deck 2: floor decals, APCs, air alarms, fire extinguisher cabinets, fireaxe cabinets
* Platforms and stairs!
* grates and bugfixes
* Angled ship walls + grate color fix
* corrects apc anim overlay
* deck 2 and away site fixes
# Conflicts:
# maps/sccv_horizon/sccv_horizon-2_deck_2.dmm
* deck 2 missing grate
* warning stripes
* railings and ledges
* windows and fixtures
* windoorsagain
* airlocks pt1
* windows de-seamed and transparent
* airlocks and pixel offsets
* fixes for airlocks
* more airlock fixes
* presets for ringer, request console and newscaster
* 132
* asfsaf
* kitchen tiling
* thicker freezer tile bevels
* More angled walls
* New shutters and blast doors
* directional corrections
* ops railing fixes
* updated window map things and shutters
* value changes and blast door changes
* Ledges and platforms galore (D2/D3)
* all decks: fix door dirs
* all decks: newscasters, intercoms, requests consoles, ringer consoles
* helm light blue decals to dark blue
* supermatter door dir fix
* fix directional presets (dirs/offsets): newscaster, intercom, requests console, ringer console
* firedoor changes
* deck 3: overlapping wall mountables fixes
* map changes
* airlock changes
* map tweaks
* airlock & stair icons
* various mapping modifications
* Double airlocks + fixing denied states + fixing airlocks on all levels
* Rebase
* directional terminals buttons and lights again, platform tweaks
terminal north facing sprites, atm/food terminal directionals
proper door control and lightswitch directionals (presets still need to be set up, mapping)
re-adds new light tube sprites, again
new sprites for floor lights and the other stuff that got added
adjusted platforms to be recolorable, added light and dark versions, fixed some shading
* missing ERT outfit thingy fix
* floor lights fixed
* deck 3: various small fixes
* deck 1: various small fixes
* deck 2: various small fixes
* fixes
* d2 fixes & multitile door fix
* d2 fixes, remove unused airlock files, button icon fixes, window icon fixes
* make it actually compile, oops!
* make it actually compile, pt2
* CE office camera
* pew pew pew
* pew pew pew 2
* fixes
* deck 3: buttons fixes
* deck 3: button and other fixes
* deck 3: fixes and stuff
* D1 fixes & skrell airlocks
* minor D2 tweaks
* a lot of airlock-related fixes, glass tables, paint sprayer fixes, decal fixes, changelog
* maintenance hatch sprites
* fixing double doors
* flips multi-tiles, fixes multi-tiles, adds desk windoors
* new plastic flaps
* deck 2: a few buttons
* side + middle doors
* created paths for 3-tiles doors
* apply to map the 3 tiles airlocks
* some fixes, windoor alpha
* remove this random ass potted plant
* more map fixes
* holodeck disposal pipe fix
* secure airlock sprites
no code or obj definitions yet
* vault airlock
* vault door fixes
* scc window alpha
* adjusts double door glass, firedoor open state
* adjusts construction states for doors
* remove some defunct icons and fix anims
* assembly stuff
* pharma fixes
* vault door dir
* firedoor smart generation moved to its own proc
* lift doors, d1 fixes
* firedoor smart generation: adjacent wall check
* firedoor smart generation: adjacent firedoor check
* all decks: missing firedoor and other fixes
* deck 2: weird maint stairs fix
* oops
* diona airlock fix
* the shuttle wall gigadeath
* fixes
* some fixes for leftover map item paths, and double lattices
* new diona walls
* more fixes
* and more
* deck 1: fix out of bounds keys
* deck 3: fix out of bounds keys
* runtime 3: duplicate APCs fix
* all decks: make all 3 tile wide doors glass
---------
Co-authored-by: Wezzy <wowzewow@gmail.com>
Co-authored-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com>
Co-authored-by: Cody Brittain <cbrittain10@yahoo.com>
Co-authored-by: kyres1 <noodle.buster31@gmail.com>
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: atteria <tarkona@protonmail.com>
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
Co-authored-by: DreamySkrell <107256943+DreamySkrell@users.noreply.github.com>
Co-authored-by: naut <nautilussplat@gmail.com>
Co-authored-by: naut <55491249+nauticall@users.noreply.github.com>