BeeStation-Hornet
BeeStation-Hornet copied to clipboard
Experimental z-mimics support codes (Likely draft, but IMPORTANT)
About The Pull Request
Experimental z-mimics support codes This makes multiple things to support mimic atoms follow things that doing original atom is doing.
THINGS TO REMIND
animate() proc should be NOW stored if this is currently used or not
This is because newly created z-mimics after animate() is executed doesn't know if it should do that animation
this means we should make a new proc safe_animate()
that'll save its values for new z-mimics
REMIND 2
This PR should refactor whole animate and image codes to follow z-mimics
Why It's Good For The Game
likely bug fix and supports
Testing Photographs and Procedure
- Animate z-mimic https://youtu.be/cba02C_LtGY
- copy-pasta images into client image https://youtu.be/5oJc0tfLP4E
- Smooth projectile copy https://youtu.be/5oJc0tfLP4E
Changelog
:cl: code: Improved z-mimic codes fix: Projectiles will now properly displayed when you see those from above (i.e. Emitter beams) fix: some animations are now displayed when you see them from above. /:cl:
I don't like this edge case...
I heavily dislike huge systems like this that require completely changing how we do stuff. Animations haven't been a huge big of an issue, people jumping I'm 99% sure shows up on z-mimic and they already smoothly walk around which is animated so this is just cleaning up some minor edge cases for a huge cost. If you can point to me something that is major and really, really needs animations that doesn't already have it then I might be on board
DNM since I don't want this being yolomerged
Honestly I am also the one who heavily dislikes doing this but I can't think any better way solving the issue than this. The point here is that everything should be changed consistently when z mimics exist. If you have ever seen emitters in echo station, you can see that doesn't look that nice. Emitter beams are teleporting because it's disconnected from how pixel movement from projectile works.
Note that we have a lot of things that need to reflect atom appearance to z mimic including atom_hud, unedited animate() procs, client.image += things blabla. I don't think any of those managing manually without the define macro I showed will be any better.
I had to leave before finishing posting.
I'm 99% sure shows up on z-mimic
That's because only single line of the code managed that already, and I replaced it into my new while loop.
and they already smoothly walk around...
It's Byond movement thing, but the PR isn't trying to solve it.
...which is animated so this is just cleaning up some minor edge cases for a huge cost.
It is not "minor" edge cases. There are a lot of cases but I didn't pay more effort because I already knew this PR would be scowled absolutely.
If you can point to me something that is major and really, really needs animations that doesn't already have it then I might be on board
I will bring more changes to the PR, like I said, I knew people wouldn't like this and I didn't want doing much effort. I hope massive change for more files would change your idea.