About The Pull Request
I ended up just rewriting propagation logic entirely. This needs a bit of cleanup but this is a really high priority fix.
Actually tested this time. I can confirm for sure this is working in all situations that were previously broken.
Closes#44940Closes#44936Closes#44935Closes#44929
Why It's Good For The Game
I fucked up bad
Changelog
cl
fix: cables now actually function again (I'm so sorry)
/cl
I wanted to get this up next day but I kept falling asleep before finishing what I wanted to
About The Pull Request
Fixes some issues that have been brought to my attention with smart cables
Closes#44768Closes#44775
Why It's Good For The Game
this shit pretty broke as is in game.
Changelog
cl
fix: removed mech rcl from the research node so it stops spamming a warning in log
fix: cables now disconnect machines when cut
fix: terminal linking/not linking behavior with smeses has been improved
fix: couple of small mapping fixes
tweak: changed cable coils back to 30
tweak: changed the box smes room a little to prevent stacking terminals
tweak: removed the rpcl from engineering on every map because it's not used for wiring anymore
/cl
Cables now autoconnect on cardinal directions. All cable placement has been completely stripped out and replaced with simple single cable per tile logic.
Low effort demo: https://www.youtube.com/watch?v=fXp8s6ORWbA
Yes I am aware that cutting it is not dropping wire, that version was bugged.
Cables no longer need a knot specifically placed to link to power objects. The sprite is automatically changed to represent this.
The only exception to this logic is that on smes units, due to the terminal being next to the output, they will not link there.
On a technical powernet side, this is the same as old cables once actually placed. They still use the existing powernet system, just the placement and connection works differently.
Old cables have been turned into "pipe cleaners" for wire art purposes. they work just like the old ones, just missing all the powernet functionality, and also you can put them on top of the floor.
Why It's Good For The Game
How obnoxious cables were to both map and work with in game has been something that has annoyed me for a really long time now.
This is both easier for new players to learn, and easier for experienced players to work with.
Along with making in game much more intuitive and easier, it makes mapping much easier as well. Mad lad wjohn was able to rip out all the mapping conversion in one day because of how much faster it is to work with.
cl actioninja and wjohn
add: Cables have been completely reworked. Simple per tile connection logic, automatically connects to things above it. Think minecraft redstone.
add: Old cables have been kept as pipe cleaner. They are non-functional in terms of power, but otherwise have the same connection logic. Also can go on top of tiles.
remove: mech cable layer has been removed because it was terrible shitcode nobody used
tweak: (sort of balance) cable stack sized has been reduced to 15.
/cl
cl Naksu
code: reagent IDs have been removed in favor using reagent typepaths where applicable
fix: mechas, borg hyposprays etc no longer display internal reagent ids to the player
/cl
* small changes
* Adds a use_tool helper and changes some tools to use it
* Ports most tool operations to use_tool
* Converts more tool operations to use_tool and tool_act
* Changes some things to default_unfasten_wrench
* Improves tool_behavior support in mech construction
* Code review memes
* Fixes all instant use_tool calls failing
* Code improvements
* merge fixes
* It works, but is it worth it?
* bitfield helpers take 1
* Would this work?
* remove dangling debug code
* rebase & fixes
* vv bitfield stuff, reading
* DNM oceans of shitcode DNM
* honk
* honk2
* plonk
* rebase & fix
I had some time free, and noticed how awful the reagent grinder code was - it used huge static lists containing types and their associated reagents from grinding.
This is now split into two new vars on /obj/item - var/list/grind_results and var/list/juice_results, as well as two new helper procs, on_grind() and on_juice() to allow those to change based on conditions like plant potency. Such checks and the like have been moved to that. If any of these procs return -1, the operation is canceled.
I also fixed some of the recipes that didn't work. The reagent IDs for them didn't exist, leading me to believe that they weren't tested. I corrected that! (I've tested every single recipe in this PR, with the exception of a few juicing-related ones.)
* spawn/sleep removal part 1
* sleep/spawn/src. removal
* fixes type paths in timers
* Fixes some variable passing
* Why do I have to do this 20 times to get it right..?
* Why do I have to do this 21 times to get it right..?
* Update suicide.dm
* Update software.dm
* Update paper.dm
* Update cable.dm
* Update ninjaDrainAct.dm
* Update hypospray.dm
* Update vocal_cords.dm
* Update touch_attacks.dm
* Update revenant_abilities.dm
* woops
* Update revenant_abilities.dm
* The future of archaeology
* pirate pad transfer is godawful
* pp transfer, part deus
* Revert "pp transfer, part deus"
This reverts commit f6e48f71f59f834f0b9e02a2ab2bb1bc1bda1b6a.
* hmmm!
* Edits How This Works
* Dig Check
* you can no longer chaindig + MrPerson req
* All MrPersons
* I need to squash soon [tm]
* replaces define
* fixes #literally everything
* forgot why i set it to highlander
* Review
* Removes How2 and Fixes Travis
How2 was outdated so idgaf
* Review 2, Cyberboss Boogaloo
had to move SSblackbox now that W is a more localized var.
* archdrop list is null now
* It won't let me edit that space sorry
* GOTCHA
* yes i used the web editor, no i am not sorry
* cyber
* ..()
Add's a tool that lays cable as you walk , speeding up cable construction
add: Nanotrasen has begun production of the Rapid Cable Layer, a tool that helps you lay down cables faster
add: You can now craft ghetto RCLs with metal, a screwdriver, welder, and wrench. They hold less cable, and may fall apart or jam!
A complete rewrite of the dock proc for shuttles to make it more maintainable and readable and also bring over some new features while we're at it. This allows for multi-area shuttles and more control over the effects of anything being moved.
Areas, and movable atoms all have (before|on|after)ShuttleMove procs, turfs have (from|to)ShuttleMove procs which are called the same as beforeShuttleMove.
All ShuttleMove procs have been moved to a single file in the shuttle module.
Stationary docks will have their baseturf_type and area_type modified in maps once the problems have been worked out.