Jump to content


  • Posts

  • Joined

  • Last visited


212 Excellent

1 Follower

Profile Information

  • Location
    Stranded at the Sun–Kerbin L₃

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I've another update for you all. I've developed the icon renderer a little more and added some features: Part icons can now be scaled, which is used in a few specific circumstances. The first is stock flag parts, whose icons now scale depending on which orientation and size is selected (previously the scale was based on the largest configuration, so the smallest were tiny, which made previewing the chosen flag difficult). The second is any part which is manually coded to be scaled; at time of writing this only applies to the PT-3A Command Node Module from Benjee10's MMSEV mod, whose icon is quite small for some reason. The third is detailed below. I have also added the ability to show a part's attach nodes on the icon. This is toggled with a button in the upper left of the icon box, similar to the change variant "drop" button. The button only shows up if the part has nodes. The size of a rendered node reflects how large it appears in the editors. On parts with the ModuleDynamicNodes module, (e.g. several of the Breaking Ground motors) the rendered nodes reflect the selected option. If any of a part's nodes lie beyond the bounds of the icon box the icon is scaled to accommodate them (as seen in the second image). In most cases this is a fairly slight scaling, but for some parts it can be quite dramatic, e.g. a few of the expandable/inflatable parts from WBI Pathfinder such as the Ponderosa IHM pictured. I'm not completely happy with the shader used for the nodes (it's not obvious in the screenshots but it is slightly glitchy and doesn't feature backface culling) so I may have to write one especially rather than using a built-in one. (Unfortunately the one actually used in the editors doesn't draw onto transparent backgrounds so only shows up when in front of the part's model.) In addition to the icon stuff I have also made some changes to the damage repair system, meaning that engineers, especially high-level engineers, need less tape than other Kerbals to repair (roughly 20% less per level). Since tape is used at a fixed rate (without tools), this also makes engineers faster. If a Kerbal has a tool (currently hard coded to the KIS wrench and electric screwdriver) they also repair more quickly and efficiently (again, especially engineers). The total mass of the tape used is now added to the part's mass. Finally, the amount of tape (and so time taken) to repair damage scales with the total amount of damage (e.g. at 1 damage only 10 tape is required per point of damage; at 50 damage it takes about 12 per point; at 90 damage it takes just over 19 per point), making it easier/cheaper and quicker to repair minor damage. The scaling is logarithmic and beyond a certain point (currently 100 damage) it becomes impossible to repair using duct tape. In future I intend to expand the damage/repair feature to allow repair using spare parts and/or resources, which would not have the limitation on the damage repaired but will probably be engineer-only (and obviously require access to the required parts). I may also add an upper limit to the total lifetime amount of added duct tape mass that can be added to a part, and therefore probably the ability to replace tape-repairs with spare parts/resources or by using stock repair kits (so as to remove the added tape mass). I also have some other ideas for expanding the damage feature but they aren't fully fleshed-out yet.
  2. Hmm, I'll see if I can explain it a bit better. B9PartSwitch is used by the resource containers included in the mod. It is also hard coded into the plugin for the workshop (at least for now) and so is a true hard dependency – things will break without it installed. Neither Firespitter nor InterstellarFuelSwitch are dependencies. They are not used directly by any part in the mod. However, the workshop plugin can interact with them, allowing players to print parts which do use them. The interaction is partly done via reflection and partly by accessing KSP's built-in interfaces (KSPField and KSPEvent variables specifically), which are how mods add controls to the PAW. If either of them is installed the workshop can use the switcher on parts that have it. If they aren't installed nothing bad will happen. The only dependencies (currently) are B9PartSwitch, KIS, KSPDev_Utils 2.4 (included with KIS), CommunityResourcePack (or any other mod which adds the appropriate resources), ModuleManager, SpaceTuxLibrary and ClickThroughBlocker.
  3. Oh, I think I misunderstood you. I know what B9PartSwitch is – it is already supported by the workshop; in fact it is a dependency. I thought you were talking about some patch(es) to add B9PartSwitch functionality to other parts.
  4. I've managed to get Interstellar Fuel Switch (InterstellarFuelSwitch, InterstellarTextureSwitch2 and InterstellarMeshSwitch) working I've also added a time warp button next to the printing/recycling progress bar that lets you warp to the (estimated) time of completion of a part. The time warp cancels if part production/recycling stalls (e.g. due to running out of resources). Of course, if you use KAC that's probably the better choice. Oh, and since I took those screenshots, I have made all grouped variables/controls (including resources) collapsible, much like those for B9 Procedural Wings in the previous post. That is always an option of course and in many(/most?) cases it will be the most straight-forward and fool-proof method. It's one of the many reasons the craft/subassembly loader exists. That doesn't mean there'll never be a reason to do it manually though and it wasn't that difficult to implement. (Adding mod support is usually only hard if necessary functions are locked behind a HighLogic.LoadedSceneIsEditor check or rely on something that cannot exist/happen within the workshop/in flight, e.g. some property of the vessel the part is attached to; I'm looking at you WBI switchers.) Since the module itself generates the mesh for the wings on the fly as the variables are changed I may even be able to preview it directly in a separate window or something (much like with the icon renderer). Whether it'll be worth it will depend on how much work it takes though (so no promises). I don't think things with lots of sliders are really any easier to do in the editors than the workshop; any difficulty arises when some other form of feedback is required such as CoM or the relative scale/position of parts. (I'm not sure what you mean regarding RCS. All (standard) RCS variables are accessible in flight anyway AFAIK. BTW, while there is a screenshot of options for an RCS thruster further up, they are currently not enabled in the workshop. ) Yes. I think I mentioned it earlier in the thread, but in short the first publicly available version will almost certainly be an alpha or beta of some sort (probably an alpha since it will not be "feature complete"). When that will happen I cannot say, but not until I am at least reasonably sure the core functionality is all working properly. What I will say is I really want to make sure it is out before KSP2 renders it effectively obsolete. Is that a specific mod or just a general description? Either way I assume it/they either convert parts with FS/IFS to B9 or add B9 switchable tanks to normal tanks? If the latter there's a patch included with CryoTanks that does that to a degree.
  5. Hello everyone, I have finally managed to get back to working on the mod and have some progress to share. Switchers Most of the work I have done has been implementing various part switchers: Firespitter's FSfuelSwitch resource switching module; associated FStextureSwitch2 and FSmeshSwitch modules also work as expected. ModuleKerbetrotterResourceSwitch from Feline Utility Rovers. The UI from its pop-up window has been more-or-less replicated within the Workshop, although the mass change is shown in the tooltip and it is graphically slightly different. ModuleKPBSModelSwitch, a simple model switcher used in Kerbal Planetary Base Systems. Controls for B9 Procedural Wings have been implemented which replicate those in its editor UI window, albeit in a more stock-like style. As there are so many of them they are packed together more tightly than they would be normally. Unfortunately there is currently no way to visualise the changes made so I don't know how useful this actually is. Wild Blue Industries' WBIResourceSwitcher, the most basic WBI switcher, which has a simple cycler button, not unlike Firespitter or the resource switcher used in B9 Procedural Wings. None of the above switchers have any impact on the part icon (yet?). Unfortunately I haven't been able to get Interstellar Fuel Switch (IFS) working: I have the interface elements set up but there is a hard crash (it doesn't even write anything in the log) whenever the resource is changed which I haven't been able to track down (yet?). Most of the more complicated WBI switchers are also not yet working. Mod Filter I have implemented a Janitor's Closet-like mod filter which allows parts from particular mods to be shown or hidden at will. It differs from the Janitor's Closet in a few minor ways: The official expansions – Making History and Breaking Ground – are listed separately (rather than simply under SquadExpansion). The WBI and USI mods are split up into their constituent mods/folders, and both have their own sub-group within the mod list which can be collectively toggled. This is (currently) a feature specific to WBI and USI – any other mod families which do a similar thing will not behave like this, although this may be changed later. CTRL-clicking (or CMD-clicking on a Mac) an item in the list disables all items except that one. A few mods have specific pre-defined labels rather than simply listing the folder name; however, they are still sorted by folder name (for now at least). More may be added in future. KAS → Kerbal Attachment System KIS → Kerbal Inventory System MagicSmokeIndustries → Infernal Robotics Squad → Stock* SquadExpansion/MakingHistory → Making History* SquadExpansion/Serenity → Breaking Ground* Workshop → OSE Workshop* *Making History, Breaking Ground and OSE Workshop use their respective localisation keys to get the appropriate name, so these may change by locale. Stock is defined in the Workshop localisation so may also change. At least for the moment it only handles mod/stock/expansion filtering; it cannot filter by size, resource or module like the Janitor's Closet can. It also doesn't have presets/saved filter configurations. Resource Categories I have further expanded the resource categories (both in the Workshop and in the editors) so they now include parts which use Firespitter, Interstellar Fuel Switch or the Kerbetrotter switcher as well as stock and B9 Part Switch tanks. Resource Icons I have added a resource icon for Duct Tape. I have also added a number of icons for modded resources added by the Community Resource Pack and Interstellar Fuel Switch. These are added via config files so can be easily expanded or changed. Most of the icons are simply the chemical symbol of the resource (e.g. CH4 for Methane), similar to the stock icon for Xenon Gas (Xe). A few are more specific: IFS's Buckyballs' is a visual representation of the C60 molecule; Kerosene, EVA Propellant and Intake Atmosphere use the same icons as stock Liquid Fuel, Monopropellant and Intake Air respectively; radioactive resources such as Uranium have a faint radiation symbol behind their chemical symbol. (I haven't added icons for any other non-chemical resources yet such as WasteHeat, SolarWind or Regolith.) Like the other resource icons I have added, these icons are used in the resource categories (both in the editors and the Workshop) and in the craft/subassembly loader.
  6. It puts them in a KIS inventory. These are entirely separate from the stock inventories. If you right click on a part to bring up its PAW there should be an option to open any inventories on the part. All Kerbals have an inventory so if you haven't added any specific container parts to your craft the printed parts are probably in a Kerbal's KIS inventory. Here is a dev screenshot from my continuation of OSE which happens to show what I mean: Notice how at the bottom of the list there are buttons labelled "Nielsby's inventory" and "Catemone's inventory". If you click on one of them that Kerbal's inventory will open. These are separate from the ones at the top which have the parachute and jetpack in them. If it isn't in any of your Kerbals' inventories you may need to check every other part on your ship for a built-in inventory. P.S. In order to get them into a stock inventory you have to place them on the ground using KIS's build mode and then pick them up using the stock system.
  7. I don't think OSE is doing this directly. My best guess is that the vessel you are trying to build has one or more rolls of duct tape in one or more of its containers, so EL is trying to build the duct tape part(s) along with it. Since the duct tape part includes the resource duct tape EL would presumably require duct tape to "fill it up". Try removing any duct tape rolls from containers on the vessel and see it that works. Note: I have never used EL and don't know if that's how it works, but its the only thing I can think of.
  8. Did you check the alpha channel? It isn't visible in that screenshot. Edit: looks like Doc Shaftoe beat me to it While you're at it, don't forget to remove the texturing from shuttleUV1_emit
  9. Oh, that's a totally different nVidia exporter than I've used. (Looks like they released it around 2020 and I didn't hear about it.) From what I can tell the compression settings should be the format dropdown in the top left. For whatever reason it seems that they changed the names of all the compression options with the new exporter, so DXT5 is now BC3; I would guess that DXT5_nm is the BC3n shown in the screenshot. As far as I can tell benjee10's textures are saved using normal DXT5 so it might be worth trying plain BC3 (that might be what the model is expecting, and if given BC3n the channels will all be wrong unless it knows how to handle it on-the-fly).
  10. You can set the compression type in the dropdown to the left of the save button in the dds exporter.
  11. If by that you mean the "seam" down the middle that's probably a result of the weird normal map system KSP uses (I'm not sure if it's a Unity thing or just KSP). Most other software uses the R, G, and B channels for the normal map, but KSP uses R, G/B and A for some reason. (I say G/B because usually these are identical and I cannot remember which is used.) When viewed in an editor such as Photoshop your normal map should be mostly a sort of pink colour rather than the blue you'd normally get.
  12. In the last few weeks I've been mainly doing more code clean-up and so-on, hence the lack of updates. I have made a few tangible changes though, which I thought I'd share. Craft loader changes: Craft files are now organised by save, with different saves treated like categories. The current save appears at the top of the list and is the default, followed by the category containing stock craft; after that, other saves are listed alphabetically. (The image shows the stock category.) I have refined the graphics on the VAB/SPH tabs and they now act like tabs rather than simple buttons. I have improved the performance of the craft loader (when displaying a loaded craft) – it is now similar to that of a single part. The craft loader now separates out inventory contents as separate parts. (Previously they would be manufactured along with the container part. This also meant that they would not be properly accounted for in the recipe.) Unfortunately this does increase load times when selecting a craft (or subassembly), sometimes quite dramatically, as ConfigNode manipulation is a rather slow process. The increase in load time is directly proportional to the number of containers and parts stored within them so a craft with many items stored in containers can take several seconds to load. Stacks of identical items are now merged into a single stack. (Previously only those added in symmetry were treated as stacks.) Stack merging: Stacks of identical items in the queues can now be merged together by dragging one over the other. Identical here essentially means "is unprocessed* and has the same part config", meaning if two parts differ in any way (modules present, amount of resources, values in any given module etc) they cannot be merged. It also checks to make sure they are targeting the same inventory type (KIS or stock) but does not check whether the item is paused or, in the case of the recycler, whether they came from the same inventory originally. When dragging an item, any other identical (i.e. mergeable) items are highlighted in green; any items which are identical other than resource quantities and/or target inventory type are highlighted in orange; any other items which are the same part type but are different in some way are highlighted in red; items which are different parts are not highlighted. * i.e. manufacturing/recycling of the part has not started; simply, if a part has a progress bar or Partially constructed at the start of its name it cannot be merged. One side effect of the comparison method is that some seemingly identical parts added from craft files cannot be merged with parts added directly from the part list. This is usually because the craft file, and therefore the extracted part config, was created with different (or no) mods installed or on an older version of KSP, so has different or missing modules or fields in those modules' configs. It is also likely (although untested) that if a part is added to the queue before a mod is (un)installed and another is added after they will also be unmergeable for the same reason. If possible I'd like to work around this issue but haven't sound a working solution yet. Another side effect is that modules which have some kind of unique identifier or other unique per-instance value will not be considered equal. For such modules manual workarounds would need to be written on a per-case basis. Down the line I intend to extend the feature slightly so that orange-highlighted items can be merged but require confirmation of which stack's values to use. This will only apply to the workshop, at least for resources, as in the recycler the resources are actually present and contained within the part, rather than being just a "command" to fill the part up on completion (for Liquid Fuel, Electric Charge etc) or manufacture them alongside the part (for Solid Fuel, Ablator etc). I may also add "original inventory" to the criteria for it being orange when/if I do this. Other changes: I have added resource icons for Dirt and Waste Material. Controls for the workshop and recycler are now grouped in the PAW I have added a few module manager patches which override the KIS volume for some parts, similar to the flag parts. Since these override the volume KIS uses the changes are global (i.e not restricted to the workshop). The inflatable heat shield's volume now reflects its deflated state. The value used (16,000 L) was estimated by comparing its size to other parts. The surface science parts use the same value as their stock packed volumes.
  13. I've got quite a lot done since my last post but most of it is "under the hood/bonnet" sort of stuff so there aren't many screenshots for me to show off. I have upgraded the resource categories so they now include B9 parts – if a part has a B9 subtype which includes a particular resource it now shows up in that resource's category. This applies to both the workshop and the editors. (Previously they would only be filtered based on the contents of the default subtype, so, for example, the OSE containers would show up under Material Kits but not Rare Metals, Exotic Minerals, Dirt or Waste Material.) I hope to expand this to other resource switchers, such as Firespitter, Interstellar Fuel Switch and the switcher used by WBI mods in future (when I implement them in the workshop itself). I have added resource icons for Material Kits, Rare Metals and Exotic Minerals based on the decals used on the containers. Dirt and Waste Material will come at some point too. I have implemented the stack manager in the recycler. It looks and works broadly the same as the workshop one but for obvious reasons cannot change the total number of items, only split them between different stacks (so there are no Delete, Clone or Add new stack buttons and adding or subtracting from a stack increases or decreases an adjacent stack). StoredParts (i.e. items stored in a stock container) now use the new icon renderer in the recycler. Most of the features of Conformal Decals are now properly implemented aside from a few kinks I need to work out with the CDL-T Text Decal part (everything is functional but some of the controls aren't showing up when they should). However, the decals do not currently show up in the icon renderer. I have done quite a lot of code cleanup, mostly converting redundant/repeated code to functions etc. I have also managed to improve the performance of both the part list and the craft loader (although the latter is far from smooth still). I have done quite a lot of work on the craft part loader. Each part now has a toggle next to it so it can be ignored when the Add all to queue button is pressed. In the screenshot below there are two disabled/deselected FL-T100 Fuel Tanks which would not be added to the queue. Unprintable parts (i.e. those which are both a) too big for any connected KIS container and b) are either too big for any connected stock container or can never be stored in one) are disabled automatically and cannot be enabled (e.g. the Kerbodyne parts in the second screenshot). Parts now also display their contained resources; if available they will use the specific icon for that resource, otherwise they will use the generic "fuel can" resource icon. When the icon is hovered over it displays the name and amount of that resource contained within the part. Finally, if a part's cargo type cannot be changed (generally this means it is not stock-container-compatible) it now has a little padlock icon over its bottom-right corner to alert the user. I have added a set as target button to the app next to the switch to button, so OSE vessels can be targeted more easily. (Not that there's any real need for it, but the craft list is there, so I might as well take advantage of it right? If you have any other ideas for useful functions that "might as well" be added to it please feel free to suggest them. (I already plan to have some kind of resource display.))
  14. I've got quite a lot done this week. The flag parts now have a proper browser to select which image to use. Queued parts in the workshop now have a stack manager which is accessed through the right-click radial menu thing. It allows the stack size to be changed on-the-fly, as well as for additional stacks of the same part to be created – stacks of 1 can be added by clicking Add new stack, and any given stack can be cloned or split in half; stacks can also be deleted from the list as long as there is at least one left. The changes do not take effect until the confirm button is pressed. Any part in the queue can be managed as long as production on it has not started. I am not yet sure if I am completely satisfied with it graphically, but it is functionally complete. I intend to do something similar for the recycler although this will of course be much more restrictive. I have added some controls to the inventory browser in the recycler: a toggle to show/hide Kerbal inventories, a button to collapse all inventories and a button to expand all inventories. Again, the graphics are subject to change. I have implemented a generic handler for PAW UI controls. This includes sliders, option selectors, toggles, cyclers, "event" buttons and labels. Unfortunately this doesn't mean that mod- or module-specific code isn't required as many modules need to perform a setup process before the controls work properly (or at all). Some controls also show up when they shouldn't (for example the engine throttle slider shows up regardless of whether individual throttle is enabled.) Hopefully though this should mean that turnaround can be much more rapid (much less coding will be required to support most mods, at least in theory). The screenshots below show some controls which are functional more-or-less without intervention by me. None of the controls for either part were manually coded for except for the variant/B9 selectors. There are now pack/unpack buttons in the app (when the packing feature is enabled in the options). There are also some other changes I haven't taken screenshots of. I have converted the WorkshopQueuedItem class (i.e. parts in the workshop/recycler queues and in the craft/subassembly loader) over to the new icon renderer; only StoredPart and ModuleKISItem items (as displayed in the recycler inventory browser) still use the KIS icon renderer. Finally, I have made my own version of the graphics used by the scrollbar "thumb"; the stock version was never really designed to be scaled down as done in the mod, which resulted in the ends being sort-of "pointy". (This can be seen in several of the other screenshots.)
  15. I meant in Sandcastle; sorry if that wasn't clear. The actual issue I'm talking about is with the KSP labs themselves and would need to be worked around by Sandcastle. OSE isn't related to this other than it being how I encountered the issue. BDArmory and KIS (and probably other mods too) also have to do the same thing. If it is the same problem I had then no Science Lab will be printable and there's nothing you can do about it yourself – Sandcastle would need to be patched. Otherwise there may be a specific issue with that part in particular, which I'm sure would also be useful for Angel to know about. P.S. what inflatable parts are you referring to? If you let me know I can make sure they are compatible with my overhauled version of OSE. (You should PM me or post it in the dev thread in my signature rather than here so as to not clog up this thread with stuff unrelated to Sandcastle.)
  • Create New...