csaboka / spacechempatch Goto Github PK
View Code? Open in Web Editor NEWSpaceChem Modding Tool
License: MIT License
SpaceChem Modding Tool
License: MIT License
For 1 reactor productions, add a button below the video recording one, to record it as if it was a research.
Optionally try to show the pipeline for the first couple seconds.
Originally reported by Andy.
When the player clicks "Exit" in a puzzle while on any cycle greater than 0, or when the player hits the Esc key, the game throws up a question: "Return to assignment selection screen? Your solution will be automatically saved." I have always found that statement and question a little confusing as well as useless. It suggests there could be situations where your solution is not saved, and as far as I've ever seen, solutions are always saved regardless. Better just to remove that question.
Some advanced production puzzles rely on the processing order of reactors, so it would be nice to see it. Having them in the tooltip like we do for bonders should be doable.
This would allow people to better express themselves when they only know the bond structure of an output and not the exact elements.
If it makes things easier, we should just pretend that element ? has infinite bonds in all molecule editors. This element isn't available when editing puzzle inputs and outputs, and puzzle authors are already hacking impossible things into their puzzles manually anyway.
Save the selected preferences (executable path and selected patches) somewhere, so they don't need to be entered again when patching again. Look at what options we have, keeping in mind that it should work seamlessly on Linux as well.
SpaceChem's RNG is OS-dependent. It'd be nice to make it OS-independent, by allowing all OSs to use the same RNG algorithms, however that might be done.
Adding new speeds, possibly specified by the player. We could also add "infinite" speed where the simulation runs as fast as your computer can handle.
The current approach won't work on static constructors because they can't be overloaded. We need an alternative that introduces a new name, so the original static constructor can be called as a regular static method.
Random inputs need not have even odds. It does not have to be 50-50 for two inputs, nor 33-33-33 for three inputs. The problem is, for puzzles that have random inputs with uneven odds, the slider resets to even odds when the players selects "edit input" alpha, beta, or R (for production puzzles). The sliders should not change the odds, should not reset. The odds should change only when the player moves the sliders.
BOND+ does nothing in a disassembly reactor, so you could save two clicks by automatically turning them into BOND- when you drop them into a disassembly reactor.
The only example we know about right now is Optional.Transform. It's not clear what exactly triggers it, but when it happens, the proper replacement isn't found for the method, and instead a reference to the name of the decoy is emitted.
What's clear is that when it happens, the full name of the method declaration doesn't match the full name of the call. The latter has references to the generic method arguments (!!0, !!1 etc.).
Alright, here's a novel gameplay idea that might not be impossible to implement:
Multiple glyphs for sensing, fusing, or splitting. The game always gives us one, but it would be interesting to have the capacity. Should work the same way bonders do, just activate them all at once.
Swapping is also an idea, but that one can't be so "easily" implemented. Maybe a cycling over the available glyphs? It'd require the code for these guys to be known.
The game has no right click menu when not hovering over a symbol, so we can put there our own to do global actions on symbol groups, like:
That menu would also be a good place to add other level-related commands like the tourney logic of #24 .
You are more likely to want to change your recent solutions than your oldest ones, so you could save some scrolling by having them go from most recent to oldest.
It'd be nice if the game would remember the resNet page I was on last time I opened it.
No need to remember it across restarts, just the current session.
This can allow customizing the JSON parsing code.
Reactor details are too small in video so we tend to link to images of reactors from videos. It would be convenient to generate these images when a video is generated. Alternatively the video generation could be improved to better show the reactor details.
It looks like a lot of your (@csaboka and @12345ieee's) work got incorporated into SpaceChem community update (v1013). (I mean, they credited you and everything!)
So I'm wondering if there's anything they left out, and if this makes it harder to use spacechempatch (to get whatever they left out, or to make additional changes).
[I'm also wondering how the update changes the exact rules, but that's presumably more a problem for r/spacechem, since they own https://www.reddit.com/r/spacechem/wiki/gamemechanics and all.]
C:\Users\localhost\Downloads>cd SpacechemPatch
C:\Users\localhost\Downloads\SpacechemPatch>SpacechemPatch.exe
Can't find game executable SpaceChem.exe ! Please execute this program from the SpaceChem game folder, or give the path of the game folder as a command line argument. Exiting...
C:\Users\localhost\Downloads\SpacechemPatch>SpacechemPatch.exe "C:\Program Files (x86)\Steam\steamapps\common\SpaceChem"
This program is experimental and was only tested with the Steam version of the game. There is NO WARRANTY on it. Please remember that you can always restore the original game files by verifying game integrity in Steam.
Do you want to continue? [y/N]
Y
Making backup of SpaceChem.exe
Patching...
Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
at SpacechemPatch.Program.CollectReplacementsForTypes(IEnumerable`1 typeDefinitions, TypeFinder typeFinder, Dictionary`2 typeReplacements, Dictionary`2 methodReplacements, Dictionary`2 fieldReplacements)
at SpacechemPatch.Program.CollectReplacements(ModuleDefinition spacechemAssembly, ModuleDefinition ownAssembly, Dictionary`2& typeReplacements, Dictionary`2& methodReplacements, Dictionary`2& fieldReplacements)
at SpacechemPatch.Program.Main(String[] args)
The GOG version has different obfuscated symbols, but the code itself is hopefully close enough to be covered by the same overall patch code.
Would like some indication of which way a waldo is moving when the simulation is paused. All the time wouldn't hurt either. As it is, when paused, not obvious which way the waldo is going on a line it travels in both directions.
For instance, add a tail to the trailing side of the waldo. Not really room for an arrow on the leading edge, but maybe could do a color brightening, like a heat shield on a spacecraft reentering the atmosphere. Or, make the line it just followed wider and/or brighter.
The YT upload uses an old API that doesn't work anymore.
Either disallow the user from trying an upload (gray out or remove the button) or get it to work again.
The puzzle format is already reverse-engineered and invalid inputs and outputs can be hacked into the game even though the UI rejects them. We could make this easier by just disabling all bond checking in molecule editors, so you could create the same invalid stuff in the game itself.
There is randomness involved and they depend on player input, but there are people who would still like to see and compare their defense mission stats.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.