-
Notifications
You must be signed in to change notification settings - Fork 64
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[MIRROR] Icon Autoslicing (#79659) #1038
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Icon Autoslicing (#79659) Ok so you know all the dmis we have that are made to work with the smoothing system? carpets, walls, etc. The proper way to edit those is to convert them into a png with 5 "states' it in (one for 0 connections, one for horizontal, one for vertical, one for all cardinals and one for all directions) and then modify THAT, then run it through [the cutter tool.](https://github.com/tgstation/icon-cutter) But none ever does that, because we explain it fucking nowhere. So instead, let's keep all those "base" files in the repo, alongside the configs they work with, and "cut" the pngs into dmis as a part of the build process. I wrote a guide for how to interact with this system as a spriter, you can find it [HERE](https://github.com/LemonInTheDark/tgstation/blob/slice-the-sky/icons/Cutter.md). [Adds a icon cutter build task](tgstation/tgstation@52143d2) This relies on action ninja's hypnagogic (find more [here](https://github.com/actioninja/hypnagogic)), a rust based icon cutter. It operates inline with the file structure, searching the codebase for templates and resource files and compiling them down to dmis. It can do way more then just bitmask stuff, but that is what we are using it for rn. Hope is to prevent for eternity the "I'm just gonna edit each of these 255 icon states that's how this carpet was made right?" meme, and allow more expansive use of smoothing in future [Adds a lint that ensures config files work right](tgstation/tgstation@21eeab9) Checks to ensure they have a paired png and dmi, and also avoids issues with uncompiled changes by double checking that nothing happens before/after a cutter run [Pulls all non smoothed states out of structures into bespoke dmis](tgstation/tgstation@a730e0c) This is required because the cutter cannot output named icon states, only the actual cut icon [Does something similar to walls](tgstation/tgstation@40780e9) Moves reinforced walls decon stuff from their icon to a var on the type and a set of states in the reinforced_states dmi Moves falsewalls into their own dmi, this involved some changes to gamecode to ensure falsewalls knew which dmi to use and what key. Makes falsewalls display as such in editor rather then just walls Moves smoothrock's gibonite overlays into their own file for similar reasons [Same thing different day (Floors)](tgstation/tgstation@9a3da3b) Pulls bespoke floor icon states into their own file, splits up neon carpets into multiple files to make cutting possible [Actually adds the cut templates and their matching png files](tgstation/tgstation@1bd8920) Not much to report here, outside of I changed the prefix for bamboo walls to bamboo_wall so it works with false_walls ![image](https://github.com/tgstation/tgstation/assets/58055496/7c3ac7fb-873c-481b-8667-082e39432876) None should have to manually edit cut dmis. Ever. Also this makes adding a new smoothed thing trivial, don't even need to know what tool you're using to do it. V good v good. Sets us up nicely for wallening's well, wall of sprites. Some structural decisions, we are essentially committing build artifacts here. That's the best way of handling it because otherwise mappers could need to run build.bat before opening a map, and that is stupid! :cl: refactor: (Almost) all smoothed icons can now be edited in their pre cut forms /:cl: * Update false_walls.dm * Modular * Fixes override for reinforced walls, removals skyrat edits in favor of overrides --------- Co-authored-by: LemonInTheDark <[email protected]>
AnywayFarus
added a commit
that referenced
this pull request
Dec 9, 2023
Iajret
pushed a commit
that referenced
this pull request
Feb 19, 2024
* Valentines Day Rework (Better Late Than Never) (#81499) ## About The Pull Request Big changes: - Participation is Valentines day requires consent, as consent is important. - When the event triggers, all valid players are automatically signed up to get a random date. However if you're uninterested, you can opt out of getting a date. - This uses the same system as ghost role polling, so it's a non-obstrusive screen alert + chat box entry. - AIs are now given a zeroth law to protect their date. - This does not override existing zeroth laws (for malf ais). - This zeroth is law is worded in a way such that they are not effectively malf AIs. Their other laws still apply, but not for situations pertaining to their date. - Cyborgs are desynced from AIs and are given similar zeroth laws to protect their date. ![image](https://github.com/tgstation/tgstation/assets/51863163/0d1cca3e-f483-484c-90a8-9bb5492e2c69) Small changes: - Valentines cards are now paper. Meaning you can write on them, stamp them, or yes, burn them. - Third wheeling is more codified than before. Third wheels get their own antag datum type. - The antag panel listing in roundend takes up significantly less room for each date. Additionally, dates are now paired up with each other. - Adds implementations for getting pronouns from mind datums. ![image](https://github.com/tgstation/tgstation/assets/51863163/2107e7d2-6197-4f64-9245-54037ca6c0ec) ## Why It's Good For The Game It's 2024 and our Valentines day is sooo 2012. I'm a big fan of Valentines Day, personally - it gives me the opportunity to mess around with another player that I probably would not otherwise mess around with, getting into shenanigans I would not otherwise. But as the years have gone by it's gotten pretty lackluster. Some people like it as much as I do, but others ditch it entirely and ignore the objectives. And if you get paired with someone ignoring it, well, now you're out of luck! This is something I'm aiming to rectify by making it opt-in when it triggers rather than forced. All the people participating will be guaranteed to get someone who cares about the event as much, which makes it more fun. As for the silicon changes, there's been lots of confusion around silicons and their dates, so I thought I'd fix it here as well. Also, better late than never? ## Changelog :cl: Melbert add: Valentines Day now polls all players for candidates when it triggers rather than forcing all players to be a Valentine. Consent is important. add: Valentine silicons now gain special laws pertaining to their date. qol: Valentines Cards are now paper, so you can write on them, stamp them, or burn them. qol: Valentine's roundend report no longer takes up a massive amount of space and also no longer sound so, so weird. /:cl: * Valentines Day Rework (Better Late Than Never) * Update icemoon_underground_interdyne_base1.dmm --------- Co-authored-by: MrMelbert <[email protected]> Co-authored-by: SomeRandomOwl <[email protected]> Co-authored-by: Mal <[email protected]>
Iajret
added a commit
that referenced
this pull request
Feb 19, 2024
* [MIRROR] Valentines Day Rework (Better Late Than Never) (#1038) * Valentines Day Rework (Better Late Than Never) (#81499) ## About The Pull Request Big changes: - Participation is Valentines day requires consent, as consent is important. - When the event triggers, all valid players are automatically signed up to get a random date. However if you're uninterested, you can opt out of getting a date. - This uses the same system as ghost role polling, so it's a non-obstrusive screen alert + chat box entry. - AIs are now given a zeroth law to protect their date. - This does not override existing zeroth laws (for malf ais). - This zeroth is law is worded in a way such that they are not effectively malf AIs. Their other laws still apply, but not for situations pertaining to their date. - Cyborgs are desynced from AIs and are given similar zeroth laws to protect their date. ![image](https://github.com/tgstation/tgstation/assets/51863163/0d1cca3e-f483-484c-90a8-9bb5492e2c69) Small changes: - Valentines cards are now paper. Meaning you can write on them, stamp them, or yes, burn them. - Third wheeling is more codified than before. Third wheels get their own antag datum type. - The antag panel listing in roundend takes up significantly less room for each date. Additionally, dates are now paired up with each other. - Adds implementations for getting pronouns from mind datums. ![image](https://github.com/tgstation/tgstation/assets/51863163/2107e7d2-6197-4f64-9245-54037ca6c0ec) ## Why It's Good For The Game It's 2024 and our Valentines day is sooo 2012. I'm a big fan of Valentines Day, personally - it gives me the opportunity to mess around with another player that I probably would not otherwise mess around with, getting into shenanigans I would not otherwise. But as the years have gone by it's gotten pretty lackluster. Some people like it as much as I do, but others ditch it entirely and ignore the objectives. And if you get paired with someone ignoring it, well, now you're out of luck! This is something I'm aiming to rectify by making it opt-in when it triggers rather than forced. All the people participating will be guaranteed to get someone who cares about the event as much, which makes it more fun. As for the silicon changes, there's been lots of confusion around silicons and their dates, so I thought I'd fix it here as well. Also, better late than never? ## Changelog :cl: Melbert add: Valentines Day now polls all players for candidates when it triggers rather than forcing all players to be a Valentine. Consent is important. add: Valentine silicons now gain special laws pertaining to their date. qol: Valentines Cards are now paper, so you can write on them, stamp them, or burn them. qol: Valentine's roundend report no longer takes up a massive amount of space and also no longer sound so, so weird. /:cl: * Valentines Day Rework (Better Late Than Never) * Update icemoon_underground_interdyne_base1.dmm --------- Co-authored-by: MrMelbert <[email protected]> Co-authored-by: SomeRandomOwl <[email protected]> Co-authored-by: Mal <[email protected]> * Update lavaland_surface_interdyne_base1.dmm --------- Co-authored-by: NovaBot <[email protected]> Co-authored-by: MrMelbert <[email protected]> Co-authored-by: SomeRandomOwl <[email protected]> Co-authored-by: Mal <[email protected]> Co-authored-by: Iajret <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Mirrored on Skyrat: Skyrat-SS13/Skyrat-tg#25485
ORIGINAL PR: tgstation/tgstation#79659
Ok so you know all the dmis we have that are made to work with the smoothing system? carpets, walls, etc.
The proper way to edit those is to convert them into a png with 5 "states' it in (one for 0 connections, one for horizontal, one for vertical, one for all cardinals and one for all directions) and then modify THAT, then run it through the cutter
tool.
But none ever does that, because we explain it fucking nowhere. So instead, let's keep all those "base" files in the repo, alongside the configs they work with, and "cut" the pngs into dmis as a part of the build process.
I wrote a guide for how to interact with this system as a spriter, you can find it
HERE.
Adds a icon cutter build
task
This relies on action ninja's hypnagogic (find more here), a rust based icon cutter.
It operates inline with the file structure, searching the codebase for templates and resource files and compiling them down to dmis.
It can do way more then just bitmask stuff, but that is what we are using it for rn.
Hope is to prevent for eternity the "I'm just gonna edit each of these 255 icon states that's how this carpet was made right?" meme, and allow more expansive use of smoothing in future
Adds a lint that ensures config files work
right
Checks to ensure they have a paired png and dmi, and also avoids issues with uncompiled changes by double checking that nothing happens before/after a cutter run
Pulls all non smoothed states out of structures into bespoke dmis
This is required because the cutter cannot output named icon states, only the actual cut icon
Does something similar to
walls
Moves reinforced walls decon stuff from their icon to a var on the type and a set of states in the reinforced_states dmi
Moves falsewalls into their own dmi, this involved some changes to gamecode to ensure falsewalls knew which dmi to use and what key. Makes falsewalls display as such in editor rather then just walls
Moves smoothrock's gibonite overlays into their own file for similar reasons
Same thing different day
(Floors)
Pulls bespoke floor icon states into their own file, splits up neon carpets into multiple files to make cutting possible
Actually adds the cut templates and their matching png files
Not much to report here, outside of I changed the prefix for bamboo walls to bamboo_wall so it works with false_walls
None should have to manually edit cut dmis. Ever.
Also this makes adding a new smoothed thing trivial, don't even need to know what tool you're using to do it. V good v good. Sets us up nicely for wallening's well, wall of sprites.
Some structural decisions, we are essentially committing build artifacts here. That's the best way of handling it because otherwise mappers could need to run build.bat before opening a map, and that is stupid!
🆑 LemonInTheDark
refactor: (Almost) all smoothed icons can now be edited in their pre cut forms
/:cl: