Pieter-Jan Briers c40ac26ced A big hecking chemistry-related refactor. (#3055)
* A big hecking chemistry-related refactor.

Changed SolutionContainerCaps. It now describes "stock" behavior for interacting with solutions that is pre-implemented by SolutionContainerComponent. As such things like syringes do not check it anymore (on themselves) to see "can we remove reagent from ourselves". That's assumed by it... being a syringe.

SolutionContainerCaps now has different flags more accurately describing possible reagent interaction behaviors.

ISolutionInteractionsComponent is the interface that describes the common behaviors like "what happens when injected with a syringe". This is implemented by SolutionContainerComponent but could be implemented by other classes. One notable example that drove me to making this interface was the /vg/station circuit imprinter which splits reagent poured in into its two reservoir beakers. Having this interface allows us to do this "proxying" behavior hack-free. (the hacks in /vg/ code were somewhat dirty...).

PourableComponent has been replaced SolutionTransferComponent. It now describes both give-and-take behavior for the common reagent containers. This is in line with /vg/'s /obj/item/weapon/reagent_containers architecture. "Taking" in this context is ONLY from reagent tanks like fuel tanks.

Oh, should I mention that fuel tanks and such have a proper component now? They do.

Because of this behavioral change, reagent tanks DO NOT have Pourable anymore. Removing from reagent tanks is now in the hands of the item used on them. Welders and fire extinguishers now have code for removing from them. This sounds bad at first but remember that all have quite unique behavior related to this: Welders cause explosions if lit and can ONLY be fueled at fuel tanks. Extinguishers can be filled at any tank, etc... The code for this is also simpler due to ISolutionInteractionsComponent now so...

IAfterInteract now works like IInteractUsing with the Priority levels and "return true to block further handlers" behavior. This was necessary to make extinguishers prioritize taking from tanks over spraying.

Explicitly coded interactions like welders refueling also means they refuse instantly to full now, which they didn't before. And it plays the sound. Etc...

Probably more stuff I'm forgetting.

* Review improvements.
2021-02-04 00:05:31 +11:00
2020-11-28 17:50:41 +01:00
2019-12-16 00:46:09 +01:00
2020-12-13 01:14:29 +01:00
2019-03-29 22:11:40 -06:00
2020-09-25 21:39:33 +02:00
2017-08-02 12:27:55 -07:00
2020-10-21 15:11:04 +02:00
2017-08-14 15:05:39 +02:00
2019-04-15 21:34:02 -06:00
2019-04-15 21:12:00 -06:00

Space Station 14

Space Station 14 is a revived attempt at an SS13 remake.

This is the primary repo for Space Station 14. To prevent people forking RobustToolbox, a "content" pack is loaded by the client and server. This content pack contains everything needed to play the game on one specific server.

If you want to host or create content for SS14, this is the repo you need. Contains both RobustToolbox and the content pack for development of new content packs.

Getting in Touch

The IRC is setup to relay back and forth to the Discord server so IRC nerds will not be left out.

Documentation

We have various documentation articles about various systems on both content pack and engine on HackMD wiki.

Contributing

We are happy to accept contributions from anybody. Get in Discord or IRC if you want to help. We've got a list of issues that need to be done and anybody can pick them up. Don't be afraid to ask for help either!

Building

See the relevant HackMD wiki page

Description
Somethin something about magic rp coop game. Based on the game Space Station 14.
Readme 910 MiB
Languages
C# 84.7%
Fluent 14.8%
Python 0.3%