Commit Graph

63 Commits

Author SHA1 Message Date
Qustinnus 8737e8cb80 Small do-after refactor (#55172)
This is an alternative to the PR Ryll made, it does some things similar e.g. the default limit of 1 interaction per target for a person, however, it refactors do_afters to support overrides for max interaction counts and unique sources.

For example, stripping uses the item being stripped as the source, allowing you to strip multiple items, but not the same item multiple times.

I've also fixed most other edge-cases this could cause where balance would be affected, but feel free to point out any I might've missed, this'll probably require some longer-term testmerging.
2020-12-07 13:04:51 -08:00
TiviPlus 0eaab0bc54 Grep for space indentation (#54850)
#54604 atomizing
Since a lot of the space indents are in lists ill atomize those later
2020-11-30 12:48:40 -05:00
Ghom 91bfedcd16 Refactored 'IsAdvancedToolUser' into a macro plus relative trait. Tweaked 'can_hold_items'. (#54665)
The PR aims to allow advanced tool users to be defined by traits rather than a hardcoded proc.
Also necessary for the CanUseTopic refactor I'm working on, which will be PRed separately for atomization purposes.
This PR also fixes an inconsistency with can_hold_items (since monkeys can actually hold items).
2020-11-10 15:15:31 -03:00
Timberpoes 3f0d356cee Fix runtime with RPD unwrenching. (#54773)
[01:44:12] Runtime in RPD.dm, line 392: Cannot read 1.type

/obj/machinery/atmospherics/wrench_act can return a boolean instead of an object under the following scenarios:
You cannot unwrench the machine.
You can unwrench the machine, but use_tool later returns FALSE instead of TRUE.

use_tool can fail when you stack wrench_acts ontop of eachother. The first wrench_act will work as expected and return the deconstructed version of the pipe, all other stacked wrench_acts will have use_tool fail and will instead just return TRUE.

This PR prevents stacking of wrench_act-based do_afters and guards against unexpected runtimes by CRASHing when wrench_act returns something unexpected.
2020-11-06 21:24:29 -08:00
Dennok 490f0d87c3 Fix #54806 2020-11-05 12:20:45 +02:00
TheChosenEvilOne 913b12f73e Adds layer switching with mouse wheel to the RPD. (#54458)
Adds a signal that gets sent to items in currently active hand on mouse scroll
and makes RPD listen to this and change the piping layer accordingly.
2020-10-27 03:17:50 -03:00
Dennok f1cb59181c RPD unwrench upgrade (#53615)
* Most OP atmos tool. RPD that can unwrench pipes.

Adds reverse wrench mode upgrade to the RPD.
Attention, due to budget cuts, the mode is hard linked to the destroy mode control button.

Now /obj/machinery/atmospherics/deconstruct(disassembled = TRUE) return created obj/item/pipe

Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
2020-10-07 11:13:34 -07:00
Timberpoes 1f23cc281d Enforce preserving parent proc return values across ui_act call stacks (#53964)
All ui_act procs should call parent by default. All procs should preserve the value of the parent proc when it's TRUTHY and pass it down the call stack. No UI should be interactible when its flags or state indicate it should not be, except when explicity overriden by child procs intentionally disregarding parent return values to achieve a specific goal.
2020-09-26 11:52:39 -03:00
nicbn 88257cd02f Fixed the multi z pipe adapter (#53829)
So yeah the multi-z pipe adapter was showing the big gmod error.

This fixes it and adds multiple directions and layers for the adapter.

Also RPD now can produce said manifold.

Also this reworks the painting mechanism so that it uses a variable+proc instead of checking for subtypes .
2020-09-25 14:30:58 -07:00
Ghilker fb7b23cf4d tgui: Temperature Gate (#53632)
* new device, temperature gate

* added necessary examine on device

* better description(?)
2020-09-13 00:37:40 +03:00
Ghilker 02c09813c6 tgui: Temperature Pump (#53608)
* new item, temperature pump

* tgui bundle build

* requested changes
2020-09-13 00:00:14 +03:00
Ghilker 3f3b7bc736 Expand number of pipe layers from 3 to 5 (#53278)
Expand number of pipe layers from 3 to 5

More layers for autism projects all around the station
Notice! not all devices are allowed to use the new layers, only those you see in the picture can be layered to layer 0 and 4.
More freedom to do weird setups (and supercomputers)
2020-09-01 03:39:47 -07:00
Ghilker 584068b59e Add pressure valve atmos device (#53281)
New item the pressure valve
its a device that allow gas flow in a pipenet if the input pressure is higher than the set pressure

adds: Pressure Valve (a device that allow gas flow in a pipenet if the input pressure is higher than the set pressure)
2020-08-29 16:50:57 -07:00
TemporalOroboros 6e950daccc Defines damage flags. (#53158) 2020-08-24 08:20:33 -03:00
TiviPlus 0ab4f38605 Diagonal macro thingu (#52927) 2020-08-18 22:35:33 -03:00
ArcaneMusic a6b367f8c8 Adds an metric ton of belt sprites and suit sprites for worn objects. (#52390)
* Plant Belt sprites are fixed, Engy Sprites too

* I did belt sprites until my eyes started hurting
2020-07-25 02:58:52 -03:00
Aleksej Komarov 0cf00a2645 tgui 4.0 (#52085)
* tgui 4.0 hyper squash

* Upgrade dependencies
2020-07-16 20:13:04 +02:00
nemvar b87f65d95e Converts ALL typepaths to lowercase (#51642)
* Case of lower

* More changes

* Ruins the nice 420 diff, brainfart when doing the second batch of conversions

* More changes

* Next batch. I think

* Converts even more paths

* Restarts bots

* Capital Free Zone

* Come on travis, do something

* Renames areas

* Bots, please stop dying

* Updates CONTRIBUTING.md and updates a few paths I missed.

* APC recgarftzfvas
/obj/item/computer_hardware/recharger/apc to /obj/item/computer_hardware/recharger/apc_recharger
2020-06-17 20:47:57 -03:00
actioninja b5dfd8880d id to component name 2020-04-19 19:36:35 +03:00
r4d6 409f90c119 RCD & RPD resprite (#48592)
This change the RCD & RPD Sprites for something way more beautiful than what it was.
Basically port : Citadel-Station-13/Citadel-Station-13#8953
Why It's Good For The Game

It look better than what we currently have.
https://imgur.com/a/gnfD6gs

Also, some idiot will complain that they will take the RPD for the RCD, they are just blind, while they have the same color scheme, they are different enough to know what is what.

And Citadel may be a ERP server, you have to admit they sometimes do some good stuff
Changelog

cl
change: Changed RCD & RPD Sprite
/cl
2020-01-15 15:01:13 +13:00
skoglol d9d384b56d rethink directions 2020-01-05 14:58:44 +01:00
skoglol 5dcad35db0 RCD icon reorder, less pixelhunting 2020-01-05 14:38:20 +01:00
TheVekter 8258b98616 RCDs and RPDs can now be worn on the belt slot (#48104)
* Modified the RCD to fit on a belt, cleaned up some of the upgrade descriptions.

* reeeeee tabbing

* As above except RPD

* Added the same functionality for the Plumbing Constructor and RLD
2019-12-04 10:14:13 -05:00
Aleksej Komarov e87b6c6701 Tgui error reporting, Keyboard passthrough, RPD, NtOS, Power Monitor (#47749)
* Improve tgui fatal error reporting

* Keyboard passthrough in tgui

* New Rapid Pipe Dispenser interface

* Update README with new components

* Release held keys when browser window loses focus

* Power Monitor Interface, NtOS theme and core components

* Yet another CSS rework

* Fix Table, Chart stubs for IE8

* NtOS Main interface

* Supermatter Monitor interface

* Tweak NT color, color + sort gas bars
2019-11-16 04:02:33 -08:00
skoglol f17265b267 Removes plumbing from the RPD (#47713)
* baby steps

* Removed plumbing from RPD
2019-11-13 02:54:28 -08:00
Qustinnus a394ccdc2b Material datum chairs & tables and applies materials to all items (Now with less pain for mining & RnD) (#46525)
removes materials list from items, uses custom_materials instead. This might introduce some bugs so we should testmerge this for a while (and Ill test stuff locally as much as I can)

this also adds material crafting to sheets. Test case being chairs. In the future we can add stuff like tables, walls, doors etc.

also applies materials to everything, with fixes, which can close #46299
2019-10-08 11:06:02 -04:00
nemvar 84bee81790 Unscrambles melee_attack_chain 2019-09-07 16:12:01 +02:00
TheChosenEvilOne 3d7c3092d0 Passive vent (#46180)
Signed-off-by: TheChosenEvilOne <tceo-email@protonmail.com>
2019-09-03 00:03:03 -07:00
Rob Bailey 2029163d33 playsound vary boolean define conversion (#46254)
About The Pull Request

Converts every single usage of playsound's vary parameter to use the boolean define instead of 1 or 0. I'm tired of people copypasting the incorrect usage.
Also changes a couple of places where a list was picked from instead of using get_sfx internal calls

This was done via regex:
(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\)) to match 1
(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\)) to match 0
full sed commands:
/(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\))/\1TRUE\2/ 1 to TRUE
/(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\))/\1FALSE\2/ 0 to FALSE

I'm not very good with regex and these could probably be optimized, but they worked.
Why It's Good For The Game

Code usability
2019-08-30 18:45:20 +12:00
Qustinnus b33d1c49a3 [READY] Floydmats (Datum materials) & custom toolboxes (#45118)
* Initial work

* more

* ass

* wsedfwedff

* asss

* test

* stuff

* fuck

* sss

a

* kms

* asdadwedwdfwefwef

* start

* test

* dwwdew

* ewefwfef

* Redemption machine (#8)

* Redemption machine

* Removes debug messages

* changes

* fuckmyshitup

* coin mint works with new material shenanigans (#10)

* Auto stash before merge of "materials" and "origin/materials"

* woops

* furnace (#11)

* autolathe manufacturing of toolboxes

* eggs in a basket

* some small changes

* matcolors

* documentation

* more documentation and effects

* done

* Color man bad (#12)

* fixes designs

* ass

* more fixes

* fuck me

* firestacks adder

* epic fixes

* fixes designs

* DONE DIDDILY DOO

* removes category macro

* ch-ch-ch-changes

* fixes some stuff

* Fixes display of ore values (#9)

* Redemption machine

* Removes debug messages

* Re-adds value display

* Replaces the fire stacking component with an element instead (#13)

* fixes examine

* fixes ligma bugs

* double ligma boofus

* fix

* misses some defines

* fixes ORM

* Update code/datums/components/material_container.dm

Co-Authored-By: Emmett Gaines <ninjanomnom@gmail.com>

* fixes

* Makes glass objects weaker (#14)

* Makes glass objects weaker

* uses correct proc

* fixes shit

* honk honk

* better

* oh shit oh fuck

* fixes

* fuck ORMs

* fixes the biogen

* documentation

* ass (#15)

* component

* changes

* ass

* ass

* doc

* Auto stash before merge of "materials-plasmacomponent" and "origin/materials-plasmacomponent"

* fixes rounding

* fixed
2019-07-24 11:27:01 -04:00
Time-Green ceeff661a0 [READY] Plumbing (#44833)
cl Time-Green
add: Adds plumbing pipes and some hidden plumbing related machines. They're not available in-game yet.
sprites: Geyser and geyser pump sprites created by Mey-Ha-Zah!
/cl
Adds the following objects:

    Fluid ducts . Like atmos pipe, but for reagents. They're smart and can be seperated by layer and color

    Geysers. They spawn on lavaland and can be harvested with liquid pumps or just beakers.

    Liquid pumps. For pumping geysers. They need to be on a wire node and connected to a duct network.

    Plumbable reagent dispenser subtype.

    New plumbing RPD specific RPD.

    Plungers. The reinforced plunger can be used for plunging geysers to activate them. They currently serve no other function and can't be worn as a hat yet.

They're all disabled and admin only.

Adds the following systems:

    Ductnet datum. They pretty much say "hey, we're connected"

    Plumbing component. You can turn any movable atom into a plumbable thing. Comes with overlays and everything. They're essential for everything that has input and outputs, except pipes. That means you can have machines connected to both atmospheric pipes and fluid ducts. They only connect with layer 3 ducts.

    Fluid subsystem that handles the processing on the plumbing machinery and other plumbing related stuff.

Basically atmospherics but with reagents. Reagents are pressurized and thus transferred instantly, to avoid those stupid leftovers in pipes no one likes. I am PRing it now because if I were to add a dozen or so associated machines, it would be too much of a pain to manage/review in one PR. It would also be a massive waste if people didn't even want it in the first place.

Also yes all of this works (as far as I know)

Things I plan to add in later PR's

    Layers / colors (maybe) done
    Machinery (Stuff like chemical processors, filters, special mixing chambers and factories)
    Make geysers more interesting, so chemists/atmostechs/cargotechs/assistants can go to lavaland and get some exotic stuff.
    Pipe fractures. Damaged pipes could do the cartooney water soaker beam coming out to shoot at people cause why the fuck not.

Code concerns:

    Connecting is handled through pipes only. Not sure if this is the best approach. This means plumbing devices cant directly connect to each other without pipes. I could add some exceptions to handle it. I could also take connecting away from pipes and make it a global proc, with alot of exceptions since it'd be handling both plumbing machinery and the ducts.

    Reagent transferring. Basically the transfer is instantaneous from A to B. I did this because stuff getting stuck in pipes could pose some serious mixing problems with chemistry, since it's alot more delicate than atmos. I could understand if people would want it to be like atmos. It wouldn't be difficult to change.

Also for testing I suggest you set the pipe_dispenser to category 3 to print fluid ducts. My tests were done with
/obj/structure/geyser
/obj/structure/reagent_dispensers/plumbed/storage
/obj/item/plunger/reinforced
/obj/machinery/power/liquid_pump
/obj/item/pipe_dispenser/plumbing
that and standard tools for setting things up
2019-07-09 11:58:02 +12:00
skoglol 5316926510 Fixes some missing adjancency checks. (#44020) 2019-05-21 11:43:35 +02:00
blessedmulligan 907febbdcf Allow RPD to place pipes on tiles with grilles/windows (#43671)
Before, clicking on windows or grilles with rpds would not do anything.
Now, it will attempt to place a pipe/whatever on that tile.

the inability to build pipes through windows without deconstructing them
is obnoxious and arbitrary, especially since you can build through walls
no problem. This streamlines the workflow of almost any atmos funtime
shenanigans.
2019-04-22 20:43:37 -07:00
oranges b526be704c TGUI and asset cache sending improvements (#43090)
Pills are now two spreadsheets instead of individual icons.

This reduces assets sent by about 19-20.

Furthermore tgui has been extended with a new proc ui_base_html which
allows a user to customise the html sent as the base for a tgui window.
This allows someone to provide custom spritesheet css as links in a
specific tgui window without having to add it to the global html.
2019-03-17 09:47:48 -07:00
nicbn c4213f13ab New() -> Initialize() (#41876) 2019-01-03 18:56:15 -08:00
Emmett Gaines 451d35c9c9 Converts more dir assignments to setDir (#40023) 2018-08-31 22:54:37 +03:00
Tad Hardesty 98f8f88104 Fix flipping of trinary pipe fittings and related RPD tooltips (#37982) 2018-05-23 13:31:51 +02:00
Tad Hardesty cf6f064e21 Use spritesheets to reduce time spent sending PNG assets by 90+% (#37399)
The total number of assets to be sent has been reduced from 1532 to 76, with time between first asset and last going from about 112s to about 7s (a 93% reduction) by my measure. The following assets have been coalesced:

    705 pipe images (used by RPD) -> 1 spritesheet + css
    595 research design icons (used by R&D console) -> 3 spritesheets + css
    116 OOC emoji + 15 language icons -> 1 spritesheet + css
    27 PDA icons -> 1 spritesheet + css
    11 paperwork stamps -> 1 spritesheet + css
2018-05-10 14:34:57 +12:00
nicbn fb7733012a RPD - You can now select modes individually (#37058)
cl cacogen and nicbn
tweak: You can now select RPD modes individually.
tweak: RPD autowrenching is now a tgui action rather than an Alt Click option.
/cl
2018-05-08 10:35:39 +12:00
Dennok a3a439a073 RPD pipe autowrenching (#36417)
* RPD autowrenching

* up

add toggle, remove auto unwrenching
2018-04-12 09:35:55 +12:00
kevinz000 f300a5c155 Interaction/Attack Hand Refactor (#36405) 2018-03-23 11:20:54 +01:00
Dax Dupont 82dec54d8c Fixes meters on the RPD (#36193) 2018-03-08 05:01:46 -06:00
Jordan Brown d282c60c7d Quote the armor lists (#35668) 2018-02-16 01:25:42 -05:00
Cruix 47a57f63c5 Added transit tubes to the RPD (#35074) 2018-02-04 02:44:59 -06:00
Tad Hardesty a9ced2ddcf Fix RPD embedding fixtures inside lattices and girders 2018-01-15 17:26:48 -08:00
ShizCalev 42df595372 Fixes missing pipe colors in RPD and pipe painter (#34371) 2018-01-15 10:01:22 +01:00
Tad Hardesty 517ef9095a Fix RPD runtimes and offsets of layered connector ports 2018-01-12 06:08:10 -08:00
kevinz000 caa1e1f400 Massive research refactor; changes research system to techwebs; Decentralized research 2017-11-18 19:55:40 -08:00
duncathan salt 1792d92a57 RPD ui improvements (#32736)
* continued work on the tgui RPD

* RPD tgui is 1:1 in functionality with old RPG ui

* minor improvements to RPD functionality

* pipe dispenser ui update

* revert

* fixes
2017-11-18 13:03:47 +13:00
ACCount 009a02f370 Fixes pipe dispensers being unable to dispense bent pipes (#32743)
* Fixes pipe dispensers not dispensing bent pipes

* Updates meter RPD icon file to the one that's actually used
2017-11-15 20:11:37 -05:00