cybutek / kerbalengineer Goto Github PK
View Code? Open in Web Editor NEWKerbal Engineer v1.0 (current in-development build).
Kerbal Engineer v1.0 (current in-development build).
While trying to test and verify a kOS script, I found that when the eccentric or mean anomaly from the orbital category is displayed, the number shown is the radian value, but it is displayed as if it is in degrees. For the sake of consistency with the rest of the displayed values, I would recommend converting both values to degrees (rather than fixing the unit display).
When displaying latitude on a HUD, KER displays all coordinates from 0°0'1" S to 0°59'59" S incorrectly as "N" instead of "S". Basically everything north of 1° S is displayed as N.
I have examined the release DLL with ILSpy and the resource type logging is still there and the KIDS support isn't so I guess you did something silly when building the release.
I'm a left-handed user, and I like being able to use the backslash key in my vessel controls, but currently it doesn't seem that there's any way to get KER not to use it for its show-hide button. Is there any chance we could get an option in the config UI to change the key KER uses?
Version 1.0.14.1
When I am trying to load an old savegame all my ships are being removed to due a missing "EngineerChipFlight". Am I missing something?
Many mods are built such that they can be unzipped from the top level with files falling where they should in GameData/. This is a big help when attempting to maintain mod configuration with updates.
Similarly, many mods provide CHANGES.txt or README.txt which are beneficial to users. Unfortunately, leaving these files with generic names in the top directory leaves them prone to being overwritten.
It would be nice if KerbalEngineer/ was under GameData/ in the zip, and also if CHANGES.txt were renamed to GameData/KerbalEngineer/CHANGES.txt or GameData/KerbalEngineer-CHANGES.txt or something of that sort.
Thanks!
I'd rather have them more in the middle since I have blizzy's bar on the left and the app launcher on the right. This doesn't have to be exposed in the GUI I wouldn't mind just editing the xml files
model000 is in a folder named textures it seems to be looking for it (Edit: in the main folder
so I copied it to the main folder) and the error is gone
This same issue occurs for the same reason in both 1.0.12 and 0.6.2.12
[LOG 21:09:05.237] Load(Model): Engineer/Engineer7500/model
[ERR 21:09:05.240] Texture 'Engineer/Engineer7500/model000' not found!
Thanks
A stage with a very large fuel tank is not considered distinct from its parent. Here, stage 0 will clearly continue burning after stage 1 is emptied and jettisoned, but KER doesn't think so:
It appears to think the center engine will be started alone and its tanks emptied before the side engines are fired, but that's not reflected in the TWR numbers.
The exact same fuel (and dry weight), but this time with X200-32 tanks instead of Jumbo-64s, results in a correct staging prediction and dV calculation:
I don't have any screen shots at present, but I'll gladly take some as this has bit me in the ass before.
Reported in forum thread. This appears to simply require the correct values to be passed into the simulation code.
I use a custom HUD with KERs excellent Time to burn, Burn dV and Burn time parked next to the stock maneuver node dV display. It would be excellent to be able to add the node's projected Ap and Pe to this area. Would save a lot of the nonsense of trying to click on the stock markers to display the values and keep at the things I care about when dragging out a node in one place.
Is it possible to get all the data which is found in KER outside of the game? Can you analyze the craft file to get delta V, stages, mass etc.?
If not, it would be really fantastic if there was an export data option that dumps all the vessel information into a JSON file somewhere in the game directory. This would help immensely in a website project I am doing where I need all this vessel information and show it on the website.
Some wings such as the delta wing can contain fuel. When attached radially to a fuselage they cross-feed, but this is not taken into account and fuel lines must be used for correct dV calculations.
I haven't looked at the code yet, so this is just an initial query. I really love using KER in the editor scene and love the little part info windows you get on middle click.
If possible I would like to add additional information to this window for parts that are handled by TestFlight. Things like current data and reliability.
See this screenshot of one of my large vessels...
http://i.imgur.com/25wUbAz.jpg
Looks like the mass formatter needs to change the units when over certain amount.
As of recently, physicsless parts (PhysicsSignificance=1) are not massless anymore, but rather, they impart their mass to the parent-part that they're attached to.
If this is the case, attaching a physicsless part to the side of something should increase it's mass, but not induce any torque. Yet KER seems to be assuming torque would occur:
The issue is discussed here in the KER forum.
In some situations, the resourceMass and totalResourceMass values I'm fetching from KER do not seem to make sense. Using the Kerbal X as an example; here's a readout of the stages in the editor:
"Mass" and "Total Mass" are fetched directly from Stage.mass and Stage.totalMass. Here's my vessel info panel on the pad before staging at all:
The slight difference in total mass is the fault of another mod of mine, but is consistent. However, the reported Resource Mass of 145 tons is necessarily incorrect. "Resource Mass (stage)" is Stage.resourceMass and "Resource Mass" is Stage.totalResourceMass.
Here's the panel again after releasing the launch clamps (so we've staged twice):
The fuel mass in two nacelles is 400 * 3 * 2 * .005 = 12 kg. In all 6 nacelles it's 36 kg. There's another 48 kg in the center stack. None of those values or any reasonable sum seem to be represented here. Also, the 25.806 value does not change as fuel burns.
When the first pair of nacelles runs out of fuel, but before they're decoupled, the readouts change:
Again, both resource values reported much be incorrect, as they are equal to or greater than the total craft mass.
When the first pair of nacelles are decoupled (so we've staged one more time), it changes again:
As a temporary workaround, I have hacked access to baseMass at the stage level into my local fork.
Let me know how I can help!
Kerbal Construction Time has a simulation feature, which when used switches to a new launch using something other than the normal launch button. As a result, sometimes the KER window is behind the button and so KER's KER_BuildAdvanced lock doesn't get cleared, resulting in the vessel being uncontrollable.
Would you please also add a check to unlock any input locks on scene change from the editor to any other scene?
Was wondering if it might be at all possible to add an atmospheric toggle in the VAB gui's Compact View.
Eccentricity currently only displays down to 3 decimal places while Inclination goes down to 5. Would it be possible to boost Eccentricity to 5 to match?
I often want to manage how the fuel burns in the tanks by locking the tanks or crossfeed. Sadly, this also makes Engineer to give wrong DeltaV reports.
If possible, I would love that the calculation considers all tanks of fuel as immediately available.
spams
[Log]: KerbalEngineer -> 2001413032
The "phase angle" is displayed in "rendez-vous" information when a target is selected.
Currently only 2 cases seem to be handled correctly:
I think the algorithm could be a bit more generic, and search the closest common ancestor between me and my target, and take its 2 descendants' orbits.
Example: I am orbiting Laythe and want to get back to Kerbin. Currently I think KER is displaying a meaningless angle between Laythe and Kerbin.
Sun > Kerbin(target)
Sun > Jool > Laythe > Ship
The common ancestor is the Sun. The 2 descendants are Kerbin and Jool. The phase angle displayed would be that between Kerbin and Jool.
I think the calculation is easy (sorry I'm not familiar with the language and don't have windows so I cannot do it); the challenge would be to show to the user somewhere what bodies are used. However, the current situation is already quite cryptic, so not showing anything would not be a regression.
This was all tested in a fresh install of 0.90 / 32bit with Kerbal Engineer being the only mod installed.
With the root part being the command pod, mass is calculated normally. This is the control craft for the test.
https://i.imgur.com/ZTIa1es.png
When you select a different root part, it does not account for all of the stages and miscalculates mass.
Below are 2 examples.
First is a fuel tank being the root part, in the 2nd of the 3 stages that provides thrust. Here it is ignoring the stage above the root part and its mass. I saved and reloaded this craft, and the error did not correct itself. I've checked the staging order and it is still correct like it is control craft above.
https://i.imgur.com/YvGdSmp.png
Second is a fuel tank being the root part on the last thrust providing stage, with only the command pod and its separator above it. Here it does not account for the command pod attributing to the mass of the stage. Like in the example above, I saved and reloaded this craft, and the error did not correct itself. I've checked the staging order and it is still correct like it is in the control craft.
Made an inline comment here:
Not a C# programmer, but I believe it's case sensitive. If I'm wrong, just ignore.
The current UI for selecting a reference body is a bit clunky. The buttons take up a lot of space and, with Kopernicus, this is likely to get much worse.
My suggestion for the UI would be to change the "Reference Bodies" button to a "Body: [current]" button that opens a menu that lists all the bodies that orbit the sun with a sub-menu off each that lists the moons.
Once I'm done with the "decoupled root" simulation I'll probably switch to do further changes to this version instead and will take a look at this (if it hasn't been done by then).
The current thrust value displayed on the vessel panel does not seem to take prop requirement met value into account. Tested using the J-X4 Whiplash engine.
Screenshots of issue provided by "LunchboxSuperhero":
http://imgur.com/a/UAvjn
Hi! I just noticed that Kerbal Engineer causes a massive framerate drop (to about 0.2 fps), when the ship is on escape Trajectory out of the sun, while showing time to apoapsis/periapsis data.
Disabling the all sections with the time to Periapsis/Apoapsis readout fixes the Framerate, enabling it causes it to drop again.
I am making this suggestion do to the frequency I have to switch between atmospheric and non-atmospheric or between different bodies during my rocket construction to check my numbers. This would allow you to fine tune a rocket much more accurately, allowing for taking into account what altitude you expect each stage to be at on launch. It would also allow easy checking of values for rocket that may launch from Kerbin, land on a body with atmosphere and return. Right now to check their values you'd have to switch several times for each stage and then for small alterations to the upper stages you'd have to switch even more for sanity checks.
Hi.
Just playing around with kOS and KerbalEngineer and faced to absence of sensors to detect ground.
And what if KerbalEngineer module becomes sensor and then we can probe it from kOS.
Something like this
public class FlightEngineerModule : PartModule
{
[KSPField(guiActive=true)]
public float slope = float.NaN;
[KSPField( guiActive = true )]
public float heading = float.NaN;
//[KSPField( guiActive = true )]
//SlopeReadoutField slopeReadoutField;
/// <summary>
/// to avoid onUpdate
/// </summary>
[KSPEvent( active=true, guiActive = true, guiName = "Measure Surface data" )]
public void measureSurfaceData() {
///get all surface and update probes.
///right now just slope @ head
ReadoutModule slopeReadout = Readouts.ReadoutLibrary.GetReadout( "Surface.Slope" );
// tbd ReadoutModule as PartModule.
// now design breach!
// BAD BAD BAD BAD BAD BAD
Slope sl = (Slope)slopeReadout;
sl._Update();
this.slope = (float)sl.slope;
this.heading = (float)sl.heading;
//this.slopeReadoutField.slope = slope;
//this.slopeReadoutField.heading = heading;
}
public override void OnStart(StartState state) {
//if ( slopeReadoutField == null ) {
//// slopeReadoutField = new SlopeReadoutField();
//}
}
}
in slope readout I have to break routine into two different:
public class Slope : ReadoutModule
{
public double slope = float.NaN;
public double heading = float.NaN;
#region Constructors
public Slope() {
this.Name = "Slope";
this.Category = ReadoutCategory.GetCategory( "Surface" );
this.HelpString = "Shows the slope of the terrain below your vessel.";
this.IsDefault = true;
}
#endregion
#region Methods: public
public override void Draw(SectionModule section) {
this._Update();
this.DrawLine( this.GetSlopeAngleAndHeading(), section.IsHud );
}
//public override void Update() {
// base.Update();
public void _Update() {
var mainBody = FlightGlobals.ActiveVessel.mainBody;
var rad = ( FlightGlobals.ActiveVessel.CoM - mainBody.position ).normalized;
RaycastHit hit;
if ( Physics.Raycast( FlightGlobals.ActiveVessel.CoM, -rad, out hit, Mathf.Infinity, 1 << 15 ) ) { // Just "Local Scenery" please {
var norm = hit.normal;
norm = norm.normalized;
var raddotnorm = Vector3d.Dot( rad, norm );
if ( raddotnorm > 1.0 ) {
raddotnorm = 1.0;
} else if ( raddotnorm < 0.0 ) {
raddotnorm = 0.0;
}
this.slope = Math.Acos( raddotnorm ) * 180 / Math.PI;
if ( slope < 0.05 ) {
this.heading = float.NaN;
} else {
var side = Vector3d.Cross( rad, norm ).normalized;
var east = Vector3d.Cross( rad, Vector3d.up ).normalized;
var north = Vector3d.Cross( rad, east ).normalized;
var sidedoteast = Vector3d.Dot( side, east );
this.heading = Math.Acos( sidedoteast ) * 180 / Math.PI;
var sidedotnorth = Vector3d.Dot( side, north );
if ( sidedotnorth < 0 ) {
heading = 360 - heading;
}
}
}
}
#endregion
#region Methods: private
private string GetSlopeAngleAndHeading() {
try {
string result = double.IsNaN( slope ) ? "--°" : Units.ToAngle( slope, 1 );
result += " @ " + ( double.IsNaN( heading ) ? "---°" : Units.ToAngle( heading, 1 ) );
return result;
}
catch ( Exception ex ) {
Logger.Exception( ex, "Surface->Slope->GetSlopeAngleAndHeading" );
return "--° @ ---°";
}
}
#endregion
}
later i will provide patches if you want.
But it looks like it leads to some high redesign of Readouts to layout it into PartModules or IConfigNode.
The simulation code will fail to stage if the parts being decoupled include "sepratrons" (either real, fake or even liquid fuel "whackjob" specials) if there are still active engines that use the same type of fuel as the sepratrons. This happens in some obscure designs (e.g. Whackjob's launch system that uses LV-T30 engines as sepratrons, or this solid-only rocket https://www.dropbox.com/s/1p6c9ic78povhmj/SepIssue.craft?dl=0).
The result is that the simulation doesn't activate the next stage until all the engines have stopped which lumps the deltaV into the first stage and gives a much lower value (as if you did the same while flying).
The problem is caused by the simulation code not staging while there are resource types that are currently being burned in the parts that will be decoupled by the next stage even if the parts in question can't actually be drained during the current stage.
This will not be trivial to fix (in an efficient way) in the current code. The plans I have for the VesselSim restructure will make this easier so I will fix it as part of that. I will open a pull request for it once I start implementing more than "proof-of-concept" stuff...
I've been getting this crash very often out of KER. It may have something to do with the interplay between mods but that's only a suspicion. I used to have just MechJeb and KER installed and I don't think I got this crash as frequently as I do now. Here's what's in the log:
[WRN 13:38:59.362] [HighLogic]: =========================== Scene Change : From FLIGHT to EDITOR =====================
[LOG 13:38:59.382] 5/17/2015 1:38:59 PM,KerbalAlarmClock,Scene Change from 'FLIGHT' to 'EDITOR'
[LOG 13:39:00.384] KerbalEngineer -> SimManager.StartSimulation() //
[LOG 13:39:00.385] KerbalEngineer -> at (wrapper managed-to-native) UnityEngine.Component:InternalGetTransform ()
at UnityEngine.Component.get_transform () [0x00000] in <filename unknown>:0
at KerbalEngineer.VesselSimulator.PartSim.Initialise (.Part thePart, Int32 id, Double atmosphere, KerbalEngineer.LogMsg log) [0x00000] in <filename unknown>:0
at KerbalEngineer.VesselSimulator.Simulation.PrepareSimulation (System.Collections.Generic.List`1 parts, Double theGravity, Double theAtmosphere, Double theMach, Boolean dumpTree, Boolean vectoredThrust, Boolean fullThrust) [0x00000] in <filename unknown>:0
at KerbalEngineer.VesselSimulator.SimManager.StartSimulation () [0x00000] in <filename unknown>:0
[LOG 13:39:00.385] KerbalEngineer -> Object reference not set to an instance of an object
[LOG 13:39:00.385] KerbalEngineer -> at KerbalEngineer.Flight.Readouts.Vessel.SuicideBurnProcessor.Update () [0x00000] in <filename unknown>:0
at KerbalEngineer.Flight.FlightEngineerCore.UpdateModules () [0x00000] in <filename unknown>:0
[LOG 13:39:00.566] [FlightEngineer]: Destroying Floating Window for HUD 1
[LOG 13:39:00.566] [FlightEngineer]: Destroying Floating Window for HUD 2
[LOG 13:39:00.566] [FlightEngineer]: Destroying Floating Window for HUD 1
[LOG 13:39:00.566] [FlightEngineer]: Destroying Floating Window for HUD 2
[LOG 13:39:00.572] 5/17/2015 1:39:00 PM,KerbalAlarmClock,Destroying the KerbalAlarmClock-KACFlight
[LOG 13:39:00.572] 5/17/2015 1:39:00 PM,KerbalAlarmClock,AppLauncher: Destroying Button-BEFORE NULL CHECK
This is with KSP 1.0.2 and KER 1.0.16.6 on Mac OS X 10.10.1.
I'm just filing a ticket to see if we can get the Curse link officiall updated to the version for KSP 1.0.5
it seems tha the latest branch doesn't recognize that jet engines pull fuel equally even if not connected by fuel lines or connected directly. The dV readings in the SPH and in flight are wrong
Would it be possible to have readouts related to the upcoming maneuver node such as:
All data would be reported as expected at the point in time at the node, and would include any changes from planned dV changes.
Hi!
I seem to get the following a lot in the logs while building in VAB, not sure what causes it tho, haven't found a way to reproduce it reliably. KSP 1.0.2, the only other mod is FMRS.
This is on 1.0.16.6.
I do have issues where I suddenly can't remove parts, and at the same time new parts get instantly placed under the menu, but not sure if it's related (could just be a 1.0.2 issue).
[LOG 19:45:44.711] KerbalEngineer -> Object reference not set to an instance of an object
[LOG 19:45:44.711] KerbalEngineer -> at KerbalEngineer.Extensions.PartExtensions.GetModuleMultiModeEngine (.Part part) [0x00000] in <filename unknown>:0
at KerbalEngineer.Extensions.PartExtensions.GetProtoModuleEngine (.Part part) [0x00000] in <filename unknown>:0
at KerbalEngineer.Editor.BuildOverlayPartInfo.SetEngineInfo () [0x00000] in <filename unknown>:0
at KerbalEngineer.Editor.BuildOverlayPartInfo.Update () [0x00000] in <filename unknown>:0
[LOG 19:45:44.725] KerbalEngineer -> Object reference not set to an instance of an object
(Likely) new in KSP 1.0.5. Any stage with only jet engines will be hidden from the stage list in VAB/SPH and be reported as having zero dV on the in-flight dialog.
Hello,
I was monitoring my KSP.log file and found that this error was constantly repeating itself in the log as I was flying:
[LOG 10:55:43.545] KerbalEngineer -> Object reference not set to an instance of an object
[LOG 10:55:43.545] KerbalEngineer -> at KerbalEngineer.Flight.Readouts.Rendezvous.RendezvousProcessor.Update () [0x00000] in :0
at KerbalEngineer.Flight.FlightEngineerCore.UpdateModules () [0x00000] in :0
It should be noted that this started happening just as I entered flight from the VAB, and there would not have been time for me to choose a target.
With a vanilla KSP and only KerbalEngineer 1.0.19.1 and ProceduralParts 1.1.8 installed the log gets flooded with "stdCost: 0" entrys.
I want my vessel name on the screen (using those nice backgroundless windows) for two reasons:
Asked for by MatterBeam on the forum: http://forum.kerbalspaceprogram.com/index.php?/topic/17833-105-kerbal-engineer-redux-v10194/&page=110#comment-2406422
Hello Cybutek, thanks for the amazing KER mod o7
However I seem to have run into an issue that I thought worthy of reporting:
Setting up a maneuver node to get a Kerbin intercept from Moho. I notice that Kerbal Engineer Redux, seems to have an issue with displaying to correct Node Angle to Prograde number. The number jumps several times when sliding around the node on the orbital trajectory line.
Also: removed all other mods except KER, but issue still present. Not saying any of the other mods did not trigger the issue beforehand obviously.
Youtube video of problem description: https://youtu.be/pseae3-QdrQ
My mods-list: goo.gl/zqJruI
Thanks for your time.
UBERKalti
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.