Space Engineers

Space Engineers

XPAR Mimir (OBSOLETE)
Using Mimir to replace complex Timer structures(Timer bools, Timer delay emulation)
So far I love this thing, but i've hit my first quandry. I use some of the timer's on and off states as bools and mode switches (turn one off and another on to change behaviors and break from a loop)

Can Logic be called from the Cached Commands? Same with setting variables.

Likewise is there a way for logic to call a cached command?

if so this thing will be able to replace ALL of my timres
< >
Se afișează 1-13 din 13 comentarii
Animal 11 iul. 2015 la 6:01 
Except the Heartbeat of course
Craig P  [dezvoltator] 11 iul. 2015 la 6:32 
You can use the line

Apply("Some Cached Command")

in the logic or UI function, it'll work fine. In fact, you can call cached commands from within cached commands.

But calling logic or UI functions from within a cached command is a serious recursion risk - what are you trying to do? There's probably a better way to do it.

To set an arbitrary boolean, use

Set("Arbitrary boolean of any name") in the code, or
"Set(Arbitrary boolean of any name)" in a cached command/run call argument

Use UnSet to clear it.

You can check the state of them in the UI or logic functions using IsSet.

Right now, there is no way to check a value in a cached command/run call argument, because I don't know how that would work.
Animal 11 iul. 2015 la 7:00 
I think i worked it out, on pen and paper

If (IsSet(triggerbool)) // emulates Trigger Now;
{
If (IsSet(BehaviorA-On); //Behavior A looks for more rock to mine, Continuing Mining Loop
{
Apply(CachedcommandA;
Unset(triggerbool):
}
Else If (IsSet(BehaviorB-On); //Behavior B Initiates the return home, Breaking out of the mining loop
{
Apply(CachedcommandB);
Unset(triggerbool):
}

And let the cached commands set to "On" bools
Craig P  [dezvoltator] 11 iul. 2015 la 7:25 
Yeah, the logic's right.
Animal 11 iul. 2015 la 7:27 
That's a relief, this is the first time I've really tried to put together any kind of code in over 10 years, even if it's simplified by mimir. That and the last thing I coded in was TiBASIC, so this is completely different. Though if it were TiBASIC I'd probably have this thing doing a victory dance by now, LOL
Craig P  [dezvoltator] 11 iul. 2015 la 7:46 
If it's been a while, I really, really recommend using Scite or Visual Studio or MonoDevelop. You don't want a clumsy " or : to stymie you.
Animal 11 iul. 2015 la 11:20 
I'm getting "Name does Not exist in this context" errors when trying to use "if (IsSet(name))" in custom logic
Craig P  [dezvoltator] 11 iul. 2015 la 11:27 
Yeah, if it's in code, you need to pass a string:

if (IsSet("Name"))
can u suggest me a way to lock landing gears when a connector is locked and unlock them when it's unlocked plz?
Craig P  [dezvoltator] 13 iul. 2015 la 11:20 
@Mars: Well, that depends on whether those blocks have functioning isLocked properties. They're specified in the code, but I haven't tried them. I'll try them tonight and report back.
Craig P  [dezvoltator] 13 iul. 2015 la 13:26 
@Mars: OK, check the "snippets" discussion, and make sure to use the version of Mimir I just released.
Ok thanks!
Can I use custom names for landing gears with that code? Or it affect all the landing gears?
Thanks again
Craig P  [dezvoltator] 14 iul. 2015 la 6:13 
That code affects all things with "Gear" in the name: "*Gear". If you want, you can name specific landing gear by removing the star, or use different key words.
< >
Se afișează 1-13 din 13 comentarii
Per pagină: 1530 50