Commit Graph

37 Commits

Author SHA1 Message Date
ShadowLarkens
44f65e2602 TGUI Medical Conversion 2020-09-04 16:25:32 -07:00
Leshana
ccef6cc908 Implements "static" area machinery power usage
- Instead of using auto_use_power to re-tally up machinery's power usage every cycle, track the steady "static" load separately from the transient "oneoff" usage.  Machines then only need to inform the area when they use oneoff power or *change* their steady usage.
- Remove auto_use_power and stop SSmachines from calling it.
- Add vars to track "static" usage for each of the three power channels to /area
- Rename the existing three vars to "oneoff" so its clear what they mean (and to catch people accidentally updating them directly)
- Update area power procs and APCs to use the new variables.
- Rename /area/proc/use_power() to use_power_oneoff() to make it clear what it is doing.
- Deprecate /obj/machinery/use_power() in favor of use_power_oneoff() but don't delete yet.  Can transition gradually.
- Add logic to the update_power procs on machines to calculate the deltas and update static area power whenever their usage changes.
- Add logic to machines to update area power when they are created, destroyed, or move.
- Moved /obj/machinery procs related to area power usage into machinery_power.dm to make them easier to find.
- Added or updated comments in several places to explain what is going on and how to use it.
2020-05-19 20:17:48 -04:00
Atlantiscze
c32112c69c Merge branch 'master' of https://github.com/PolarisSS13/Polaris into 2020_04_17_LoadBalancing 2020-05-03 23:17:27 +02:00
Aronai Sieyes
c9086829ec Convert some telecomms constants into defines 2020-04-27 10:34:13 -04:00
Atlantiscze
51083ed119 Tweaks SMESRATE to original value
- Didn't notice the original value differed from value used on Bay. This brings it back so capacity remains unchanged
2020-04-21 22:46:47 +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
ShadowLarkens
6b802b61e8 Port VOREStation PR 6914 Speed up map load significantly
- Set initialized = FALSE on unsimulated turfs that need to intialize.
- Most of area/New() to initialize
- Faster lookup of self-init on atoms
- Split air alarm and fire alarm files, move new to initialize
- Tweak decals and opacity

Co-authored-by: Aronai Sieyes <arokha@arokha.com>
Co-authored-by: Leshana <Leshana@users.noreply.github.com>
2020-03-27 20:37:02 -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
Heroman3003
3d46075733 MC camera and access fixes and adjustments (#6269)
* Adjusts MC camera program, fixes ID program

* Fixes oversight with network access
2019-07-09 13:00:47 -05:00
Unknown
dfd9415458 Modern Modular Computers 2019-04-13 14:58:08 -04:00
Unknown
eb62911b9d Updates Part Seven 2019-04-10 22:33:48 -04:00
kevinz000
14832ccace Well that took a lot of effort.. 2019-01-12 05:25:00 -08:00
Leshana
30f10be83e Split and clarify global lists of processing vs non-processing machinery. (#5307)
* Renaming local var 'machines' to avoid confusion with the global var of same name.

* Delete the unused process scheduler machinery.dm file.  Long since replaced with SSmachines

* Split and clarify global lists of processing vs non-processing machinery.

- Renamed the list of processing machinery from "machines" to "processing_machines"
- Added new global list "machines" to be a list of all machines.
- Since nearly every reference to machines actually wanted to iterate over all machines anyway, this works out great.
2018-05-28 12:56:49 -07:00
Woodratt
0714585c38 Fix for Camera Networks
- Proper Camera Networks should be on the Camera console now
- Miner name change for Tcomm Network
- Removal of the unneeded Network list
2018-01-31 16:22:02 -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
Neerti
2723e153d5 Fixes Communicator Spying Exploit
Makes it so you can no longer see everyones' communicator cameras by modifying a camera console board.
2017-07-05 21:35:02 -04:00
Neerti
c84ab67fd3 Changes Shields
See PR for details
2017-04-13 00:36:13 -04:00
Neerti
12abb2d6f2 Ports a large chunk of the map datum system that europa/bay uses.
Links many map-specific details such as the station name, z-level information, and allowed jobs from global vars to map datum vars, which should help us maintain multiple maps at once in the future, which will be needed for the future Southern Cross.
Note that a config change will be needed to change GENERATE_ASTEROID to GENERATE_MAP, otherwise no changes should be required to continue normal map usage.
To change to a different map, it's suggested to tick the file that ticks all the other needed files, which for the Northern Star is called northern_star.dm.
2017-02-27 07:36:41 -05:00
Yoshax
2163998e2f Fixes #2303 2016-08-12 03:07:16 +01:00
Arokha Sieyes
b624e7703a Adds actual video calls to communicators
'chu heard me. S'what it does. When you're on a call, there's a "Start Video" button next to each person. When you click it, you actually look through their thing, like a ghost might if they ghostcalled. You have to stay within 1 tile of a video showing communicator to see it.

Multiple people can share one communicator video stream by setting it on a table or whatever, and examining it. There's a message like "It appears to be showing a video: [view]" and you can click view and you can all look at the video. COLLABORATION. SYNERGY. OTHER BUZZWORDS.

I also added the feature of DECLINING requests from people.

Also communicators show up on a special camera list on security consoles, but the same EPv2 network visibility turns this off as well if you wanna be all hidey. This does mean that people with the visiblity on serve as sort of roaming AI cameras for the AI as well. So the AI can watch you repair the outside of the station or whatever if you want.
2016-06-13 02:55:05 -04:00
Arokha Sieyes
8e90199052 Generic Station & System Name
Makes the name of the starsystem and station generic such that it can be modified in global.dm and replace the strings where it is used. This won't have an effect on Polaris itself, but makes changing the name much more simple for forks. Using string concat constants on the advice of Psi.
2016-05-16 15:34:03 -04:00
Mark9013100
7efe14a34d Security Camera edits 2016-05-06 14:27:12 -04:00
Hubblenaut
58cb56492e Tweaks Filtering and Toxic Gases 2015-12-15 13:57:52 +01:00
Neerti
2c81761494 Removes most references to NSS Exodus. 2015-12-03 13:47:37 -05:00
Neerti
e52a0ea332 Merge branch 'dev' of https://github.com/Baystation12/Baystation12 into sync_to_bay_10/10/2015
Conflicts:
	.travis.yml
	code/game/gamemodes/changeling/changeling_powers.dm
	code/game/gamemodes/changeling/modularchangling.dm
	code/game/turfs/simulated.dm
	code/global.dm
	icons/misc/fullscreen.dmi
	polaris.dme
2015-10-10 23:17:26 -04:00
PsiOmegaDelta
a7fa8cde49 Merge remote-tracking branch 'upstream/dev-freeze' into dev
Conflicts:
	code/modules/clothing/spacesuits/void/merc.dm
	code/modules/mob/living/living.dm
	code/modules/mob/living/simple_animal/borer/borer_captive.dm
	code/modules/mob/mob_grab_specials.dm
	code/modules/reagents/reagent_containers/food/drinks/bottle.dm
	html/changelogs/.all_changelog.yml
2015-09-11 08:54:03 +02:00
PsiOmegaDelta
0b433eb90c Code relocation. 2015-09-11 08:45:49 +02:00
Neerti
a9dda6cf3f Merge branch 'dev' of https://github.com/Baystation12/Baystation12 into 9/6/2015_baymerge
Conflicts:
	.travis.yml
	code/game/gamemodes/cult/cult.dm
	code/game/gamemodes/heist/heist.dm
	code/game/gamemodes/ninja/ninja.dm
	code/game/gamemodes/nuclear/nuclear.dm
	code/game/gamemodes/traitor/traitor.dm
	code/game/gamemodes/wizard/wizard.dm
	code/game/jobs/job/civilian.dm
	code/game/jobs/job/medical.dm
	code/game/jobs/job/security.dm
	code/game/objects/structures/lattice.dm
	code/global.dm
	code/modules/projectiles/ammunition/boxes.dm
	code/modules/reagents/Chemistry-Recipes.dm
	config/example/config.txt
	polaris.dme
2015-09-06 18:26:06 -04:00
PsiOmega
080e07976a Removes duplicate camera network definitions. 2015-08-30 15:51:05 +02:00
Neerti
00fa623c9d Merge branch 'dev' of https://github.com/Baystation12/Baystation12 into dev
Conflicts:
	.travis.yml
	code/controllers/configuration.dm
	code/game/gamemodes/changeling/modularchangling.dm
	code/game/jobs/job/medical.dm
	code/game/jobs/job/security.dm
	code/game/machinery/Sleeper.dm
	code/game/machinery/computer/communications.dm
	code/game/machinery/cryopod.dm
	code/game/objects/items/weapons/RCD.dm
	code/game/objects/items/weapons/storage/boxes.dm
	code/game/turfs/simulated/floor.dm
	code/game/turfs/simulated/floor_types.dm
	code/global.dm
	code/modules/materials/materials.dm
	code/modules/mob/living/silicon/ai/ai.dm
	code/modules/projectiles/guns/projectile/automatic.dm
	polaris.dme
2015-08-23 01:30:46 -04:00
mwerezak
1cb4afd906 Removes CHARGELEVEL_DEFAULT 2015-08-18 17:20:38 -04:00
mwerezak
d3a40f4269 Cleans up defines
Replaces bitflag values with hex literals. Some other miscellaneous
cleanup.
2015-08-18 17:05:26 -04:00
Neerti
6eece8ac45 Merge branch 'dev' of https://github.com/Baystation12/Baystation12 into 7/16/2015_bay_merge_2
Conflicts:
	.travis.yml
	polaris.dme
2015-07-16 22:46:53 -04:00
Woodrat
c5b30257f7 Neerti is Satan, updates map. Updates files. 2015-07-07 20:31:00 -07:00
PsiOmegaDelta
cc1ca0e616 Compilation fixes. 2015-06-30 09:01:51 +02:00
Chinsky
ad0652d864 Moved some stuff from global.dm into defines files that fit the theme, some into files where they are used (and only there, much global). Axed some obsolete stuff (rip Debug var). 2015-06-04 22:51:15 +03:00
Chinsky
bf53304fec Splits setup.dm into berjillion of smaller files vaguely named thematically.
Also moved __HELPERS and _defines around so defines actually come first.
2015-06-04 21:51:58 +03:00