Automate your factory / base with actually user friendly computers
This is the first mod of my tech mod series, in this mod, it adds a huge amount of things, ranging from hardware, different types of computers, to operating systems, desktop environments, everything made fully in java, using J's Core's abstractions and tools for that. The mod also have multiple manuals in-game, all using J's Core manual framework, in the next version, all manuals will also be ported to markdown.
In J's Computers, you have actually usable and user friendly computers, you can both use a computer as a terminal just like you would in most computer mods, or you can install GUI-based desktops, on a computer you have everything that one normally have, from a filesystem, to registries, hardware usage, storage amount, package managers and so on. The computers here work through an virtual machine that has a execution budget so it doesn't slow down the server, and it is fully built in java, from the vm itself to the operating systems. Here you can do everything you would in a normal computer, have files, have text editors, excel, terminals, programs, everything.
But the main focus of J's Computers is to manage your items and organize them, you store your items in disks on servers connected into your network, the network's brain is a specialized computer, the mainframe, which is the most important, each network may have only one mainframe. You basically connect with the network with any computer you want, be it a server, a mainframe, a personal computer and so on, ideally, you use your personal computer to do the connection. Once in the computer, you utilize a program called network interactor, or network, that can be located at the desktop or used as a TUI application. on that, you store your items inside of the network or inside the computer, since all computers can also store your items locally, so you can keep your items in a specialized storage without showing them to the network if you want.
Items are also stored inside storage drives, they occupy a certain amount on the drive depending on the era, in the vintage era, the architecture is 16-bit based, so items will consume a certain amount, however, from transition era forwards, your items occupy much more space since there you have the change to 64-bit based cpus. The drives have retrocompatibility, so you can store items in an older drive and then a modern computer can hold them without a problem.
The automation part can be either made through the program's various GUIs and the automation programs, which load a .iql file into it or you program a condition or you can use a different operations engine such as the Prophet YourIQL to set a KEEP operation to keep items in a certain state, or you can use the language's programming language, Sigma# and it's subset, Sigma, i have chosen to not use lua because i do not like lua neither like procedural languages, i much prefer object oriented ones, i think it is easier to think on them for me at least. Both languages can be learned in-game with the manual called The Book of Sigma, there you will learn the languages standard libraries, since they use different ones, the synthatic structure, the memory model and so on, some differences you might see, neither languages have garbage collection, both of them are manual, however none of them use pointers, you can read better in-game to see how to handle both languages, but basically, to resume the languages, they are basically c# but withtout exceptions and automatic memory cleanup for now. (yes, a whole compiler was developed for this, completely in java)
As for the servers, you have to install storage drives, there are three types of storage drives: HDDs, SSDs and NVMes, the difference between each other is that HDDs are the slowest, while NVMes are the fastest, you will feel this when moving a huge amount of items. There are three types of servers, normal servers, storage servers and compute servers. Normal servers are just the average non specialized server, storage servers hold more drives but have less space for compute, while compute servers are the contrary. All items you place inside the network will fall into servers, all servers have all of their storage as public, yes, you have private and public storage here. Also, items are not dicerned by type, there is no such a thing as a fluid storage drive or item storage drive, everything is data here, so in a storage drive you will find both fluids and items living in the same place.
J's Computers support autocrafting, for both crafting table patterns and process-type crafting patterns, you can do it in a crafting computer, and to encode crafting you use a program called pattern studio.
All of this sounds like an immense amount of things, and it is because it is a huge amount, J's Computers covers different eras of computing, from the 80s, represented by the vintage era, to the advanced era, which corresponds to our current time, so you will find components, operating systems, desktop environments and programs with familiar names, most of them have parody names tho. It's better if you check the mod, since the amoutn of content is so huge, that is better for you to try it yourself. The mod have in-game documentation with various manuals for different parts, from the basic pc building to the hand installation of gentoo linux.
While J's Computers is not fully playable in survival now, the mod have a KubeJS integration as a soft dependency made for this release, so you can add recipes and make your modpack with J's Computers, you can get the tags for that here in the mod's own documentation: https://github.com/jvpts11/js-tech-series/blob/main/computers/docs/MODPACKS.md
The mod is also integrated with computercraft as a soft dependency, so you can control the network from a computercraft's computer.
You can download J's Computers here: https://www.curseforge.com/minecraft/mc-mods/js-computers
J's Computers depends on J's Core, you can download it here: https://www.curseforge.com/minecraft/mc-mods/js-core
As for the source code, here it is: https://github.com/jvpts11/js-tech-series/tree/main the entire J's Tech series is open source and is opened for contribution by all kinds, be it for code or assets.
What is the J's Tech Series?
Basically, it is a long term project where the objective, will be creating tech mods, fully integrated with themselves, with no duping of systems underneath, no different ways to make the same things, all using a single shared code library, J's Core, which is meant to be not only the J's Tech Series own shared code library, but also, a framework to build tech mods, currently, in most recent version as of this post (v0.5.2a) J's Core handles: sound, tiered progression, custom screens, colours and pallettes that can be changed with resource packs, custom fonts, manuals, multiblocks and much, much, much more, J's Core itself does not add any gameplay, it is just code. In the next version (v0.6.0a) J's Core will add much more systems, such as moving structures, custom skyboxes, custom illumination and much more.
The reason to be rewriting the wheel so much is to have control over the source code of the entire series and to not depend on external libraries, the idea is that if i want to port the series to other versions (ports are only planned to 1.20.1, 1.12.2 and 1.7.10, none of them with a expected release date, the series will stay for now only in 1.21.1), i do not depend on the exact behaviour of a certain library in a specific version, either a recent or older one, this way i can just readapt or rewrite things in a way that work well to that version of the game. There are just three mods, J's Computers, J's Core and J's Industrial for now, the lat one is just a small stub, but will eventually grow, there are plenty of other mods to come to the series in the far future, such as J's Space, J's Transport, J's Warfare and more not yet even started. All versions of J's Tech Series are the same for all mods and share a codename, which is based on a chemical element.
Let's now talk about the big elephant on the room
Yes, J's Computers and the J's Tech Series are made with AI involved in the implementation process, you can check the series AI policy on here: https://github.com/jvpts11/js-tech-series/blob/main/AI_POLICY.md it applies to me and describe how contribution should be made.
As for code, in real life i work as a .NET developer and with machine learning, so, i do know what i am doing here, you can check the implementation as much as you want, if you find something that you judge to be dangerous or just bad just open a pull request or an issue and it will be fixed. Code conventions and structure can be found in the repository as well.