* Added an option to not set the machine when checking for attackhand() in machine class (prevent infitine loops if a machine doesn't have a dialog and called ..())
* Sleepers, cryo cells and DNA scanners can now be pried open when non-fonctional
* Cleaned and standardized DNA scanners code by using the general machine class
* Made sure destroyed machines drop their contents
* Added icon updating for mech bay power console and mecha control console (operational, powerless and broken states)
* Cleaned up and aligned the borg recharger station code with its parent code
* Added powerless codersprites for the borg recharger station
* Non operational borg recharger station can now be pried open from the outside.
* designs are now using the construction time var and the hacky /obj/item/mechavars is gone
* designs updated : there shouldn't be "no material" designs anymore
* cleaned the objects of their construction_cost and construction_time vars
* fixes the material name being displayed with $ character before
* this also fixes the overlay animation in inserting sheets
* the category var is now a list, so parts can be build/used with several chassis (fixes the Firefighter Chassis appearing when building Ripley)
* properly fix the href vulnerability when emptying (you can now remove all sheets of a materiel at once)
* the exofab now won't create a material sheet if there's not enough material (e.g 1000 metal)
* the exofab now won't accept a sheet if it would overstuff it (losing some material in the process)
* cleaned the code a bit (simplified, streamlined, using global vars, etc)
Finish #5722 and fixes#5954.
Works pretty well. If it can't GC something, it'll just del() it and be done.
Speed is amazing, holy shit.
New procs you should be aware of:
qdel(atom/movable) - sets up an object for garbage collection. Call this rather than del(atom/movable).
atom/movable/Destroy() - called right before the object is GC'd, so it still has a loc. Also called if the object is del()'d.
new controller - garbage.dm has all the details on this. Basically it nulls all references on GC'd objects and force del() them if necessary.
Generally speaking, objects should use Destroy() for behavior prior to deletion rather than Del(). You should also always call the parent so the object gets the right gc_destroyed var set.
ISSUES:
Tries to GC mobs atm. This actually works for new players, not so much for humans/monkies/simple_animals/anything. I'm guessing it needs to clear out their mind and HUD and maybe other things.
Gibbing is really bugged. It works, but the overlays just sit there for awhile and ugh. I'm very tempted just to del() mob/living and mob/camera and call it a day.
qdel() equipment doesn't unequip the item.
Pipes don't generally GC correctly. Debugging suggests they get referenced in many pipenets and that isn't cleared properly. However some do work fine. Need assistance here.
Bots don't GC, probably in the radio controller.
Lots of other shit doesn't GC but it's hard to find them because of the pipe spam.
I think I'm calling Destroy() twice by accident.
Standardization of the object tree and some modified functionality.
Moved a lot of storage/*_kit and similar boxes to storage/box/* ; most of these can now be found in boxes.dm. First aid kits remain a separate item type.
Replacement Light boxes pick up lights (for example broken ones) when used on them
Moved weapon/secstorage to storage/secure
Moved plant bags, ore satchel, trash bag, and sheet snatcher to storage/bag, in bags.dm
Fixed reagent_containers and snacks to pass through attackby() so the use_to_pickup code works. This affects plant bags, trash bags, and pill bottles.
Dice packs are now pill bottles, and all pill bottles can pick up dice.
Added error handling to uplink/generate_menu() so that one mistyped string doesn't bork the whole syndie uplink menu, since strings cannot be type-checked at compile time.
Cigarette packs and crayon boxes are now storage/fancy, however they retain existing update_icon() code.
Added a comment to storage.dm so that future people know where to look for use_to_pickup and allow_quick_gather code.
Updated all maps.
I've tried to test this thoroughly but I wouldn't be surprised if there were a few lingering issues. Try not to panic if you encounter any.
Full (i think) list of changed paths:
/obj/item/weapon/storage/flashbang_kit > /obj/item/weapon/storage/box/flashbangs
/obj/item/weapon/storage/body_bag_box > /obj/item/weapon/storage/box/bodybags
/obj/item/weapon/storage/chemimp_kit > /obj/item/weapon/storage/box/chemimp
/obj/item/weapon/storage/trackimp_kit > /obj/item/weapon/storage/box/trackimp
/obj/item/weapon/storage/seccart_kit > /obj/item/weapon/storage/box/seccarts
/obj/item/weapon/storage/handcuff_kit > /obj/item/weapon/storage/box/handcuffs
/obj/item/weapon/cigpacket > /obj/item/weapon/storage/fancy/cigarettes
/obj/item/weapon/storage/mousetraps > /obj/item/weapon/storage/box/mousetraps
/obj/item/weapon/storage/PDAbox > /obj/item/weapon/storage/box/PDAs
/obj/item/weapon/storage/id_kit > /obj/item/weapon/storage/box/ids
/obj/item/weapon/storage/lightbox/mixed > /obj/item/weapon/storage/box/lights/mixed
/obj/item/weapon/storage/donkpocket_kit > /obj/item/weapon/storage/box/donkpockets
/obj/item/weapon/storage/beakerbox > /obj/item/weapon/storage/box/beakers
/obj/item/weapon/storage/syringes > /obj/item/weapon/storage/box/syringes
/obj/item/weapon/storage/gl_kit > /obj/item/weapon/storage/box/rxglasses
/obj/item/weapon/storage/diskbox > /obj/item/weapon/storage/box/disks
/obj/item/weapon/storage/stma_kit > /obj/item/weapon/storage/box/masks
/obj/item/weapon/storage/lglo_kit > /obj/item/weapon/storage/box/gloves
/obj/item/weapon/storage/lightbox/bulbs > /obj/item/weapon/storage/box/lights/bulbs
/obj/item/weapon/plantbag > /obj/item/weapon/storage/bag/plants
/obj/item/weapon/storage/satchel > /obj/item/weapon/storage/bag/ore
/obj/item/weapon/trashbag > /obj/item/weapon/storage/bag/trash
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5494 316c924e-a436-60f5-8080-3fe189b3f50e
-Atmos delay is now based on active players, to help fight lag for massive player rounds.
-Changed some for(blah in world) loops to use the correct lists.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4958 316c924e-a436-60f5-8080-3fe189b3f50e
-Redid icons to be more optimized at compile by setting icon = 'icons/folder/icon.dmi' instead of just icon = 'icon.dmi', meaning that Dream Maker doesn't have to search through every single file for every single .dmi. This shouldn't lead to any errors because of how I went about it, plus the fact that Dream Maker would have freaked out if I screwed something up. Also moved around 2 icons that weren't sorted well.
r4146 compile time: 1 minute, 40 seconds
r4147 compile time: 45 seconds
[VGTG]
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4147 316c924e-a436-60f5-8080-3fe189b3f50e
- atom.forceMove() proc. Ignores density and other Move() restrictions, but calls Exited() and Entered()
- var/emagged moved to /obj/machinery class
- anyprob() helper proc.
- Mecha internal damage vars encapsulated.
- Mech Fabricators now require robotics ID to operate. Emag removes this restriction.
- Added Odysseus Medical Exosuit and it's parts. Has integrated Medical Hud and ability to mount medical modules.
- Added Sleeper Medical module for medical exosuits. Similar to common sleepers, but no ability to inject reagents.
- Added Cable Layer module for exosuits. Load with cable (attack cable with it), activate, walk over dismantled floor.
- Added another exosuit internal damage type - short circuit. Short-circuited exosuits will drain powercell charge and power relay won't work.
- You should be able to send messages to exosuit operators using Exosuit Control Console
- Gygax armour and module capacity nerfed.
- Exosuit weapon recharge time raised.
- Bugfix: EMP actually drains exosuit cell and damages it
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2780 316c924e-a436-60f5-8080-3fe189b3f50e
- Moved byjax callback processing to JS part.
- Disabled exosuits verbs from showing when RMButtoning.
- Added radios to exosuits. Setting can be found in 'Electronics' menu.
- Exosuit maintenance can be initiated even if it's occupied. The pilot must permit maintenance through 'Permissions & Logging' - 'Permit maintenance protocols'. For combat exosuits it's disabled by default. While in maintenance mode, exosuit can't move or use equipment.
- Nerfed EMP effect on mechs.
- Fixed build_path for atmospheric monitor circuitboard design
- Bugfixing and bugmaking.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2343 316c924e-a436-60f5-8080-3fe189b3f50e
1. Drill
2. Hydraulic Clamp.
3. Ore Box in cargo.
then ore will be moved to ore box.
- Mech fabricator build speed increased.
- Mech fab queue updates through byjax.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1514 316c924e-a436-60f5-8080-3fe189b3f50e
- Added Durand parts and Durand construction (currently using Gygax part sprites)
- Other mecha tweaks.
- Fixed smelter not showing sand as smeltable material.
- Cyborg gibbing inside recharge station should now update its icon and power consumption.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1288 316c924e-a436-60f5-8080-3fe189b3f50e
- Mechs equipment is customizable (you can add different equipment to mechs). Weapons go to combat mechs only, clown mech equipment - to HONK only. Clamp goes only to Ripley.
- Mech equipment can be built by mech fabricator.
- Added mecha RCD, mecha teleporter, mecha wormhole generator equipment.
- Equipment(if any left) can be pried from mecha wreckage with crowbar.
- Mech control console circuitboard added to circuit storage.
- Mechs can teleport from teleport hub.
- Fixed ripley cargo problems with moving objects(bots, carps, huggers etc). Loading hostile organisms may be harmful. Be vigilant.
- Fixed bug with many mobs climbing inside one mecha.
- Fixed mecha "unable-to-move" message spam.
Other things:
- Rooms in random asteroids for extended and sandbox (WIP)
- Misc.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1190 316c924e-a436-60f5-8080-3fe189b3f50e
- Vent pumps and scrubbers no longer spam radio broadcasts. Should help with lag a little.
- Fixed Gygax construction.
- Made Ripley more miner-friendly.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1152 316c924e-a436-60f5-8080-3fe189b3f50e
- Added mecha control console (with circuitboard and circuit design). There must be a tracking beacon on mecha to get info.
- Added mecha tracking beacons (can be attached to mechs by attacking or throwing). Working mechs have one installed by default.
- Added gun turret (WIP)
- Fixed "cargo-controlled" mecha movement (I hope).
- Probably solved problems with mobs inside Ripley.
- Mecha internal fire processing runtime error fixed.
- Gygax construction now requires advanced capacitor and advanced scanner module.
- Other... things.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1132 316c924e-a436-60f5-8080-3fe189b3f50e