Commit Graph

20 Commits

Author SHA1 Message Date
ShadowLarkens
dad9020f9a TGUI Engineering... and a bunch of other random things 2020-10-21 13:02:19 -07:00
Atlantiscze
2a9547f3d9 Implements additional feedback 2020-04-23 08:02:51 +02:00
Atlantiscze
252719c5f0 Implements feedback 2020-04-21 10:03:07 +02:00
Atlantiscze
78925e2993 Ports over power-related enhancements and tweaks i coded for Bay a while back
- Please fasten your seatbelts, this will be a long one as it joins few older Bay PRs into one.

1. Ports https://github.com/Baystation12/Baystation12/pull/12626
- SMES units may now be damaged and destroyed. Charged SMES units fail quite violently. Damage can be fixed by welding tool.
- PSUs completely refactored, ghetto variant no longer exists.
- Cell rack PSUs now can be considered a hybrid between large battery charger and a SMES. They actually use the cells to store power (so you can hot-swap the cells to get more juice simply via the UI without deconstructing the whole machine), but in comparison to SMES have poor throughput and capacity in general (cells are simply too small). They are also somewhat limited in configuration options (lacks the precision electronics of a SMES). Better matter bin lets you put in more cells, up to 9.
- Cell rack PSU also has a mode that allows charge-balancing all inserted batteries (moves energy around so each battery has the same charge %)

2. Ports https://github.com/Baystation12/Baystation12/pull/11977
- SMES units now have full load balancing capability, getting rid of that annoying "One SMES charges at full, other SMES gets nothing" problem. If insufficient power is available on input, all inputting SMESes will now charge at same percentage. If more SMESes power a single output, they will all output equal percentage of their setting.
- This appears to have a pleasant side effect of fixing the issue where SMESes could starve APCs of energy. SMESes are ALWAYS last to input power on a powernet.
- This also appears to have fixed weird values displayed in SMES output/input load readings in the UI. By weird values i mostly mean inputs/outputs actually higher than the SMES is set to have.

3. Ports https://github.com/Baystation12/Baystation12/pull/18137
- SMES units (and subtypes, therefore effectively also PSUs from previous entry) can now have more than one terminal. This effectively allows a setup where two (or more) sources feed a single SMES, which then feeds the output. SMESes can not exceed input setting even with multiple terminals.
- Typical example of use in practice would be SMES that runs something important (for example an AI, telecomms, pick whatever you want). It could have one input from the power grid, and second input from a PACMAN generator set up nearby as a backup. Before the generator would have to be wired into main grid, therefore main grid would siphon off power from it. Now the generator can be separate and dedicated for whatever use you want.
2020-04-17 08:26:29 +02:00
Aronai Sieyes
167f947e95 Boring minor things (#6792)
* Touch up bed/chair/stool icon updating

* Brighter permanent light

* Improve SMES icon handling

* Powernet cable nodes work on shuttles
2020-03-08 12:20:26 -08:00
Leshana
a97a574278 Transformed the machinery processor into an StonedMC subsystem
* This is PHASE 1 of a multi-phase conversion.  In this first phase we implement the subsystem, but leave it processing the existing global list variables.  In the next phase we will switch to use datum variables in the subsystem.  The main reason for splitting into two phases is ease of code review; change the meaningful code without the hundreds of machines -> SSmachines.machinery substitutions.
* We did declare macros for adding/removing things to the processing lists, and convert everywhere to use the macros.
* Added var/is_processing to /datum to keep track of whether an instance is already in a processing list (prevents it being in the list twice!) and also debugging, making sure its not in two lists etc.
* NOTE: The global machines list is **no longer sorted** for performance reasons.  As far as I know, the only module that actually ever cared was cameras.   Our camera system already handles its own sorting in the cameranets anyway, so it should no longer be needed.
2017-12-29 15:31:59 -05:00
PsiOmegaDelta
f8a38ec7cf Improves powernet destruction.
While we currently do hard del datums this is a step towards a better world.
2015-09-16 08:00:22 +02:00
Atlantis
a4c29238aa Refactors get_apc()
- Fixes #9536
- Area now has APC variable, instead of list. APC construction, etc. should have checks to allow one APC per area only, so situations with multi-APC areas are unlikely, unless adminbus occurs. Either way, with or without this commit, one of the APCs would be unoperational (no load)
- get_apc() no longer uses very laggy locate() in contents of area. In situations where get_apc() is called repeately this brings massive increase in performance (from 0.120 to 0.000, depending on area size and amount of things in contents of that area) as it now only returns the apc variable.
2015-05-28 17:11:26 +02: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
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
Atlantiscze
8dbe6d2f35 Fixes two powernet related issues:
- First issue is power monitoring consoles showing slightly inaccurate values. The code calculated some sort of level average which resulted in stupid values being reported (like load 500kW available 300kW). This also fixes APC load partially showing as Other load on the console.
- Second fixed issue (Fixes #7869) resolved gamebreaking bug that caused total irreversible failure of all powernets if makepowernets() was called. This, for example, includes large enough explosions, via admin command, or few other cases.
2015-01-20 21:12:52 +01:00
Atlantiscze
835d04290c Modifications to sensors code
- More stuff now triggers powernet warnings: People getting shocked by machinery (primarily door, but can be anything else powered by APC), and grilles. Thanks to @mwerezak for suggestion.
- Monitoring computer now has slightly different icon_state when it detects powernet warning. This is checked and updated every 5 MC ticks (ie, slightly delayed)
- Fixes ocassional runtime in powernet_sensor.dm
- Powersinks buffed a bit more. Drain rate changed from 0.6MW to 1MW. 1MW is full output of main engine SMES.
- Powersinks also dissipate small amount of internal energy charge over time. (20kW)
2014-11-12 14:54:56 +01:00
Atlantiscze
f29cd211e6 Implements better powernet warning system (as suggested by mwerezak) 2014-11-12 12:33:23 +01:00
Atlantiscze
ddaac3e175 Powernet Sensor
- Adds remote powernet sensors, power monitoring computers use these by default to monitor power around the station. Default range is 1 Z level + long range versions of sensors
- Powernet sensors mapped in, each subgrid has it's own one (ie: substations compatible)
- Telecomms, mining, research and engineering outposts have long range versions installed, visible even cross-Zlevels
- Powersinks and ninja gloves now trigger problem warning in powernets they affect. This warning is visible to anyone using power monitoring console. TODO: Add more stuff that triggers warnings.
- Powersinks now properly drain APC cells using CELLRATE (@2000W per APC max.)
- Powersinks buffed a bit, to compensate for CELLRATE change (previous line)
2014-11-12 07:07:08 +01:00
PsiOmega
5dc3e40b34 Restores APC load balancing and the autoflag system. 2014-10-25 15:18:42 +02:00
PsiOmega
3a7066c6c1 Replaces add_load with draw_power. Issue about silly battery handling remains. Fixes the build-error. 2014-10-20 19:18:27 +02:00
PsiOmega
1cabbbf5a6 Master controller no longer annihilate powernets, powernets annihilate themselves.
Some misc. changes.
2014-10-15 09:44:15 +02:00
PsiOmega
a1ee4e766b Basically ripped over /tg/'s powernet and cable code into our own codebase.
Keeps Z-level code as it was.
Modifies/restores powernet procs as necessary to match our own implementation changes.
2014-10-13 17:13:04 +02:00
PsiOmega
36c9f65bb1 Ports /tg's cable and powernet code to our code base. 2014-10-10 14:59:44 +02:00
mwerezak
d12a09addb Powernets
Moved powernet datum definition to powernet.dm
Improved APC load balancing.
Updated SMES charging to work better with new APC/powernet code.
2014-09-07 01:10:22 -04:00