Commit Graph

166 Commits

Author SHA1 Message Date
Iamgoofball
a8ec1c76df Merge branch 'master' of https://github.com/tgstation/-tg-station into graphics
Conflicts:
	code/ATMOSPHERICS/atmospherics.dm
	code/game/machinery/computer/computer.dm
	code/game/objects/items/weapons/explosives.dm
	code/game/objects/structures/crates_lockers/closets/fireaxe.dm
	code/game/objects/structures/musician.dm
	code/game/objects/structures/tables_racks.dm
	code/game/objects/structures/window.dm
2015-06-23 12:54:26 -07:00
Cheridan
b7dc52856e Merge pull request #9867 from RemieRichards/PipePressureLethality
Pipe Pressure Panic
2015-06-23 00:16:25 -05:00
phil235
3f57259c69 Merge pull request #9466 from Fayrik/TheNanoing
The Nanoing (Episode 2: The Fix Wars)
2015-06-22 14:24:20 +02:00
Iamgoofball
c2256d41fc BAR NOW SHOWS UP ON THE OBJECT YOU'RE INTERACTING WITH 2015-06-13 13:58:08 -07:00
duncathan
9d64ca0e0c makes the game compile
fixes more icon paths
I gave zvent the vent_map icon as a placeholder because it's not like it's even used anyway
2015-06-13 12:33:31 -06:00
duncathan
dab13732fe cleans up icon paths; modifies certain unary devices
updates icon paths in multiple files
removed insulated icon state in pipe_item.dmi (insulateds are deaaaad)
lays an icon framework so that o2 generators, cold sinks, heat sinks may eventually be made constructable
  they no longer override update_icon() but instead update like just about every other device
  eventually I'll give these real sprites but given that they're unused it can wait for now
  sprites and construction are outside the scope of this PR
makes heat exchangers update their color based on their node
  because heat exchangers are different sprite-wise they had to override update_icon entirely
makes heat exchanger, heat sinks, cold sinks, o2 generators non-dense
2015-06-13 02:43:17 -06:00
duncathan
f8033c33de cleans up a bunch of atmos icons
cold_sink.dmi, heat_exchanger.dmi, oxygen_generator.dmi have been merged with unary_devices.dmi
valve.dmi, digital_valve.dmi have been merged with trinary_devices.dmi
  these contained icons for trinary valves; binary valves are already in binary_devices.dmi
pipes2.dmi, dp_vent_pump.dmi, portables_connector.dmi, vent_pump.dmi, pipe_vent.dmi removed
  completely unused/redundant
obj/atmospherics/pipe_tank.dmi moved to obj/atmospherics/pipes/pressure_tank.dmi
obj/pipes/ moved to obj/atmospherics/pipes/
obj/pipes.dmi moved to obj/atmospherics/pipes/simple.dmi
obj/atmospherics/pipe_manifold.dmi moved to obj/atmospherics/pipes/manifold.dmi
removed unused/redundant icon states in simple.dmi
2015-06-12 21:18:18 -06:00
Remie Richards
cccc3446f0 You can now unwrench atmospheric machines with internal pressures greater than their environment, this will throw you away from the machine at great speed, inflicting damage if you hit something hard (walls) 2015-06-09 20:14:12 +01:00
duncathan
f55b70e175 fixes passive gates not colouring 2015-05-28 22:06:58 -06:00
duncathan
041f5ba06a slight reorganization of code/ATMOSPHERICS
puts some things in their proper place
renames unary to unary_devices for consistency
2015-05-27 17:47:54 -06:00
MrStonedOne
33c5a57719 Fixes pipe panic runtime.
These procs are called by the atmos subsystem or during construction when they are needed, so calling them on New() only fucks shit up.
2015-05-23 14:50:13 -07:00
Swag McYolosteinen
287de468ff Merge pull request #9296 from RemieRichards/VentcrawlingFixes
Ventcrawling Fixes
2015-05-14 12:25:11 +02:00
Fayrik
0ba314552a The initial tweaks are in place, ran out of time to finish it though. 2015-05-11 18:54:31 +01:00
Remie Richards
07f1b17a75 Update pipe vision when moving from scrubbers-->vents or vice versa via atmos/pipe fuckery, Fixes pipe vision not updating on login() 2015-05-03 00:13:21 +01:00
MrStonedOne
6d755ba900 Fixes pipe construction bug 2015-05-02 09:07:08 -07:00
MrStonedOne
eb7d5fefa5 Merge remote-tracking branch 'upstream/master' into step-aside-aran-im-here-to-touch-your-precious
Conflicts:
	code/controllers/subsystem/ticker.dm
2015-05-02 03:03:29 -07:00
Cheridan
64b5f8540c Merge pull request #9164 from Fayrik/TheNanoing
The Nanoing (Part One: Atmospherics)
2015-04-29 09:38:56 -05:00
MrStonedOne
bd6d51a0b5 Massive MC and subsystem rewrite
MC:
	No longer tracks a subsystem's cpu usage. This was basically worthless and took up space on the stat panel
	Can calculate wait down to a tenth of a decisecond to make it fps/world.ticklag agnostic
	Now allows subsystems to have a dynamic wait, that is based on a ratio of how long that subsystem has been taking to process(cost). (This system allows for upper and lower bounds, and an changeable cost delta for each subsystem)
	MC can now be told to init a zlevel

All Subsystems:
	Stats panel now allows child subsystems to pass it a message to add to its stats entry. All subsystems have been moved over to this system - This should cut down on subsystems having to copy and paste the stats proc in order to add to it
	All subsystems now properlly handle being given a zlevel in their init proc

Subsystem changes:
	Air:
		Added air to the dynamic wait subsystem. upper bound: 50, lower bound: 5, cost delta: 3 times process cost
		Air now fires 4 times faster when it can do so without lagging things up
		Pipenet has been merged into air
		Atmos machinery now processes with process_atmos(), ticked by air, not machinery.
		Hotspots (the fire object) are now object pooled
	Pipenet:
		Deleted, added to air
	Machinery:
		Moved all atmos calcualtions in all objects's process() to process_atmos().
	Lighting:
		Added Lighting to the dynamic wait subsystem. upper bound: 20, lower bound: 5, cost delta: 3 times process cost
	Ticker:
		Fixed ticker not updating the lobby panel when game start delayed
		Fixed the game start timer updating rapidly from queued fires when game start delay is removed
	Garbage/qdel:
		qdel will now limit its process time to 2ds a fire.
		qdel can now be given hints as a return to Destroy() as to what should be done with the object.
		the options are:
			queue: (default) this is the normal behavior.
			letmelive: old default to non-null/zero. does nothing with the object
			iwillgc: functionally the same as above, mainly to let people working with objects know that the object will not be queued for GC checking
			harddel: this will queue the object to be deleted without storing a soft reference, mainly to save locate() processing time.
			harddel_now: this will del() the object. To allow for a clean removal of every del() not in qdel
		All objects have been updated to the new system, harddel and iwillgc was not added to any new objects.
		Fixed some objects not GCing because they didn't properlly clear references in Destory()
		Fixed some objects getting qdel'ed preventing other objects from getting GCed because they did not null their reference to that object.
2015-04-29 02:00:25 -07:00
Remie Richards
3b14aca5ae Merge branch 'master' of https://github.com/tgstation/-tg-station into PortVGVentcrawling
Conflicts:
	code/ATMOSPHERICS/components/unary/vent_pump.dm
2015-04-26 15:31:45 +01:00
Fayrik
80ff5d45d0 Air alarm template still needs a tweak, but it's functional now. 2015-04-25 05:22:00 +01:00
kingofkosmos
a7bd5f93e1 "You hear something" set to italics. 2015-04-24 21:06:16 +03:00
kingofkosmos
1d14471d00 Ellipses to waiting messages. Warning-spanclasses to failing messages with an exclamation mark. 2015-04-24 20:50:50 +03:00
Remie Richards
0fbdadb4e4 Improves feedback messages. 2015-04-20 22:02:57 +01:00
Remie Richards
4b5fcf7969 Prevent exiting/entering Welded atmos equipment. 2015-04-20 21:49:32 +01:00
Remie Richards
6c4ede3fef "Balances" New Scrubber ventcrawling by allowing weldable scrubbers. 2015-04-20 21:21:45 +01:00
Remie Richards
b35112282b Ports VG's ComicIronic's awesome ventcrawling overhaul. 2015-04-20 20:39:25 +01:00
Remie Richards
5fc7af7fbf attackby() now has an argument containing the parameters of the click that called it. Items placed on tables now center their icon where the user clicked. this is NOT true for racks, since racks look organised in their sprite.
Items reset their pixel_x and pixel_y values on pickup.
2015-02-19 13:02:43 +00:00
Menshin
a1a8555a45 * Fixes the air stored inside atmos machinery not updating on construction
* Fixes filters and mixers switching off on icon update
* Fixes the RPD not properly setting the flipped variable for flipped mixers/filters
* Fixes using the atmos analyzer on a pipe making you attack it
2015-02-04 21:56:07 +01:00
tkdrg
a4fa7027bc Merge pull request #6830 from Menshin/atmos_null_parent_fix
Fixes atmos machinery sometimes getting null pipenet.
2015-01-07 00:20:36 -03:00
Remie Richards
f918815bea Merge pull request #6741 from tkdrg/atmoslog
Adds atmos investigate_log
2015-01-06 07:56:17 +00:00
Menshin
c63af563bc Fixed binaries and terniary spawning with the same pipenet for all parents when constructed without connecting pipes (fixes #6632) 2015-01-06 00:43:59 +01:00
carnie
a3f5e7ebfd Merge branch 'master' of https://github.com/tgstation/-tg-station into SubSystems
Conflicts:
	code/game/gamemodes/setupgame.dm
	code/modules/mob/living/carbon/human/life.dm
	code/modules/reagents/Chemistry-Machinery.dm
2015-01-04 01:52:14 +00:00
Menshin
910cfdaf6e * Fixed normalize_directions() for valves and simple pipes (fixes #6746)
* Added missing icons for hidden HE pipes and junctions (fixes #6636).
2015-01-02 10:35:12 +01:00
tkdrg
e52ace562c Adds atmos investigate_log
Sort of ported from the /vg/ atmos logging by N3X15
Right now includes opening/closing pumps and opening/closing canisters.
Also adds a message_admins() when a plasma canister is opened.
2015-01-01 21:37:32 -03:00
carnie
a029a49392 SubSystem rewrite
Misc:

+Fixes unreported issue with initializing lighting on a specific zlevel

+Fixes two similar issues with moveElement and moveRange. Where fromIndex or toIndex could be adjusted incorrectly in certain conditions. Potentially causing bad-sorts, or out of bound errors.

+Rewrites listclearnulls(list/L) to no longer iterate through L.len elements for every null in the list (plus 1). i.e. went from L.len*(number_of_nulls+1) list-element reads (best-case), to L.len list-element reads (worst-case)

+New proc/getElementByVar(list/L, varname, value) which finds the first datum in a list, with a variable named varname, which equals value. You can also feed it atoms instead of lists due to the way the in operator functions.

+Fixes an unreported issue with Yota's list2text rewrite. Under certain conditions, the first element would not be converted into a string. Causing type-mismatch runtimes.

+New global map_ready variable. This is not fully implemented yet, but will be used to avoid duplicate calls to initialize() for map objects.

+All turfs now maintain references to all lights currently illuminating them. This will mean higher memory use unfortunately, due to the huge number of turfs. However, it will speed up updateAffectingLights significantly. I've used list husbandry to reduce baseline memory usage, so it shouldn't be any worse than some past atmos modifications memory-wise.

-Removed 'quadratic lighting', can add this back at some point. Sorry.

+modified the way lum() works slightly, to allow turfs to have overridden delta-lumen. i.e. space cannot be illuminated more than its default ambiance. This allowed removal of some iffy special-snowflake lighting areas implemented by somebody else.

+Lighting images in the dmi can now use arbitrary naming schemes. It is reliant on order now. This allows the dmi to be replaced by simply dropping in a new dmi.

-Removed all subtypes of /area/shuttle. Shuttles now create duplicate 'rooms' of /area/shuttle. (More on this later). This will conflict with most maps. Guide on how to fix to follow.

+All verbs/tools relating to world.tick_lag were refactored to use world.fps. However old config text for setting tick_lag will still work (it converts the value to fps for you)

+MC stats improved using smoothing. They now have their own tab so they dont get in the way when you're playing as an admin.

-removed the push_mob_back stuff due to conflicting changes. Sorry Giacom.

_OK, NOW THE ACTUAL INTERESTING STUFF_

Following systems moved over to subsystem datums:
air_master
garbage_manager
lighting_controller
process_mobs (aka Life())
nanomanager
power
sun
pipenets
AFK kick loops
shuttle_controller (aka emergency shuttle/pods), supply_shuttle and other shuttles
voting
bots
radio
diseases
events
jobs
objects
ticker

Subsystems hooks and variables should be commented fairly in-depth. If anything isn't particularly clear, please make an issue.

Many system-specific global variables have been refactored into

All tickers which previously used world.timeofday now use world.time

some subsystems can iterate before round start. this resolves the issue with votes not working pregame
2014-12-31 13:25:41 +00:00
Menshin
567bb27722 * Fixed unwrencheable atmos objects' stored pipe being wrongly created on New() because initialize directions weren't set when instanciating
* Fixed constructed unwrencheable atmos objects having a stored straight pipe , because dirs weren't set on instanciation
Those fixes, at least, bend pipes transforming into straight pipes on wrench/unwrench
* Fixed the digital valve pathing in some places
* Fixed bend pipes appearing as straight pipes when wrenched without connecting to anything

* Pipe colors are now preserved on wrenching/unwrenching
* Various clean-up of unaligned partially connected pipes icons
2014-12-29 20:34:13 +01:00
phil235
f3df4e67bd Fixes monkey being able to ventcrawl if stunned after the ventcrawl action is initiated. Also changes ventcrawl messages to use visible_message() and audible_message(). 2014-12-14 19:18:13 +01:00
Daniel Hultgren
f48e9fcc15 Fixed valves 2014-12-12 21:23:44 +01:00
hornygranny
cd9a8a5125 Merge pull request #5909 from Razharas/InputFix
Fix of atmos input exploit
2014-11-24 10:40:51 -08:00
Cheridan
1208c48af3 Merge pull request #5652 from Menshin/atmos_z_level_fix
Atmos z level fix + radio controller code sanitization
2014-11-18 17:05:14 -06:00
Razharas
e205c8f2f6 Merge pull request #5857 from paprka/lolnames
Fixes a bunch of capitalization inconsistencies, adds names to vendors
2014-11-18 03:46:26 +03:00
Razharas
2a20c6bcf3 Fix of atmos input exploit
What on tin
2014-11-16 05:18:22 +03:00
Menshin
d17103a2cc Removed an unused variable in valves.dm 2014-11-14 10:24:53 +01:00
Menshin
ec944abfc6 * limit atmos/fire alerts to the current z_level
* atmos/fire alerts are now linked to an object and not its area, as intended
* simplified and full pathed the radio frequency datum
* made radio objects properly clean on del/qdel, instead of letting the radio controller remove nulls at each post_signal()
2014-11-14 10:10:45 +01:00
paprka
fe94f9cab0 Fixes a bunch of capitalization inconsistencies, adds names to vendors 2014-11-12 15:37:21 -08:00
Aranclanos
8aa5a137c5 Pipenet revamp
-Removed the pipenet network datum, now it will all be done with the pipeline datum
-All atmos pipes and machines will always have a pipeline datum
-Moved the valves to the binary subtype and the portable connectors to the unary subtype
-The pipe vents (who were barely used in three spots of the map) are removed, the map slots will replaced with outlets
-Fixes some bugs of pipenet disconnection, mostly on explosions
-Cleaned a bit the copypaste of construction.dm of pipes
-Removed the ID restrictions of digital valves and the frequency (both unused)
2014-11-03 08:21:31 -03:00
phil235
8b49caa5ee Fixes typos and show messages. Fixes attack animation code. 2014-11-03 01:06:02 +01:00
Daniel
9a9f6c0a75 Fixed #5390 2014-10-21 18:34:28 +02:00
Daniel
04f4431642 Updated maps and fixed runtime 2014-10-16 16:42:32 +02:00
Aranclanos
9077c173d1 Merge pull request #4759 from Donkie/pipes2
Major Pipe Upgrade Hashtag 2
2014-10-15 11:36:25 -03:00