Space Engineers

Space Engineers

232 ratings
(Old) Easy Automation (InGameScript)
   
Award
Favorite
Favorited
Unfavorite
File Size
Posted
Updated
9.723 KB
30 Nov, 2015 @ 11:46pm
30 Dec, 2015 @ 7:46am
5 Change Notes ( view )

Subscribe to download
(Old) Easy Automation (InGameScript)

Description
-----------------------------------------------------------------------------------------------------------------------
5/30/2016
This is the old version of this script.

Easy Automation V2.0 is now out and can be found here: https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=694296356

The Steam guide is for V2.0 is also out and ready for your perusal here: https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=685206874
-----------------------------------------------------------------------------------------------------------------------








Welcome to the Easy Automation program. This Is an In game program that will allow you to automate things easily. Hehe who would have guessed.

This program allows you to:
-Activate actions
-Set exact slider values
-check an action, slider value, or bit of detailed info and decide what to do based on what it finds
-wait for a condition to be true before continuing on with the automation
-Delay the automation for a period of milliseconds
-Reference previous code to reduce the amount of instructions you need to write
-Dynamically set values in the code based on the argument you pass to the programing block

Now watch the videos to see what is possible. The tutorials will guide you through how to use it.

Here's the link to the World with the Examples: https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=566284771

V 1.03
Change notes
-added Height slider for Gravity Generators
-All double word sliders are now functioning as they should (Blink Lenght, Blink Interval, Blink Offset)
-Blink Lenght slider for lights is now working... yes it is Blink Lenght, Keen misspelled it so now you must to
-Added Discharge action for Batteries
Known Bugs
-empty lines in write statements cause the script to run away so avoid that for now.


-----------------------------------------------------------------------------------------------------------------------
3/24/2016
Good news everyone! I have been hard at work powering up this script. Version 2.0 is completely functional and ready to rock. I just need to add the ability to look up what properties and actions are available for modifying as well as create some new tutorial vids and then it will be released. As some of the grammar of the Easy Automation code language has changed I will be releasing it as a new submission so as not to mess up previous creations.



Things you can look forward to in the new script:

-The ability to use groups. The old fassioned "Easy Automaiton" similarly named blocks will still act as groups as well.

-"if" "else if" and "else" now all work and use brackets for nesting like in c# (Brackets must be alone on a line).

-you can now call other code blocks that are on different LCDs from your original LCD.

-you can now set Variables to grab the current value of a property of a block at the time the variable is called!

-The code will now run more quickly as it has been reduced in size and compiles your Easy Automation code before running instead of during the run. If the code changes during the run then it will sense this and re compile. It will react mid run just like in the previous versions. (change variables and values mid run to fine tune your creations).

-you can now run other programs on other programming blocks with arguments that you designate in your Easy Automation code.

-New write to LCD functionality. Now you can add to what you had previously on screen, add on a new line, overwrite what was previously there, and clear the screen. Also the bug with the empty line in multi-line write statements has be fixed.

-easier to debug your code due to much more comprehensive error catching and explanation.

-the final function that will soon be implemented will be the ability to request a list of what properties and actions a desired block has that can be manipulated, checked, and/or stored in a variable.

Not sure as to a release date (videos can take a while) but It should be relatively soon. All the hard stuff is done.

P.S.
A big shout out to qsec and TOS = Tony for all their help and contributions.

-----------------------------------------------------------------------------------------------------------------------
3/25/2016
-The ability to display the actions and properties of a block is now working

-work on the instructional videos now begins.

-----------------------------------------------------------------------------------------------------------------------
4/21/2016
OK OK I have been working on the tutorial videos but as I go I keeped finding new functionality that I wanted to implement and bugs I needed to squash. This is good news for the script, bad news for the release date. I think I have added all that I will be adding and squashed all of the bugs. Now work on the videos can really begin... I swear... I hope.

new functionality that I have added:
- A rotation statement that allows you to rotate a rotor to a specified angle at a specified speed and can also be set to choose the shortest path to the requested angle.

- A statement that allows you to rename blocks, Add text to the end of the current name of blocks, remove text from the name of blocks (This will allow for some pretty interesting interactions between "Easy Automation" and the "Control Module" mod by Digi. Also allows the creation and destruction of groups of similarly named blocks which "Easy Automation" can than manipulate.)

-----------------------------------------------------------------------------------------------------------------------
5/1/2016
Sooooo I have decided to make a scenario that will teach you to use the Easy Automation Script. If I can figure it out you can look forward to voice acting by yours truly as well. I am taking the beginning sequence of Systems Shock 2 as an example of the feel I am going for.

So far I have the interior floors of the asteroid and a tram system that will take you from the interior to the top. This "MagLev" is run with the easy automation script and during construction I found that if the MagLev was to work correctly through saving and loading I really needed to make the script Save and Load safe. The new Programming block updates have made this possible(big thanks to Malware for his consistent contributions to this game!). So now Easy Automation will work through saving and reloading even if it's in the middle of waiting for something to be true with the "When" statement or delaying for a set amount of time with the "Delay" statement (The Delay will now pick back up where it left off so your timing will survive).

New Feature: Save And Load safe!

-----------------------------------------------------------------------------------------------------------------------
5/30/2016
Soooo making an InGame scenario turns out to be impossible due to the current instability of the game so I created a Steam Guide instead. In terms of convenience for both others and myself I think this is the best coarse of action. The guide is complete and published so you know what that means! The Easy Automation V2.0 scrip is ready and published! Now Get out there fellow Engineers and create wonders beyond imagining!
Popular Discussions View All (2)
145
24 May, 2016 @ 12:21pm
Questions on use
Coren
40
14 May, 2016 @ 7:38pm
Bug Reports
Coren
95 Comments
the peepeepoopoo man 2 Apr, 2017 @ 2:15am 
its the old one. go onto the new one
King Scorpio 1 Apr, 2017 @ 11:24pm 
Hi! Where can I find a list of commands?
Richard Asgard 27 May, 2016 @ 12:18pm 
@Coren Only now I was able to test out the setup with more instruction, it doesn't work unfortunately, or it does but with so many strange behaviors that it makes it unplayable...

At least we find out that it works with simple commands, maybe sometimes it can be useful.
Coren  [author] 25 May, 2016 @ 10:37pm 
If any one is wondering why you are getting stuck on surfaces as of 5/26/16, it is because Keen Software house's Havok physics engine license has expired. A temporary fix is to set your computers clock back.
Coren  [author] 25 May, 2016 @ 10:34pm 
@Richard Asgard Hmm, upon further experimentation I have found that this trick only works with extremely simple CodeBlocks with only one Statement. This is because the Easy Automation program Also splits it's actions over several frames. So it turns out that this is more of a quirk than an actual bit of functionality. If there is more than one Statement in the CodeBlocks then it will function as I had originally proposed. It's to bad, would have been a nice way to work with running multiple CodeBlocks at once.
Richard Asgard 25 May, 2016 @ 7:40pm 
@Coren I'm glad I can help

I think what's going on with the timer is as you said, the timer runs each slot at a time, but because it's so fast we can't notice. In reality the script is run 3 separate times, there's no multitasking involved, although it looks like there is. I guess it as to do with the game mechanics and not with the script itself.

I made a new platform to replicate and see if I made anything wrong and it worked again so I think you can implement this as a way of multitasking your script.

Keep up the god work, I can't wait for the V2.0 and to use the "else if" statements :-D
Coren  [author] 25 May, 2016 @ 4:40pm 
@Richard Asgard@ O my... That works... I just tried it out myself. Haha, the student has become the teacher. I'm not exactly sure what is going on here but my guess is that the Timer Block itself is multi-threaded and creates a new instance of the programing block to run the program each time the programing block is added in a new slot with a different argument. That or the Timer Block runs each of it's slots on separate frames of the game so that the actions aren’t actually happening all at once, just really quickly in succession.
Thank you Rich, I'll be adding this to the Guide for V2.0.
Richard Asgard 25 May, 2016 @ 4:35am 
@Coren I made a setup with 3 spotlights, and a code block OnOFF for each. Then as I explain below I just made a Button triggreing the timer and it worked, the spotlights toogle on and off all together

Code blocks:
@Spot01{
OnOff Spotlight01
}
@Spot02{
OnOff Spotlight02
}
@Spot03{
OnOff Spotlight03
}

Arguments inside the actions timer,
LCD Display(Spot01)
LCD Display(Spot02)
LCD Display(Spot03)

Later I wil check if theres anything wrong with my coding and let you know.
Coren  [author] 24 May, 2016 @ 6:32pm 
Er, actually what Richard suggests will not work. The programing block can only run one CodeBlock at a time. It does not have multi-threading capability. Only the first action in the timer block will be able to run, the others would be ignored. You would need multiple Easy Automation Programming block/timer Block combos to execute multiple CodeBlocks at the same time. 2 for 2 CodeBlocks at the same time, 3 for 3 CodeBlocks at the same time and so on.
Richard Asgard 24 May, 2016 @ 12:57pm 
@Eldser Yes it's possible, just create another timer block and inside it's "Setup actions" just add your Automation programming block as many times as you want, each with it's own argument for your code block, then assign a button to "Trigger Now" your timer.