Commit Graph

98 Commits

Author SHA1 Message Date
ShadowLarkens
dad9020f9a TGUI Engineering... and a bunch of other random things 2020-10-21 13:02:19 -07:00
Aronai Sieyes
ad75bb86bd Alter playsound paradigm 2020-05-19 11:06:28 -04:00
Aronai Sieyes
6c6644f86c Rewrite examine() to pass a list around (#7038) 2020-04-29 13:42:16 -07:00
Aronai Sieyes
c9086829ec Convert some telecomms constants into defines 2020-04-27 10:34:13 -04:00
Atermonera
974919151b Merge pull request #6967 from VOREStation/pol-pipes
Add 2 new pipe types
2020-04-12 23:00:41 -07:00
Leshana
6f5fb88922 Removed area.uid var and /area/New()
- var/uid was used in only a handful of places.  Because areas are singletons
  it is safe to replace the uid with \ref, areas don't get deleted.
- And with that /area/New() is empty, we can remove it!
2020-04-10 14:58:59 -04:00
Aronai Sieyes
1abf90b306 Add 2 new pipe types 2020-04-05 22:50:11 -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
Arokha Sieyes
5b15917d32 to_chat replacing stream operator 2020-02-17 13:14:08 -05:00
Rykka Stormheart
23cc197e4c Add Sounds to stuff! (Port from VOREStation) (#6494)
* Add Sounds to stuff! (Port from VOREStation)

* Port of https://github.com/VOREStation/VOREStation/pull/6119

* Adds to_chat as described

* Change << to , , not entirely sure what it does but it's the same as others
2019-10-29 13:30:56 -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
440141c054 Fixes #2820 - Vent pumps shutting down after some template loads
Specific situation happens when power_change() is called before atmos_init is called for the first time()
update_icons has no business modifying variables like use_power.  Just update the icon!
2018-01-23 13:24:31 -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
Cyantime
82626c6936 Removes pipe pressure check copypaste. Fixes pipe caps to always be removable. 2017-09-09 21:24:52 -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
MagmaRam
38aa0217f9 No longer able to crawl through welded vents. 2016-11-15 20:56:58 -06:00
mwerezak
5603884095 Removes #undefine 2015-08-18 17:20:39 -04:00
Zuhayr
3b712adb5f Removed intact var in favour of is_plating() proc, fixed issues with invisible initialized pipes. 2015-08-16 17:51:19 -07:00
PsiOmega
cee5f1a057 Merge remote-tracking branch 'upstream/dev-freeze' into dev
Conflicts:
	code/game/objects/items.dm
2015-07-06 18:33:09 +02:00
PsiOmega
cdb4270f48 Merge remote-tracking branch 'upstream/master' into dev-freeze 2015-07-06 17:31:41 +02:00
mwerezak
bd59733fdb Fixes #9714
Fixes incorrect arguments to calculate_transfer_moles()
2015-07-05 01:18:38 -04:00
GinjaNinja32
81d23c85cc code/ATMOSPHERICS \red \blue etc to span classes 2015-05-29 19:36:15 +01:00
PsiOmega
9006419fcd Creates a default vent for atmospherics tanks. 2015-05-14 15:31:39 +02:00
Chinsky
ad67215b08 Merge pull request #9073 from PsiOmegaDelta/QDels
Implementing Destroy():s
2015-05-12 18:26:57 +03:00
Mloc
e602a7e286 remove the sub-area system
Removes area/list/related and area/master.
They were only used by the old lighting subarea system.

Signed-off-by: Mloc <colmohici@gmail.com>
2015-05-10 17:06:29 +01:00
PsiOmega
6f9da12276 Implementing Destroy():s
First out: APCs, security camera consoles, vents.
2015-05-03 10:45:35 +02: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
PsiOmega
71a8ddf50e Merge remote-tracking branch 'upstream/dev-freeze' into dev
Conflicts:
	code/game/gamemodes/cult/runes.dm
	code/modules/paperwork/paper.dm
	code/modules/projectiles/projectile.dm
2015-04-08 10:55:26 +02:00
PsiOmega
d8a6576f36 Examination fixes.
Fixes #8491.
Fixes #8579.
2015-04-06 10:46:19 +02:00
Zuhayr
d26800d29c Preliminary work on converting all monkeys to a human subspecies. 2015-03-25 02:15:45 +10:30
Neerti
3f16754e89 Third refactor for examine system! This time we go back to atom-var based system, but because strings are tabled, it's apparently okay.
The entire system is now self-contained inside a module folder.
Also fixes a runtime I made because ghosts lack a mind (and so do I)
2015-02-20 08:04:17 -05:00
RavingManiac
71902cdca2 Tweaked descriptions and settings of various TEG components.
Maximum power of core vent and injector increased.
2015-02-13 16:08:52 +08:00
ccomp5950
27765f799f Merge branch 'dev-freeze' of github.com:Baystation12/Baystation12 into dev
Conflict resolution.

Conflicts:
	code/ATMOSPHERICS/components/unary/vent_pump.dm
2015-01-06 12:36:28 -05: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
ccomp5950
a41b5bea52 Unary Vent Pump Optimizations.
We have like 250 of these on the map, each one calculates the atmospheric properties of the air around it each tick.
99% of the time this isn't even needed.  So...if it's not needed this tick we hibernate for 5 to 10 ticks before checking again.
2015-01-01 17:20:51 -05:00
mwerezak
d4a193808b Replaces awful connect type system with bitflags 2014-12-23 18:59:54 -05:00
PsiOmega
bc438e21ad All the relevant examine changes. 2014-11-05 12:44:23 +01:00
Zuhayr
223bd86f18 Merge branch 'organremoval' of https://github.com/Zuhayr/Baystation12 into dev
First pass on major conversion of xenomorphs to a human subspecies. Additional condensing of various redundant mob verbs.
Converted larva and diona to their own class, collapsed the rest of xenomorphs into a human species, other stuff.
Completely removed attack_alien(). Still have to reimplement some of the lost behavior for human/alien.
Reapplies lost attack_alien() functionality other than tackling/caressing.
Further alien/humanoid cleanup and xenospawn fix-ups. Also uncommented caste verbs.
Removed half-finished abilities system since species.dm handles it.
All xenomorphs functionality should be working now, other than the HUD, tackling and the xenomorph balance issues.
Added icons for xenomorph castes, moved broadcast languages into datums, removed alien_talk and robot_talk vars.
Merged with organ removal code.
Reapplied verbs to simple_animals/slimes. Updated species definitions to have appropriate organs.
Readded tackle as a human verb.
Borer changes regarding brain removal.
Working on moving the human HUD to the species datum a bit. Mixed results.
Moved Cortical Link to a language, added borer husks.
Tidied up the HUD stuff. Still need to make it rebuild properly when species is changed, but this will do for no
Compile fix, forgot the DME.
Fixed up ventcrawl, added new organ mechanics for dionaea.
Fixed up some overlooked sections causing mobs without brains to die immediately.
Fixed up plasma generation for queens, bugs with organs, force_organ issues with set_species().
2014-09-29 06:19:26 +09:30
Zuhayr
0c83a95b90 Large merge resultion. Used remote for map conflicts. 2014-09-23 21:41:54 +09:30
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
b381d46556 Adds engine core atmos control
Expands on the earlier engine pump fix to add proper control over the
engine core atmos. Adds core control computer that can set output
external pressure bound instead of output pressure, and special high
power vent pump type for the engine core.
2014-08-29 14:10:43 -04:00
mwerezak
9fea39dea2 Quick fix for engine core flow imbalance
A more thorough fix should probably involve providing a way for players
to control the flow rate.

Also tweaks emitters and allows collectors to be read using a multitool.
2014-08-25 20:37:07 -04:00
mwerezak
b7c13bc4b6 Allows atmos helpers to be used with portable_atmos 2014-08-04 16:53:13 -04:00
mwerezak
a772d9094c Optimizes pipe network updating 2014-08-04 13:29:09 -04:00
mwerezak
14b57e3560 Pipe networks now cache their total volume 2014-08-03 22:41:31 -04:00