Space Engineers

Space Engineers

[v1.5.4] MECS: Motor Extensible Control Sequencer
Showing 1-10 of 16 entries
< 1  2 >
Update: 25 Oct, 2022 @ 8:52pm

v1.5.4
Fixed issue with commands not being sent if parts happen to be in correct positions. Ensures parts don't skip and then get stuck because they happened to be passing through the complete range (aka, the area where it is considered in position by the script).

All I did was add a flag where if it was the first step of any sequence it will send commands to every part regardless of whether it is already in position or not.
This removes an edge case where a limb happens to be in position but is moving through it, meaning it doesn't get sent an update and moves past the position and then locks up the whole script. This effect was more noticeable with higher tolerance values.

Update: 15 Jul, 2020 @ 7:49pm

MECS now works in degrees instead of radians. This should make editing the customdata slightly easier to deal with. The system will perform the conversion to degrees on old sequences without breaking them.

You can now record and set the torque of a rotor. If rotor torque isn't present in the customdata it will add it in. However, if you have a really old sequence you might need to reload the script a second time for changes to take effect.

Unlocked setting on servos now works like you would expect. Rotors with this tag in their customData will now rotate the shortest distance every time, without having a min and max angle. This was a bit fiddly to get right but it works.
Please note that in unlocked mode rotors have to set the opposite angles to +-180 to avoid slider collisions.

I also made an internal change to the keybinds system. The system will now filter out keys that have no sequence applied to them. This makes it more compatible with itself and other systems as well. For example, a design with just w/s controls only takes the w/s keys into account.

Update: 27 Aug, 2019 @ 11:50am

v1.4.3 - Hotfix for missing null check on gyros, and broken saving of wait timers and trigger commands.
I found out that if a gyro was missing from the list, the script will break.
It also occurred to me that it is actually a bit difficult figuring out which gyros were not being found by the program.
So now the program will give a warning for any missing blocks in any groups.
Note that this only checks the first sequence in the list, so keep this in mind if you want to finagle my script to get it to behave in a certain way.

Update: 27 Aug, 2019 @ 11:44am

Attempted hotfix.

Update: 23 Aug, 2019 @ 3:40pm

v1.4.2 - Hotfix for broken saving of sequences.
It turns out, struct weirdness caused issues with saving data directly to them, which actually rendered my modifications earlier (aside from the ones for adding to the lists for some reason) kind of moot. Taking the value, modifying it, and reassigning the new value seems to have fixed the problem. The reason this was happening is because structs are technically variables on their own, and making any change to a struct returns a copy of the struct with the change, instead of modifying the struct itself. Lists seem to take changes without much trouble, but I think that is because a list is only a reference to a value and not actually stored in the struct itself.

Update: 23 Aug, 2019 @ 11:14am

v1.4.1 - Hotfix for 1.192
A recent update changed how GetInternalArray() worked. As a result of that, I had to go in and fix everything. It was a bit tricky, because MECS makes heavy use of structs, and this was how I previously changed information internally. So, I had to implement methods to add and change values in my Sequence and Metadata structs. The rest of the script was surprisingly unscathed, as I straight up replace the structs stored in Sequence struct, avoiding the issue of modifying internal values.

Update: 22 Jun, 2019 @ 1:38pm

v1.3.9a - Hotfix for error that prevented generic blocks from being toggled. Fixed some optimization errors.

Update: 27 May, 2019 @ 4:25pm

v1.3.9: - Major optimization pass, and cockpit control support added.

Update: 2 Sep, 2018 @ 1:41pm

v1.2.3 - Added warning for when you have a servo with unset limiters. (It really messes with how the script reads angles.)

Update: 17 Jul, 2018 @ 8:29pm

v1.2.2 - Actual fix for the projector bug.

I only just uploaded my last little patch to fix it, but learned that I could update it more effectively using projector.UpdateOffsetAndRotation(), every 100 ticks. This should allow the code to run much more efficiently, and it should completely eliminate the chance of crashing when the script handles projectors.