Commit Graph

63 Commits

Author SHA1 Message Date
Eearslya
66342af864 Fix solar assembly behavior while in inventory 2016-10-10 03:03:48 -07:00
Neerti
828dacf485 Centralizes weight class definitions
A lot of new defines are now in inventory_sizes.dm, which contains;
All the size identifiers (the thing that tells the game if something is bulky, or w/e).
Storage costs for all the sizes, which are exponents of two, as previously.
A few constants for inventory size.

Also changes all storage item's capacity definitions by basing it off of how many 'normal slots' exist for it.  This allows one to change the definition for all of the defines in the file, and everything will follow along without needing to change 500 files.  In testing, I made all ITEMSIZE_COST_* defines doubled, and nothing had broke.

The benefit of doing all of this is that it makes adding new weight classes in the future much simpler, and makes knowing how much space a container has easier, as seeing ITEMSIZE_COST_NORMAL * 7 means it can hold seven normal items.
2016-09-22 00:51:51 -04:00
SinTwo
976847a0b4 Merge branch 'master' of https://github.com/PolarisSS13/Polaris into item_state
Conflicts:
	code/modules/clothing/head/jobs.dm
	icons/mob/items/lefthand.dmi
	icons/mob/items/righthand.dmi
	icons/mob/suit.dmi
	icons/mob/uniform.dmi
	icons/obj/items.dmi
2016-07-13 17:07:52 -04:00
SinTwo
7192bf08fd item_state cleanup 2016-07-11 22:31:32 -04:00
Techhead0
111310ef32 Adds the Solar Storm event.
New Random Event: Solar Storms. Similar to a radiation storm, but anywhere inside the station is safe.
Also boosts solar panel output significantly for the duration.
2016-07-10 04:15:23 +01:00
SinTwo
b356f5cf21 Construction Update 2016-03-25 16:02:36 -04:00
Neerti
4f77afece1 Revert 58ef59734f 2015-11-08 10:09:14 -05:00
PsiOmegaDelta
8b98b059a4 Merge pull request #11397 from Baystation12/dev-freeze
Dev freeze
2015-10-31 16:43:02 +01:00
PsiOmegaDelta
461023b5e7 Merge remote-tracking branch 'upstream/master' into dev-freeze
Conflicts:
	code/modules/mob/living/carbon/human/life.dm
2015-10-31 16:31:05 +01:00
Daranz
4b42f69247 Fix a problem with solar control computers not connecting to powernets on build 2015-10-28 13:35:24 -04:00
Kelenius
83adba88d4 Updates blob
Remains of player blob axed.
blob_act() axed. Blob now has an arbitary set of things it can attack.
It will flow over everything else. Blob has an awful tendency to destroy
non-craftables.
Will test more tomorrow.
Blob will now attack mechs.
Fixes #8106.
Fixes #10705.
2015-10-05 18:10:16 +03:00
PsiOmega
e875a7ce48 Merge remote-tracking branch 'upstream/dev-freeze' into dev
Conflicts:
	code/game/machinery/computer3/buildandrepair.dm
	code/game/objects/items/devices/lightreplacer.dm
	code/modules/research/circuitprinter.dm
	code/modules/research/protolathe.dm
2015-08-08 15:34:51 +02:00
mwerezak
d1bd146b1a Changes reinforced glass material name
Gives the reinforced glass material a name that is easier to verify for
correctness.
2015-08-03 23:01:34 -04:00
mwerezak
0ceb0e291d Fixes #10314
Replaces every check for a hardcoded material stack type with a check
for material of the stack.
2015-08-02 00:01:10 -04:00
PsiOmega
0a05c2659f All the span-corrected dm files. 2015-06-14 22:08:14 +02:00
Atlantis
2f74a6d3c2 Telecommunications Solar Arrays
- Makes telecommunications solars actually work. They are connected into ring-shaped cable running around whole telecomms, powering single SMES unit which in turn powers the satellite itself.
- Installed solars have maximal combined output of 240kW. Real output fluctuates between 120kW and 160kW depending on star orientation.
- Fractal generator and relevant breaker removed. RCON control is still possible, by adjusting SMES settings.
2015-05-25 06:18:10 +02:00
Zuhayr
358867f3b5 Major sheet and material refactor. 2015-05-17 01:46:53 +09:30
Zuhayr
8aa24b86bb Renamed shards, katanas, claymores. 2015-05-16 20:36:33 +09:30
PsiOmega
fcfdcecd3a initialize() should now always be called, be it on game starting up or object being created after game start.
Partially fixes #9036.
2015-04-30 19:28:35 +02:00
PsiOmega
1ae0ad6d92 Updates the atom_pool, now datum_pool, to handle any datum object.
Makes the garbage collector similarly robust. Continues the whole Destroy/qdel porting.
2015-04-24 09:59:05 +02:00
Zuhayr
29a3d34ff0 Fixes (at least some) of the recursive power-drain crash issues. 2014-12-14 14:44:53 +10:30
Mloc-Argent
117ca6a135 refactor 'dir = ' into 'set_dir()'
This should have little/no gameplay effect right now, just paving the
 way for directional lights.
Replaced handle_rotation() on buckly things with this.

Signed-off-by: Mloc-Argent <colmohici@gmail.com>
2014-12-01 13:44:02 +00:00
PsiOmega
c45f77f247 Merge remote-tracking branch 'upstream/dev' into APC 2014-11-19 14:40:18 +01:00
Zuhayr
cec617a414 Merge resolution, compile fixes with outdated glass paths/map. 2014-11-19 23:17:25 +10:30
PsiOmega
60a730b5d6 Automatic solar tracking again functional. 2014-11-14 08:12:39 +01:00
mwerezak
ab2b4608e0 Fixes #6702 and cleanup
Makes reinforced glass a subtype of glass, cleans up window creation copypasta.
Cleaned up window initialization leaking outside of the window constructor.
Removes unnecessary init_dir var from windows.
2014-11-12 20:09:04 -05:00
PsiOmega
8e3861141c Merge branch 'dev' into PowerTwo
Conflicts:
	code/modules/power/solar.dm
2014-10-24 13:32:36 +02:00
Graham Lloyd
c764a94073 fixes some annoying punctuation errors. 2014-10-22 15:58:27 -04:00
PsiOmega
f190acf7c5 /tg/'s solar code with a fix for the solar control computer not refreshing on user input. 2014-10-13 17:37:18 +02:00
PsiOmega
a1ee4e766b Basically ripped over /tg/'s powernet and cable code into our own codebase.
Keeps Z-level code as it was.
Modifies/restores powernet procs as necessary to match our own implementation changes.
2014-10-13 17:13:04 +02:00
Kelenius
505f857eb8 Stack update 2014-09-02 09:59:32 +04:00
mwerezak
e1dc7d436b Fixes icons and other things not updating when the master controller updates power status.
This was due to the master controller using update_powered_status()
instead of power_change(), but many machines override power_change() to
do various things when the machine gains or loses power.
2014-08-10 03:45:20 -04:00
Ravensdale
a3e4a43536 Changes most viable, used entries of plasma with phoron. 2014-04-10 05:05:04 -07:00
Ccomp5950
bb9a66cc3a 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.
2014-03-08 03:42:44 -06: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