Finally committed the latest Shiki changes, will release UniScan’s next commit tomorrow.
Finally committed the latest Shiki changes, will release UniScan’s next commit tomorrow.
Have been working on more Shiki refactors and a nice language system for servers in UniScan to provide language strings without being able to overwrite client language strings
Reworked most of the TaskPipelineBuilder with many more accepting delegate types and have done some cleanup since
Tomorrow I will finish up releasing the next Shiki version and then I think I will be able to release the next UniScan commit and then keep working for an alpha release.
Mine V3 WIP soon!
Working on a nicer api for JOS, now fields can be directly deserialized into a native class.
JOS is a project made primarily for reading and writing MineV3, which is serialized via ObjectOutputStream in the vanilla game.
However, this will work for ANY object outputted by ObjectOutputStream once finished, and will output in the same format as well.
Ported it to Beta 1.2_02-20110517 (the deobfuscated dev build)
With two companion mods I wrote, it makes the game use the zone format, and doesn’t force the player into SecretMode inside TitleScreen.init.
Making a logo for NotSoSecret and then a post will be made about the two other mods incase anyone wants to use it on b1.2_02-20110517, then this project will be pretty much complete.
NOTE: slight flashing lights warning cuz of Notch’s rotting ScreenSizeCalculator code
(had to compress to upload here, to see full quality: https://www.youtube.com/watch?v=rOqPT0zQ4dg)
Marker file works
added a little warning screen
It works™️
getting yelled at by starpheus because I haven’t made devlog yet
spent all nighter last night refactoring shiki’s modulemanagement project
and then today I refactored lots of shiki’s taskpipeline project, as well as some work being done on Shiki’s Result and family
(shiki is the side project library with most of it’s code originating from UniScan, and UniScan heavily depends on it)
Now the browser initialization is much cleaner (but not perfect of course)
(first screenshot is new, second is old)
Removed HostEnvironment because we usually only grab the parts from DI anyway
For funzies, here’s the dev build running inside a rooted Oculus Quest 2 (thanks to my friend for testing this)
This is also a good test of the netcode over a long distance (they’re in Malaysia while I’m in the US)
Getting close to committing this all alongside Shiki and such…
Long cleanup process.
Here’s a showcase of my Uniden SDS100 scanning, with UniScan showing the details in real time!
I programmed in some garbage test channels so you won’t see any channels talking in this video.
Everything shown here is sent by the server and updated by the server…
Still somewhat far from complete as I have to figure out more stuff (mainly more stuff for the client to deal with, like hiding state display textblock on null bindings and more UI features/styling).
Okayyy so I was able to actually completely gut DeviceState and now it’s actually just a class which is also used to serialize individual states.
This also means I can nuke reflection from the serialization process since I can just make IDeviceState forced to inherit IStateSerializer which will be much more dynamic!!!
This means literally any states can be sent to the client and as long as the server or the module has the UI to render the states, it will work.
This also allows states to be diffed and only the changed parts to be sent
Second screenshot shows the UI sent by the server, note that the Volume: 0 is actually all being handled on the client via binding strings (where the server only sends the client the device states and the binding strings will look up those states itself)
And now we can finally start seeing the fruits of our labor
IT FINALLY WORKS
The UI shit I built on the server now syncs to the client correctly, and the flow isn’t actually too bad!
Although this will be improved by also having a registry…registry…(yeah I know it’s weird) on the client so that UI elements can have values bind to them, and all the server has to do is send the client data to those registries
Went on a small side-tangent.
Icons!
(dw still working on the SSR device stuff)
Sorry, haven’t been super active due to life.
Fixed a few bugs in the meantime and implemented most of the SSR binding stuff, but it’s far from finished, hell I haven’t even gotten to test it yet.
Will be gone for a bit tomorrow, and the next day I will be at a different house for a few days albeit with my computer.
While I didn’t get to scanner state displaying yet, I did refactor the classes that handle how remotes connect, disconnect, etc so that it’s not spread around the codebase.
This fixes a few bugs related to state management due to how originally these viewmodels were constructed separately of eachother.
Tomorrow I will be gone for a few hrs but should be back soon enough to hopefully make some more refactors and/or start on the remote display.
Pictured is the new disconnect button in the remote on the sidebar
The client can now disconnect itself, and more styling has been added to the SSR UI (shown here is a Container which is centered and has a slight margin)
tomorrow will be some more work on the SSR UI and then finally getting the scanner state to show on the client.
I’m not too pleased with the idea that the server may change the look of the device pages on the clients, though… I still feel like there could be some better way to go about this.
I FINALLY GOT SSR WORKING MY GOD
still too primitive to do anything atm, working on it.
A friend of mine was able to test it on iOS, we got it working.
Gonna have them send in the PR later and set up CI for it.
Started working on state sync, will continue tomorrow probably
States are synced now but I need to think about how to deal with scanner groups and channels and such
because there are different types of channels (such as P25, conventional, etc) among other type issues
and I want to reduce the need for any modules on the client if I can.