I'm an idiot, forgot about garbage collecting. This fixes a slight issue
in my previous PR that would have eventually resulted in a call of DEL
if nobody rebuilt the console.
The old build path pointed towards a circuitboard instead of towards the
machine, meaning when you screwdrivered the frame twice, it would cause
frame.dm to runtime, and then not delete the frame, meaning you could
spam click the console with a screwdriver and spawn infinite boards, and
still be stuck with a non functional machine.
injector.computer = null was causing a runtime because it was attempting
to edit something that no longer existed on destruction.
Yes yes. I know.
Anyway, there's no cooldown on this so you can give someone about 800 brute in 10 seconds. A LITTLE UNUSUAL if you ask me. Also reduced it from 8 because what the hell is that toilet seat made out of? Osmium? For an armor-ignoring attack that's a little high. Also the swirlie thing was coded wrong for the do_after.
Gives the not equal gate a correct icon_state. Icon state was set to"not equal"
In the electronic_assemblies.dmi it is actually "not_equal"
This gives it the correct icon_state
* Protolate lid no longer bounces back and forth througout the whole build cycle.
* Autolathe lid no longer closes, snaps open, and then -nothing- until item spawns.
* Instead, the lid closes, stays closed while the item builds, then opens again.
* Adds a lot of languages.
* Removes the languages I just added.
Instead updates old ones.
* Fixes a minor typo.
* how the hell did i accidentally remove sinta'unathi
Returns that stuff.
* Fixes two things.
* doesnt actually change name length
* Every constructable machine with a circuit board needs to create its required parts in its constructor. These parts must be the same parts specified in the machine's circuit board, otherwise you get the wrong parts when you deconstruct. This creates an opportunity for error which we can eliminate by reading the circuit board's part list and just adding those to the machine directly! Plus its less tedious.
* Implemented it on the jukebox.
* Code referred to icon_state "panel_open" but was missing from the dmi. I had a copy of it from elsewhere, so added it in.
* It wasn't calling update_icon() on New() so newly constructed jukeboxes started off looking unpowered. Fixed.
* Modernized to use modern machine code instead of doing it itself.
* Made it compatible with modern circuits and machine frames.
* Also fixed some color macros to use CSS while I was there.
* Makes the paper shredder constructable and deconstructable.
* Switches to some new sprites which are animated!
* Machine now requires power, icons respond to power on/off etc.
* If you mouse-drag certain items onto a hand which is already holding something, the item goes into limbo.
* The reason this happens is that the standard code handling drags is directly calling usr.u_equip, despite the comment on that proc clearly saying never to do that. So it just throws it to limbo and the next line attempting to put it in hand does nothing becuase the hand is occupied. Better way is to call unEquip, so the item will drop on the ground if it fails.
* Fixes https://github.com/VOREStation/VOREStation/issues/394
The implant is stored as a string-reference, not an actual pointer, so you have to use locate() to resolve it into an actual pointer to see if that matches the implant we're removing.
Fixes#2312
Fixes https://github.com/VOREStation/VOREStation/issues/196
Was showing a few as "unknown" even though one is added by every clone scan, and the other is available in loadout. Just nobody updated this here list.
Sort of annoyng to have it named the same as an actual power cell, with a different max charge. If it's going to have a unique charge amount, it should have a unique name. High-cap cells are 10k, super are 20k, so this is some weird between-cell with 15k.