Skip to content

Conversation

@Ruzihm
Copy link
Contributor

@Ruzihm Ruzihm commented Dec 15, 2025

Adds a network message sent from the server to client to notify of mob/eye updates (currently, the client uses the attached entity which is ambiguous). I wasn't sure of a better way to accomplish this but am looking for feedback.

The client then uses this info to distinguish between eye/mob for context menu, drawing, and verbs.

Closes #1581
Closes #2081

@boring-cyborg boring-cyborg bot added Client Involves the OpenDream client Runtime Involves the OpenDream server/runtime labels Dec 15, 2025
_netManager.RegisterNetMessage<MsgLoadInterface>(RxLoadInterface);
_netManager.RegisterNetMessage<MsgAckLoadInterface>();
_netManager.RegisterNetMessage<MsgUpdateClientInfo>(RxUpdateClientInfo);
_netManager.RegisterNetMessage<MsgNotifyMobEyeUpdate>(RxNotifyMobEyeUpdate);
Copy link
Contributor Author

@Ruzihm Ruzihm Jan 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure why but when I tried to register this in DreamClientSystem I would get the following error & disconnect:

[WARN] net: 127.0.0.1:1212: Got net message with invalid ID 72.
[DEBG] net: "127.0.0.1:1212": Status changed to Disconnecting, reason: "Got NetMessage with invalid ID"

I don't know of a better way to handle this so I'm just leaving this here for now for proof of concept until a better method is suggested.

@Ruzihm Ruzihm requested a review from wixoaGit January 15, 2026 03:39
@Ruzihm
Copy link
Contributor Author

Ruzihm commented Jan 15, 2026

actually - one sec. z levels and mouse events are messed up when eye is a turf.

edit: should be good now

@Ruzihm Ruzihm marked this pull request as draft January 15, 2026 03:53
@Ruzihm Ruzihm marked this pull request as ready for review January 15, 2026 08:06
@Ruzihm
Copy link
Contributor Author

Ruzihm commented Jan 16, 2026

Setting eye to null will stop rendering - but since that's done by setting the eye position to be in nullspace, the viewport stops clearing the render target and you just get a frozen screen:

https://github.com/space-wizards/RobustToolbox/blob/aa5cca4c7f210f3ed7b7841735b5aadb533c9d88/Robust.Client/Graphics/Clyde/Clyde.HLR.cs#L494-L497

Does this warrant a pull request to RT to add a viewport option to allow target clearing if there is no eye/the eye is in null space?

@wixoaGit
Copy link
Member

Does this warrant a pull request to RT to add a viewport option to allow target clearing if there is no eye/the eye is in null space?

I think that would be better as the default instead of an option, but I suppose that's up to the RT maintainers.

@github-actions github-actions bot added size/XL and removed size/L labels Jan 17, 2026
@Ruzihm
Copy link
Contributor Author

Ruzihm commented Jan 17, 2026

So turns out that RT patch wouldn't help since a null eye should still render screen space elements in non-negative planes. PR should now account for that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Client Involves the OpenDream client Runtime Involves the OpenDream server/runtime size/XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

client.eye can't be set to a turf Hopping into a locker lets you see ghosts

3 participants