-
Posts
1,777 -
Joined
-
Last visited
Content Type
Profiles
Forums
Developer Articles
KSP2 Release Notes
Everything posted by Fengist
-
This brief tutorial is primarily for plugin developers. HOWEVER, as I get time I plan to make this a standalone plugin for those modders who can't code. Once I get a plugin working, I'll start a release thread and you'll find the link here. So let's get started with what this tutorial shows: The Problem - font shaders In the past, there have been numerous questions on the forums about how to add text with fonts to parts in KSP. And in the past, it was difficult if not impossible to do in KSP. Unity has a TextMesh component that works in all Unity games. And it even works in KSP. The problem with the TextMesh component is that it requires it's own unique shader. Without that shader, the text will be visible even if it's inside a part or behind a part. This made it almost useless in KSP. I have not tried, but I'm assuming that since no one has accomplished this yet that creating a shader for TextMesh is either too difficult or they can't be brought into KSP because of it's unique shader system. The Solution - TMPro With the addition of localization, KSP has added a new component that has recently been incorporated into Unity, TextMeshPro (TMP). After playing with it a good bit, I've discovered that it's a HUGELY powerful text/font utility. And the good news, it includes it's own shaders by default. And because KSP has added TMP as one of it's assets, those shaders were included in the package. This means, KSP modders now have access to not only the TMP component, but the shaders and all of the fonts loaded into KSP as well. The Next Problem - PartTools You can take any part you're creating in Unity and add a TMP component to it. And you can even get the text to display. The problem arises when you try to export that part using PartTools. Squad probably didn't think that anyone would attempt to export a part to KSP with the TMP component on it and didn't include it in the latest release of PartTools. When you try to export the part, it politely gives you an error in the Unity console and refuses to export it. The Next Solution - Dynamic TMPro While PartTools chokes and dies trying to export a TMP component, KSP has no problem creating one on the fly. The basic technique I used is to create a flat panel in my modelling software (and I'll explain why I do this in a moment). In unity, in the hierarchy, I give this panel a unique name that will match a variable in my part.cfg, like "screen". In order to have it displayed as floating text I give the screen a completely transparent .png texture and set the shader to KSP/Alpha/Translucent. In the screenshot below I have a semi-transparent texture so that you can see the screen dimensions. Were I to use the completely transparent texture, it would appear invisible. So, as you can see, this is a very, very simple part. I've added a stock Unity cube and the screen I created in my modeling software. I created it in the modeling software so that I could set it's dimensions. As of this moment, I haven't found a satisfactory way to create or resize this screen in Unity. Reason being, Unity expects a part to be of a particular dimension and you really can't adjust it. You can 'scale' the part but that doesn't truly 'resize' it. The dimension of this 'screen' will play a role in the size of the TMP component and I'm still working on a way to take the unity 'scale' factor and resize the TMP component to match without stretching and deforming the text. So, for now, I use a fixed size screen. One thing to take note of if you decide to play around with this, the rotation of the screen in the modeling software is pretty critical, and I'll explain this in a moment. Just realize that if you do get this working and your fonts are in the wrong location or not visible, there's a good chance the rotation of the screen is off. The Config File I created a PartModule for this little experiment so that, once I get all the details worked out, it can be easily incorporated into any part you create. And for this experiment, the Module in the .cfg file is very, very simple MODULE { name = ModuleKETestFont ScreenName = screen screenText = Now is the time for all good men to come to the aid of their country } Naturally, the name of the Plugin. Next is the name of the part I labeled in Unity that I want to be my display screen for the text. Finally, the text I want to show. In my other mod, which I'll link to below, this text is also dynamic and changes based on user interaction. For this simple demo, it's fixed in the part.cfg file. The Code Eventually, once I get a true working plugin, I'll put this code up on GitHub. Because this is still highly experimental, I'm going to paste it here so you get an idea of how it works. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using TMPro; using UnityEngine; namespace ModuleKELights { class ModuleKETestFont : PartModule { Color lastColor; float lastFontSize = 0; [KSPField(isPersistant = true)] Color currentColor; TextMeshPro LCDTextMesh = null; [KSPField] public string screenText = "None"; [KSPField] public string ScreenName; TMP_FontAsset[] loadedFonts; bool autoFont = true; [KSPField(guiName = "#autoLOC_6001402", isPersistant = true, guiActive = true, guiActiveEditor = true), UI_FloatRange(minValue = 0f, maxValue = 1f, stepIncrement = 0.05f)] public float fontColorR = 1f; [KSPField(guiName = "#autoLOC_6001403", isPersistant = true, guiActive = true, guiActiveEditor = true), UI_FloatRange(minValue = 0f, maxValue = 1f, stepIncrement = 0.05f)] public float fontColorG = 1f; [KSPField(guiName = "#autoLOC_6001404", isPersistant = true, guiActive = true, guiActiveEditor = true), UI_FloatRange(minValue = 0f, maxValue = 1f, stepIncrement = 0.05f)] public float fontColorB = 1f; [KSPField(guiName = "Font Size", isPersistant = true, guiActive = true, guiActiveEditor = true), UI_FloatRange(minValue = 0.1f, maxValue = 10f, stepIncrement = 0.05f)] public float fontSize = 1f; [KSPField(guiActiveEditor = true, guiActive = true, guiName = "Current Font")] public string fontName = string.Empty; [KSPField(guiActiveEditor = true, guiActive = true, guiName = "Current Font Index", isPersistant = true)] public int loadedFontIndex = 0; [KSPEvent(guiActive = true, guiActiveEditor = true, guiActiveUnfocused = false, guiName = "Next Font")] public void nextFont() { loadedFontIndex++; if (loadedFontIndex > loadedFonts.Length - 1) { loadedFontIndex = 0; } SetFontName(loadedFontIndex); } [KSPEvent(guiActive = true, guiActiveEditor = true, guiActiveUnfocused = false, guiName = "Prev Font")] public void previousFont() { loadedFontIndex--; if (loadedFontIndex < 0) { loadedFontIndex = loadedFonts.Length - 1; } SetFontName(loadedFontIndex); } public override void OnCopy(PartModule fromModule) { base.OnCopy(fromModule); TextMeshPro thisMesh = GetComponentInChildren<TextMeshPro>(); if (thisMesh != null) { thisMesh.gameObject.DestroyGameObject(); } } public void ShowText() { GameObject LCDScreen = new GameObject(); Transform screenTransform = this.part.FindModelTransform(ScreenName); LCDScreen.transform.parent = screenTransform; LCDScreen.transform.localRotation = screenTransform.localRotation; LCDScreen.transform.localRotation = Quaternion.Euler(0, 180f, 0); LCDTextMesh = LCDScreen.AddComponent<TextMeshPro>(); Mesh M = screenTransform.GetComponent<MeshFilter>().mesh; RectTransform T = LCDTextMesh.gameObject.GetComponent<RectTransform>(); T.sizeDelta = new Vector2(M.bounds.size.x, M.bounds.size.y); LCDScreen.transform.localPosition = new Vector3(0, 0, (M.bounds.size.z / 2) + 0.01f); Debug.Log("TM Created " +T.sizeDelta.x + " " + T.sizeDelta.y); LCDTextMesh.enableAutoSizing = autoFont; LCDTextMesh.fontSizeMin = 0.1f; LCDTextMesh.overflowMode = TextOverflowModes.Truncate; LCDTextMesh.alignment = TextAlignmentOptions.Center; LCDTextMesh.text = screenText; } public void SetFontName(int thisFontIndex) { fontName = loadedFonts[loadedFontIndex].name; LCDTextMesh.font = loadedFonts[thisFontIndex]; } public void SetFontColor(Color thisColor) { LCDTextMesh.color = thisColor; lastColor = thisColor; } public void SetFontSize(float thisFontSize) { LCDTextMesh.fontSize = thisFontSize; lastFontSize = thisFontSize; } public override void OnAwake() { loadedFonts = Resources.FindObjectsOfTypeAll<TMP_FontAsset>(); //example of how to load a Unity font. Not needed for TMP. UnityEngine.Object[] fonts = UnityEngine.Resources.FindObjectsOfTypeAll(typeof(UnityEngine.Font)); } public override void OnStart(StartState state) { ShowText(); } public void FixedUpdate() { if (LCDTextMesh == null) { return; } currentColor = new Color(fontColorR, fontColorG, fontColorB, 1); if (currentColor != lastColor) { SetFontColor(currentColor); } if (!autoFont && fontSize != lastFontSize) { SetFontSize(fontSize); } } } } OnAwake First, the lesser important function, fonts. TMP comes with a number of very basic fonts installed. And Squad has loaded a couple of their own. In order to get these fonts, they need to be loaded from the resources. The OnAwake event handles that. All of the fonts are loaded into a list of <TMP_FontAsset>. The user can change these in-game by clicking on a KSPEvent button to cycle through the fonts. OnStart The important function, creating the TMP component. The reason I create a screen in Unity is so that I have something of a fixed dimension to 'stick' the TMP component onto. When OnStart runs it calls the ShowText function. First, I create a new GameObject that I just call LCDScreen that's going to hold the TMP component. I set it's parent to the 'screen' I created in Unity and then, adjust the rotation. You'll notice I make two changes to the rotation, this is just me experimenting. The LCDScreen location is, by default, assigned to the Unity 'screen' location. I assume because of part rotation, I have a hell of a time getting the all of the parts rotated and pointed in the same direction, hence the Quaternian.Euler rotation. Next I take the TMP component and stick it to the LCDScreen GameObject. The next 4 lines define the size of the TMP component and create a RectTransform that it's going to need. Because text meshes are 2D, they use the RectTransform rather than a normal transform. The fourth line moves the local z position so that it hovers just above the Unity 'screen'. This is only necessary if you're using an opaque background that you're displaying the text on. Without this little step, the text would end up buried in the middle of the screen. The debug logging tells me the size of the TMP component it creates. I have this there because if you have the rotation incorrect, you can still see that it's creating the component but it's dimensions won't be proportional to the Unity 'screen' and it may end up on the thin side. If the proportions look wrong, the rotation is wrong. The last lines merely define some basics for the TMP component. TMP has one really cool feature called autosizing. It will look at the size of it's component, look at the amount of text you want to display and attempt to set a font size so that all of the text gets on the screen. The .fontSizeMin determines the smallest font size It'll use when autosizing. And finally, for this little experiment, it pulls the screenText from the .cfg file and sets the TMP text to it. And, like magic, you have text on your screen. OnCopy This event fires if you're in the hangar and you hit that x button to duplicate a part. I've tried several methods to avoid doing it this way but this is one that works so I stuck with it. When you create a copy of a part that has a dynamic TMP component on it, it duplicates it as well. The problem there is, the duplicated part, for some reason I haven't figured out, doesn't recognize that the TMP component exists so it creates another in the OnStart for the duplicated part. So, in the event, I look to see if a TMP component already exists on the part and if so, get rid of it. After that, the OnStart fires for the duplicated part and creates a new one. The final proof Here's an image with the TMP component created on an opaque screen. And here's the back side of that screen showing that the text does not 'bleed' through the part like it would if it were a normal Unity TextMesh What's possible? When I stumbled onto this looking for a solution to creating one part that could be set up to monitor any resource, I rather quickly realized it's potential when it comes to modding, like naming your ships and having that name appear on the side of them in any color you want, holographic text projectors that display the amount of resources in floating text above a part, floating text above a cockpit to show any... ANY in-flight data. While I would have loved to keep this little secret all to myself, I don't nearly have the time to exploit it's potential. I will have time in the coming weeks to create a standalone plugin to help part developers display static text on any part as well as a plugin that other plugin developers can use to quickly call functions and display text of their chosing. Fonts In the future, it should be possible to add your own custom fonts to the game and have them displayed. I have accomplished this feat once but can't seem to reproduce it. The reason is a convoluted story. TMP was a paid asset that you could purchase and add onto Unity. Squad did just that for it's localization efforts. Since then, TMP has been purchased by Unity and made free, with a few exceptions. First, the free version does not include the source. Next, the free version and previous paid versions are incompatible with each other. The dev who created TMP has decided to continue to support those who purchased TMP but keep it, for whatever reason, separate from the free version. Because the TMP paid version is embedded in KSP, modders aren't currently able to successfully import fonts using the free version. While there is a supposed workaround that allows the font to be brought into KSP, I can't get it to work with any consistency. Here's the link to @JPLRepo's post about how to load fonts and a link to the workaround. If you get this working, LET ME KNOW! So there you have it. The basis for displaying changing, floating, colored text in KSP. A Working Mod I currently have one WIP mod that uses this exact technique so that I created exactly one part, yet it can be configured to monitor any resource loaded into the game and display that resource name on a 'screen'. If you'd like to see this technique in action, download the mod linked below and add a "Idiot Light' to your ship. Question & comments welcomed. ____________________________________________________________________________________ thanks to @InfiniteDice who tolerates an inordinate amount of coding related sarcasm via Skype whilst I bash my skull against my desk
- 14 replies
-
- 11
-
Glowy Sterling engines. One of the reasons Sterlings aren't use in human space endeavors is weight. Compared to photovoltaics, they're heavy. But, I doubt Kerbals care much about that. As far as hydroelectric power, no immediate plans. One of the 'mistakes' I've made in past mods is to make them terrestrial things. This one, I'll be going to space. Glad to hear Idiot Lights work are buildable. If your MM.cfg works, I'll be sure to add it into the next release. Working on getting the searchlight to remember it's position and speed. That should be relatively easy to accomplish. Sorry for the rather short reply, getting ready to head to work.
-
*Keep in mind that I am NOT known for making quality textures. As I told another modder, if you give the users unique items and depth to their experience, they'll easily tolerate sub-quality textures* I've never heard that and I don't see that it would make much difference if any. You'll either have 1 texture, 1 part or multiple textures, 1 part. In either case, all the textures get loaded into ram. Just the prop I linked above has 4 unique textures. But I do some sharing of textures across models. I'll do simple stuff like moving one model's unwrap to the left side of a texture and another model's unwrap to the right side and create one texture shared between 2 models. That allows for both parts to have a high resolution texture without the ram expense of two high resolution textures. And the textures can all be different sizes. Plus, Unity will allow you to use any texture you import on any part. It doesn't care.
-
You shouldn't need to rework the UV for unity. You can import multiple models and multiple textures to make 1 part.
-
Not sure if I'm going to go much more into heat dispersion, but as for power, something like this is rumbling around in my skull: That's a solar powered Sterling engine. And there's many different types of Stirlings. While we humans look at them as mostly toys, we're starting to see their potential. And there's lots of other options for creating crazy types of energy, like the hit-and-miss engine: Take note at about 30 seconds in, the guy removes the load from the engine and it starts hitting and missing. The theory with this engine is, it powers up the flywheel and then, only draws in fuel and fires the piston when it needs to keep the rpm up. And there's thermoelectric which uses something called the Peltier effect. If you've ever seen or used a 12v cooler, that's the principle. Two different conductors can be used to create a heating or cooling effect by passing electricity through them. But, if each of the conductors are in different temperatures, they can generate electricity. And there's the little explored wind power. While I do know of one mod that has a wind turbine on a small tower, it runs at a constant speed all the time. Having a variable wind speed and having it work only on planets (the other one works even without an atmosphere) would give some other options. And there's lots of types of turbines that can be made collapsible. And then, there's the bad part of electricity, the triboelectric effect, which KSP doesn't even consider. Yep, shadowing in KSP is a head scratcher. Some lights, like Kerbol, do cast shadows. Others do not. One basic line of thought I'm going to try to stick to is to have two types of devices, either a consumer or a producer of electric power. While adding both to the same part may sound like a good idea there's one part of that you're not considering... the more that I do for you, the less you'll have to do. I can easily create parts that consume exactly what they create. But where's the fun in that? The casting of lights on an IVA is unintentional but unavoidable. If you were to see the actual part in Unity with it's IVA you'd have a better idea of why that occurs. Basically the IVA is not where you think it is, inside the part. It's usually well outside of the part, just hidden. You could be placing the light where it's on Jeb's head and you'd never know it. GameData/Kerbal Electric/Plugin/presets.dat You can edit it with any text editor. The fields are basically: Name,Red,Green,Blue. The values are called RGB and range from 0 - 255 with 0,0,0 being black and 255,255,255 being white. To convert from what you see in the PAW, you'll need to multiple the values by 255 (rounded off to the nearest integer) and add them to a new line. The KE plugin assigns every new light to white. When you hit the 'next preset' it goes to the first one in that list. So, if you have one you like and use a lot, move it to the first line in that file. You're free to create your own sets of custom colors and if you do, I'll be glad to put them somewhere in the OP. That way, others can copy the ones they like and add them to the presets file. And let me know how it goes adding the Idiot Lights from your workshop. I'd like them to be able to do that.
-
[NOT resolved] Loading font error
Fengist replied to Fengist's topic in KSP1 C# Plugin Development Help and Support
Yes, I have the script in Unity and it does allow an export, just apparently not an import. That or I've got something out of place because I did get one font installed. Ok, thanks. I'll try to wait patiently. -
My humble opinion is thus: Unless you think there's a reason why your telescope should be assembled from multiple parts and unless the end user is able to assemble it in multiple ways, make it one part, just like the in-game telescope. Nothing makes me scratch my head more than a bunch of parts that can only be assembled one way to make one thing. The whole point of multiple parts is so I can assemble them into unique things. Ultimately though, this is your creation so you decide how it goes together and what the end result is. There's only one person you need to make happy with this and that's you. I'm just glad you're sharing the creative process.
-
[NOT resolved] Loading font error
Fengist replied to Fengist's topic in KSP1 C# Plugin Development Help and Support
Ok, so it seems the community is as clueless on this as I am. 100 views and no guesses. I therefore beg to invoke @JPLRepo who seems to be the curator of font importing due to this post: JPL, what am I doing wrong? -
You will find that if your parts are unique and provide the user with things they can't get elsewhere, bad textures will be easily tolerated and ignored. Many of LLL's parts are just simple minimalistic white parts yet I couldn't go far without them. Hell, take a look at any of my mods. I'm horrid at textures. Fortunately, people want boats and they tolerate my suckage.
-
In the next few days I'll get a chance to take a look at FilterExtensions and post here if I decide to take it on. Umm, I'd politely like to retract that statement. I got a chance to glance more in depth into the code and realized the magnitude to which @Crzyrndm has invested in FE. Uh.. wow dood. When did you find time for a life?
-
Actually, just checked. Crzyrndm stopped supporting FE on the 17th. I'll take a look at his code and may pick it up.
-
Looks Sweet! That's exactly why I made the delay's down to .1 sec. So that things could be put out of sync. I use the dome lights as anti-collision strobes (as if there's another plane that will see that) and stagger their off times by .1 sec. ------------------------------------- About the future of Kerbal Electric: The initial reason I created this mod was because I was dissatisfied with stock lights and the only alternatives I saw didn't totally satisfy me. For now, the selection of lights in this mod considerably extends the possibilities for having illumination. While I doubt I'm done creating actual lights, I'll be honest, there are only so many ways you can change the range, dispersion angle and intensity of a light. Everything else is just a new part. While I could up the ante and make the intensity, range and angle of spotlights changeable by the user, that would totally eliminate the need for visual diversity. You'd add one light and it could serve all purposes. Were I to do that, you wouldn't need me any more and there'd be nothing left for me to create. TLDR: There will most likely be a few more lights in the future but not a lot. Therefore: There's a reason why I called this mod Kerbal Electric and not Kerbal Electric Lights. The latter would confine me and this mod to just lighting. While it seems there was a desire for more diverse lighting (500 downloads in one day after the most recent update), I've always had plans to delve into a slightly broader category. While I am not going to venture into the world of engines like the real company this is a goofy parody of (I can and have created a few but it seems there are hundreds out there now), what I am going to dig into is power generation and consumption. In the stock world, you have few choices for generating power. Either you run engines for their alternator, you flip out some solar panels, or you stuff gobs of RTG's on your ship and try to bury the ugly model inside (Yea, I've done that since the first version I played, .016 I think) In the modding world, you have similar choices with the addition of nuclear reactors. To me, RTG's and reactors have always felt kind of cheaty. You turn them on, walk away, fast forward 2 years and they're still cranking out power. For the same reason I removed MechJeb years ago (it was having all the fun), I typically don't use RTG's or reactors. When I actually play the game, I overload my ships/stations with batteries and solar panels. I try to calculate things so that if I'm on the Mun and have to endure a month without sunlight, that my base can still run at least the basics off batteries till the sun comes back out. So, taking into consideration that I avoid reactors and RTG's, I'm planning on looking into some alternate, but realistic (no Zero-point energy or perpetual motion crap), energy sources. The first of which will be Stirling engines. I've already created one animated one for 1869. But since that pack is a bit of an oddball goofy thing I did to express some really weird creativity, it's time I incorporated at least one idea from it into a more 'spacey' part. So, using some of it's code and incorporating it into KE, here's a peek at the first power generator to be added, the surface mounted Stirling. I took this shot at night to make sure the 'glow' works. This engine will be based on a simple theory, generating small amounts of electricity from heat. The basis for this technology can be understood in this animated gif. As heat accumulates in a part it will generate more and more electric power. The cooling efficiency won't be all that great but, it will act as a heat radiator. Two of them (which will dissipate even less heat than a single small stock radiator) can handle the heat from one drill (on Kerbin anyway). And they will generate a small amount of electric power. While it won't nearly replace the power consumed by the drill, the alternative is to use radiators that (*boggle*) cost electricity. And since you're tossing that heat away, why pay for it? So, the theory I'm going on... make them rather inefficient so that you need more than 1. Make them rather heavy, like an RTG so that you won't just stuff 100 onto a ship. And make them radiators so you can get rid of that excess heat. Other ideas in this department include intentional generation of power by solar powered Stirling engines. Comments, ideas & suggestions welcome. Yea, I haven't looked into FilterExtensions yet. If it's just a .cfg for MM, I'll definitely look into it. If I need to incorporate an entire mod, not likely. I try very, very hard not to have 3rd party mods necessary for mine to work.
-
I shall demonstrate This is a looping animation of the prop engine I mentioned. There's 2 other parts you don't see in this, the actual prop and a blurred mesh it switches to at high speeds. It took a good bit of work to get everything lined up in Unity but you see it can be done. Oh, and there's a crank shaft you don't see and the 'rod bearing' which you just barely see that everything is attached to.
-
Well, you have me there. I know if you surface attach to an animated part, the surface attached part won't move. As for the nodes moving, not sure. And thinking about it, IR may not use an animation. I know some modders that rely on plugins to rotate and move transforms the old fashioned way, math. The number of parts you have in your modeller is irrelevant as far as Unity is concerned and you won't really need nodes unless you want the thing to be assembled from lots of little parts. The question is, how many nodes do you plan on having to attach the final telescope to a mount? If it's just one or if they're all on a 'base' part and everything else moves then you won't need a plugin, just Unity. Unity can take all of your separate parts and put them in one 'scene', animate any or all of them and spit out one final part for KSP to digest. It gets kinda tricky because, the point of rotation for Unity is usually the xyz 0 in your modeller. The way I do it is, I build all the separate parts in the moddeling software in the proper spots and save that file. Then, I take each part in turn and move the spot I want to pivot around to the 0.0.0 location and export that part. For example, if you built a car with 2 different types of wheels, you'd move both wheels so that the hub is at 0.0.0. Then, export and start reassembling things in Unity in their proper location.
-
There's two ways I can think of to accomplish this. 1. Everything is one large animation and it all takes place in one timeline. It appears you're creating your animations inside of your modelling software. Be aware that Unity can do all of those animations for you and you can do multiple things at one time and sequence everything by using keyframes. And, it does easing by default. The benefit of that, you can use ModuleAnimateGeneric and it'll handle it all forward and reverse. 2. Lots of short animations but, you'll likely need a custom plugin get them to sequence properly. And you don't need infernal robotics to make an animation. Watch my video in this thread and you'll see two pistons pushing a fish-tail back and forth. That's just an animation. Infernal robotics moving parts are just animations. The difference, the plugin tells the part which direction to play, when to stop, and when to reverse.
-
discussion Discussion - Community Category Kit
Fengist replied to RoverDude's topic in KSP1 Mods Discussions
New pull request on GitHub (I think I did it right) to add cck-lights to the Common-Resources.cfg. @IgorZ and I will both use with our lighting mods. And thanks for this plugin! You saved me uncountable bruises from facedesking while trying to figure out how to do just what it does. -
Idiot Lights are now available for download on Curse. This update includes attachment nodes for the searchlight and the light tower. And.... Idiot lights. Pro Tip: If you're using a mod like MKS where fuel/storage tanks can be reconfigured outside the hangar, stick an Idiot Light on them and change the resource for the light whenever you change the configuration. Yep, you can reconfigure the resource for the idiot light outside the hangar. One thing I forgot to do was to update the description for the Idiot Light. I'll get that next time. Enjoy.
-
There is a submarine bridge in the pods category. But, like any ship, you start with hull parts first and then add the bridge. And, did you expect a submarine to be drivable on land? There are parts in MP that will allow you to attach wheels to boats and subs in order to get them to the water.
-
No plans. I try very hard to keep my code from eating up a lot of cpu. In order to do that the parts would have to communicate between each other or.. a completely new partmodule would have to be created to control selected lights. In a quick mental cost/benefit... too much cpu for too little immersion. That and I hate doing GUI's as much as I hate doing IVA's Good idea tho... keep em coming.
-
Quick update. I talked with @Igorz a bit ago, the maintainer of Surface Mounted Stock-Alike Lights for Self-Illumination. We're going to be 'joining forces' in a manner of speaking. CCK (The Community Category Kit) allows modders to put their parts into categories so that they have their own icon in the hangar. Those of you that use KAS and KIS have probably seen the end results of CCK as they have their own cool icons whereby you can select the EVA tools. Currently only 3 classes of parts have their own 'hard coded' icons. In order to create a new 'hard coded' category, two modders must agree to use that category. Both of ours will use it. TLDR: In the next update, KE will be bundled with CCK so that all lights from KE will have their own category button in the hangars.
-
Yep. I'm aware of that mod but have never installed it. I would have replied to this specific post sooner but I wanted to get it all working well enough to post some screenshots (above this post). My interpretation of this goes back to a very simple mod I created just over a year ago (Idiot Lights) which only monitored 4 resources. I'll now be incorporating that mod into this one.
-
[1.1.3] Idiot Lights - Because Kerbals are Stoopid r0.0.1
Fengist replied to Fengist's topic in KSP1 Mod Releases
DONE! Would a moderator mind closing this thread for me. The OP now points to it's new home. Thanks. -
Love that blue color! If that's not one of the built-in colors, you need to save it to the list. Now, let me share some screenshots of what's coming up next: From the R&D Department Idiot Lights are coming back and now, designed for the dumbest Kerbal on your roster. SOON TO BE RELEASED Yes, I took these at night to show off the cool emissive. The Details! This is one part, one mesh, one texture! Yes, if you look closely there are 13 Idiot Lights in this screenshot and each one is monitoring something different. How? By changing a font (I'm so impressed with myself on this one.) When you place an Idiot Light you cycle through the available resources in the PAW. ALL resources... ANY resource... even those in the community resource pack, which numbers in the dozens. And you can monitor any of them. And, the lights only monitor the resources in your install. Running stock? You'll just get stock resources. Running my Maritime Pack? You'll get compressed water. Running the community resource pack? You'll need lots of lights. From 100% to 50% the lights glow green. When dropping to between 50% and 25% the green lights fade out and the yellow lights turn on. When dropping below 25%, the yellow light fades out and the red light fades in. At 0 resources, all of the lights go out. Click the "Toggle Resource Scope" and you can switch between monitoring a ship-wide resource or... the resource on the part that the Idiot Light is attached to. Example in the picture. Three pairs of Idiot Lights are monitoring LF and Oxidizer levels. One of each on the orange tanks is monitoring just that tank. Two more on the top tank are monitoring ship-wide levels. You'll notice the two on the top tank are reading <50% and <25%. The bottom tank is reading full for both. Because, added together both are >50%, the two in the top row that read LF and Oxidizer are still green... they're monitoring ship-wide levels. Change the fonts. For the moment, you only get those built-in fonts. The main ones are the dot-matrix one used in the main menu and the sans-serif font used in the rest of the game. I'm desperately trying to get more fonts loaded and have managed to get one, but I can't seem to duplicate the process. Squad needs to patch up the Parttools library before I can consistently get new ones added. Once that happens, you can load your own fonts. Change the font colors. Well, of course. Who wants plain white fonts? Here's some more hype screen shots until I get the final testing done (I just got all this working this afternoon after a long and eloquent rant with @InfiniteDice about the glory of coding KSP mods.)