Commit Graph

74 Commits

Author SHA1 Message Date
atermonera
7a9806d9b4 Removes weapons 2022-04-17 19:14:32 -08:00
atermonera
c7f1880394 Revert "What was supposed to be another straightforward major system overhaul that once again spiraled out of control (#8220)"
This reverts commit 4d8c43f106.
2022-03-29 16:01:32 -08:00
atermonera
61e12c7839 Fixes powertool sprites, fixes unfastening atmospheric devices 2022-02-05 14:18:10 -08:00
Atermonera
4d8c43f106 What was supposed to be another straightforward major system overhaul that once again spiraled out of control (#8220)
* get_tool_quality has numerical meaning

* Basic tools set tool quality

* Toolspeed is replaced by tool quality checks

* Addresses assorted results from live test

* Extra cleanup
2022-01-16 15:52:55 -08:00
MistakeNot4892
2f0a618d45 /atom New() => Initialize() [MDB IGNORE] (#8298)
* Find and replace argless atom New() to Initialize().

* Manual replacement of no-arg New() to Initialize().

* Manually replacing remaining New() overrides.

* Fixing linter issues with now-removed New() args.

* Tidying area init overrides.

* Porting Neb's atom subsystem.

* Trying to isolate init problems.

* Adjusting Init code post-test.

* Merging duplicate Initialize() procs.

* Merge resolution.
2021-11-14 00:09:14 -08:00
MarinaGryphon
593246b595 Linter diagnostics + bans non-var relative pathing (#8150)
* Linter diagnostics + bans non-var relative pathing

* Enable DreamChecker Annotations

* make it executable

* update hashFiles

* oops

* tries to fix it... again

* trying again

* path

* repath

* fix perms

* fixes weird capitalisation issue
2021-06-20 13:14:29 -09:00
ShadowLarkens
dad9020f9a TGUI Engineering... and a bunch of other random things 2020-10-21 13:02:19 -07:00
Rykka
d728339cfb Updates a comment 2020-08-27 21:45:19 -04:00
Rykka
324cb1f12d Replace "Sleeping Agent" with Nitrous Oxide
This makes it identical to it's real-life counterpart, and brings some actual sprite improvements upstream from Virgo.

Earlyport of https://github.com/VOREStation/VOREStation/pull/8812 with an actual rename of the gas, ID, and sprite used.
2020-08-27 21:45:19 -04:00
Leshana
21c8c94971 Fix remaining code that directly modified use_power to call update_use_power. 2020-04-21 13:15:32 -04:00
Leshana
938384cb1b In fact lets use the constants instead of bare numbers for use_power everywhere. 2020-03-21 19:41:01 -04:00
Leshana
c2d16acdca Always call update_use_power() instead of directly setting the use_power var.
- This will let us react to the change appropriately.
- While we're here, lets define some constants so we can stop using bare numbers.
- Always use those constants when calling update_use_power()
2020-03-21 16:40:22 -04:00
Shadow
46d7ca5d31 Round Two 2020-01-11 11:53:07 -06:00
Meghan-Rossi
1f17b58975 Improve analyzers and gas mixers
Analyzers can now analyze more things:
-Turfs (also stops runtimes from people trying to analyze turfs)
-Meters (gives results for whatever the meter's attached to)
-All atmos components except valves (gives results for the input, except on mixers.  Gives results for the output on mixers)
Gas mixers now show what direction each input is in the menu where you adjust the concentrations of the input nodes.
2019-11-14 10:28:00 +00:00
kevinz000
c2c688c4c8 caps 2018-12-06 18:34:37 -08:00
Anewbe
729ce71aa0 Converts most istype(thing,tool) procs into an appropriate thing.is_tool() format 2018-08-02 21:45:15 -05:00
Leshana
776b221828 Rewrite pipe construction
- Moved pipe construction defines into __defines/construction.dm
- Unified pipe *unwrenching* by creating a standard proc along with the `construction_type` var.
- Eliminated the pipe fitting name & icon_state lookup tables by adding `pipe_state` var on atmos machinery and referencing that.
    - Each pipe which can be made from a fitting object should override `pipe_state` with the icon state to be used on the pipe fitting object.
- Eliminated the giant switch statement of doom in pipe construction by delegating that work to `on_construction` proc.
    - To make this work, every pipe must implement `get_neighbor_nodes_for_init` which returns a list of nodes which should be re-initialized on that pipe's construction.
- Combined the SCRUBBERS, SUPPLY and REGULAR pipe fitting classes together by storing the `piping_layer` variable and using the `setPipingLayer` procs
- Standardized the code for searching for node neighbors into the `can_be_node` proc.
    - This proc is also improved in that is a mutual check, `check_connectable` is called on BOTH objects, so they have to mutually agree to connect as nodes. Eliminates lots of special edge case logic.
    - Updated all the `amos_init` procs to use `can_be_node`.  In the most common cases, even that boilerplate code is consolidated into the `STANDARD_ATMOS_CHOOSE_NODE` macro.
- Implemented `pipe_flags` which lets pipes declare (or override) certain requirements.
- Adds a "pipe_recipe" datum to help out things that construct pipes.  By taking it out of the dispenser, we open the road for multiple dispenser types.  No, no RPD yet.  Soon.
    - Enhances the pipe dispenser to operate on pipe recipe datums instead of hard coded lists of pipes it can construct.   These datums are also (partially) initialized from the pipe machine types themselves, reducing having to define stuff in multiple places.
    - Switched pipe dispenser UI to use browse().   Not a NanoUI, but makes it a bit prettier with low effort.
    - Changed pipe dispenser to use a button selector to switch between Regular/Scrubbers/Supply instead of having separate list items.
- Added icon states to HE pipes to support the "connected on neither side" state.
2018-03-20 23:29:27 -04:00
Leshana
1d3697c68a Went even farther in consolidation of trinary atmospherics.
- We can eliminate any overridden methods at all on flipped trinary devices by making a `mirrored` and `tee` variable!  This allows us to do things like flip them without delete/spawning.
- T-Valves are also basically trinary.  Sadly they are not a subtype, so to share code with them I have to put it into an outside proc.  But still worth it.
2018-02-22 15:10:43 -05:00
Leshana
b70451cda6 Eliminated duplicate code in trinary components.
- Consolidate common functions into trinary_base
- The only real difference in atmos_init was which direction each node would connect in.  Delegated that to an overridable proc, and the rest can be consolidated. Same story for update_underlays()
- Used similar patterns on tvalves which also are trinary even tho they are not subtyes of trinary (for some reason)
2018-02-22 15:10:29 -05:00
Leshana
5847319443 Update every initialize() proc to return an initialize hint.
* Yes, all of them.
* Also did a few corrections to redundant New() and broken Destroy() along the way
* Renamed the turf_initializer.initialize() proc to InitializeTurf to avoid confusion.
* Subsumed /area/proc/initialize into /atom/proc/initialize() - Made /area's LateInitialize to get same behavior as before.
2018-02-05 15:50:13 -05:00
Leshana
ab87edeae9 Fix construction of HE pipes, Vents, and Scrubbers Plus qdel issues.
The initialize() routines of HE pipes, vents an scrubbers need to be atmos_init() after all.
If you register yourself with radio controller you need to de-register yourself too.
2018-01-19 23:45:40 -05:00
Leshana
224fe42e77 Prepare Atmospherics Machinery for SSatoms (#4501)
* to_chat() replacement.

* Revert calling target.init_dir() before connecting.

* This change was added in https://github.com/PolarisSS13/Polaris/pull/3775 to counteract `dir` not being set prior to New() for dynamically loaded maps.  The root cause was /atom/New() not calling _preloader.load().  Undoing the change now that /atom/New() is fixed.
* The addition of the init_dir() proc itself however, is useful, because there ARE other times some atmos machinery will want to re-initialize its dir, specifically whenever it is rotated.
* init_dir() must be called in the constructor of all atmospherics machines capable of connecting to another.   Since it has to happen for ALL machines, lets move that call to /obj/machinery/atmospherics/New()

* Rename /obj/machinery/atmospherics initialize() to atmos_init()

* These days `initialize()` is used to handle general object initialization that is moved outside of New().  The node connection discovery of atmos machinery needs to happen after all that, and so needs to be in a separate proc.
* Make sure to actually call atmos_init during system startup.
2018-01-06 10:52:56 -06:00
killer653
0080539924 More fixes 2017-10-15 19:54:50 -04:00
Cyantime
56afe20d39 Fixes some trinary device direction initializations 2017-09-28 17:39:46 -04:00
Anewbe
f3b989f33e Merge pull request #3809 from Cyantime/unwrench
Fixes pipe caps to always be removable
2017-09-11 17:21:10 -04:00
Cyantime
82626c6936 Removes pipe pressure check copypaste. Fixes pipe caps to always be removable. 2017-09-09 21:24:52 -04:00
Neerti
1bc28c07c0 Port's TG's Maploader 2017-09-08 12:49:26 -04:00
Neerti
99eb6f9404 Updates Tools
Adds toolspeed var, which is a multiplier on how 'fast' the tool works.  0.5 means it goes twice as fast.
Adds usesound var, which determines what sound is used when a tool is being used.
Changes a lot of code to use those two vars instead.
Adds 'ayyy' tools, which are ported from /tg/'s abductor gamemode.  They're currently admin only but I might make them obtainable by xenoarch later.
Adds powertools, also from /tg/.  CE starts with them in a new toolbelt that spawns in their locker, ported from (you guessed it) /tg/.
Changes welder sprites to look nicer, ported yet again from /tg/.  Modified the blue welder slightly so it can be the electric welder sprite.
Adds various sounds from /tg/, for tools and welders.
2017-08-03 04:49:23 -04:00
Leshana
8752999a14 Atmospherics Destroy() cleanup - return qdel hints. 2017-06-05 23:01:39 -04:00
killer653
ebaa115d0e Removes an unused gas from the code
I have no idea why this is in the code.
Its unobtainable in game and would be difficult to create even with
admin powers, as there's no canister to spawn it in or anything like
that so you'd have to VV an already existing gas.
2017-01-02 18:41:05 -05:00
Zuhayr
18c2f33eab Ported ventcrawling from vg. 2016-09-21 17:16:03 +01:00
Neerti
0a389a418b Revert "Ported ventcrawling from vg." 2016-09-20 17:21:58 -04:00
Zuhayr
843c48a9ee Ported ventcrawling from vg. 2016-09-16 04:05:49 +01:00
GinjaNinja32
81d23c85cc code/ATMOSPHERICS \red \blue etc to span classes 2015-05-29 19:36:15 +01:00
PsiOmega
fcfdcecd3a initialize() should now always be called, be it on game starting up or object being created after game start.
Partially fixes #9036.
2015-04-30 19:28:35 +02:00
PsiOmega
1ae0ad6d92 Updates the atom_pool, now datum_pool, to handle any datum object.
Makes the garbage collector similarly robust. Continues the whole Destroy/qdel porting.
2015-04-24 09:59:05 +02:00
mwerezak
6d15809768 Corrects return values for the Topic procs of several computers and some other machines as well. 2015-02-25 21:32:35 -05:00
Zulker Nayeen Nahiyan
b6ab0b64c0 Cleanup global.dm and setup.dm, fix typos in the other files
`code/setup.dm`:
	Fixed large amounts of indenting.
	Fixed large numbers of comments and their clarity.
	Added parentheses to macros using expressions.
	Added FIXME for unused duplicated macros, without certainty of their requirement.
	Removed some duplicate macros present. (`BRUTE`, `BURN`, etc.)
	Removed macro `PI`, and replaced instances of its use with `var/const/Pi` from `maths.dm`

`code/global.dm`:
	Fixed large amounts of indenting, added newlines to long single-lined list definitions.
	Slightly clarified comments.
2015-01-10 02:01:55 +06:00
mwerezak
f9344a5a2d Atmos machine update
Takes a pass at updating ATMOSPHERICS to take advantage of the new powernet changes.

Also removes var/on definitions from many atmos machines. Machines generally shouldn't
be doing "on" things if they aren't using power, and most players don't expect a machine
to use power if it isn't "on," so I guess this is fair game.

Also, further refactoring.
2015-01-02 01:46:18 -05:00
mwerezak
d4a193808b Replaces awful connect type system with bitflags 2014-12-23 18:59:54 -05:00
Mloc
83f2a5ba5a fix some misplaced set_dir()s
fixes part of #7284
fixes #7288
fixes one of #7287

Signed-off-by: Mloc <colmohici@gmail.com>
2014-12-08 10:09:09 +00:00
Mloc-Argent
117ca6a135 refactor 'dir = ' into 'set_dir()'
This should have little/no gameplay effect right now, just paving the
 way for directional lights.
Replaced handle_rotation() on buckly things with this.

Signed-off-by: Mloc-Argent <colmohici@gmail.com>
2014-12-01 13:44:02 +00:00
Zuhayr
0c83a95b90 Large merge resultion. Used remote for map conflicts. 2014-09-23 21:41:54 +09:30
mwerezak
14a213dd86 Fixes #6470 2014-09-20 01:45:06 -04:00
RavingManiac
9801dfa9a9 NewPipe
-Supply and scrubber pipes can be run in parallel without connecting to each other
-Supply pipes will only connect to supply pipes, vents and Universal Pipe Adapters(UPAs)
-Scrubber pipes will only connect to scrubber pipes, scrubbers and UPAs
-Supply and scrubber pipes are offset along the x and y axes to prevent sprite overlap
-UPAs will connect to regular, scrubber and supply pipes, as well as anything else that connects to a regular pipe. UPAs will be used to interface between the supply/scrubber loops and atmos
2014-09-05 00:18:33 +08:00
mwerezak
b7c13bc4b6 Allows atmos helpers to be used with portable_atmos 2014-08-04 16:53:13 -04:00
mwerezak
6eb2fe3028 Device working volumes are configurable from setup 2014-08-03 22:11:45 -04:00
mwerezak
3647fa4d7d Adds gas mixing proc and updates gas mixer
Also includes a whole bunch of fixes and updates for atmos machinery
2014-08-02 18:35:57 -04:00
mwerezak
d034511ee6 Updates gas filter 2014-08-01 22:59:13 -04:00
Mloc-Argent
d5e9851b62 integrate XGM into the code
New turf proc: assume_gas().  Maps to air.adjust_gas_temp().
Lots of optimizations to processing, fire, lighting, HasEntered() and
 more.
Zones now process all fire data and existance in one go, fire objects
 only handle spreading.
Most code has been ported straight so some of it mightn't be ideally
 structured for the new gas_mixtures.

Signed-off-by: Mloc-Argent <colmohici@gmail.com>
2014-07-22 19:52:12 +01:00