Ezriilc

Members
  • Content Count

    1,384
  • Joined

  • Last visited

Posts posted by Ezriilc


  1. Sweet, now I have a new feature - MechJeb completely goes crazy if / when I hyperedit something into orbit. All my windows disappear for that vessel and reverts to default. Hmm.

    Correcting any errors and supporting the existing HyperEdit product is my top priority, so I plan to address this ASAP. Let me work on recreating this scenario, and I'll get back to you.


  2. Now that I feel more up to speed on this, I don't mind taking the lead on this project if you all are OK with that. I think I have the resources and time needed to maintain it, but with all the help being provided, I feel there won't be any problems there.

    So, if you all wish it, and khyperia approves, I volunteer to take over the HyperEdit project.


  3. Currently the only real way that I know how to test a dll within KSP is to use a lot of Debug.Log messages to print values or strings just to give a status of the flow.

    Yea, that's what I've discovered, which is why I'd like to create an .exe file that applies as much of the KSP API as possible to the plugin .dll, in order to trigger all the code and allow debugging to work as intended. I've already begun the process, and so far I'm not able to trigger the assembly code, but I don't see any reason why we can't make it work. We just need to make the .exe touch all the API calls.


  4. I've taken the liberty of creating a new ZIP archive of HyperEdit 1.2.1 (latest), with the new GameData folder structure, and includes the source files as well as my project properties for Visual C#.

    In the hopes that khyperia doesn't mind, I've uploaded it to my site so you all can have it. I've not changed his code, just repackaged the ZIP with the corrected source - minus the stray files. This copy has been tested by me.

    http://www.sonsofdurin.com/KSP/HyperEdit_1.2.1.zip


  5. For non-part plugins you just need the KSPAddOn attribute on your MonoBehavior derived class. Some info here:

    http://forum.kerbalspaceprogram.com/showthread.php/34013-0-20-PartTools-GameDatabase-and-new-features

    Yea, THAT's the bit about the non-part attributes. Now that makes a bit more sense.
    That I've seen.

    What would be really great, is if the professionals who own/control/profit from this game would make a concerted effort to publish, organize and maintain ALL the information needed to use EVERY function of the game, including modding. I know this is unheard of in today's game world - especially indies - but damn; that's how I'd do it. This hunting and begging for specifications and info really sucks. EDIT: Ah, who am I kidding; I love this stuff!

    Nothing but love to Squad et al. k_cheesy.gif


  6. Just the first couple are all you'd need; they're fairly short. Generally, you just need to make sure:

    - You're targeting .NET 3.5

    - You're not compiling a debug version of the assembly

    - You have Assembly-CSharp.dll and UnityEngine.dll as references

    For non-part plugins you just need the KSPAddOn attribute on your MonoBehavior derived class. Some info here:

    http://forum.kerbalspaceprogram.com/showthread.php/34013-0-20-PartTools-GameDatabase-and-new-features

    I also found this old post pretty informative:

    http://forum.kerbalspaceprogram.com/showthread.php/7529-Plugin-Posting-Rules-And-Official-Documentation?p=156430&viewfull=1#post156430

    Ah-HA! .NET 3.5... I was on 4.0. No debug, references are in place.


  7. Check out my plugin (link in my signature). It has no part; source is in the download zip file. Regarding project settings, cybutek's tutorial series is fantastic. Check it out here:

    Ah, your plugin is a great example, thanks.

    The vids look all well and good, but I find it hard to sit through video tutorials and much prefer written. I'll give them a try eventually.


  8. Another question for anyone concerned with the project.:

    Has a test executable for debugging plugins ever been made? I mean a small .exe file that can be used as a "Startup object" in the IDE, for debugging our .dll files. A quick Google search turns up nothing that jumps out at me, so I think I'll see about creating one.

    It seems to me that being able to run any sort of debug tool in the IDE might speed up the development process, and so I think that creating a test .exe should perhaps be a priority for us as a team.

    What do y'all think?


  9. Worked ! Thanks.

    So, wanna work together ? We can create a new repo or take the current (I prefer create another, since github app doesn't work for me (dl problem)), and split up work, like real team :cool:

    Yes! I gladly accept help from anyone and everyone that wishes to offer it.

    I think all we need to do is figure out what's wrong with the latest GitHub repo, since HyperEdit currently works very well and needs very little, if anything.

    I've confirmed that ShipEditor.cs and UniverseEditor.cs should NOT be in the project. The code in them has been moved to other files. But even though the build goes fine, the plugin doesn't load - I get the following in the KSP.log:

    [LOG 10:22:21.926] Load(Assembly): Plugins/HyperEdit

    [LOG 10:22:21.927] AssemblyLoader: Loading assembly at C:\MyDocs\Games\Kerbal Space Program\KSP_Game\Plugins\HyperEdit.dll

    [LOG 10:22:22.070] AssemblyLoader: Loading assembly 'C:\MyDocs\Games\Kerbal Space Program\KSP_Game\Plugins\HyperEdit.dll'

    [ERR 10:22:22.076] Exception when loading C:\MyDocs\Games\Kerbal Space Program\KSP_Game\Plugins\HyperEdit.dll: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.

    at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)

    at System.Reflection.Assembly.GetTypes () [0x00000] in <filename unknown>:0

    at AssemblyLoader.LoadAssembly (System.Reflection.Assembly assembly, System.String filePath, System.String url) [0x00000] in <filename unknown>:0

    Additional information about this exception:

    System.TypeLoadException: Could not load type 'HyperEdit.Window' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type 'HyperEdit.HyperEditWindow' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type 'HyperEdit.Extentions' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type 'HyperEdit.WindowDrawer' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type 'HyperEdit.Button' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type 'HyperEdit.CustomDisplay' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type 'HyperEdit.LanderAttachment' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type 'HyperEdit.Window' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type 'HyperEdit.Window' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type 'HyperEdit.Window' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type 'HyperEdit.Window' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type 'VelChangeDir' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type 'EditMode' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type 'HyperEdit.Window' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type 'HyperEdit.Window' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type 'HyperEdit.Window' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type '<>c__DisplayClass1`1' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type '<>c__DisplayClassa`2' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type '<>c__DisplayClassd`2' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type '<>c__DisplayClass1' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type '<>c__DisplayClass4' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type '<>c__DisplayClass8' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type '<>c__DisplayClass11' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type '<>c__DisplayClass4' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type '<>c__DisplayClass6' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type '<>c__DisplayClass3' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type '<>c__DisplayClassd' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type '<>c__DisplayClass4' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type '<>c__DisplayClass9' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    System.TypeLoadException: Could not load type '<>c__DisplayClass4' from assembly 'HyperEdit, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null'.

    At this point, I'm pretty sure it's just something wrong with the project settings regarding how references are linked, but I don't know enough about compiling to see it. So, it's kinda on you experts to find it, unless I get lucky, and I will keep trying.


  10. Updated the git.

    Note that I am no longer working on HyperEdit, as well as not being in the KSP community much at all anymore. If you'd like to take over development, or know someone who will, please tell me. I haven't found anyone willing to take it up.

    Ok, so it looks like we have an incomplete update on GitHub. The file ShipEditor.cs is the same in the new version as the previous, but the new plugin doesn't have the buttons described in the file, so I'm sure it's not the correct file for the new version.

    kypheria, any chance we can find that updated ShipEditor.cs file and maybe your IDE project files? These guys seem to be plenty good at this, but it might speed up the process. :wink:

    It appears that ShipEditor.cs and UniverseTools.cs should don't belong in the new project. I've removed them and the project builds with no errors. I'm loading KSP with it in place now to see if that's the only build problem. [it wasn't]

    EDIT: I've no idea what I'm doing... apparently. It did build, but the plugin doesn't work in-game. Considering how many things I may have wrong here, there's no surprise really.

    EDIT:EDIT: I'm pretty sure they don't belong. The functions defined in them are taken care of elsewhere, like MiscEditor.cs and Lander.cs.


  11. Samples? Oh man I have no idea. I suppose you could try downloading some other people's plugins that include the source code, try to get those to compile and place them in your KSP game. Then next step is modify them and see what it does. The files on github won't compile right away without some changes. I'll need to contact the author.

    Well, that is where I was headed, so onward I press.


  12. Oh, and I do have Visual C# Express+SP1 and SharpDevelop (not tried it yet) on this box, as well as MonoDevelop (also not tried), which handily came integrated with the Unity Editor. I have worked with VS/VCS a bit, and the others look pretty much the same; and I've got them all setup right, I think.

    I've even followed the tutorial in the KSP Wiki to make a useless PartModule that writes a line to the log, but I think I may be mixing old info with new, so I'm not sure where I stand there. My next step is to figure out what makes a plugin independent of any part - like HyperEdit is - and then I remember reading someone - a Dev? - say that C# "Attributes" were the new/best way to do that. That's when my eyes glazed over and I woke up with a console window saying... "Hello Whirled" ...again. Doh! :huh:

    I guess, now that I step back and look at it, I've got everything I need and I've learned the basics. I just need to see and do some simple, but real-world tasks. Any chance you have samples of some useful and common tasks that demonstrate stuff I should know? Anything to speed up the process would be appreciated. :)


  13. Excellent! YOU are just what HyperEdit needs!

    PHP and some other web stuff mostly, but I've so far managed to avoid learning Java with excuses like "it's insecure, so I don't want to encourage it" or similar marklar. I did dip my toes in during the height of my Minecraft addiction (still run a private server), but it didn't go far because the mods I wanted were already available.

    I have heard of the syntax parallels, but I'm hoping I can get the hang of that stuff quickly. I've actually read most of this tutorial on C# and I understand most of what I read ("Hello Whirled!"), but I need much practice to become fluent.


  14. Ezrillc, I can join with you if you like. I'm pretty familiar with programming and have made my own custom mod to the part filter plugin that got rid of the annoying mod pack filter window. I have some ideas I would like to add to hyperedit. One of which is an info window that gives a legend that explains what the parameters are.

    It sounds to me like you are far more qualified than I, and I'd love to help you in any way I can. All I can offer you is my formidable brain and a web server or two.

    So, you're up to speed on C#? How might you recommend a PHP junkie speed-learn it? I'm quick, but this may take me weeks to understand fully.


  15. Thanks for taking this on Ezriilc. I use HyperEdit in my test version of KSP. Saves time when all you want to do is check a part out without waiting to get to Jool, etc.

    Good luck. We're all counting on you. :cool:

    :blush: And thank you for the vote of confidence, even if sadly misplaced. Mind you, I have no intention of ever backing out, at least not until I get the functionality I'm after, i.e. the HUD/compass and possible other refinements of HyperEdit. It's just that the mountain of material in front of me to learn is... shall we say, not small. That, plus the speed at which games like this can evolve, may make it difficult for me catch/keep up.

    As interests and circumstances do change, in all honesty I must confess that I may not get where I need to be in time to make any relevant contribution to this project. On the other hand, if this project continues to appeal to me in the way web-publishing has in recent years, then we may see something substantial quite soon.

    That is, if Unity doesn't distract me too much with staggering eye-candy and sweet game components. I hate to sound like a fan-boy for Unity, but the Bootcamp game demo is mind-blowing in its complexity and polish. I could get lost in there for years. OO, a squirrel!!

    khyperia's code in HyperEdit is actually pretty intimidating to me, in that I can't really understand the flow of it... much... at all - so it must be good stuff, right? I need to get up on programming concepts like Classes/subclasses, scope keywords and others like public/private/protected, static, etc. I never built anything in PHP or Javascript big enough to bother with classes and associated stuff (or so I thought), but I have been meaning to go there... eventually. I wish I could just plugin to the Matrix and quick-load C# and Unity, so the code just makes sense. Ah well.

    Basically, I'm saying NO PROMISES. :P Except that I will do my best.

    Oh, and Voidryder, Re: Pete Conrad, good stuff - didn't know it - feel I should have - thanks.


  16. Since HyperEdit seems to be unique and provides what I'd call essential game functionality, I feel compelled to help this project as much as possible.

    So, since I also have plans for my own plugin(s), I've decided to learn C#, and subsequently discovered the HUGE world of the Unity 3D Engine, which is freakin' awesome! http://unity3d.com/

    The free version is very complete, and there are entire free games with source code, that provide an excellent environment for learning how all this stuff works. You just download the assets and project files, import them into the free Unity Editor, mess it up all you want, and then build it. For being completely free, I'm just stunned at the power.

    I figure I'll use playing with Unity (great fun) as a means to learn C# and 3d game development in general, then I plan to turn my attention to HyperEdit or whatever becomes of it by then.


  17. I may take my hands on the project. I just need to know how to add Unty resources to VC# 2010...

    Is this what you're looking for?

    http://wiki.kerbalspaceprogram.com/wiki/Setting_up_Visual_Studio

    The gist:

    1. Right click in your Project in the Solution Explorer
    2. Click "Add Reference".
    3. Click the "Browse" tab.
    4. Navigate to your KSP install folder, and inside \KSP_Data\Managed\, you'll find 2 .dll's to reference.

      1. Assembly-CSharp.dll
      2. UnityEngine.dll



        That worked for me.

  18. Updated the git.

    Note that I am no longer working on HyperEdit, as well as not being in the KSP community much at all anymore. If you'd like to take over development, or know someone who will, please tell me. I haven't found anyone willing to take it up.

    Although I would love to contribute, I doubt very seriously that I'm qualified to take over. Who knows, though; if I learn C# and Unity fast enough, perhaps I can soon.

    Thanks for the updated source!


  19. Anyone know how to access any hud elements? Perhaps changing and/or adding more waypoints in the navigation ball?

    So, without reading every word of every page of this ungainly thread, has anyone responded to this or have any info on the HUD components and how to work with them? I've not seen any plugins do this, nor anyone discussing it, but I'm still rather new here.

    I'm planning/hoping to create a Heads-Up Compass, that shows which way the player's view is facing, as opposed to just the vessel's heading. Also, I'd like to be able to modify the existing HUD display components and/or make them individually moveable/zoomable. For instance, moving the gauges to a secondary monitor would be very nice - like good flight sims.

    I'm an experienced web (PHP/HTML/CSS/JS) programmer, but I'm just now learning C#, so any tips that anyone can offer would be awesome. :cool:


  20. khyperia,

    Do you have the latest source code (1.2.1) posted anywhere? It seems the GitHub version is old (1.1.2).

    I'm very interested in this plugin from a programming point of view (I'm an old-school programmer finally learning C). I use HyperEdit all the time for landing my water craft at the KSC beach, etc., and I see the need for other features that might fit in well with it.

    I'm trying to decide whether to make my own plugin to accomplish what I want, or just offer it to you as an addition to HyperEdit.