Ports /tg/'s VV refactor. Most of this is just cleaning up and making it
easier on the coders, but everyone else benefits too:
- Mass mod no longer freezes the server (CHECK_TICK <3)
- Attempting to change any of the step_* values or anything that will
otherwise disable pixel movement will now prompt you and ask if you are
sure you want to continue
- You can actually enter |text| again in a box, rather than being
forced to always use the multi-line input
- Cookies! VV saves your search and scroll position for a given UID,
rather convenient for debugging
- The refresh button on /clients works finally
- You can view lists in detail by clicking on them like any other
reference, and edit them directly that way. This also means there is no
hard limit on how many variables you can see in a list before it's
truncated- it will just be hidden until you view the list in VV
directly.
- You can shuffle lists and clear duplicate/null entries.
- Mildly reordered the stuff in the dropdown, inconvenient but
necessary.
Players:
- The only thing that you should notice is that your backpack options
have changed. Instead of being "None", "Backpack", "Satchel", and
"Satchel Alt", there are 6 options:
- "Grey Backpack": Ensures you always recieve a plain grey backpack.
- "Grey Satchel": Same as the above, grey, plain, satchel.
- "Grey Dufflebag": So you don't have to rush the locker room, I
guess. Just kinda ransacked it from /tg/. Happy to revert it, please
do not post a five paragraph text wall calling me a shitlord
powergaming hitler-loving furry.
- "Leather Satchel": It's a leather satchel. What the hell did you
think it was?
- "Department Backpack": Gives you the department's default backpack.
Grey for most jobs.
- "Department Satchel": It gives you the department's default
satchel; A grey satchel if the department doesn't have one.
Coders:
- The above means this needs a minor SQL change:
```
SQL goes here
I'll write a query later
Can't be bothered now
Kill me please
```
- This is a cleaner method of handling job equipment than
"M.equip_or_collect" x 1000. Jobs specify a '/datum/outfit' datum,
which defines all of the things to equip to the user.
- Minor note: equip_or_collect will no longer ever generate a plastic
bag. It will instead just drop stuff on the floor if it can't stuff it
into a mob. If this is even slightly a point of contention, more than
happy to revert it; It was just requested by Fox.
- Addendum: This also has the effect of making it so that labcoats
are just thrown onto the floor if you have a loadout suit. It's not
really avoidable. Uniforms and suits are equipped before the
backpack.
- Changes from /tg/:
- Changed all of the "H.equip_to_slot_or_del" calls into invoking a
new "equip_item" proc; This is used to support a new variable called
"collect_not_del". Job outfits use this, it makes it so that the
system calls equip_or_collect instead of equip_to_slot_or_del. The
idea being that job items should never be lost to the void,
especially because they can conflict with loadout items.
TODO:
- Retrofit "Equip Mob" verb to use this for all of the non-job options
- Fully implement head announcements(?)
- May be best for a second PR that addresses all of the real issues
with our current job system
( Now go reread that SQL code block :) )
`reset_perspective` from tgstation.
Also adds various support for remote viewing lenses - like cameras not
transmitting xray vision, among other things
Recommit because we're using different compiler versions
Start of porting the /tg/station mecha update.
This commit only cleans up the code and adds the proper dependencies for
the mecha.
- Removes relative pathing from /datum/events
- Updated Process_Spacemove() to use
atom/movable/proc/get_spacemove_backup()
- Basically just makes launching off of unanchored objects in space an
OOP behaviour
- Removed styling atrocities and relative pathing from most of the mecha files.
- Notable exceptions:
- code/game/mecha/mech_bay.dm
- code/game/mecha/mech_fabricator.dm
- code/game/mecha/mecha_construction_paths.dm
- code/game/mecha/mecha_parts.dm
- code/game/mecha/mecha_wreckage.dm
- code/game/mecha/paintkits.dm
- Removed dyndomove/dyndoattackby/dyndobulletact. No more icky dynamic
calls. Replaced by specific code for the 3 modules that used it.
- Refactored module cooldown. It now uses addtimer, and power usage is
hooked directly into the cooldown calls.
- Added atom/movable/proc/has_buckled_mobs(). Currently not that useful,
but, necessary for porting the multi-buckling system from /tg/.
- Split code/game/mecha/equipment/tools/tools.dm into multiple files.
- Removed snowflake behaviour from exosuit drill. It now calls
turf.drill_act(src).
- Different from /tg/: Allows you to drill any wall/floor normally.
- Drill no longer gibs mobs. It deals 80 organ damage instead.
- Drill can be used to harvest dead mobs.
- Removed all global_iterator systems from mecha and mecha equipment.
Everything now uses object processing.
- Mecha now have a turn sound variable and step sound variable. Updated
all subtypes to use these instead of snowflake domove procs.
- Removed mecha_do_after, mecha now uses the normal do_after.
- Removed enter_after, same as above.
- /obj/mecha/Process_Spacemove no longer strangely calls the user's
spacemove.
- /obj/mecha/return_pressure now uses return_air instead of copypasted
cabin air detection.
- Same for /obj/mecha/return_temperature
- Added /obj/mecha/Exited. Basically, properly clears occupant refs,
even if they teleport out/otherwise exit improperly.
- Added hooks for mecha action buttons; Didn't implement them yet.
- Moved mecha UI to code/game/mecha/mecha_topic.dm
- Fixed turfs not updating atmos when ChangeTurf(/turf/space) is used.
- Updated visible_message and audible_message. Both now use
get_mobs_in_view() to ensure that mobs inside containers can see
messages.
- Removed /obj/item/mecha_parts/mecha_equipment/tool subtype. It had no
use. Any subtypes are now just subtypes of
/obj/item/mecha_parts/mecha_equipment.