Jump to content

[0.90] Magic Smoke Industries Infernal Robotics - 0.19.3


sirkut

Recommended Posts

That's a really situational question. If you could also allow speed to be tweaked with an action group, it wouldn't be a problem (especially with AGX). But I can see it becoming very confusing or difficult to sus-out a particular part for speed control. And gods help the poor soul trying to do that to many parts in symmetry or many parts that aren't even related if it's not adjustable with action groups.

Link to comment
Share on other sites

That's a really situational question. If you could also allow speed to be tweaked with an action group, it wouldn't be a problem (especially with AGX). But I can see it becoming very confusing or difficult to sus-out a particular part for speed control. And gods help the poor soul trying to do that to many parts in symmetry or many parts that aren't even related if it's not adjustable with action groups.

The other option is keep the Servo Control speed box but allow the person to tweak speed values individually, if the value differs, use the tweaked value on that part. Thoughts on that idea?

Link to comment
Share on other sites

Alright, so, registered here just so I could share my embarrassment..

I've only really started playing KSP since 0.23.5 was released, and fairly quickly started adding mods. Ever since, i've been struggling to get IR working - Parts weren't moving and the Toolbar icon wasn't showing. I tried a lot of things, read ~100 pages of this dev thread, and wasn't far from posting here to give a bug report / cry for help.

Then, the programmer in me thought "naaaahh, there has to be something stupidly simple that's wrong", so I checked GameData for the 34523456th time. I noticed DamnedRobotics was still installed.

Removed it, everything works perfectly..

So, for any noob who didn't do their research, like me - They're not compatable. Just... don't do it.

@sirkut: Maybe chuck in a line in the OP that mentions this :) if for no other reason than filtering out some potentially stupid bug reports..

Here lies my dignity.

On another note - keep up the excellent work guys, it's always great to see a good community supporting good developers.

Link to comment
Share on other sites

I'll reiterate the answer I PM'ed sirkut with earlier. We should have a speed multipler in the IR window AND on the tweakable. In my mind the one in the window allows you to control the global speed of your action, so is pretty much the go-to one for all situations. A speed multiplier on each part would merely be used to compensate for the range of your part. For instance one of my new pivotrons rotates 90 degrees, and the hinges rotate 180. This multiplier would be used to half the speed of the first hinge so that they both get to their start and end positions at the same time. In the part I've done this with two separate groups, which not only makes things conceptually more difficult to manage but means you can't perform both at the same time. Having both multipliers gives you this flexibility.

Idea for 2 new parts I think the community would enjoy:

Stack mounted part that folds out 2 engine mounts from near center to far enough out to make the rocket exhaust clear the stack, would allow slim mounting of radial engines for those of us using FAR

Yea, what sirkut said :P

Next part has a similar purpose, but instead of allowing engines to pop out it would allow you to attach components in a radial fashion without having to use radial docking ports.

How to describe it? Imagine a cylinder, it's sliced up into several discs that interlock into a solid enough cylinder, on the outside of the cylinder are symmetric vertical protruding lines, same number of lines as there are discs, say 4, each disc has a rotating pivot in one of the lines, from the top/bottom the action of the part deploying would look like one circle turning into 5, one in the middle and 4 around it.

Obviously the discs wouldn't be completely solid, there would have to be come curves missing to allow for internal structure of the main cylinder without blocking the pivoting action if that makes sense.

The 4 discs that fold out could either be docking ports or allow for mounting docking ports on a node, dock fuel tanks and engines to each circle to make an engine cluster in space.

The nature of the mechanism would stagger each ring on the vertical axis a bit, not sure how big of an issue that would be.

A 1.25, 2.5 and 3.75 version would make sense I think, question is how many radial circles per part? could perhaps make it only 2 and have people use several to get the number they want, I think using 3 each one turned 120 degrees to get 6 total would work nicely etc.

I too have difficulty grasping this idea, could you perhaps draw a picture? Also, what you describe sounds like a single part with multiple robotics elements within it. This is not possible with IR, and goes against its construction style, since it's my job to give people the tools to make such devices rather than offer the complete things. For example, my phoenix implementation is many different parts that 'can' be assembled to have engines come out, but could have many other uses. Try and break your idea down to see what unique parts are required.

Link to comment
Share on other sites

Alright, I got the individual tweak speed added to the code. Now the next question is, what should the individual multiplier be? Currently I have:

minValue = .1

maxValue = 5

stepIncrement = .1

What would everyone feel would be a good range/increment to be?

Link to comment
Share on other sites

Just from my experiences with IR, I rarely go above 5 for anything "useful." The "pogo option" for liftoff has been really the only reason for exceptionally high speeds from linear driving parts. On the other hand, I think people have used large rotatrons for rover wheels at some point, so they might actually have a use for a higher speed setting.

Link to comment
Share on other sites

awesome work sirkut!, the tweakable speed will be great! :)

What's the problem in letting the higher limit go high, like 100x or something?, People will still be able to use 4x if they want, and if someone tries to use IR for anything we can't think about (will happen) then we all have the chance to set some stupidly fast things :P

On the other hand, if you want to keep it more realistic, some rotatrons could go at about 10.000 rpm

Link to comment
Share on other sites

Well keep in mind that this is for the tweakable speed. There will still be the Servo control speed textbox that a user can place a number in. Here's a scenario:

The group speed is 5

Tweakspeed (I need a better name for the tweak label for Speed) for the right hinge is 1

Tweakspeed for the left hinge is 0.5

Right hinge moves at 5x speed.

Left hinge moves at 2.5x speed.

As you can see the travel is different when I actuated the movement of the parts.

0FxkidV.png

Link to comment
Share on other sites

Awesome, I can finally upgrade to ARM. I am so jazzed for all the new options. No more .cfg tweaks and part reloading. This and the new procedural parts and I may never have to open a .cfg again.

I assume the new plugin will still operate my custom parts. I'll try it out tonight. I can release my hovertank now too. Sirkut you are a gentlemen, scholar, and captain of industry

Edited by clown_baby
Link to comment
Share on other sites

Awesome, I can finally upgrade to ARM. I am so jazzed for all the new options. No more .cfg tweaks and part reloading. This and the new procedural parts and I may never have to open a .cfg again.

I assume the new plugin will still operate my custom parts. I'll try it out tonight. I can release my hovertank now too. Sirkut you are a gentlemen, scholar, and captain of industry

They will work BUT you will have to make changes to the CFG that won't impact any settings. Here's an example (changes in bold):

PART

{

// --- general parameters ---

name = IRHingeTall

module = Part

author = Sirkut & Devo

// toggle parameters

MODULE

{

name = MuMechToggle

rotateJoint = True

rotateAxis = 1, 0, 0

keyRotateSpeed = 20.0

rotateLimits = True

rotateMin = -90.0

rotateMax = 90.0

rotateLimitsRevertKey = False

jointSpring = 0

jointDamping = 0

onActivate = False

rotateKey =

revRotateKey =

fixedMesh = Base

servoName = New Hinge

invertSymmetry = False

motorSndPath = MagicSmokeIndustries/Sounds/infernalRoboticMotor // Motor loop sound path

}

}

Link to comment
Share on other sites

sirkut: hey, don't let creature feep get in the way of releasing :)

creature feep? naw. People been asking for these features for far too long and I've grown tired of the constant requests for the same thing. At least then hopefully the only one I will constantly hear is "it would be nice if I could move the parts while in the VAB/SPH"

Once I resolve one issue with the movement ranges I'm ready for a release. Hopefully today???

Link to comment
Share on other sites

People been asking for these features for far too long and I've grown tired of the constant requests for the same thing.

oh yeahh, about that. my bad. Also thanks a lot for the .cfg explanation. I hope having it as a part doesn't mess with the landing gear and engine parts I have that rotate. I doubt it will

Edited by clown_baby
Link to comment
Share on other sites

oh yeahh, about that. my bad. Also thanks a lot for the .cfg explanation. I hope having it as a part doesn't mess with the landing gear and engine parts I have that rotate. I doubt it will

It really shouldn't. Aren't those wrapped in it's own MODULE declaration as well? I can't remember.

Link to comment
Share on other sites

As you can see the travel is different when I actuated the movement of the parts.

http://i.imgur.com/0FxkidV.png

Woot! This is going to be an extremely useful ability when combined with the new range sliders :D.

My only criticism is that the current method gives a lot of resolution at the high end but not enough at the low end, since the slider follows a linear scale. I tried to come up with some code to allow for a -1 to +1 scale to work, but its not trivial and isn't intuitive from a user point of view. To counteract this I suggest you have a linear slider from x1 to x5, with increments of 0.03333333333 (because 1/30 resolution allows for thirds and halves), and have a button to flip whether the speed value is a multiplier or divisor. That way you could make something be 25% slower or 25% faster.

Link to comment
Share on other sites

Woot! This is going to be an extremely useful ability when combined with the new range sliders :D.

My only criticism is that the current method gives a lot of resolution at the high end but not enough at the low end, since the slider follows a linear scale. I tried to come up with some code to allow for a -1 to +1 scale to work, but its not trivial and isn't intuitive from a user point of view. To counteract this I suggest you have a linear slider from x1 to x5, with increments of 0.03333333333 (because 1/30 resolution allows for thirds and halves), and have a button to flip whether the speed value is a multiplier or divisor. That way you could make something be 25% slower or 25% faster.

You are losing me. Why a multiplier or divisor? On the Servo Control window? On the Tweaked part?

If I want a part to go 25% slower out of 5x, I use 0.25

If I want a part to go 25% faster than 5x I use 1.25

Link to comment
Share on other sites

On the Tweaked part. The Servo Control is fine since it's a text box so any floating point value can be entered. Oh and 25% slower is 0.8 :P

What I mean is if you have a 0.1 increment there are 5 steps between 0.5 and 1. Between 1 and 2 you have 10 steps, so double the resolution despite these being x2 and ÷2. Also for some values such as 1.4 (40%) there is no direct remap to a speed decrease, the exact slider value you'd need to set is 0.7142857... which obviously cannot be done. If you want the reverse of 0.7, you'd need to put 1.4285714... I could just be overthinking it though, since really only 0.5 and 2 will be the main values people use.

Link to comment
Share on other sites

On the Tweaked part. The Servo Control is fine since it's a text box so any floating point value can be entered. Oh and 25% slower is 0.8 :P

Yup, still lost here. If I want 25% of the number 5. It would be 0.25 * 5 = 1.25 which is what is calculated behind the scenes as the customspeed variable. What I was referring to was the tweak value being 0.25. Then it wouldn't matter what the Servo Control text box would be. If it's 1x or 10x, if you want 25% of any speed, make the tweak value 0.25 Now I can adjust the step increment to be 0.01 and let the resolution lie there but I don't see how anyone would want to go any further.

Link to comment
Share on other sites

Yup, still lost here. If I want 25% of the number 5. It would be 0.25 * 5 = 1.25 which is what is calculated behind the scenes as the customspeed variable. What I was referring to was the tweak value being 0.25. Then it wouldn't matter what the Servo Control text box would be. If it's 1x or 10x, if you want 25% of any speed, make the tweak value 0.25

All that logic is sound and what I assumed you were doing anyway. I was saying that 25% slower isn't the same as 25% of a value, but that's just a technicality that doesn't relate to the main point I was trying to make.

Now I can adjust the step increment to be 0.01 and let the resolution lie there but I don't see how anyone would want to go any further.

That is certainly possible, and like I say, maybe I'm over thinking things. That being said, here's a visual representation of the suggestion I was trying to propose:

_379612f86c554fce8c4c6c2c70aa9aec

The difference here is you get the same resolution regardless of if you want the servo to go faster or slower, kind of like a Logarithmic scale.

Link to comment
Share on other sites

Ah. That's not how the tweak "scale" operates. It's just 1 increment and that's it. This would have to call for an additional tweak slider (then which would you pick?) and I'm not willing to do that just yet.

Link to comment
Share on other sites

I'm reasonably certain you could design a UI_FloatRange tweakable to have such variability in its resolution. Here's some code that would get close; be warned I'm just typing this into the forum from memory so I may have some names or syntax wrong. :P


float bigStep = 02.f; // Because that's what's in Zodius' graphic
float smallStep = 1f / 30f; // Because that's what's in Zodius' text

/*
* Probably useful to have an extension method like uiControlCurrent here, or at least
* some logic to grab uiControlEditor if we're not in flight.
*/
UI_FloatRange myScaleTweakable = this.Fields["myScaleField"].uiControlFlight;

if (this.myScaleField <= 1f && myScaleTweakable.stepIncrement == bigStep)
{
myScaleTweakable.stepIncrement = smallStep;
myScaleTweakable.maxValue = 1f;
}
else if (this.myScaleField >= 1f && myScaleTweakable.stepIncrement == smallStep)
{
myScaleTweakable.stepIncrement = bigStep;
myScaleTweakable.maxValue = 5f;
}

Now, UI_Control member updates aren't always drawn to the action menu right away, so it's possible that this wouldn't happen until the context menu was dismissed and recreated. You could probably force a dismissal, but I don't know specifically how.

Link to comment
Share on other sites

He's not using the VTOL hinge that is in the infernal robotics parts pack to do this. I would use a closed hinge to do this. Give one of those a try.

Alright thanks. I have been wasting hours of my life trying to build this ****ing harrier. I figured he would be using something different, and I think he might have been using the old Damned Robotics mod instead.

Link to comment
Share on other sites

Ah. That's not how the tweak "scale" operates. It's just 1 increment and that's it. This would have to call for an additional tweak slider (then which would you pick?) and I'm not willing to do that just yet.

Hence having an invert button to switch from MasterScale * TweakScale, to MasterScale / TweakScale, with TweakScale being from 1 to 5 :wink:. Its not that elegant though, so perhaps toadicus' code may be worthwhile exploring (not for too long though :P )

Link to comment
Share on other sites

Alright thanks. I have been wasting hours of my life trying to build this ****ing harrier. I figured he would be using something different, and I think he might have been using the old Damned Robotics mod instead.

Probably using the close hinge. Mine is a close clone of it.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...