Commit Graph

23 Commits

Author SHA1 Message Date
Jolly 9b401a87be [MDB IGNORE] UpdatePaths to convert directional pane windows to their proper subtypes, also creates the /south spawner for consistency (#74517)
## About The Pull Request
Title.

## Why It's Good For The Game
1. This nukes a lot of silly var edits, and cleans up maps
2. The south spawner *isn't* really needed, but having it is nice for
consistency and clarity
3. Sometime ago I forget which map but one of them had var edited
directional subtypes and that made me cry

## Changelog

🆑 Jolly
fix: Maps internally had the code for the "directional" windows altered
a bit. If you see stacked window panes or things look incorrectly,
please file a bug report as that isn't intentional!!
/🆑
2023-04-10 00:20:04 +00:00
jimmyl 9bb9e356b1 Makes all CTF windows actually indestructible (#74021)
## About The Pull Request

Adds a spawner for indestructible shuttle windows
Replaces all "hardened windows" (which were actually not unbreakable)
with proper unbreakable windows

## Why It's Good For The Game

Fixes #73297, people shouldn't be breaking into space in CTF

## Changelog
🆑
fix: All CTF windows are now indestructible, fixes breaking into space
during CTF.
/🆑
2023-03-16 17:35:50 -06:00
Fikou 852b973f6d fixes hollow survival pod window spawners (#72000)
## About The Pull Request
they used fulltile survival pods so it just spawned 4 full windows in
one place

## Why It's Good For The Game
i use them on my map and it upsets me

## Changelog
🆑
fix: fixes hollow survival pod window spawners
/🆑
2022-12-16 09:57:29 -05:00
LemonInTheDark 85b2d5043d Optimizes qdel related things (slight init time savings) (#70729)
* Moves spawners and decals to a different init/delete scheme

Rather then fully creating and then immediately deleting these things,
we instead do the bare minimum.

This is faster, if in theory more fragile. We should be safe since any
errors should be caught in compile since this is very close to a
"static" action. It does mean these atoms cannot use signals, etc.

* Potentially saves init time, mostly cleans up a silly pattern

We use sleeps and INVOKE_ASYNC to ensure that handing back turfs doesn't
block a space reservation, but this by nature consumes up to the
threshold and a bit more of whatever working block we were in.

This is silly. Should just be a subsystem, so I made it one, with
support for awaiting its finish if you want to

* Optimizes garbage/proc/Queue slightly

Queue takes about 1.6 seconds to process 26k items right now.
The MASSIVE majority of this time is spent on using \ref
This is because \ref returns a string, and that string requires being
inserted into the global cache of strings we store

What I'm doing is caching the result of ANY \ref on the datum it's
applied to. This ensures previous uses will never decay from the string
tree.

This saves about 0.2 seconds of init
2022-10-30 00:09:15 -07:00
Mothblocks 943c04bae5 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.
2022-09-01 10:26:06 +01:00
ShizCalev d82b6e23d6 adds structure spawners for electrified grilles, adds greps for some fulltile window spawners (#69528)
* adds structure spawner for electrified grilles

* sdmm key cleanup
2022-09-01 02:48:15 +02:00
BluBerry016 0a58630cc7 Kilo Chapel Fixes (And Tweaks) (#65511) 2022-03-20 09:22:41 -07:00
Mooshimi 496a7685dc [MDB Ignore] Make shuttle windows deconstructable (#61694)
* shuttle windows

* refactor reinf windows

plasma and shuttle only

* messed up one change

* i am actually blind

* made and did file
2021-09-28 20:45:38 +01:00
tralezab 6c01cc2c01 every case of initialize that should have mapload, does (#61623)
## About The Pull Request

stop forgetting to include mapload, if you don't include it then every single subtype past it by default doesn't include it

for example, `obj/item` didn't include mapload so every single item by default didn't fill in mapload

![](https://media.discordapp.net/attachments/823293417186000909/875122648605147146/image0.gif)

## Regex used:

procs without args, not even regex

`/Initialize()`

procs with args
`\/Initialize\((?!mapload)((.)*\w)?`

cleanup of things i didn't want to mapload:
`\/datum\/(.)*\/Initialize\(mapload`
2021-09-24 17:56:50 -04:00
Mothblocks 0b016ef2ce RCD now rebuilds existing constructs faster and with less resources (#58029)
* RCD now rebuilds faster

* Reconstructing now costs less

* Fix _

* Remove unused flag, use helper proc

* Add sound

* Remove previously useless, now inaccurate comment

* Add MIN_COMPILER_VERSION warning
2021-04-04 16:29:29 +02:00
EgorDinamit bf8d0fca9b Fixes fulltile pod window spawner (#56033) 2021-01-09 13:43:32 -03:00
ZeWaka 9629feed35 Converts A && A.B into A?.B (#54342)
Implements the ?. operator, replacing code like A && A.B with A?.B

BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.
2020-10-13 16:43:53 -03:00
Firecage b18e8ba52b Makes Plastitanium Windows deconstructable and children of Reinforced Windows. (#46679)
* Makes plastitanium windows children of reinforced windows.

* Unanchored variety isn't fully tooled in now.

* Path moved to plasma/reinforced/plastitanium

* Fixes a blunder about neglecting a mapping path change.
2019-09-25 18:25:48 -07:00
ShizCalev d77eb3df50 Adds new window spawners 2018-04-18 13:50:59 -05:00
Denton 50be282659 20 hours in notepad 2018-04-11 14:01:43 +02:00
Denton 1be4ecb804 fixes shuttle/hollow r-plasma window names 2018-04-05 13:27:54 +02:00
ShizCalev 395c0ee6a0 Cleans up some qdel(src)'s in Initialize() 2017-11-26 20:15:12 -06:00
ShizCalev 301528bc6e Window spawner refactor (#30747) 2017-09-16 17:34:01 -04:00
ShizCalev 922422a159 Window Spawners mk2 (#29792) 2017-08-10 08:17:30 -03:00
ShizCalev b3a2721590 Window Spawners (#29634) 2017-08-02 10:11:07 -04:00
Cyberboss 0f71ac6190 Fixes window spawners qdeling in New() (#25357) 2017-03-22 16:11:40 -03:00
francinum fbfb80a0e2 I after E
When you're spelling something not 1 line away.
2015-10-09 00:25:20 -04:00
KyrahAbattoir d6c0ebdc1b Mapping tool: adds a "structure" spawner that can be used to create "sets" of objects in a turf at runtime rather than having to stack objects in the map editor. Included are two presets for window and rwindow with a "wiring friendly" icon. 2015-06-05 11:39:23 +02:00