Commit Graph

346 Commits

Author SHA1 Message Date
Zonespace
f7c26bbf25 515 Compat (#17465)
* ONLY SKYRAT CHANGES

* ACTUALLY SKYRAT CHANGES

* yolo, revert later

* Update alternate_byond_versions.txt

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
2022-11-15 06:59:06 +00:00
SkyratBot
35238c9139 [MIRROR] Glass inconsistency fixes [MDB IGNORE] (#17350)
* Glass inconsistency fixes (#70961)

## About The Pull Request
Some glass types strangely had no radiation blocking abilities like
normal plasma glass, which doesn't make any sense, though reinforced
glass was able to block almost all. This also fixes fulltile plasma
glass to have twice as much integrity as the normal amount, like with
all the other glass types.
## Why It's Good For The Game
Inconsistency fixes
## Changelog
🆑
fix: Fixes radiation blocking properties of glass types.
/🆑

* Glass inconsistency fixes

Co-authored-by: Comxy <tijntensen@gmail.com>
2022-11-04 11:03:35 -07:00
SkyratBot
3bf620006b [MIRROR] Moves cleaning to an atom proc to afterattack signal [MDB IGNORE] (#16813)
* Moves cleaning to an atom proc to afterattack signal

* Fixing conflict!

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2022-10-12 14:49:04 -04:00
SkyratBot
28ec8d73b1 [MIRROR] fixes a typo during window construction [MDB IGNORE] (#16407)
* fixes a typo during window construction (#70087)

replaces 'from the floor' to 'to the floor' since you're building the window, not deconstructing it.

* fixes a typo during window construction

Co-authored-by: coldud13 <coldud13@users.noreply.github.com>
2022-09-24 22:21:19 +01:00
SkyratBot
8f697c2a9e [MIRROR] Planks create barricades on doors/windows and can be crowbarred [MDB IGNORE] (#16241)
* Planks create barricades on doors/windows and can be crowbarred (#69676)

* Wooden planks can be used on doors/windows to barricade it, using a can_barricade Element.

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>

* Planks create barricades on doors/windows and can be crowbarred

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
2022-09-23 22:15:11 +01:00
SkyratBot
29e29b6375 [MIRROR] Save 2.2s minimum (with zero ruins, likely a good bit more in production) of atom init time [MDB IGNORE] (#15967)
* Save 2.2s minimum (with zero ruins, likely a good bit more in production) of atom init time (#69564)

Pre-sort smoothing_groups and canSmoothWith
Without any ruins, these sorts were taking more than 0.6s, and the bulk of the runtime cost of sortTim during init time.

This only happens on init and they are never changed apart from that, so pre-sorts everything and adds a unit test (in the form of #ifdef UNIT_TESTS, because you can't initial a list) to ensure that they are proper.

Keep visibilityChanged() to mapload only for turf/Initialize
Saves about 0.4s worst case scenario (e.g. with no ruins). Very expensive code (175k loop iterations) for 0 side effects.

Space areas now have the fullbright overlay, not the space turfs
Saves about 0.8s worst case scenario. Seems to work fine with starlight.

Remove is_station_level check for window spawners assigning RCD memory.
Saves about 0.3s worst case scenario. The logic for this isn't consistent since neither walls nor floors check this (for performance), plus some minor micro-opts to spawners.

Optimize is_station_level
Doubles in speed, used heavily in /turf/open/floor and in other initialization procs. Bit hard to tell exactly how much is saved, though.

* Save 2.2s minimum (with zero ruins, likely a good bit more in production) of atom init time

* Hopefully fixes the broken CI

* Okay now it shouldn't be failing CI anymore (hopefully)

* Fixes even more issues with smoothing_groups, this time hopefully for good

* Okay NOW it's going to pass CI, surely...

* Okay haha what if it passes this time? :)

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-09-15 19:57:33 -04:00
SkyratBot
5efeef1c03 [MIRROR] Buff regular windows more and place them on Metastation [MDB IGNORE] (#15934)
* Buff regular windows more and place them on Metastation  (#69246)

The feedback on the previous version of this PR made me realize that the windows weren't buffed enough to be seen as actual companions to regular walls. This PR buffs the windows to the level that the old reinforced windows were. They have 50 melee armor, take 14 hits to destroy and deconstruction consists of screwdriver -> crowbar -> screwdriver

This pull request changes all reinforced windows in low security areas on Metasation with regular windows.

Areas with normal walls that still have reinforced windows:
Arrivals
Departures
Security stations

Because the regular windows are buffed so much in this PR they are arguably stronger than the regular walls (its easier to smash the windows, but the walls take less tool time) so I don't really see any reason to not place this on almost every place with regular walls

* Buff regular windows more and place them on Metastation

Co-authored-by: Vincent <CPTANT@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2022-09-01 10:18:54 -04:00
SkyratBot
a64db8fe1c [MIRROR] Buffs regular windows so they can start replacing reinfoced windows in low security areas [MDB IGNORE] (#15290)
* Buffs regular windows so they can start replacing reinfoced windows in low security areas (#68817)

Buffs windows to 100 health with 30 melee armor so toolbox takes 10 hits

* Buffs regular windows so they can start replacing reinfoced windows in low security areas

Co-authored-by: Vincent <CPTANT@users.noreply.github.com>
2022-07-30 08:13:12 -07:00
SkyratBot
f02a42b1e8 [MIRROR] reinforced windows no longer runtime when heated up by non welding tools that can weld [MDB IGNORE] (#14027)
* reinforced windows no longer runtime when heated up by non welding tools that can weld (#67416)

About The Pull Request

            if(tool.tool_behaviour == TOOL_WELDER)
                var/obj/item/weldingtool/welder = tool
                if(welder.isOn())

cmon bro
Changelog

cl
fix: reinforced windows can be heated up by things that can weld but arent welding tools
/cl

* reinforced windows no longer runtime when heated up by non welding tools that can weld

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2022-06-01 07:14:12 +01:00
SkyratBot
26271d8f69 [MIRROR] Fixes foam spreading through public airlocks and windoors [MDB IGNORE] (#13935)
* Fixes foam spreading through public airlocks and windoors (#67101)

* Fixes foam spreading through public airlocks and windoors

* nova

* Fixes foam spreading through public airlocks and windoors

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2022-05-27 12:45:26 +01:00
SkyratBot
effc8fb75e [MIRROR] Titanium and plastitanium shards and weapons + missing textures. [MDB IGNORE] (#13457)
* Titanium and plastitanium shards and weapons + missing textures.

* ew

Co-authored-by: Comxy <tijntensen@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-05-09 01:30:21 +01:00
SkyratBot
c1a1683db6 [MIRROR] removes permeability, rolling it into bio armor [MDB IGNORE] (#13435)
* removes permeability, rolling it into bio armor

* e

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-05-09 01:16:27 +01:00
SkyratBot
04acd22860 [MIRROR] Fixes titanium glass shuttle windows not being anchorable when crafted [MDB IGNORE] (#13066)
* Fixes them (#66391)

* Fixes titanium glass shuttle windows not being anchorable when crafted

Co-authored-by: Bond <58570888+TheBonded@users.noreply.github.com>
2022-04-24 19:38:40 +01:00
SkyratBot
17e4f6ad76 [MIRROR] Converts SFX keys into DEFINES [MDB IGNORE] (#11990)
* Converts SFX keys into DEFINES

* fixes and updates

Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
2022-03-11 16:43:39 -07:00
SkyratBot
80d6870000 [MIRROR] Tool act superpack 2 [MDB IGNORE] (#11947)
* Tool act superpack 2 (#64428)

About The Pull Request

Continuation of #64375, extracting tool behavior from attackby() and moving it into discrete _act procs. This is about as many files as I had in the last version, as I still want this to be reviewable.

As before, I've tested everything in game and it works as it previously did.
Why It's Good For The Game

The more code moved out of attackby, the more modular things become.
Changelog

cl
refactor: Moves more tool behavior out of attackby().
/cl

* Tool act superpack 2

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
2022-03-07 22:11:04 -07:00
SkyratBot
02d97ef416 [MIRROR] Change hydroponics tray and chem dispenser AltClick behavior to be used by RMB [MDB IGNORE] (#11700)
* Change hydroponics tray and chem dispenser AltClick behavior to be used by RMB  (#64939)

* Change hydroponics tray and chem dispenser AltClick behavior to be used by RMB

Co-authored-by: Tim <timothymtorres@gmail.com>
2022-02-24 06:50:41 -05:00
SkyratBot
d682fbfbc8 [MIRROR] Rotation component refactor and improvements [MDB IGNORE] (#11304)
* Rotation component refactor and improvements

* Update code/modules/power/singularity/emitter.dm

* e

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-02-08 01:38:20 +00:00
SkyratBot
b11b087a7e [MIRROR] Ports flying bloodsplatters from Hippie for Wounds [MDB IGNORE] (#10713)
* Ports flying bloodsplatters from Hippie for Wounds

* Feex

* Okay now linter, shut up

* Forgot two :(

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2022-01-16 20:56:00 +00:00
SkyratBot
58f82b5161 [MIRROR] [Ready] MODsuits [MDB IGNORE] (#10244)
* [Ready] MODsuits

* we dont need to add these people as codeowners, goodness gracious

* have to remove this because upstream

* part 1 of these fixes

* EEEE

* Update peacekeeper_clothing.dm

* E

* E

* Auto stash before merge of "upstream-merge-59109" and "origin/upstream-merge-59109"

* E

* Update expeditionary_trooper.dm

* more removal

* nice

* modsuti modstui modusuti

* fixes

* E

* ITS MODsuit not HARDSUIT

* more hardsuit references

* MODSUIT NOT HARSUITEDSA

* Maps

* More ,map

* oop

* e

* oo aa

* 0

* ting tang

* Update modsuit_tailsprites.dm

* hi fikou

* bs tech update

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2021-12-25 13:32:49 +00:00
SkyratBot
d51d6c0de3 [MIRROR] Fixes up multiz atmos connection, cleans some things up in general [MDB IGNORE] (#10061)
* Fixes up multiz atmos connection, cleans some things up in general (#63270)

About The Pull Request

ALLLRIGHT so
Multiz atmos was letting gas flow down into things that should be well, not flowable into
Like say doors, or windows.

This is weird.

Let's get into some context on why yeah?

First, how do things work currently?

atoms have a can_atmos_pass var defined on them. This points to a define that describes how they interact with
flow.
ATMOS_PASS_NO means well, if we're asked, block any attempts at flow. This is what walls use.
ATMOS_PASS_YES means the inverse
ATMOS_PASS_DENSITY means check our current density
ATMOS_PASS_PROC means call can_atmos_pass, we need some more details about this attempt

These are effectively optimizations.

That var, can_atmos_pass is accessed by CANATMOSPASS() the macro
It's used for 3 things.

1: Can this turf share at all?
2: Can this turf share with another turf
3: Does this atom block a share to another turf

All of this logic is bundled together to weed out the weak.

Anyway, so when we added multiz atmos, we effectively made a second version of this system, but for vertical
checks.

Issue here, we don't actually need to.
The only time we care if a check is vertical or not is if we're talking to another turf, it's not like you'll
have an object that only wants to block vertical atmos.
And even if you did, that's what ATMOS_PASS_PROC is for.

As it stands we need to either ignore any object behavior, or just duplicate can_atmos_pass but again.
Silly.

So I've merged the two, and added an arg to mark if this is a verical attempt.
This'll fix things that really should block up/down but don't, like windows and doors and such.

Past that, I've cleaned can_atmos_pass up a bit so it's easier for people to understand in future.
Oh and I removed the second CANATMOSPASS from immediate_calculate_adjacent_turfs.
It isn't a huge optimization, and it's just not functional.

It ties into zAirOut and zAirIn, both of which expect to be called with a valid direction.
So if say, you open a door that's currently blocking space from leaking in from above, you end up with the door
just not asking the space above if it wants to share, since the door can't zAirOut with itself.

Let's just wipe it out.

This makes the other code much cleaner too, heals the soul.

Anyway yadeyada old as ass bug, peace is restored to the kingdom, none noticed this somehow you'd think people
would notice window plasma, etc etc.
Why It's Good For The Game

MUH SIMULATION
Also fuck window gas
Changelog

cl
fix: Fixed gas flowing into windows from above, I am.... so tired
fix: Fixes gas sometimes not moving up from below after a structure change, see above
/cl

* Fixes up multiz atmos connection, cleans some things up in general

* Update large_doors.dm

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-12-17 01:36:33 +00:00
SkyratBot
53cbe26e89 [MIRROR] Increases volume of the sound effect for knocking on firelocks [MDB IGNORE] (#9981)
* Increases volume of the sound effect for knocking on firelocks

* E

* Update inflatable.dm

Co-authored-by: BlueMemesauce <47338680+BlueMemesauce@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-12-13 11:39:28 +00:00
SkyratBot
e90627be0e [MIRROR] Modernizing Radiation -- TL;DR: Radiation is now a status effect healed by tox healing, and contamination is removed [MDB IGNORE] (#9176)
* Modernizing Radiation -- TL;DR: Radiation is now a status effect healed by tox healing, and contamination is removed

* Fixing conflicts

* Makes it compile, yeet all the RAD armor from everywhere (thanks RegEx!)

* Removing more lingering rad armor (woo)

* Damnit powerarmors

* Bye bye rad collectors!

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2021-11-02 10:36:46 -04:00
SkyratBot
404a603dc2 [MIRROR] runtime fix for borgs cryoing with upgrade modules + no more mmi laying around after they cryo, and various other runtime fixes [MDB IGNORE] (#8975)
* runtime fix for borgs cryoing with upgrade modules + no more mmi laying around after they cryo, and various other runtime fixes

* Fixing conflicts

Co-authored-by: Seris02 <49109742+Seris02@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2021-10-23 00:25:25 +01:00
SkyratBot
230a34588f [MIRROR] modules/atmospherics major cleanup [MDB IGNORE] (#8818)
* modules/atmospherics major cleanup

* E

* E

* 0

Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-10-14 22:44:30 +01:00
Gandalf
0b8421f298 Collars the singularity (#8509)
* Collars the singularity

* Update singularity.dm

* Update singularity.dm
2021-09-30 19:54:11 -04:00
SkyratBot
13fe213621 [MIRROR] [MDB Ignore] Make shuttle windows deconstructable [MDB IGNORE] (#8463)
* [MDB Ignore] Make shuttle windows deconstructable

* E

* re

Co-authored-by: Mooshimi <85910816+Mooshimi@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-10-01 00:21:36 +01:00
SkyratBot
93583cde8c [MIRROR] Fix connect loc not respecting phasing in some cases when it should [MDB IGNORE] (#8451)
* Fix connect loc not respecting phasing in some cases when it should (#61698)

* Fix connect loc not respecting phasing in some cases when it should

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
2021-09-28 16:02:14 +01:00
SkyratBot
c23bd1cb8c [MIRROR] every case of initialize that should have mapload, does (#8374)
* every case of initialize that should have mapload, does

* E

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-09-24 23:07:53 +01:00
SkyratBot
04302a770a [MIRROR] moves obj_integrity and associated procs to the atom level (#8016)
* moves obj_integrity and associated procs to the atom level

* Feex good

* Whoops forgot the maps

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-09-10 16:47:01 +01:00
SkyratBot
e7f0aeea72 [MIRROR] Fixes window opacity when repainting bug (#8083)
* Fixes window opacity when repainting bug (#61268)

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Fixes window opacity when repainting bug

Co-authored-by: ArcaneDefence <51932756+ArcaneDefence@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2021-09-10 07:44:09 -04:00
SkyratBot
146469e37e [MIRROR] Fixes some unnecessary attack chain cancels (#7910)
* Fixes some unnecessary attack chain cancels (#61038)

Replaced attack chain cancels on some objects with parent calls

* Fixes some unnecessary attack chain cancels

Co-authored-by: GoblinBackwards <kinggreenyoshi@gmail.com>
2021-09-01 16:50:47 +01:00
SkyratBot
1211d28c90 [MIRROR] Fixes blockers blocking themselves + cleanup (#6528)
* Fixes blockers blocking themselves + cleanup (#59808)

* Fixes blockers blocking themselves + cleanup

Co-authored-by: Rohesie <rohesie@gmail.com>
2021-06-25 22:34:02 +01:00
SkyratBot
a14b1dadb5 [MIRROR] CanPass refactor (#6527)
* CanPass refactor (#59804)

* CanPass refactor

Co-authored-by: Rohesie <rohesie@gmail.com>
2021-06-25 22:33:51 +01:00
SkyratBot
5326760cb3 [MIRROR] Makes turfs persist their signals, uses this to optimize connect_loc (#6465)
* Makes turfs persist their signals, uses this to optimize connect_loc  (#59608)

* Makes turfs persist signals

* Splits connect_loc up into two elements, one for stuff that wishes to connect on behalf of something, and one for stuff that just wants to connect normally. Connecting on behalf of someone has a significant amount of overhead, so let's do this to keep things clear

* Converts all uses of connect_loc over to the new patterns

* Adds some comments, actually makes turfs persist signals

* There's no need to detach connect loc anymore, since all it does is unregister signals. Unregisters a signal from formorly decal'd turfs, and makes the changeturf signal persistance stuff actually work

* bro fuck documentation

* Changes from a var to a proc, prevents admemems and idiots

* Extra detail on why we do the copy post qdel

* Makes turfs persist their signals, uses this to optimize connect_loc

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-06-23 04:23:48 +01:00
SkyratBot
d85a02babd [MIRROR] Refactors move procs to support multitle objects (#6423)
* Refactors move procs to support multitle objects

* Update _blob.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-06-22 22:40:04 +01:00
Useroth
873144d8ef Adds a setter for density (#59529) (#6437)
Adds set_density()
Fixes one instance of a duplicate density assignment on an object.
Comments two hacky usages of density which will have to forgo using the setter for now.

Lets us append code to the event of density changing.
Pretty sure this is leading up to some multitile object thing -Lemon

Co-authored-by: Rohesie <rohesie@gmail.com>
2021-06-22 01:24:59 +01:00
SkyratBot
7d1d0e1fad [MIRROR] Refactors most spans into span procs (#6315)
* Refactors most spans into span procs

* AA

* a

* AAAAAAAAAAAAAAAAAAAAAA

* Update species.dm

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-06-16 00:24:49 +01:00
SkyratBot
f8042b6306 [MIRROR] Adds Neon Carpet (#6302)
* Adds Neon Carpet (#59140)

Adds a couple varieties of neon carpet.
Makes decals care about their plane in addition to their layer.

* 0

* A

* a

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-06-15 18:12:49 +01:00
SkyratBot
c15ed4eca0 [MIRROR] fixes poopy bronze tiles sstuff (#5237)
* fixes stuff made with bronze sheets deconstructing into tiles or not being able to make bronze golems (#58708)

* fixes poopy bronze tiles sstuff

Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-05-02 00:07:16 +01:00
SkyratBot
7f083e7cb6 [MIRROR] Converts the atmos senstive component over to connect_loc (#5376)
* Converts the atmos senstive component over to connect_loc (#58266)

* Makes all uses of atmos_senstive pass in mapload as context

* Converts atmos senstive to connect_loc, does some general cleanup to the element, and makes it check the state of the tile the thing is on assuming creation didn't happen as a part of map loading

* Updates connect loc to match the new arg list

* Converts the atmos senstive component over to connect_loc

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-05-01 09:44:09 +01:00
SkyratBot
b826379ef8 [MIRROR] Changes reinforced window deconstruction to right click (#5114)
* Changes reinforced window deconstruction to right click

* Update weldingtool.dm

Co-authored-by: dragomagol <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-04-23 22:14:08 +01:00
SkyratBot
336c6524c8 [MIRROR] Fixes painted directional window opacity bug (#5082)
* Prevents jank directional window opacity bugs (#58577)

* Fixes painted directional window opacity bug

Co-authored-by: ArcaneDefence <51932756+ArcaneDefence@users.noreply.github.com>
2021-04-22 05:09:39 +01:00
SkyratBot
f5478b7dce [MIRROR] Allows the connect_loc element to have a listener different from the tracked object (#4818)
* Allows the connect_loc element to have a listener different from the tracked object (#58276)

* Allows the connect_loc element to have a listener different from the tracked object

Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
2021-04-11 03:51:14 +01:00
SkyratBot
37a04ef096 [MIRROR] Remove Uncross() and CheckExit(), add connect_loc element to cover the cases we used it for (#4756)
* Remove Uncross() and CheckExit(), add connect_loc element to cover the cases we used it for (#58188)

* Remove Uncross(), add create_loc element

* Update on ChangeTurf

* Explicit return

* Hold onto elements and remove TEST_FOCUS

* Remove UNIT_TESTS compile flag

* Follow my own advice.

* Comment about Uncross + CRASH

* Remove /atom/Exit ..()

* Apply suggestions from code review

Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>

* Use keyed locs

* Re-add Bump()

* Superfluous check

* Correct change turf signal, remove old continue check

* Fix compile failure

* Fix tests

* Don't create element for fulltile windows

* Correctly unregister old location

Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>

* Fixed (?)

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2021-04-11 02:34:12 +02:00
SkyratBot
adea9a6449 [MIRROR] Implements JPS (Jump Point Search) Pathfinding (#3581)
* Implements JPS (Jump Point Search) Pathfinding (#56780)

So a month or so ago I wanted to make it so dogs in my dog AI PR could path through doors if they had access, and was told I'd need to improve our pathfinding efficiency if I wanted to use full pathfinding for them. Thus, enter JPS, a pathfinding algorithm that allows for massive timesavings in systems with uniform cost grids like ours. This code is still fairly rough and needs polishing, but it's fully functional and already shows massive savings over traditional A*! I plan for this to replace A* as our default pathing method, but I'll leave the A* code in place in case someone ever needs it for whatever reason, like if a specific case needs variable cost pathing.

Note that this allows for diagonal pathing instead of the cardinal pathing our A* uses right now, and the current version of the code costs the same to move diagonally as it does to move laterally, which may change later. There's also a lot of dummy/test code in right now in general, but you should still be able to test it out for yourself by spawning a bot like a medibot and using your PDA to summon it.
Preliminary Profile Results

A preliminary profile is available here. Using one medibot by itself on Metastation, I generated a list of 500 random blob spawn points around the station, gave the medibot all access, then let each algorithm tackle the list. The old A* algorithm took a total of 86 seconds to complete the list and processed 978065 nodes, while JPS took a total of 46 seconds and processed only 100062 nodes, for a 47% decrease in total time and an almost 90% decrease in nodes processed!
Why It's Good For The Game

Significantly cheaper pathing, which will very much come in handy for the AI datums I'm looking to dig into, what's not to like?

* Implements JPS (Jump Point Search) Pathfinding

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2021-02-22 02:24:42 +00:00
SkyratBot
18eca27569 [MIRROR] update_appearance (#3508)
* update_appearance

* a

* a

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-19 16:08:09 +00:00
SkyratBot
43febe3145 [MIRROR] Converts many proc overrides to properly use list/modifiers, lots of other smaller things (#3433)
* Converts many proc overrides to properly use list/modifiers, lots of other smaller things

* Update human_defense.dm

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-17 14:18:21 +00:00
SkyratBot
b332b46b65 [MIRROR] Remove hideous inline tab indentation, and bans it in contributing guidelines (#3394)
* Remove hideous inline tab indentation, and bans it in contributing guidelines

* a

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-15 15:32:02 +00:00
SkyratBot
ff74a68ad9 [MIRROR] Windows are now less fussy and will let more things exit a shared turf. (#3281)
* Windows are now less fussy and will let more things exit a shared turf. (#56788)

I recently changed it so that windows don't use their direction to decide if they're fulltile or not. I missed a check in CheckExit and as a result, you couldn't exit a fulltile window you were stood on from the South, their default facing direction.

Fulltile windows no longer do this check to block movement off their turf. Directional windows now only block movement off the turf they're on if you're attempting to walk the direction they're facing (i.e. walking through them) and they're not dense.

Finally, windows also check pass_flags_self instead of hardcoded passflags.

* Windows are now less fussy and will let more things exit a shared turf.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-02-11 10:55:19 +00:00
SkyratBot
43c6850b31 [MIRROR] Makes reinforced plasma windows block heatspreading (#3101)
* Makes reinforced plasma windows block heatspreading, mostly so the sm delams properly, and partially so mappers have a tool for this sort of thing (#56545)

* Makes reinforced plasma windows block heatspreading

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-02-05 21:24:11 +00:00