Commit Graph

81 Commits

Author SHA1 Message Date
SmArtKar
faf3eb5106 Adds OD's new pragma to lints, fixes all issues it found (#86568)
## About The Pull Request

Closes #86567
Don't think any of these were found/reported or actually could trigger
in-game

## Why It's Good For The Game
Glory to OpenDream

## Changelog
🆑
code: Fixed multiple minor logic issues with code found by OpenDream's
new pragma
/🆑
2024-09-10 10:33:26 +12:00
Y0SH1M4S73R
d1ccb530b2 Replaces Auxlua with the byondapi-based Dreamluau (#84810)
## About The Pull Request

Ever since byondapi went stable, I've been meaning to create a
replacement lua library that uses it instead of the auxtools-based
auxlua. After so many months, I've finally got the code just about into
a position where it's ready for a PR.

[Click here](https://hackmd.io/@aloZJicNQrmfYgykhfFwAQ/BySAS18u0) for a
guide to rewriting auxlua scripts for dreamluau syntax.

## Why It's Good For The Game

Code that runs on production servers should not depend on memory hacks
that are liable to break any time Dream Daemon updates.

## Changelog

🆑
admin: Admin lua scripting uses a new library that (probably) will not
break when BYOND updates.
/🆑

## TODO:
- [x] Convert the lua editor ui to TS
- [x] Include a guide for converting scripts from auxlua syntax to
dreamluau syntax
2024-07-28 18:45:49 +00:00
Afevis
1aade91a18 Unit tests for stuff accidentally placed in space by mappers (#84453)
This unit test detects all turfs & other movables that aren't in a lit
area (ie area/space/nearspace) on station zlevels

The grep detects movables placed on shuttles that do not have the
correct area assigned, which caused those atoms to break off of the
shuttle & literally get launched into random parts of space (usually on
station z-levels; the only reason I found this issue was cause the unit
test was detecting random shit ending up on station maps lol)

Minor fix for the mapload_space_verification unit test - it was falsely
detecting turfs that shuttle grids (that were template_noop) were parked
ontop of, which aren't effected by the shuttle in any way. This allowed
the following fix

Fixed a number of shuttles having atoms in /area/template_noop areas.
Atoms in these areas are treated as not actually part of the shuttle
itself & were launched off into random space tiles across all z-levels
via dump_in_space(). Corrected those grids to have the correct area, and
as such, shuttles now stay together properly.

🆑 ShizCalev
fix: Fixed a number of shuttles having parts (such as lattices)
completely disappearing.
fix: Fixed the ceilings above shuttles on station maps being
full-bright.
fix: Fixed lattices sometimes appearing at random locations in space on
station maps.
fix: Cleaned up a number of accidentally placed objects in space across
all station maps.
fix: Fixed a false positive with the mapload_space_verification unit
test failing on turfs that weren't actually part of shuttles.
code: Added a unit test that automatically finds all base space turfs
with objects on them, as well as non-space turfs that are set to space
areas (meaning that these squares weren't lit properly.)
/🆑


Shuttle Ceiling Fix:
Before

![2024-06-30_23-15-18-dreamseeker-Doctor_s_Spess_Junk_Eta](https://github.com/tgstation/tgstation/assets/6209658/4d1fb186-460a-409f-ab5d-3258b4e205f8)
Fixed
![Screenshot 2024-06-30
231528](https://github.com/tgstation/tgstation/assets/6209658/bd957384-4ba5-4fb6-9919-7f17f01d723c)


Shuttle Fix:
Before

![image](https://github.com/tgstation/tgstation/assets/6209658/4b408c40-0a25-4d8c-a9c7-65157eaf1172)
Fixed (look at the lattices in the middle. the stuff in the shuttle are
randomized / not part of this)

![image](https://github.com/tgstation/tgstation/assets/6209658/80a9e5f2-8c30-492e-8cd3-31f9b8ffb275)
2024-07-01 11:51:18 +02:00
Watermelon914
0db2a23faf Adds a new power storage type: The Megacell. Drastically reduces power cell consumption/storage. [MDB Ignore] (#84079)
## About The Pull Request
As the title says. A standard power cell now only stores 10 KJ and
drains power similar to how it did before the refactor to all power
appliances.

The new standard megacell stock part stores 1 MJ (what cells store right
now). APCs and SMESs have had their power cells replaced with these
megacell stock parts instead. Megacells can only be used in APCs and
SMESs. It shouldn't be possible to use megacells in any typical
appliance.

This shouldn't change anything about how much 'use' you can get out of a
power cell in regular practice. Most should operate the same and you
should still get the same amount of shots out of a laser gun, and we can
look at expanding what can be switched over to megacells, e.g. if we
want mechs to require significantly more power than a typical appliance.

Thanks to Meyhazah for the megacell icon sprites.

## Why It's Good For The Game
Power cell consumption is way too high ever since the power appliance
refactor that converted most things to be in joules. It's a bit
ridiculous for most of our machinery to drain the station's power supply
this early on.

The reason it's like this is because regular appliances (laser guns,
borgs, lights) all have a cell type that is identical to the APC/SMES
cell type. And it means that if we want to provide an easy way to charge
these appliances without making it easy to charge APCs/SMESs through a
power bug exploit, we need to introduce a new cell type to differentiate
between what supplies power and regular appliances that use power. This
is primarily what the megacell stock part does.

This moves us back to what it was originally like before the power
refactor, where recharging power cells wouldn't drain an exorbitant
amount of energy. However, it maintains the goal of the original
refactor which was to prevent people from cheesing power generation to
produce an infinite amount of power, as the power that APCs and SMESs
operate at is drastically different from the power that a regular
appliance uses.

## Changelog
🆑 Watermelon, Mayhazah
balance: Drastically reduces the power consumption and max charge of
power cells
balance: Added a new stock part called the battery, used primarily in
the construction of APCs and SMESs.
add: Suiciding with a cell/battery will shock you and potentially dust
you/shock the people around you if the charge is great enough.
/🆑

---------

Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
2024-06-25 00:32:19 +00:00
Zephyr
c85c8b6ff4 Tells od lints to shut the fuck up (#84069)
## About The Pull Request

I want this lint to go away. it's killing me internally.
## Why It's Good For The Game

It's a pragma that no longer exists
2024-06-24 16:18:04 -05:00
Afevis
53a8ba74c8 grep's for "recieve" typos (#83369)
Just spellchecking some common mistakes.
2024-05-23 00:41:05 -04:00
Jeremiah
c0133e4032 Reimplements node compatibility mode (#83141)
## About The Pull Request
Puts a switch inside our build tools that will download the appropriate
node version based on your OS.

#82334

## Why It's Good For The Game
Closes #83076
Allows players to play the game
2024-05-11 01:17:07 -07:00
Afevis
48d8850ffc Greps for pronoun helper spelling mistakes (#83086)
Fixes #83083

These are case sensitive
2024-05-06 17:38:13 -07:00
san7890
c403a6eccc Wraps lowertext() to ensure proper stringification. (#82442)
## About The Pull Request

Fixes #82440

This PR just creates a new macro, `LOWER_TEXT()` (yes the irony is not
lost on me) to wrap around all calls of `lowertext()` and ensure that
whatever we input into that proc will be stringified using the `"[]"`
(or `tostring()` for the nerds) operator. very simple.

I also added a linter to enforce this (and prevent all forms of
regression) because I think that machines should do the menial work and
we shouldn't expect maintainers to remember this, let me know if you
disagree. if there is a time when it should be opted out for some
reason, the linter does respect it if you wrap your input with the
`UNLINT()` function.
2024-04-10 12:19:43 -07:00
san7890
49a53b466e Improves OpenDream Linting (Annotations and More) (#82029)
## About The Pull Request

This PR does a few things.

The main goal was to have it annotate the code like we do for `Run
Dreamchecker`, which it now does. The code for this was mostly
shamelessly ripped from the very same process I just mentioned, but
stripped down a lot more for the task. Since I had to write a lot more
code to handle the way we get warnings and the like from OpenDream, I
didn't fold both into one program.


![image](https://github.com/tgstation/tgstation/assets/34697715/f4a05b59-5407-412e-a73f-5c069fdb4b02)


![image](https://github.com/tgstation/tgstation/assets/34697715/0d3335aa-0da1-45ed-af19-1d17a7fc4174)

It works! Ta-da.

Anyways, in order to facilitate the code annotation, we need to use a
Python script. This Python script means that we need to use the
bootstrap, and the bootstrap is best used with the bootstrap cache. I
then realized that we should just really fold this special CI runner
into the Run Linters workflow anyways, instead of having it on its own
runner (since it'll cut into the number of runners we have available at
a time anyways).

I think it's a good way to save precious CPU cycles on our dying Earth,
and the issues are now visible enough to the average coder (in the
`Files Changed` tab) to where I feel pretty good about doing this.

There's a bit of weirdness and jank in the Python program, but it's all
done for a reason I assure you (it's always silly when stuff breaks
silently and no one knows to fix it until years later). You can look an
example of a failing run here:
https://github.com/san7890/bruhstation/actions/runs/8303759645/job/22728427623#step:17:14
2024-03-17 11:10:51 +13:00
MrMelbert
79244dc11f Lint with OpenDream (#81892)
## About The Pull Request

Courtesy of https://github.com/ParadiseSS13/Paradise/pull/21099 and
https://github.com/goonstation/goonstation/pull/18127
2024-03-11 19:31:15 -06:00
san7890
bf94b4433b Fixes Rust Caching for Run Linters (#80168)
## About The Pull Request

Ripgrep got updated some time ago, and that means that our cache went
out of date as we had to keep doing more work to install the new
dependencies that it has. This means we were eating up another **50
seconds** every time we ran Run Linters. Unfortunately, github caches
will only hash to a file that exists on the repository, not anything
that might exist after a tool is installed.

So, in order to do this, we create a new bash file `install_ripgrep.sh`
and also pin the ripgrep version. If we need to reap some new benefits
or it's substantially faster (which might not be the case as ripgrep is
already blazing fast), we just need to update `ci_dependencies.sh` and
the cache should work for future versions without us needing to purge
rust caches manually through github.

You can view a successful run here
https://github.com/san7890/bruhstation/actions/runs/7123029395/job/19394997831

I also did something similar for SpacemanDMM while i noticed it.
2023-12-08 02:55:05 -05:00
Fikou
7107de1e67 reverts offical grep (#78935)
## About The Pull Request
## Why It's Good For The Game
we're not the dictionary, i very much dislike this precedent and
https://github.com/tgstation/tgstation/pull/78762#issuecomment-1750351247
another maintainer seemed to agree
2023-10-13 02:15:26 -04:00
Isratosh
a39e2e5b64 offical to official (#78762)
## About The Pull Request
Fixes "offical" to "official" in several locations - admin fax panel,
admin newscaster, art patron text, a photocopier template, and a corgi
tail pin item description. Adds this common misspelling to the
check_grep.sh ci tool.
## Why It's Good For The Game
I have corrected the typo manually every single time I have sent a fax
from Central Command.
## Changelog
🆑
spellcheck: "offical" has been officially corrected to "official" in
several official locations.
/🆑
2023-10-06 16:03:22 -06:00
distributivgesetz
afe58b5aeb Move the DreamChecker annotator into a new module (#78447)
## About The Pull Request

just moving the dm annotator script out of the CI folder, into a new
module which can be executed

if this breaks stuff again then i am going to cry

## Why It's Good For The Game

less clutter inside of `./tools/ci`
## Changelog
nothing playerfacing
2023-09-20 14:44:42 -06:00
distributivgesetz
b2dda940c5 Replace DreamAnnotate action with a python script (#78225)
## About The Pull Request

This PR removes the "Annotate Lints" job step and merges it with the
"Run Linters" step above. To achieve this, I wrote a python script that
should be identical to the action. I even added the ability to read the
output from a file to the script if we ever needed that, but I decided
to have the job step pipe the output into the script instead.
## Why It's Good For The Game

It always bugged me a bit that we had to check the results for a
separate step if we wanted to see the linter results for dm code. I also
noticed a few people getting confused as to why their CI failed on
linters.

Turns out that the action is just a few lines that match the
dreamchecker output and reformat it to a format that GitHub can annotate
code with. It's so brain dead simple that it shouldn't need to be a
whole new step, and for the previous two reasons.
## Changelog
not playerfacing
2023-09-11 13:17:37 -06:00
MrMelbert
43673e2cdf Adds a check grep for using src as a trait source rather that REF(src) (#77836)
## About The Pull Request

Using `src` as a trait source is an error and can often lead to
hard-deletes

If you wish to tie a source to a certain datum, it is common to use
`REF(src)` instead.

Ideally, we would lint or test for any use of a reference rather than a
string in use in trait sources, but that's a bit harder to setup.
Currently (from what I can see) the *only* erroneous use of references
as sources are via `src`, so it being the most common error, I see it
fine to lint for it.

## Changelog

Nothing player facing.
2023-08-22 10:26:33 -06:00
ShizCalev
d927f28951 Makes update_icon_updates_onmob more robust (#75324)
Safeguards against #74965 happening in the future.

Noticed a bunch of these were using ITEM_SLOT_HANDS. This is incorrect,
as the element already automatically updates held items. grep'd it to
catch future instances.

Likewise, a number of objects weren't passing slot_flags to the element,
meaning it wasn't actually updating those things properly when they were
being worn. I've simplified this so now the element will automatically
update all slot_flags, and passing an additional slot to the element
when being added is only needed for additional slots that might need to
be updated. This also means if slot_flags change, the element will now
update correctly as well.

🆑 ShizCalev
code: The update_icon_updates_onmob element will now automatically
update all slots in an item's slot_flags var. This does fix multiple
things that weren't updating properly. Passing a slot to the element is
now only necessary if you want to add additional slots to be updated.
/🆑
2023-05-10 18:36:01 -06:00
san7890
7b0917dcd6 Lints against UpdatePaths Scripts without a numeric prefix (#75066)
I forgot this for like the third time in #75001 and I'm sick of never
remembering to do it so I'm adding a lint so I never forget again (and
will also help other people never forget to add the PR-number prefix).
## Why It's Good For The Game

UpdatePaths scripts should have a prefix with the PR number that adds
them, but since you don't know the PR number when you're making the
script (since I make the script very early in my development process),
it's often forgotten (especially since no one really looks at file
names). Let's end forgetfulness by failing CI if a script without a
numeric prefix is detected.
2023-05-03 14:49:22 +00:00
BlueMemesauce
6bd192fe49 Fixes some miscapitalization of Nanotrasen (#75026)
## About The Pull Request

Fixes #75019

Also fixes it in a drink, the ethereal lore, and some photocopier
paperwork.

And also adds "NanoTrasen" to common spelling mistakes

## Why It's Good For The Game

Nanotrasen is the correct capitalization
## Changelog
🆑
spellcheck: Fixed Nanotrasen being miscapitalized in traitor posters, a
drink, the ethereal lore, and some photocopier paperwork
/🆑
2023-04-30 04:16:29 +00:00
Zephyr
7fd64dcf3d Auxtools is now a config opt-in (#74501)
See https://github.com/tgstation/tgstation/pull/74497

Causes auxtools to not be a default part of the server environment and
requires server operators to manually enable it.

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-04-05 15:36:26 -07:00
san7890
03bb726a80 Lints for Empty Variable-Edit "List" in the TGM Syntax + Fixes Occurrence in Codebase (#73831)
## About The Pull Request

Caused by #73758 due to improper search-and-delete (presumably) without
running mapmerge or something to catch it, very sad. Let's add a linter
to make sure this doesn't occur again.

More information on what exactly was broken may be found here:
https://github.com/tgstation/tgstation/pull/73758#issuecomment-1457508565
## Why It's Good For The Game


![image](https://user-images.githubusercontent.com/34697715/223326428-7f02ea8d-a881-4fa8-b87d-717b39e1fff2.png)

makes me sad to see it, it's ugly, and mapmerge will fix it away anyways
over the next few months since it's an invalid/bugged case. let's just
prevent it from happening again. (hopefully this hasn't been impacting
the map loader at all? i don't see why it would but I know this case
isn't exactly accounted for). i noticed that we're able to flatten a lot
more keys now as well since we don't have literally nothing preventing
that flattening, which is a plus.
## Changelog
Nothing that concerns players.
2023-03-09 13:51:06 +13:00
Tim
7cf5a73771 Add grep linter for can_perform_action arguments (#73527)
## About The Pull Request
This adds a linter to check for missing arguments with the
`can_perform_action` proc since several people had used it with no
arguments provided and it caused persistent runtimes over several years.

## Why It's Good For The Game
Less runtimes in the future.

## Changelog
Not needed.
2023-02-21 08:51:49 -08:00
Zephyr
a8f5a6d158 Fix a merge skew on armor datums (#72909)
## About The Pull Request

And also add a check grep to find it in the future
## Why It's Good For The Game
## Changelog
2023-01-28 19:34:11 -05:00
MrMelbert
0007686bf5 Adds checkgrep for improper or missing atom Initialize args (mapload) (#72846)
## About The Pull Request

Adds a grep for atom initialize overrides which does not include mapload

Regex used
`^/(obj|mob|turf|area|atom)/.+/Initialize\((?!mapload).*\)`

Also replaced some space indentation with some tab indentation in some
other greps


![image](https://user-images.githubusercontent.com/51863163/213883049-ef6d953a-e11f-4876-9852-c09633ddc289.png)

## Why It's Good For The Game

See #69107, #61759, #61623

## Changelog

No player facing changes
2023-01-26 13:58:47 -08:00
san7890
9beb09a33a Adds Lint Against Non-TXT UpdatePaths Scripts (#72785)
Prevents Regression Found In #72779 (someone putting an UpdatePaths
script that doesn't end in .txt through) from happening again.
2023-01-22 22:00:16 +00:00
SyncIt21
ec5c9dfd10 Stock Part Datumization Complete (#72559)
So i accidently reverted all my commits in #72511 when resolving a merge
conflict So ummm yeah fuck my bad anyway

## About The Pull Request
Finishes what was started in #71693 and completes the
[initiative](https://github.com/tgstation/dev-cycles-initiative/issues/1)

Except for `obj/item/stock_parts/cell` and its subtypes. All machines
now use `datum/stock_part` for its requested components & component
parts

Not sure if i caught every machine & stuff in the game so merge with
caution
## Changelog
🆑
code: datum stock part for every obj stock part
refactor: all machines & dependent experiments to use datum stock parts
/🆑
2023-01-11 07:53:36 -08:00
Zephyr
aa10d9d756 Forgot to specify files to check in check grep (#72277) 2023-01-04 05:43:58 +00:00
Mothblocks
6f07ae305b Replace nearly every map grep with a YML file that actually respects structure, and fixes the massive amount of failures that were never caught (#72372)
[Documentation
here](https://github.com/Mothblocks/tgstation/blob/maplint/tools/maplint/README.md)

We should not be using greps to the capacity that we currently are. If
you are not smarter than a parser, then you should not try to beat one.
DMM files should NOT be treated as text files that can be parsed with
any old Unix tool. They are a structured language. Because of our abuse
of greps, check_greps is full of hard to read, hard to maintain checks
that do not consistently work, because they all make very specific
assumptions about how TGM works, which are provably untrue.

This format is mostly straightforward for the lints people write, and
easily extensible to the ones people will want to write.

🆑
fix: Fixes a bunch of cases of windows not being where they were
supposed to be, tables/chairs stacking on each other, and other very
small stuff you've never noticed before.
/🆑
2023-01-03 21:21:37 -08:00
Mothblocks
e9351f6ae0 Add lints for idiomatic balloon alert usage (#72280)
Adds lints for `balloon_alert(span_xxx(...))` (which is always wrong),
and balloon alert where the first letter is a capital (which is usually
wrong). Fixes everything that failed them. As a reminder, abbreviations
like "AI" and "GPS" shouldn't be capitalized in a balloon alert.

In cases where this is intentional for flavor (there was one case), you
can `UNLINT` like so:

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2022-12-29 19:01:45 +00:00
san7890
d0ebefcbde Updates check_grep to guard against unparsed map variables (#72161)
## About The Pull Request

In `/datum/parsed_map/proc/parse_constant()` (via
b3851d607f/code/modules/mapping/reader.dm (L930)'),
we do not check (ignore) five different things: `new()`, `newlist()`,
`icon()`, `matrix()`, and `sound()`. Since it's completely useless to
put it in a map and expect to see it code-side now-a-days, let's lint
against it just to be safe in the future.
## Why It's Good For The Game

Prevents silliness like in #72157 (which this PR is also reliant on for
checks to pass).

no changelog needed
2022-12-24 02:41:04 -08:00
Zephyr
5c18606d9b [FUCK] Linters work again, V3 (#71748)
Get linters working again, I was never using the correct directory
expansion syntax for checks, so why some of them still worked anyway is
beyond me.

Fixes https://github.com/tgstation/tgstation/issues/71695
2022-12-06 01:05:52 -08:00
Zephyr
1900eb9484 Unit Tests use a consistent human subtype (#71515)
title
2022-11-26 20:36:20 +01:00
Zephyr
1aded37cfc Changes check_grep to use ripgrep and reformats/cleans up the check_grep file (#71324)
## About The Pull Request

I fucked up the check_grep entry for docking ports.
default grep doesn't support newlines and so I need to use `pcregrep -M`

## Why It's Good For The Game

linters working good
## Changelog

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
2022-11-21 11:46:22 -08:00
Zephyr
58b4b07ef0 [MDB Ignore] Corrects Automatic Shuttle Boundary Generation (#71220)
When you load a map template, it does many things before considering
itself finalized.
One of these steps is to iterate over all the loaded items and
initialize/process them.
Unfortunately because a shuttle setups the bounds after
initTemplateBounds is called, the mobile docking port ends up being
initialized before the bounds are actually setup correctly.
The solution to this is to explicitly ignore the mobile docking port,
and have it initialize immediately after calculating the bounds.
2022-11-16 01:36:05 +00:00
AnturK
4d6a8bc537 515 Compatibility (#71161)
Makes the code compatible with 515.1594+

Few simple changes and one very painful one.
Let's start with the easy:
* puts call behind `LIBCALL` define, so call_ext is properly used in 515
* Adds `NAMEOF_STATIC(_,X)` macro for nameof in static definitions since
src is now invalid there.
* Fixes tgui and devserver. From 515 onward the tmp3333{procid} cache
directory is not appened to base path in browser controls so we don't
check for it in base js and put the dev server dummy window file in
actual directory not the byond root.
* Renames the few things that had /final/ in typepath to ultimate since
final is a new keyword

And the very painful change:
`.proc/whatever` format is no longer valid, so we're replacing it with
new nameof() function. All this wrapped in three new macros.
`PROC_REF(X)`,`TYPE_PROC_REF(TYPE,X)`,`GLOBAL_PROC_REF(X)`. Global is
not actually necessary but if we get nameof that does not allow globals
it would be nice validation.
This is pretty unwieldy but there's no real alternative.
If you notice anything weird in the commits let me know because majority
was done with regex replace.

@tgstation/commit-access Since the .proc/stuff is pretty big change.

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-11-15 03:50:11 +00:00
Mothblocks
e75fa446c8 Add support for running tests on alternate versions (#71177)
Adds support for additional byond versions tests
2022-11-09 07:57:46 +01:00
san7890
b6a801a888 Fixes Raw Turf in Tramstation + Patches Lint for Raw Turf (#70998) 2022-11-02 19:53:31 -07:00
ShizCalev
af26d38749 Fixes voice of god runtime when a target resists the command (#69921)
* Fixes voice of god runtime when a target resisted your command and adds a grep to avoid it being a problem again in the future.
2022-09-15 22:19:09 -04:00
Vire
a495cb8b34 Removing trailing / from several mapping regexes (#69448)
* Removing trailing / from several mapping check regexes

So we have check_grep.sh which helpfully checks for a bunch of common map mistakes, including doubled up items. This adjusts them to capture doubled up base types which might be mapped in.

* Commit before pushing next time
2022-09-09 12:01:53 -04:00
ShizCalev
6ef3599254 adds grep check for improperly used timer flags. (#69668) 2022-09-05 02:55:22 -07: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
Y0SH1M4S73R
4e6e1f090e [Ready for Review] Admin lua scripting (#65635)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-07-19 15:45:23 -07:00
san7890
1e1244fad8 Updates check_grep.sh to have more clarity and contrast (#68387)
* Updates check_grep.sh to have more clarity

Hey there,

One issue with check_grep is that it was very inconsistent in how it handled the error conditions and echos to the end user. Some of them didn't have ERROR:, some of them didn't have two echos to separate them from the actual grep result, etc.

This should add more clarity to all of it by making each error line exit with a RED color, the boilerplate lines with a BLUE color, having an echo in each line to separate, etc. This should be much easier to see for anyone at a glance. This works on my local machine, and I suppose we'll find out how it looks on GitHub.
2022-07-17 01:16:31 -07:00
oranges
ed642a9311 The lint for whitespace issues now shouts louder (#68386) 2022-07-13 15:34:45 +12:00
san7890
dc6b4aba47 Merge Conflict Markers - The Explicit Pathing, Layering, Iconing, Warning. (#68039)
* Merge Conflict Markers - The Explicit Pathing

Hey there,

This PR corrects an issue I've been having with mapmerge2 these last few months. Basically, what it does is create a base `/obj` that is given the name `---Merge Conflict Marker---`. This is fine and all, but the problem is that the base `/obj` is set to a certain plane. This does mean that sometimes, this VERY IMPORTANT marker is covered up by rocks or other objects. So, this seeks to get rid of that potential flaw, as well as do some other things.

Sometimes, when objects are rendered via GAGS or other code-means, they tend to have the same default Purple/White Sprite that any object without a valid icon_state has. This has caused me some confusion, so I have decided to create a new icon for conflict markers. This icon was designed to be as ugly as possible, while creating as much contrast as possible with the background by incorporating several colors into its design. I hope you find merge conflicts as unpleasant as I do.

I also updated mapmerge2 to have it so you can set the specified path of the object, as well as a small comment on the warnings if you do not heed it. I'm keeping the fact that mapmerge2 adds a name to the object just in case someone else really needs that. I also updated the linters to check for this path as well (even though the name and description should suffice for linting), and it should all be gravy from here.

* Adds further contrast to the DMI.

* Splits the merge conflict marker into a generic /obj

I also added a thing where if it didn't get caught by linters and it showed up on Initalize, it would error to mapping logs, spit out an error in world, and do all sorts of stuff to remind you.

* python new line

* forgot to add a tab
2022-07-05 01:29:44 -04:00
Mothblocks
7cab049dd1 Screenshot tests (#67679)
Adds screenshot visual testing workflow and scripts.
2022-06-11 00:02:30 +02:00
Son-of-Space
2fb96ab772 Greps to check for commonly misplaced structures in closed turfs (#67447)
Adds some checks for structures that are commonly misplaced inside walls. One of the more recent updatepaths also replaced a bunch of posters with windoors in walls so this will help find all those.

I also edited the one that checks for lattices to look for closed turfs, because we really don't want the structures we're looking for to be in any closed turfs anyways.

We don't want to look for all structures like this because things like transit tubes exist.
2022-06-02 17:27:22 -06:00
Son-of-Space
dab0cb6396 Greps for double firelocks and airlocks (#67374)
Adds the greps for firelocks and airlocks so we don't double stack them.

* Greps for double firelocks and airlocks

* Update tools/ci/check_grep.sh

Co-authored-by: Pepsilawn <reisenrui@gmail.com>

* Update tools/ci/check_grep.sh

Co-authored-by: Pepsilawn <reisenrui@gmail.com>

* fixes two double firelocks on iceboxstation

Co-authored-by: Pepsilawn <reisenrui@gmail.com>
2022-05-29 19:19:01 -06:00
san7890
e1f9602439 Adds Greps for Multiple Areas/Turfs on the same tile. (#67173)
Hey there,

Even though mapmerge2 (through behavior introduced in #39889) should automatically check for "stacked turfs", they still slip through somehow. Not really sure how, but let's make sure that doesn't happen again with the power of grep.
2022-05-26 16:52:11 -04:00