-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
Tiles can now be modified by arbitrary tool qualities #12738
Conversation
# Conflicts: # Content.Server/Tools/Components/LatticeCuttingComponent.cs # Content.Server/Tools/Components/TilePryingComponent.cs
Draft because big + tiles are important + sill making sure I got everything + ratio |
ok so this actually dosen't have any merge conflicts two months later? how is that even possible... |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sorry for many conflicts now but this looks good outside of one thing
if (component.RequiresUnobstructed && tileRef.IsBlockedTurf(true)) | ||
return; | ||
|
||
if (tileRef.TryDeconstructWithToolQualities(tool.Qualities, _mapManager, _tileDefinitionManager, EntityManager)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this function should just get moved to being in the same system, i doubt it will be called elsehwere? (also the other tileref methods in this same vein were removed in a diff PR)
@Mervill are you coming back to this |
Right, so, of this PR, I've managed to get the following two parts merged:
Which leaves:
The problem is I'm not actually sure about this approach. Does it actually make sense to have a tool that has the qualities of a crowbar but doesn't work on tiles for some reason? If it does, what about the inverse? |
About the PR
This is a big refactor about Tiles. The focus is to make it so that Tiles can now define arbitrary tool qualities for modifying them. This replaces the existing and somewhat snowflake-y
canCrowbar
andcanWirecutter
pathways for modifying Tiles.canCrowbar
andcanWirecutter
on Tiles has been replaced withdeconstructToolQualities
which is a list that defines what tool qualities can cause a tile to switch to itsbaseTurf
LatticeCutting
andTilePrying
have been combined intoToolWorksWithTiles
which allows an object that also has theTool
component to work on tiles.baseTurf
per Tile instead of a list of turfs.underPlating
is now completely depreciatedThis PR contains no gameplay changes. In the future I hope certain construction focused forks will let me rip up plating without having to resort to explosives.