I just released a new beta update for SR2 on the experimental
branch on Steam. I've added a ton of new features to Vizzy and I wanted to get this tonight out so you could check it out over the weekend for those who are interested. The new update includes support for vectors and lists and a ton of new expressions, instructions, and other enhancements.
I've done a lot of polishing on the UI so hopefully, the plethora of dropdown boxes are a little easier to understand.
I've also added a way to view log messages from your programs by clicking on the part and then clicking View Log in the part inspector.
Here are the current list of changes:
VIZZY FEATURES
- Added support for vector operations: angle, clamp, cross product, dot product, distance, min, max, project, x, y, z, length, and normalize.
- Added support for lists/arrays to Vizzy: add item, insert item, remove item, set item, remove all, sort, reverse, set list, item of, length of, and index of.
- Added dialog to add Custom Instructions and Custom Expressions in Vizzy.
- Added View Log button in part inspector
- Added for loop instruction to Vizzy.
- Added instructions to set a part's name, activated state, and to cause it to explode.
- Added expressions to get a part's ID from its name, activated state, position, part type, temperature, min/max part IDs in the craft, and the ID of the part executing the flight program.
- Added icons and tooltips to dropdown lists and expand their width to show all items.
- Added Frame Delta Time, Time Since Launch, and Total Time to Vizzy expressions.
- Added Craft Position, Craft Planet, Heading, Pitch, Bank Angle, Angle of Attack, Side Slip, North, East, Craft Direction, Craft Right, Craft Up, Target Position, Target Velocity, Target Name, and Target Planet to Vizzy.
- Added Planet expression: Planet Mass, Radius, Atmosphere Height, Solar Position, Child Planets, Crafts, and Parent.
- Added expression to convert a lat/long/AGL to and from a position vector.
- Allow support for a dynamic number of arguments for the "join" expression in Vizzy, which makes string joining much easier.
- Added Change SOI event to Vizzy.
- Added Part Explode event to Vizzy.
- Added Part Collision event to Vizzy.
- Added log message instruction.
- Added atan2 to Vizzy.
TWEAKS
- Create an undo step prior to saving a flight program to the craft so the user can undo to recover their flight program as it was before it was saved.
- Changed CraftProperties AngularVelocity to a vector instead of a number.
- Enhanced text inputs in Vizzy to remember their text when replaced with an expression that is later removed.
BUGS
- Fixed a bug that prevented targeting crafts with Vizzy.
- Fixed a bug where clicking Retry on a downloaded sandbox would load the incorrect craft.
- Fixed a bug where Vizzy incorrectly set Slider2 when it was instructed to set Slider1 (and vice-versa).
- Fixed a bug where Vizzy used the incorrect deltaTime during warp modes.
- Fixed a bug where the "Fuel All Stages" property would never report 0.
@TheAllMightyEgo They said it’s not happening
Why no surface velocity acceleration why
hey andrew there is one thing about this game that i would LOVE if you added is multiplayer i know it one of the most technical aspect of a game and requires the most coding but that would be really cool if you added it
@disisto4433 Still not possible, since this kind of game has physical rendering range. You can however put second/third command chips on the booster and run the landing program on the core. Multiple crafts with respective command pod with programs are currently possible.
@AndrewGarrison can you add a block to communicate with multiple command chips or pods even if they are not connected. It would make landing a stage automatically possible, while keeping the rest of the rocket.
@AndrewGarrison - the log viewer has newer messages on top. This feels upside down. I get confused about which way a signal is trending.
@AndrewGarrison - will there be a way for mods to add custom Vizzy blocks?
Waiting for mobile update
@AndrewGarrison that's great! Having part coordination is super exciting.
@AndrewGarrison That's amazing, even more than what we dreamed of :)
Having the part as reference may allow for better AGL estimations
I also added a new string expression that makes string formatting much easier. It uses C#'s String.Format method.
I added a new expression to convert a vector between local and PCI coordinates. If no part ID is specified, then it will use the craft's local coordinate system (X = pitch axis, Y = yaw axis, Z = roll axis). If a part is specified, then it will use that part's local coordinate system. Hopefully, this will help you accomplish what you wanted with matrix calculations. This is about as complex as I can go at this point. @pedro16797 @swope @AnotherFireFox
I need matrices so that I can convert vector frame ;_;
NED (north east down) is common in aerospace, but scientists tend to use ENU (east north up).
If the eventual career mode involves science, maybe an ENU option would be good, too.
@AndrewGarrison - does the vector class have a property for its own frame?
It might make it easier on most folks not to have to know the input frame for the conversion.
@AndrewGarrison - maybe an axes conversion block with options for the output frame:
Maybe I'm trying to make it too general...
@AndrewGarrison if you trigger an error message (item in 0 in List for example) the error message box sticks for a while after fixing it without any text
@AndrewGarrison that would be helpful
@swope I could add a PCI To Local and Local To PCI transform operations that take a vector and return a vector.
@pedro16797 Thanks, it will be fixed in the next update.
@AndrewGarrison I've found a bug with the interface between Vizzy and the input controllers. Setting a variable doesn't pass the value to the input controller, but updating it does
In this example it has a piston using the "ra" variable and without the change variable by 0 block it doesn't read the change in the variable, not sure why.
@huuminberd Android allows xml editing too
@Oscarcarserud For side boosters, external fuel tanks etc you could try using mass as the condition.
@Oscarcarserud simple as compared to a deep simulation with every conceivable variable in atmospheric conditions, orbital perturbations, mechanical inconsistencies, noise, etc, etc. Not simple as in easy.
There's a lot more that can be done using XML if you're on PC. I'm not entirely sure what the advantages are of having script on individual parts other than Vizzy variables are not global. You don't for instance have to have a separate script for a part which requires an input, receiving a value from a main controller and passing it on. That might be useful or it might be pain. I don't know.
@huuminberd
It is after all called ”simple” rockets. So I think a valid answer is ”complexity”. OK. Abandon individual throttle controll. But individual stage fuel tank? As of now if I at the same time my rocket burn its side booster and its main engine, I have no idea of time to separation because I only get the combined fuel tank value. If I put a VIZZY script in a stage, I thing I chould get local properties, aka the stages fuel, the stages throttle. Why else have the opurtunity to put scripts into objects. I am an old lover of HyperTalk so I love when objects have scripts. But then again, Hype-Super-Meta script programming fammily was slow and hard to implement.