77 Commits

Author SHA1 Message Date
Batrachophreno eebb8b971c Materials Repath (#22388)
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>
2026-07-10 18:45:58 +00:00
VMSolidus aa2afd0039 Revert "Materials And Stack Harddel" (#22364)
Reverts Aurorastation/Aurora.3#22313

Somehow made a race condition that causes the protolathe to delete
stacks if and only if the stack would have been "finished" by fully
placing the stack in the protolathe.
2026-04-27 00:13:14 +00:00
VMSolidus 425567a43b Materials And Stack Harddel (#22313)
To clarify I have recently cancelled my subscription to google's coding
agents, so this is my first hard del PR in several weeks that was done
completely by hand. This PR fixes a hard del on Materials (and their
parent Stacks), which was being caused by up to 4 different vars
potentially containing references that were not being cleared during
their Destroy() procs.

I have also tested this by hand, by spawning and deleting stacks, then
waiting to see if the hard del triggers or not.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
2026-04-24 21:43:21 +00:00
VMSolidus a290281d14 Fix Improper Destroys (#22166)
We think the culprit behind this one was VSCode autofilling Destroy()
with . = ..()
which is improper. There's a **surprising** number of improper order
Destroy() procs in the repo, so I might as well get all of them in one
pass. Several of these files are associated with currently known hard
dels, such as the modular computer and organ related dels. More than a
couple were my own mistakes, since the Destroy() or Removed() . = ..()
behavior on signal registering objects also prevents the signal from
being unregistered, which similarly creates a hard del.

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
2026-04-08 15:52:13 +00:00
Wildkins e4192f9b8f Lag War Day 5.5: are you serious dude (#21889)
we have a gorillion hard deletions and it turns out half of them are
because we set the "ALWAYS HARD DELETE THIS" flag rather than just like.
fixing the hard delete.

cool
2026-02-21 01:41:50 +00:00
Batrachophreno 5277251959 Tool behaviors port (#21663)
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.
2026-01-27 08:44:49 +00:00
Batrachophreno b3b4f4b9c6 INDRA, general nuclear fusion update (#21285)
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>
2025-10-05 20:13:06 +00:00
Batrachophreno 387cee9243 Object Examine Text Overhaul (#20923)
Extends and reworks how various extended information text (desc_info,
desc_build, desc_upgrades) are handled to make object interactions and
mechanics A.) much more clearly documented in-game and B.) much easier
to support from the back-end.

Almost certainly a candidate for test merge.

Assembly/Disassembly instructions are noticeably sporadic, largely due
to our current lack of a unified framework. That's a future thing I'd
like to attack so that it can be handled programmatically, but for now I
only targeted the biggest culprits as I came across them.

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
2025-07-21 15:35:14 +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
BoomerThor 8edb34e502 Mining buffs and QoL (#19316)
Adds galena and bauxite ore generation to exoplanets, and adds a raw
hydrogen sprite.
![Screenshot 2024-06-02
130358](https://github.com/Aurorastation/Aurora.3/assets/121932955/3eda1347-ab1e-46a7-b7fb-50e19b01c4b8)

Lets some previously un-stackable materials get stacked.
![Screenshot 2024-06-02
135255](https://github.com/Aurorastation/Aurora.3/assets/121932955/41aac2eb-6c9a-4084-b498-8a72f817be18)
2024-06-08 16:46:57 +00:00
Fluffy 3dc4cce9c2 Minor span refactoring (#19177)
Minor span refactoring
2024-05-19 16:37:29 +00:00
Cody Brittain 9983fca311 Update SSOverlays (ported from Baystation) (#19051)
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>
2024-05-01 07:46:27 +00:00
Fluffy ab23fbdb70 Function overloads condensation (#18939)
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).
2024-04-19 21:19:41 +00:00
Matt Atlas fec6dbe24f Adjusts the force of all items to be multiplied. (#18708)
* force balancing?

* force

* cl & maglight nerf

---------

Co-authored-by: DreamySkrell <>
Co-authored-by: Matt Atlas <liermattia@gmail.com>
2024-03-24 17:10:31 +00:00
Cody Brittain 9af6b74e99 Added Lead, Plastic, and Aluminium as new materials for the Autolathe (#18684)
* Added Lead and Aluminium as new materials, and added them and Plastic to the Autolathe

* Fix Spaceman.dmm lint

* CL

* Remove bad merge

* Mapped in Aluminium and Plastic to operations, mapped in Aluminium for Engineering

---------

Co-authored-by: Cody Brittain <cbrittain10@live.com>
2024-03-21 11:41:50 +00:00
Fluffy 9afe761db3 Some refactors, DMDoc and UT (#18365)
* dsfa

* accessories fix

* fixed "has been hit by" message with intent check

* sdfa
2024-02-12 15:32:23 +00:00
Fluffy ca6b04e1d7 Updated SSgarbage (#18173)
* 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
2024-01-15 14:08:27 +00:00
Cody Brittain 06601c9ec3 Split up and rename var/flags (#17794)
* Split up and rename `var/flags`

* Various fixes

* CL

* Don't rename Phoron Guard phoron preset

---------

Co-authored-by: Cody Brittain <cbrittain10@live.com>
2023-11-22 16:27:51 +00:00
Matt Atlas add4866177 Ports the fusion reactor from Baystation12, replacing the Tesla. (#17415)
* There's no tomorrow

Life is but an echo

* delirious

* the fire burns within me yet again

* OBLIVIOOOOOOOOOOOOON

* too weary to die

* ffff

* Finished R-UST map

* fusion core ui improvements

* mais tu me tue!

* drag me down

* take me in

* fix that wire

* cl

* R-UST -> INDRA

* cc

* UTs

* sss

* thanks mapdiff

* sd

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: shaky-jake <137534368+shaky-jake@users.noreply.github.com>
Co-authored-by: ShakyJake <jakeisnowshaken@gmail.com>
2023-10-07 19:57:22 +00:00
Alberyk 3392da8f54 Adds woodcutting mechanics (#15906)
* we out there cutting

* Fix

* changelog

* more wood cutting

* stump

* cool icons

* suggestions

* the log
2023-03-07 17:20:14 +00:00
Wowzewow (Wezzy) b42d489030 Materials And Medical Stacks (#15586) 2023-01-23 20:50:27 +01:00
WickedCybs e1ceeecfe2 Two New Away Sites + Extra Tiles and Other Stuff (#14611) 2022-08-23 01:49:39 +02:00
Matt Atlas f3dfc58468 Fixes shuttle walls interactions, renames shuttle alloy to plastitanium. (#14400) 2022-07-07 14:02:00 +02:00
Wowzewow (Wezzy) eafa547b5c Ports use_tool proc from /tg/ (#13411) 2022-05-23 14:39:00 +02:00
SleepyGemmy 7387080448 Reworks Portable Generators (#13663) 2022-05-06 13:59:01 +02:00
Wowzewow (Wezzy) 96f1c79d0e Allows painting of padded stools, chairs and beds. (#12855) 2021-12-26 21:12:36 +01:00
Geeves c4b0089749 Synthetic Smörgåsbord (#12417) 2021-09-06 22:47:27 +02:00
Geeves b53fa357ed Matriarch Drones (#12275)
* Matriarch Drones

* forgot this
2021-08-05 13:01:50 -03:00
Doxxmedearly a69fcd5fe6 Animal Hide Updates (#12083)
* Animal Hide Updates

* CL, Fine Hide, and Fixes
2021-06-25 18:57:57 -03:00
Geeves 0d8128ce1e Sheet Numbers (#11541) 2021-04-19 18:39:02 +02:00
Geeves 6f0af4cd62 Steel Carving (#11142) 2021-02-15 15:02:33 +01:00
Jiří Barouš 524bf9c417 Mitigates (autolathe) recycling exploits by minimizing what can be recycled, adding unit tests and fixing the recipes (#10375)
* Mitigates research recycling exploits by minimizing what can be recycled

* Moves the research design check into a new unit test

* Adds unit test for stack material recipes costs and fixes these costs

* Instead of changing recipes the resulting materials are worth less

* Crap fix
2020-10-30 12:20:59 +01:00
Wowzewow (Wezzy) 2f0b0bf80c lever tile correct sound + wired glass show correct sprite (#9958) 2020-09-11 14:40:48 -03:00
Wowzewow (Wezzy) 7114d3525f More new sounds and fixes equip sounds (#9464) 2020-08-12 11:17:39 +02:00
Geeves 1f213e48c0 Description Consolidation (#9038)
I moved the desc_info to their parent thingies, because alt clicking the type and being sent to the description.dm was infuriating.
2020-06-10 09:03:44 +03:00
Wowzewow (Wezzy) fad8415a8e Pickup, Drop and Equip sounds (#8861) 2020-05-22 15:40:00 -03:00
Geeves fbfd4b5738 Adminbus Things (#8683)
Adds full variants of stacks of items in the spawn menu.
    Adds local narrate, which allows you to narrate to all mobs in a 7 tile radius.
    Allows admins to reset stationbounds via right click or Special Verbs menu.
    Adds a random type golem rune to the spawn menu, if an admin wants to adminbus a random golem into a round.
2020-05-15 23:37:51 +03:00
Matt Atlas 82437acd43 Materials subsystem, material defines instead of strings, structure materials. (#8447)
The shitcode crusade begins.
2020-03-18 20:19:11 +01:00
mikomyazaki 21f348ec57 Adds a unit test to check for any missing initial icon states (#8332) 2020-02-23 02:43:12 -03:00
Werner cb4a712851 Enforces Lineendings and adds Editorconfig (#7657) 2019-12-21 16:19:24 +01:00
Werner af16a489a6 Removes Weapons (#7415)
* Adds icon and hitsound where needed.

* Moves alt_attack to /obj/item and deletes weapons.dm

* Replaced /obj/item/weapon with /obj/item

* Fixes merge issues.

* Fix merge issues.
2019-11-16 18:36:13 +01:00
fernerr c1ab0e6ada Some bugfixes (#7054)
Fixes #7052
Fixes #6984
2019-09-24 07:44:39 +03:00
Lady Fowl d6ff38ef96 The Epic Construction Update (#5976)
How to build machine blueprints!

Use steel sheets like normal, then rotate the frame how you like it using the directional arrow. From here use a Multitool to finalize it and then wire it up like you would before.
2019-09-10 22:07:46 +03:00
fernerr 2a2cc7d52e Ports table item autoalign from Bay (#6946)
Made it so items get their pixel x/y reset on pickup.
    Thrown items now also get their pixel placement slightly randomized.
    Tweaked the center of mass on a boatload of items to be more accurate to their sprite art.
    Replaced a bunch of randomized pixel placement code into a unifying proc; randpixel_xy() that uses an item's randpixel var.
2019-09-08 22:51:49 +03:00
alsoandanswer d875dcfc3b Weapon, pickaxe and shield resprite (and a bunch of other stuff) (#6776)
this resprites some weapons,

namely the butterfly knife and switchblade to not be comically oversized
(you know, they're...concealable.)
tweaks some other sprites too, like the handles of polearms and the stunbaton
this doesn't change how they look from afar, they're practically the same in glance value
riot shield taken from Eris (and tactical shield is a modified version of that)
made ebarrier use same colors as eshield (this makes more sense, honestly)
2019-08-24 15:20:31 +03:00
MarinaGryphon 68dd51121c Makeshift Chemistry and Medical (#6618)
Skull is fucking CRYING right now.
2019-07-26 11:57:05 +03:00
alsoandanswer 53c5ff67a5 Fixes #6567, tidying up glass code and #6575, #6577 (#6576) 2019-06-25 17:39:04 +02:00
alsoandanswer 1bab746d17 adds new sounds (the not stupid version) (#6307) 2019-05-05 23:51:08 +02:00
Alberyk 76b743a986 Adds the Aut'akh unathi (#5919)
* Base work for the unathi robot subspecies.

* Adds metabolism species, kidney vars, and the robot unathi organs.

* Moves some action buttons to organs, pretty much a bay port right now. Todo: the unathi and alien stuff should also go here.

* First autakh implant power.

* Fixes the organs action button this time.

* Finishes more implants, and interactions with flashs and vaurca.

* Prepare for great changes.

* Drops the real bomb, boss.

* He who fights with monsters.

* Far more work into augments and limb removing powers.

* Limb verbs should be good now.

* A LOT of work into the assited organ, allowing it to bleed and etc, as well adding a new chem that will stop bleeding in their case.

* Probably the last work on implants.

* Some extra touches.

* Some tweaks to the species.

* More fixes and adds kyre's sprites.

* More runtime fixes.

* Fixes the species name too.

* Fixes travis.

* Updates this file too to work with the new tools procs.

* Adds changelog

* Fixed changelog.

* Unathi hair and lore description.

* Some tweaks to this too.

* Locks away them for now, they will be released after we got all the events and etc done.

* Changes this chemical.

* Fixes an airlock runtime.

* Adds the non scan flag to the autakh, mostly due to some bizzare interactions with changelings and cloning.

* Organs removal changes; can't take out the organ if it is too damage.

* Restricts them back again.

* Robotic organs now have the proper icons and names.

* Adds sprites for their organs and some extra tweaks.

* Fixes this missing icon.

* emp should also now hurt assited organs.

* Tweaks more organ related things.

* Fixes the head not being properly set as well.

* Fixes their flags.

* fixes the flag for real this time.

* Poze's review.

* Changes the au'takh organ buttons to don't be animated.

* Helps with adminbus or something.

* Fowl's requested changes.

* Fixes a typo.

* Robotic limb's brute and burn mods are now controlled by the limb model.

* Fowl's changes once more.

* Stops some spam.

* More grammar.

* No eal.

* Skull's review.
2019-01-23 19:27:44 +01:00
Alberyk c4479586c1 Ports material and makeshift armor from Polaris (#3968)
-adds support to material clothing, already used by rings and makeshift weapon
-adds makeshift armor that you can craft using buckets for helmets and material sheets to make the plates
-adds a wooden bucket that can be crafted using planks also ported from polaris
-adds icon_has_variants to some sheets, adding sprites to them from tg
-fixes bronze being just a place holder
-adds sheet types to bronze and titanium
2017-12-23 21:12:39 +02:00