Multimeter changes
T3sT3ro opened this issue ยท 3 comments
Current mechanics of multimeter are unclear to me and I think they requires some changes. Here are some of my suggestions:
There are two options - either we can retain multimeter in game, or we can get rid of it by incorporating it's functionality into engineering goggles
This assumes that mutlimeter is retained:
- Make multimeter results render via engineering goggles instead of console, because it will be more immersive that way.
- Replace current "click to start -> click to end" measurement with "aim and hold to measure" - maybe utilize the "focus" effect of a bow - the measurement would finish if the multimeter is "fully pulled".
- Give some explanation to the format of multimeter output - for now I don't understand what "xxxM/yyyMFe" means. If t's capacity, it would be a lot better to presents something like
KFET
: Kilo-FE-Tick as an analogue from KWH. - I don't quite understand which sides of machines can be measured, so that would require some explanation or fixes. For example. Right now measuring top of accumulator connectors prints "No forge capability on this side", while clicking on sides of it's connectors somehow works. Clicking top face of accumulator doesn't work, but clicking sides works. Basically the results are different when clicking on polygons with different normals. Currently all different faces (even parts of block models!) behave differently and some print "No forge capability on this side" while others work when clicked with multimeter - this is a source of frustration and weird measurements.
The second option is my preferred one. I think, that multimeter tool is superfluous. We can completely get rid of it if only following things were to be implemented:
- looking at connector with engineering gogles would print current FE flow in the tooltip
+X fe/t
if connector produces energy and-X fe/t
if connector consumes energy. In my opinion that would be the cleanest way and easy to implement. - looking at accumulator with engineering goggles prints current KFETs stored/KFET capacity, FE flow, max charge and discharge rate in FE/t.
- machines producing/consuming energy having "max production/consumption FE/t" in tooltips when looking at them.
Yeah, I Agree, the reason the multimeter prints in chat and why the Goggles don't show charge is because of network syncing and limitations of the Goggles. The Goggles isn't coded to sync every tick, it just reads whatever data is already on the client. This means that the server would need to figure out when a player is looking at a block then sync that data.
I think that it could be made using simple probing mechanism on the client - for example every x ticks/seconds, whenever player is looking at a block that has FE support he sends a probe to the server requesting measurement start. He will send those requests in some specified intervals for example once every half a second.
On the other side whenever server receives a request to measure specific block, it creates a Measurement object and stores it's value in some map with <block coords, Measurement>
(block cords or some other method of identification). Measurement could be a simple object containing last reading, watchdog timer and a list of subscribers to notify. Each time a request for block measurement comes, a watchdog is reset and current measurement is returned. When watchdog reaches 0 the <block, measurement>
pair is removed from map. Watchdog should have bigger timeout than frequency of client sending probes, to prevent constant allocations in realistic scenario. From the rough sketch of that it's easy to see, that measurements map could be shared globally among players and reused - the only thing that changes dynamically is a subscriber list for measurement.
Additionally if by any chance googles could utilize the animation from "ponder" mechanic (with the bar filling up), we could play this animation with frequency of player's probing.