Commit Graph

51 Commits

Author SHA1 Message Date
Tigercat2000
71e5344a98 Mass replace 2016-07-07 19:34:02 -07:00
Tastyfish
4fd9d3e131 Nano animations! 2016-05-27 14:52:04 -04:00
Tigercat2000
78f53553f8 Reduce lines by removing blank lines added by PJ's script 2016-04-05 08:25:57 -07:00
Tigercat2000
9d430844c3 Replace most (if not all) output << operators with to_chat(user, message)
Currently, to_chat is literally just a proc that does user << message.
But it'll let us do output modification in the future, especially for
something like Goon's HTML chat.

Big thanks to PJB for his to_chat script, see
https://github.com/d3athrow/vgstation13/pull/6625 for more details.
2016-04-05 08:15:05 -07:00
Tigercat2000
7f4ac72910 Progress bars + Wall Rationalization
This commit does the following:
 - Ports progress bars from -tg- (tgstation/-tg-station#9921)
 - Refactors wall attackby code to make it 100% less insane; Instead of
   manually checking every little thing, it uses do_after,
   consequentially, making the new progress bars affect dealing with walls
   as well.

Wall code makes a tiger sad.
2015-08-31 13:38:51 -07:00
Markolie
2e3f4c63dd Solar control initialization fix 2015-08-03 01:14:06 +02:00
Markolie
38b313a454 Engineering outpost solar update 2015-08-01 22:25:32 +02:00
Markolie
0a4a2f34cf Map updates 2015-08-01 21:41:34 +02:00
Markolie
51035f931e Powernet rework 2015-07-31 23:59:41 +02:00
Fox-McCloud
822dc6bac1 solar tweaks 2015-07-14 00:23:58 -04:00
Fox-McCloud
6cbdad58cf Sun Controller Scheduler Integration 2015-07-13 20:54:10 -04:00
Krausus
b386cec388 Initial GC fixes/tweaks/cleanup/documenting 2015-06-27 01:56:57 -04:00
Tigercat2000
d20298e996 -tg- atom pooling system, qdel changes
This commit first and foremost ports the -tg- atom pooling system, and
removes the old experimental system entirely.

Secondly, this PR modifies the qdel system to use a -tg- lookalike
"destroy hint" system, which means that individual objects can tell qdel
what to do with them beyond taking care of things they need to delete.
This ties into the atom pooling system via a new hint define,
QDEL_HINT_PUTINPOOL, which will place the atom in the pool instead of
deleting it as per standard.

Emitter beams are now fully pooled.

Qdel now has semi-compatibility with all datum types, however it is not
the same as -tg-'s "Queue everything!" system. It simply passes it through
the GC immediately and adds it to the "hard del" lists. This means that
reagents can be qdel'ed, but there is no purpose as of yet, as it is more
or less the same as just deleting them, with the added effect of adding
logs of them being deleted to the garbage collector.
2015-06-21 15:47:57 -07:00
Markolie
672305e034 Adds a "params" parameter to attackby(), so it keeps track of pixel_x and pixel_y among other things 2015-02-22 22:12:11 +01:00
Markolie
95e18fd397 Solar update, convert solar to NanoUI 2015-02-16 21:35:34 +01:00
ZomgPonies
fdd1d94769 Hopefully fix solars for realsies 2014-05-01 21:49:24 -04:00
ZomgPonies
1ebe9f34e9 Solar fixes 2014-04-27 17:39:56 -04:00
ZomgPonies
1cdbe818ad tg's solars update 2014-04-22 09:46:36 -04:00
ESwordTheCat
c43652b33a Okay shards converted to pool usage now.
Conflicts:
	code/game/machinery/computer/arcade.dm
	code/game/machinery/doors/windowdoor.dm
	code/game/machinery/telecomms/traffic_control.dm
	code/game/objects/structures/displaycase.dm
	code/modules/mining/mine_turfs.dm
	code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm
2014-04-19 19:57:53 -04:00
Ccomp5950
e7d4f4ad4b Effeciency Project: APC / Machinery power usage.
We no longer run auto_use_power() on every machine every tick.
We now have a global list of areas, and areas that have an APC in them (all_areas and active_areas) no more looping through world bullshit.
A bunch of snowflakey as fuck machines won't use_power() in their process, you get two options, active and idle, use them!
This means a lot of machines won't double dip on power as well so power usage for the station has dropped about 20%

Because everything is snowflakey as fuck we're going to have some machines that don't force an update on their power usage.  Fuck them.
We should catch them with the root obj/machine/proc's forcing updates.

Conflicts:
	code/modules/mob/mob.dm
	code/modules/power/apc.dm
2014-03-08 17:03:29 -05:00
Rob Nelson
c3b021e246 Added a garbage collector implementation based on rumors from Goon and proc references in released gooncode.
And holy shit it's fast

Conflicts:
	baystation12.dme
	code/ATMOSPHERICS/pipes.dm
	code/game/machinery/Sleeper.dm
	code/game/machinery/rechargestation.dm
	code/game/objects/structures/crates_lockers/crates.dm
	code/game/objects/structures/tables_racks.dm
	code/modules/mining/mine_turfs.dm
	code/modules/paperwork/photocopier.dm
	code/modules/power/cable.dm
	html/changelog.html
2014-01-29 23:45:21 -05:00
ZomgPonies
63421d58e0 Image caching optimizations 2013-10-05 09:49:55 -04:00
Zuhayr
6f207a3a14 Fixes #2424 2013-06-27 18:09:48 -07:00
Zuhayr
e41c47c52b Fixes #3082. 2013-06-19 00:21:15 -07:00
adammartinez271828
3b95bf2279 Updates to sun.dm and solar.dm
Improved solar manual tracking by switching sun.dm and solar.dm to run off of the same clock (world.time) and added several options to the solar generator control computer.
2013-04-07 10:17:41 -04:00
rockdtben@gmail.com
169c96db1b Too remove potential excessive garbage collection per tick. We will be reusing lists for overlays instead of deleting and creating them.
the .Cut() proc on a list will empty a list by default. This also will set the len to 0.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5465 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-04 15:11:06 +00:00
giacomand@gmail.com
7af60a7fb5 -Changed the powernet nodes list to be a dictionary list (associative list, hashtable, etc..)
-Added a solars_list. The sun will use this list instead of the machines list. I made a proc which decided on whether to use this list or the powernet nodes list depending on what is smallest. I replaced some loops to use this proc.
-The sun will reference this list for debugging purposes. The sun will also remove solar equipment in the list which are not connected to a powernet.
-Cut down on some duplicated code.
-Fixed an issue with solar panels not updating their direction correctly.
-Changed the proc updateicon()'s name to update_icon()

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5418 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-29 07:24:42 +00:00
giacomand@gmail.com
eca72b69aa -Added constructable solar arrays.
-Added a solar pack crate to order.
-Machines that have a use_power of 0 will no longer be turned off due to lack of power in the area.
-Fixed a bug with the solar computer not reconnecting to the powernet when dismantled and remantled.
-Increased the cap of crates to 30.
-Some performance tweaks.
-Some standardization.
-All objects of type /obj/machinery/power will try to disconnect from the powernet before deleting, this will help reduce the node list size.
-Added a heat_proof variable for doors. It will effect glass airlocks and it'll determine whether they can block heat or not. Research glass airlocks will always have it enabled.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5344 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-16 19:51:23 +00:00
giacomand@gmail.com
b00c0c2a9f -New sprites APC sprites by TankNut!
-New wraith sprites by TankNut!
-Decreased flare duration, again(!)
-Made a based interact proc and changed the updateDialog to call that instead of attack_hand. This caused issues with the APC and getting the power cell out of it. I then changed all machines that had their own defined proc (that was everywhere)


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5001 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-03 14:45:29 +00:00
giacomand@gmail.com
6a2d78bc94 -Killed the updateDialog lag. I added a check to see if there were any mobs to update, if not it will stop checking until a user uses the machine again. I had to replace all the machine = src and machine = null with procs to help make it manageable. I believe this is one of the culprits causing the server to lag as the round goes on, as more players will interact with machines.
-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
2012-10-25 19:15:51 +00:00
elly1989@rocketmail.com
73e5c38a56 Preparations for reducing the number of processing machines at round-start. There are currently 8000 or so at round start, this was already pruned to 2800ish by doohl's stuff.
machine.process() now uses a return value to remove itself from the processing machines list. This is more efficient and will help reduce costs especially at round start where some 5000+ machines were removed from the list using first-find. Now there is no searching involved. Instead of machines.Remove(src) just do .=PROCESS_KILL that will return the flag to the proc which called it (the MC) and trigger its removal from the list. If you're deleting something don't even bother removing it from the machines list, there is no need to.

Simplified the last_processed stuff for the MC. It's now a single variable rather than 3. It is simply a typepath rather than a reference to an object (this is so it works even if said object is deleted)

MC stats in admin status_panels now show the length of the processing lists (indicated by #). I've just realised I forgot to mention what the abbreviations are:
The less obvious ones are: Dis=diseases; Net=pipes; Pnet=powernets; Mch=Machines; Tick=the game-mode ticker.

Beach-water now uses an overlay image rather than a separate object.

Fixed a typo in the shuttle console.

Hydroponics trays no longer use first-find within their process() for checking the plant is in the tray (why is that even there anyway? talk about lazy)

Removed some junk/placeholder procs like organ/proc/process() return

Removed newscasters from the processing machines lists.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4603 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-02 20:32:01 +00:00
elly1989@rocketmail.com
4073ac9b00 Replaced all 'file.extension' references with 'relativepath/file.extension' using a script by thvortex of ss13-daedalus.
All credits to the author for this handy little script.
I Committed the modified python script to tool directory. Although it needs to be in the root folder of your repo to work.

To notice the improved compile times, in dreammaker go to Build > Preferences > and untick "automatically set file_dir for subfolders"

If this commit inteferes with any large projects just revert it, do your thing, then rerun the script. Easy-peasy.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4488 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-18 16:33:40 +00:00
elly1989@rocketmail.com
a4bb788a23 Another Topic-spam related runtime.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4308 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-03 21:07:28 +00:00
baloh.matevz
a3d9123edd - Added a sprite "7" to the sd lighting file as it was used, even if it didn't exist.
- Piped 3.0.0 a bit.
- Standardized code/modules/power. 

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4242 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-31 05:24:37 +00:00
sieve32@gmail.com
7bf6788082 -OPTIMIZATION TIME
-Almost every instance of 'for(mob in world)' has been killed. Because GODDAMN was it being run a bunch. Instead, a series of global lists have been made, and they are all handled auto-magically through New()'s, Del()'s, Login()'s, death()'s, etc...

Lists are as follows:
-mob_list : Contains all atom/mobs by ref
-player_list : Like mob_list, but only contains mobs with clients attached
-admin_list : Like player_list, but holds all mobs with clients attached and admin status
-living_mob_list : Contains all mobs that ARE alive, regardless of client status
-dead_mob_list : Contains all mobs that are dead, which comes down to corpses and ghosts
-cable_list : A list containing every obj/structure/cable in existence
Note: There is an object (/obj/item/debuglist) that you can use to check the contents of each of the lists except for cables (Since getting a message saying "a cable," x9001 isn't very helpful)

These lists have been tested as much as I could on my own, and have been mostly implemented. There are still places where they could be used, but for now it's important that the core is working. If this all checks out I would really like to implement it into the MC as well, simply so it doesn't check call Life() on every mob by checking for all the ones in world every damn tick.

Just testing locally I was able to notice improvements with certain aspects, like admin verbs being MUCH more responsive (They checked for every mob in the world every time they were clicked), many sources of needless lag were cut out (Like Adminwho and Who checking every single mob when clicked), and due to the cable_list powernet rebuilding is MUCH more efficient, because instead of checking for every cable in the world every time a powernet was broken (read: A cable was deleted), it runs though the pre-made list, and even with a singulo tearing all the way across the station, the powernet load was VERY small compared to pretty much everything else.

If you want to know how any of this works, check global_lists.dm, there I have it rigorously commented, and it should provide an understanding of what's going on.

Mob related in worlds before this commit: 1262
After: 4
I'm helping


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4179 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-26 03:04:05 +00:00
sieve32@gmail.com
459c558898 -Make holodeck eswords a child of obj/item/weapon/holo instead of regular eswords, clumsy check removed as a result, and you can no longer do things like cutting through walls or doors or what have you. (Fixes Issue 665)
-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
2012-07-23 00:48:51 +00:00
johnsonmt88@gmail.com
da5bfd3b0f Setting people's criminal status via SecHUDs now require the user to be alive, and to actually be wearing the HUD.
Set the solar control computers to 'off' by default since you have to set them off then back on again to get them working properly anyway.

Fixed a typo in glass/attackby() causing lit-glass tiles to not be created. Fixes issue 593

Moved certain procs in human/life.dm() into an if(stat != DEAD). This means that certain procs will update only if the mob is alive.
Affected procs:
- handle_virus_updates()
- handle_changeling()
- handle_mutations_and_radiation()
- handle_chemicals_in_body()
- handle_disabilities()
- handle_random_events() 
- update_canmove() 
- - If dead, it forces mob.canmove to 0, meaning you don't get to be the walking dead.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3925 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-27 06:16:31 +00:00
baloh.matevz@gmail.com
c2c7a3bcda - Variable declaration standardization. Big commit.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3671 316c924e-a436-60f5-8080-3fe189b3f50e
2012-05-25 19:26:36 +00:00
mport2004@gmail.com
17ed3899c4 Fixed the map/code issues that the body bags caused.
/obj/effects is now /obj/effect.
/obj/station_objects is now /obj/structure.
Did a bit of minor blob work. 
The Bay 12 body bags were replaced with closets because having two sets of code that do almost the same thing is silly.
Changed back a few of the last jobproc edits as the remove from list before assign was a check to see if the mob was fucked up and if it was remove it so we did not check it again as it would still be fucked up.
The medbay/tox monkeys names are random once more.  More random name monkeys will help with changeling and clean up the observe/mob menus.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2324 316c924e-a436-60f5-8080-3fe189b3f50e
2011-10-03 10:28:57 +00:00
baloh.matevz
e8c6b08419 - Object tree grouped a bit more.
Two new categories were made: station_objects and effects. station_objects, which I'm sure someone will want renamed to 'structures' contains the objects which don't need process() or power code.

Effects contains objects which are either landmarks, triggers, spawners or decal.

Screenshot:
http://www.kamletos.si/new%20object%20tree.PNG

I didn't notice any bugs, but with a revision editing 276 files of byond code, you never know.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2323 316c924e-a436-60f5-8080-3fe189b3f50e
2011-10-03 06:54:28 +00:00
mport2004@gmail.com
a72e6d6a84 Projectiles cleaned up a bit and moved into a /modules folder.
Solars should work a bit better now.
Removed the old shield item as it has not been used in forever and was cluttering up some of the mob code.
IonRifle only has 5 shots before it needs to be reloaded down from 10.
Lowered the weakbullet's stun to match the taser.
You can no longer recall the shuttle on meteor.
Fixed a bug I caused on rev where if the revs were in space and dead it would count them as living.
Bit of blob work.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2220 316c924e-a436-60f5-8080-3fe189b3f50e
2011-09-18 07:27:05 +00:00
mport2004@gmail.com
c526717fbf Cleaned up:
Flashlights
Cigs/lighters
Solars

RCDs can no longer build airlocks on doors
Airlocks  now smash glass that is under them when they close
AI sat firewall that is not really quite a firewall removed
The solars will no longer update if they lack a controler
Cut down on machines that don't actually do anything like fake sleepers and shuttle engines
There is still a few shuttle engines around and I have no idea where, my map was already corrupted once by this so I am just leaving the define in for now.

After a talk with some of the head coders
Cyborgs can no longer be traitors at round start
Some of the off Z1 areas cleaned up


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2028 316c924e-a436-60f5-8080-3fe189b3f50e
2011-08-20 04:30:37 +00:00
baloh.matevz
a7290faeae Completely reverted r1897 due to loss of interest in updating solars. Better to have the old set back than a half-finished set after all. (Only kept the space suit select equipment thing.)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1901 316c924e-a436-60f5-8080-3fe189b3f50e
2011-07-21 17:10:01 +00:00
baloh.matevz
809ba1710d Solars fix. Needs the powernet fix to actually work properly.
- Solars now bring out a fixed value. 700W each, meaning 60 of them (one array) generates 42000W. Not enough to power the station? That's the point. Although 4 x 42000W = 168000. This might be nerfed soon.
- Sun removed. Seriously, that thing ate up processor time and was completely useless.
- Solar tracker remains on the map but is completely useless. Will remove.
- Also reverted the cable updates from r1729. The code from prior to that revision might be as laggy as it was, but it works properly. After the revision powernets didn't calculate available power properly and did not update properly when new pieces were made (They stopped updating at the first wire piece which ended in a knot (non-smooth cable piece))

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1897 316c924e-a436-60f5-8080-3fe189b3f50e
2011-07-21 02:58:03 +00:00
rastaf.zero@gmail.com
338c826d1c - invented new machine for botanists: Biogenerator. Biogenerator converts unneeded biomass to useful substances like milk. Avaylable only trough admin powers at the moment.
- added roller bed (for medics). Place human, buckle him to this bed, the bed raises and can be pulled.

- eggs and tomatoes can be smashed of wall, floor [s]or captain's face[/s] not yes.

Code by Balagi, sprites by Farart.

-some fixes for the crew monitoring computer. It can be disassembled now.
-added crew monitoring circuit board. Requires programming  3, biotech 2, magnets 2.
-Mech Bay Power Control Console и Solar Control can be disassembled now.
-added crew Mech Bay Power Control Console circuit. Requirements are programming=2, powerstorage=3.
-Solar Control circuit boardcan be researched. Requirements are programming=2, powerstorage=2.
-R&D Console can be researched and created (requires programming 6). But R&D Console cannot be deconstructed for tech points. That's intended.
Code by Jack Rost.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1880 316c924e-a436-60f5-8080-3fe189b3f50e
2011-07-18 03:48:37 +00:00
vageyenaman@gmail.com
aafab0fbb2 This is a fix for solar.dm, which should in theory make them a lot more operable. Thanks to Derp for spotting the problem; more information here: http://tgstation13.pretentiousfool.com/phpBB3/viewtopic.php?f=7&t=5372
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1858 316c924e-a436-60f5-8080-3fe189b3f50e
2011-07-15 18:09:03 +00:00
mport2004@gmail.com
cd79ae951d Updated:
Singularity Engine
-Recoded some parts, still works mostly the same
Welders
-Recoded, it works mostly the same but is easier to use in code
-Cyborgs have a larger fuel tank
-Brought most if not all of the areas that use welders upto spec
Moved the changeling chem recharge code into the human life proc
New players who log out before spawning in are now deleted
New minor Common event
Machines around the station use more power, system might need some changes later
Likely few other minor changes that I just cant think of atm

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@945 316c924e-a436-60f5-8080-3fe189b3f50e
2011-02-03 08:15:17 +00:00
n3ophyt3@gmail.com
029c7922d7 Added a new random event: The immovable rod! It spawns somewhere outside the station, then proceeds to plow through the station in a straight line to a spot on the other side.
As a side effect, I had to add some ex_act() procs to things because the rods kept getting stuck on them.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@941 316c924e-a436-60f5-8080-3fe189b3f50e
2011-02-02 19:41:08 +00:00
uporotiy
2d21a52a42 Blob upgrade and reskin. Apparently it's nigh invincible, but playtesting will sort out if it's too much powerful.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@233 316c924e-a436-60f5-8080-3fe189b3f50e
2010-09-30 20:28:45 +00:00
n3ophyt3@gmail.com
26bc2276f4 Fixed a bunch of the runtime errors cropping up in the server logs.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@175 316c924e-a436-60f5-8080-3fe189b3f50e
2010-09-26 01:55:42 +00:00