OpenPerpetuum / PerpetuumServer

The Open Perpetuum Project's fork of the Perpetuum Standalone Server
https://openperpetuum.com
Other
44 stars 21 forks source link

Gamma Market Visibility #334

Closed MikeJeffers closed 3 years ago

MikeJeffers commented 3 years ago

Requires: https://github.com/OpenPerpetuum/PerpetuumServer/pull/333 (as a pre-req for any gamma market stuff) Closes: #332 The jury is still out on how it used to be. Existing code suggests that all Gamma orders are invisible remotely. But let's enhance that: This PR now features remote market order visibility for Gamma bases that a character can see (meaning the base is visible to them via the PBSDockingBaseVisibility value)

This also increase the fetch speed on the MarketItemsInRange command because it is not doing 4 joins like the GetAllByDefinition method, and it is not filtering the list after the fact in memory cleaning out training orders and corp order logic. It does have an initial query for markets (in memory), but I chose to cache this as remote market browsing generates a lot of rapid requests, its worth caching just for a few minutes.

Also some related refactoring to encapsulate the visibility logic and reduce the frequency of the corp role query in that extension method.

naHrej commented 3 years ago

The market displays remotely after the terminal becomes visible only after logging the character off and back on. I'm not versed enough in the client side of things yet to make anything but guesses as to why that is - I'm making the assumption though that it's to do with data not being pushed to the client for this purpose.

This PR does address the issue of visibility though, the remote market is not visible unless the terminal is.