NB. In some cases we go from a more complex image() to a single icon_state string and I assume this works for every case but do not care to check because of the sheer scale of extra fiddly effort. Buyer beware, not my code.
* get_tool_quality has numerical meaning
* Basic tools set tool quality
* Toolspeed is replaced by tool quality checks
* Addresses assorted results from live test
* Extra cleanup
- 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.
Drone subtype added that is slower than the regular type, so that fleeing is an option now.
All drones on surface POIs have been replaced by this subtype.
Fixes power issues in several POIs.
Makes POI SMESes more robust and start full.
APCs in POIs will no longer send an alert to the station.
Fixes missing area in bonfire POI.
Tweaks name and desc of big stompy drone mechas.
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.
* A preface to my madness
Travis failed one of my PR's because I copied old code
that used /red /blue /green.
Because of this, I am going to find and replace every
instance of it that I find.
Also this is a test commit to make sure I'm comitting
to the correct branch.
* /blue /green /red replacements
Dear god.
A slow and painful death from acid is more fun than this.
I wouldn't wish this torture on my worst enemy.
And this is only the beginning
* Replace part 2.
Time to fix the human error.
* Fixes mismatches
* Sets macro count to 220
One above the current number of macros in the code.
* Fixes last of the mismatches.
* Removes spaces, replaces \black
Removes spaces
Replaces \black in a few areas where seen
Replaces \bold with <B> </B> where seen
* Updating macro count again
* More fixes!
* Issues fixed! For real this time!
I swear!
* Fixing all the merge conflict files.
A lot of new defines are now in inventory_sizes.dm, which contains;
All the size identifiers (the thing that tells the game if something is bulky, or w/e).
Storage costs for all the sizes, which are exponents of two, as previously.
A few constants for inventory size.
Also changes all storage item's capacity definitions by basing it off of how many 'normal slots' exist for it. This allows one to change the definition for all of the defines in the file, and everything will follow along without needing to change 500 files. In testing, I made all ITEMSIZE_COST_* defines doubled, and nothing had broke.
The benefit of doing all of this is that it makes adding new weight classes in the future much simpler, and makes knowing how much space a container has easier, as seeing ITEMSIZE_COST_NORMAL * 7 means it can hold seven normal items.
- Transition to using kilowatts and kilowatt hours
- Adds an input load bar with value
- SMES charge rate and coil capacities slightly adjusted for using
kilowatt units
- Re-implements Destroy() for SMES units. This time moves relevant (de)construction code all the way up to obj/machinery/. This should fix any potential GC issues with deconstruction of component-based machines.
- Implements Destroy() for breaker boxes.
- Fixes SMES units lacking disconnect_terminal(), causing GC errors.
Protolathe and CI build procs moved to them from RD console.
Protolathe and CI now have a build queue. Designs take varying time to
build.
P and CI material storage is now a list instead of a set of vars.
origin_tech is now a list.
All sheets now contain exactly 2000 units of matter.
In design datum, chemicals and materials are two separate lists.
Designs are now sorted. The method is kinda hacky but flexible. They
have a var, sort_string. Designs are sorted alphabetically using it.
Circuits how show whether they build a machine or a computer in CI menu.
Adds item construction, for now protolathe is used.
- Adds Red and Blue simple pipes for mapping use.
- Adds empty CO2 PH and N2O canisters for mapping use.
- Reworks asteroid outpost areas. Old areas kept in separate file for downstream compatibility
- Modifies engineering shuttle to work with next commit.
- SMESs no longer have to be charged above certain level (~5%?) to actually begin outputting power.
- Fixes SMES related bug caused by previous commit
- Adds high capacity, high IO and basic coil types.
- Adds two additional types of SMESs which contain new coil types by default. These will be used in next commit.
- RCON consoles ignored SMES I/O limits, meaning you could set SMES to charge/discharge at unlimited values.
- SMESs now properly trim the value when it is above maximal limit (or below 0)
- Also commented the code, while i was in it
Everything in game/machinery/computers/ and modules/shuttles should now have properly (de)capitalized names. Computer, board and research names should now be coherent, too. Adds a research for employment records circuit board.
Also moved RCON console board and SMES board where they belong. Formatted some board code and fixed some typos, too.
Cloning console renamed to Cloning Control Console.
The teleporter console is now called Teleporter Control Console.
The power monitor is now called Power Monitoring Console.
SMES board glass and acid construction price normalized (though other resources are still required; is that a good thing? It would be better to just introduce a new expensive part that is used to build it (if the coils aren't enough) rather than have a single board with atypical price.
- Allows remote control of SMES units and Breaker Boxes.
- Adds wires to SMES units. Wires may be cut/pulsed for various effects. Signallers are supported.
- RCON console(s) may be used to monitor the SMES units (which have RCON enabled) remotely, showing output loads and charge percentages.
- SMESs may be quickly discharged by cutting the grounding wire. This however comes with little risk of overload which may damage APCs on output powernet.