Jump to content

[WIP][1.9.x?–1.12.x] OSE Workshop continuation (name TBD)


Alphathon
 Share

Recommended Posts

This is a mod based on OSE Workshop Reworked by @linuxgurugamer, itself a continuation of OSE Workshop Continued by @Aelfhe1m and ultimately a continuation of OSE Workshop by @ObiVanDamme. These mods allow parts to be manufactured directly on a craft using a Kerbal Inventory System (KIS) container to store them. They also allow spare parts in a KIS inventory to be recycled back into their raw materials (at a loss), and provide some limited support for those resources (an ore processor part, resource containers etc).

This mod aims to overhaul many of the features of the previous incarnations, and add several new features as well, including a redesigned user interface; compatibility with the stock inventory system added in 1.11 (Some Reassembly Required); compatibility with part variants, B9 part switch, and other types of part changing normally only available in the editor; and compatibility with newer and modded part categories.

fpf3f9Z.png

The original mockup, which shows some as-yet unimplemented features is in the "spoiler" below.

Spoiler

The image below is a mockup I made prior to beginning development (and posted in the OSE Workshop Reworked thread) and does not reflect the actual state of the mod.

FCQdFVL.png

I am currently approaching the point where I can release a version of the mod. This will likely be some type of pre-release (which I'd probably call an alpha rather than a beta as it probably won't be feature-complete and will undoubtedly be buggy), as many of the changes made will require more testing than I can do alone, especially given the vast number of mod and version combinations likely to be in use which may interact with it in unforeseen ways. I cannot at this point give a date estimate though (it really depends how much time I have to work on it).

Changes and new features (already implemented)

  • Compatibility with the stock inventory system. KSP 1.11 greatly expanded the capabilities of the stock inventory system, which is now in many ways very similar to KIS + KAS. The mod is now able to place printed parts in stock containers as well as KIS ones, and recycle parts contained within stock containers.
    • This mod is also compatible with older versions of KSP which use the pre-1.11 inventory system (as introduced in the Breaking Ground DLC), as limited as it is. I have been testing it sporadically in a highly-modded 1.9.1 game and so far it seems to be working OK. However, I am at this point not sure how robust it is. Obviously this can only be used with the limited number of parts designed specifically for it (or any other similar ones added by mods, if any exist).
  • An overhauled user interface, with more information and options available to the player and a more stock-like layout. Specific changes include:
    • The interface font has been changed to a smoother anti-aliased Arial rather than the previous aliased (pixelated) font. (I'd prefer to use the same font used in the stock interface (Noto Sans) but there isn't a version included with KSP which is compatible with the the old IMGUI system used by the  mod. At some point I intend to convert the UI over to the newer uGUI system which KSP now uses for its interfaces, which will allow me to use the built-in Noto Sans TextMeshPro font.)
    • The part categories are now shown on an editor-like vertical strip to the left of the part icons and use editor-like buttons.
    • The part icons now appear in a scrollable area rather than "pages" as in the previous incarnations and more closely match the style of those in the editor.
    • Part icons now spin when hovered over or selected like in the editor
    • The part overview has been reworked to resemble the editor part preview (and indeed provide at least the same information).
    • The search bar is now above the part list (like in the editor) and behaves better.
    • Parts can now be sorted by name, mass, size, volume (KIS), packed volume (stock inventory system), buoyancy, max. temp, max. skin temp, max. pressure, G-tolerance, crew capacity and build time.
    • The workshop UI now displays which mod a part comes from (similar to the tooltips added by the Janitor's Closet mod). This may be toggleable in future if people want that option (e.g. if they don't use many modded parts).
    • A Workshop's progress is now shown as a progress bar in its right-click menu (PAW?) as well as the workshop interface.
  • Compatibility with part variants. Now if a part has alternative skins or configurations which use the stock variants system they can be selected in the workshop interface.
  • Compatibility with B9 part switch. Like with stock part variants, parts which use B9 to offer multiple part variants can now be used through the workshop.
  • Ability to modify the following values when manufacturing a part (which can normally only be done in the editor):
    • Motor Size and Output(%) for robotic parts
    • Extension/Angle Limit for robotic parts
    • Motorized for robotic parts
    • Allow Full Rotation for servos
    • Ratcheted for rotors (when motorized is disabled)
    • Attach nodes for parts with a DynamicNodes module (e.g. rotors)
    • Quantity of resources
      • "Fixed" resources such as solid fuel for SRBs and ablator for heat shields continue to be added during manufacture but their quantity can now be selected.
      • Transferable resources such as liquid fuel and electric charge are transferred from the vessel at the end of the manufacturing process.
    • Boot file and Disk Space for kOS processors
    • Orientation, Size, Flag Image and Mirroring for flag parts
  • Compatibility with the Robotics and Cargo categories. The previous OSE Workshop incarnations were developed before the introduction of these categories, and while they could be added to parts manually through their configs they were not there by default. Now they are.
  • Compatibility with categories added by the Community Category Kit (CCK), Wild Blue Industries (WBI), Filter Extensions, Kerbal Planetary Base Systems (KPBS) and Feline Utility Rovers is now built in to the plugin. These populate automatically without any user intervention or manual coding required. The standard categories added by Umbra Space Industries (USI) (Rovers, Manufacturing, Logistics, Construction, Kolonization and LifeSupport) are also included, although these have been superseded in more recent versions of USI mods by CCK categories.
  • Compatibility with other non-standard categories. Non-standard categories, including the one used for the workshop parts themselves, can now be added via a config. This currently includes Kerbalism and Infernal Robotics, but many more can be added as I find them (feel free to suggest any you know of that aren't added by any of the specifically implemented mods above). I have also added a (temporary?) catch-all BDArmory category.* As the system is config-based individual mod makers and players can support it themselves via a Module Manager patch. These can be set up to include (or exclude) parts based on any combination of part name, tags, modules, path (i.e. where the part's config file is) and manufacturer.
  • "Advanced mode" filters/categories (Filter by Cross-Sectional Profile, Module, Resource, Manufacturer and Tech Level) are now available in addition to the standard categories (technically "filter by function"). These behave much like they do in the editors.
  • Custom categories added using the pale brown/tan/beige + button in the editor are supported.
  • Enhanced queue functionality, including part stacking, individual part pausing (including partially-manufactured parts), and queue re-ordering.
  • Cancelled parts in the workshop are now be transferred into a recycler if one is available, allowing some of the resources used to be recovered.
  • Parts in the recycler queue which haven't yet begun recycling can now be returned to an inventory. Where possible this will be the inventory it originated from, but if it is full or unavailable it will use other inventories instead.
  • An OSE Manager app has been added to the sidebar, which allows workshop and recycler parts to be managed on any vessel in range (~2-3 km) without directly interacting with the part's PAW.
  • I have added a new resource: Waste Material. Any mass which is not converted to useful resources by the recycler is now converted to Waste Material rather than simply vanishing, as are cancelled parts (both in the recycler and those in the workshop not moved to the recycler).
  • Resources now (and indeed must) be transferred out from parts to be recycled. If they cannot be drained (e.g. there isn't enough space on the vessel to store them) they can be dumped/ejected. Similarly, if a part is finished recycling and there isn't enough space for the recovered resources the player may either dump them or have the recycler wait for space to become available. (Previously they would just be lost.)
  • Items can be added to the recycler queue paused. (I also plan to add this functionality to the workshop but haven't done so yet.) This is not the same as the pre-existing functionality of pausing the recycler as it only effects newly added parts – any already queued but non-paused parts remain non-paused, and any individual item can be unpaused at any time.
  • The former feature of specifying which categories are displayed in a workshop through the part's OseModuleWorkshop module is currently non-functional and should be considered obsolete.
  • I have moved most of the text to a localization file, allowing translations to be easily done.
    • I have also implemented an option to switch to British English spellings/terms via a setting (e.g. motorised instead of motorized, anticlockwise instead of counterclockwise, cancelling instead of canceling). This applies to all Workshop UI elements but does not apply to things like part descriptions. The way the system works means that it will have no impact on users who don't have English selected, and in fact the option won't even show up in the menu.
  • I fixed bug where items in the deprecated Propulsion category would not show up: they now correctly appear in either engines or fuel tanks as appropriate.
  • I worked around a memory issue: The KIS volume calculator seems to calculate the volume by loading up the part model and "measuring" it, but it seemingly never unloads it. (Since the KIS code documentation says to remember to destroy the object I suspect it's the Workshop's implementation but I haven't looked into this.) Previously this was done every frame for the selected part meaning that over time memory usage would creep up. This was especially bad for complex models (e.g. the large KIS containers) and could lead to several GB of extra memory use in a few minutes. This is now done only once on flight startup.
  • Workshop UI is now not drawn when the KSP UI is hidden (triggered by the F2 button by default).
  • The mass of the workshop module/part now increases as parts are manufactured, to simulate the part actually being built from the resources. This makes sure the total mass of the vessel doesn't change while manufacturing. (Previously it would decrease as the resources were used up, then increase again when the part was added to the container.)
  • Parts are now recycled based on their actual state – formerly they were recycled based on the default version of the part, rather than taking into account things like variants or motor mass.

* BDArmory uses a custom sub-category system which cannot simply be added through a config. I intend to look into replicating the system completely at some point after the initial release. Until then, I plan to include a basic config-based category which includes all the BDArmory parts.

What still needs to be done (for this version)

  • Currently, part variants and B9 subtypes do not play well with the stock inventory. Cosmetic changes and changes to things like tank type seem to work fine but changes to part mass do not; packed volume does not seem to be variable. However, I have had conflicting results when testing this in the VAB too so it may be a problem with KSP rather than the mod. Edit: As far as I can tell this aspect of the stock inventory system simply doesn't work. If you add 1 part with a mass-changing variant (e.g. the T-12 Structural Tube from Making History) to a stock container in the editor it will display correctly at launch. However, if you leave the vessel and reload it will revert back to default (in the case of the tube 0.075t/75kg). If you add 2 or more of the same part with a mass-changing variant in the editor but choose different variants, they will use whichever you chose last (until you leave the vessel, when they revert to default.) It would seem it doesn't take the moduleMass value into account. I don't think there's anything I can do to fix or work around this.
  • There is still some GUI work to finish
  • I'd also like to make sure the design is colour-blind-friendly. If it isn't and I can't make it so without compromising it I'll add a colour blind mode of some sort.
    • If anyone knows of any other accessibility options/considerations that could/should be taken into account please let me know.
  • Create a replacement for the KIS icon renderer that the mod uses. This is a WIP and on a basic level mostly done, but it needs more testing and there are things left to implement.
  • Add the ability to add en masse all parts from a saved craft or subassembly to the build queue. This is mostly done but not yet completed.
  • I'd like to look into the memory issue some more. If possible I'd like to not have it run at startup, as with large part counts this can increase load times quite substantially. It also appears to hang during said loading which is far from ideal.
  • I need to make sure everything works correctly with save games and when switching vessels.
  • Add any more stock (including expansions) editor-only variables that I haven't yet thought of. If you can think of any others please let me know.
    • Light variables (colour, blink etc)
  • Finish moving strings to the localisation file (mostly done I think).
  • Add a few additional variables to sort by: resources required, etc.
  • Fix a bug where scrolling sometimes zooms the camera as well as scrolling through the part/categories lists, part descriptions etc. I have worked around this issue.
  • I need to think of a name for the mod

Planned features/ideas (for future releases)

I also have some plans for features which will (probably) not be present in the initial release, but may come in later releases. Naturally these are very much subject to change and may not ever come to pass.

Spoiler
  • Add additional part-changing methods/editor-only variables, possibly including:
    • WildBlueIndustries
    • Firespitter
    • Interstellar fuel switch
    • TweakScale
    • Procedural Parts
    • B9 Procedural Wings
    • Conformal Decals
    • BDArmory
    • Kerbalism (disk size, sample slots, experiments, reliability)
      • Reliability may be built in to the workshop as a mechanic rather than a variable, i.e. it will be effected by things such as engineer skill
    • Flags (as in the decals applied to parts, not the flag parts added in KSP 1.10) I have already tried this without much success. In KIS containers they seem to take on whatever flag the container vessel has rather than "remembering" the flag that was assigned to them.
    • Please suggest any others you know of and I will look into them as well.
  • Remove the requirement for KIS. At the moment the plugin relies on KIS for several things other than just the inventory. If these can be removed it will become available to players who just want to use the stock inventory system. Until then they will still need KIS installed even if they don't use it.
  • Add more mod-specific categories (please suggest any others you know of which don't use CCK, WBI, USI or Filter Extensions).
  • Allow the EVA repair kits added in KSP 1.11 to be used to repair damaged workshops in addition to duct tape.
  • Add compatibility with the alarm clock added in KSP 1.12.
  • BDArmory sub-category system. Hopefully this will replicate the custom system used in the editors; if not, I will at the very least add the individual subcategories like normal categories.
  • Add waste-material-related parts (incinerator, storage).
  • If possible, make dumped waste material may actually appear in the game world.
  • Add an "event log", which will show the player what the workshop/recycler has done and when. This will likely include:
    • Adding/removing parts from a queue
    • Starting/cancelling manufacturing/recycling
    • Pausing/resuming
    • Stalling due to lack of space, power, resources or queue
  • Add full Janitor's Closet(-like) capabilities/compatibility (i.e. mod filtering, part blacklisting)
  • Add a manufacturer icon
  • Add a bespoke category icon rather than using the one for the Advanced MetalWorks tech node
  • Add resource icons?
  • Add some form of interface scaling so those on high-res monitors don't have to peer at tiny icons etc. This will probably scale the categories and parts list up to the same size as in the editors (they are currently 75% scale)
  • Add a way to make non-compatible parts able to be added to stock inventories, i.e. computationally add a cargo part module to parts without one (as long as they are allowed to have one, so not cargo containers or command pods). If implemented this will probably also apply to parts added via the editor.
  • Add the ability to vary production speed (e.g. lower it to save limited electricity or boost it when a high-level engineer is present)
  • Add compatibility with NearFutureElectrical nuclear power plants, allowing their output to be managed by workshops/recyclers and/or the app (sidebar widget).
  • Add the ability for workshops to interact, allowing workshops share queues, boost production etc. In such a system particular workshops could also be prioritised (e.g. they could reserve resources to ensure their part is printed, or could preferentially throttle down other workshops to save power). This would probably be done via the sidebar widget.
  • Possibly add a licensing fee/cost to license, which will act in a similar way to entry cost in the stock game. This would require parts to be licensed before they could be printed. Since this would restrict the game quite a bit it would be completely optional and only there for players who want it.
  • Printer-specific "generic" parts. If licensing fees are implemented these would would not have one. They may only include "simple" things like structural parts, tools, fuel tanks etc, rather than those requiring complex parts such as probe cores and science equipment.
  • Patches and/or specific parts to hold resources for Universal Storage and K&K Planetary Base System, and possibly for other profiles such as the Mk2 and Mk3 spaceplane profiles.
  • New, more detailed part models
  • Possibly add some kind of modular upgrade system: parts which upgrade the workshop's capabilities by attaching to the workshop part (not unlike the different modular processors in the Cacteye 2 mod)
    • AI controller/automation upgrade, removing the need for crew (or reducing the required number)
    • Speed upgrade(s)
    • Efficiency upgrade(s)
    • Unlocking of certain types of part or other capabilities

Planned "major" features (for far future releases)

There are features which I plan to develop longer term, many of which will significantly change the nature of the mod. Most of them will probably be made as a separate dependent mod rather than being directly incorporated. While I won't go into detail here, most of them revolve around a new, far more expansive resource and recipe system and additional parts to facilitate this. The closest comparison I can think of is the MKS resource system.

The basic idea behind this is to make colonisation a much more involved and challenging process rather than just a case of sending up a few modules and engineers and waiting. (Building a colony should require infrastructure, scarce resource management etc.) However, as I said this will likely be a separate sub-mod, so players who just want to build a few rockets on the Mun don't have to put up with a semi-realistic colonisation simulator.

Edited by Alphathon
Updated
Link to comment
Share on other sites

Awesome, was hoping for this. Though with the recent addition of the MKS Konfrabricator it's no longer as urgent, but always better to have more options. But it looks like you have a lot of ideas for improving this. Good luck, post a release on Github or something and let us test it ;-)

Link to comment
Share on other sites

Hey @Alphathon, is there any plans for updating the part models with maybe adding more variations... e.g. a 3.5m Workshop etc.??

It's great to see this mod get some proper love, its one of the best and most under-developed mods in KSP

Thanks for your work :)

Edited by spoonyboobah
Link to comment
Share on other sites

2 hours ago, spoonyboobah said:

Hey @Alphathon, is there any plans for updating the part models with maybe adding more variations... e.g. a 3.5m Workshop etc.??

New part models are on the planned features/ideas list (near the bottom). As for different workshop sizes/profiles it is certainly something I am considering but have no concrete plans as yet. I would say it's likely but not certain.

Link to comment
Share on other sites

I look forward to using this mod, it looks well planned out.

A couple questions.

Is the workshop its own part or is it patched to existing KSP parts? 

If it has its own part and can house Kerbals, will the Kerbals have any effect on production or builds?

Some examples.

Will the shop work faster if you have more than one Kerbal Engineer.

Will you only be able to build certain parts depending on who is on board, like science parts if you only have a scientist on board. Of course an option to turn it off. Just like reasons to take more than one of each Kerbal class.

I wish you luck working toward a release.

Link to comment
Share on other sites

2 minutes ago, Barar said:

Is the workshop its own part or is it patched to existing KSP parts?

It is its own part, as are the recycler, ore processor etc. The mod is based on an existing mod OSE Workshop Reworked which is linked at the top of the thread (or click here), so you can take a look there if you want to see the part. The model for it will be changed at some point down the line but for now the part shown there is what will be included.

7 minutes ago, Barar said:

If it has its own part and can house Kerbals, will the Kerbals have any effect on production or builds?

Some examples.

Will the shop work faster if you have more than one Kerbal Engineer.

Will you only be able to build certain parts depending on who is on board, like science parts if you only have a scientist on board. Of course an option to turn it off. Just like reasons to take more than one of each Kerbal class.

At the moment the part holds 2 Kerbals and requires 2 Kerbals to operate. Engineers with the repair skill boost the speed by 1% per level (so level 3 Kerbal = 3%). The Kerbal's stupidity also acts as a negative multiplier to the speed if that option is enabled. Again, this is all carried over from OSE Workshop Reworked and may be changed later.

Link to comment
Share on other sites

On 4/14/2021 at 11:22 PM, Grimmas said:

Awesome, was hoping for this. Though with the recent addition of the MKS Konfrabricator it's no longer as urgent, but always better to have more options. But it looks like you have a lot of ideas for improving this. Good luck, post a release on Github or something and let us test it ;-)

"Problem" with MKS Konfabricator is that it requires additional New Resources which would need to be added to Existing Cargo parts (they arent part of CRP), if you want to use Konfabricator, you also need to switch your vessel production to the MKS workshops (or have both systems running), which again changes the resource requirements 

Link to comment
Share on other sites

6 hours ago, Grimmas said:

Yes, I suppose not everyone want to make life hard for themselves :) so it's good to have a 'simple' alternative that can just rely on Ore or just MaterialKits. 

it's a question of visual style, MKS has containers for everything, yes, but if you run a station with SSPE parts then you need to MM the resources in manually :D

Link to comment
Share on other sites

Well, SSPE meshes well with Near Future Construction (for obvious reasons) and that one has those hexa-girders and octa-girders which mesh well with USI Kontainers :) 

At least that's how I build my space stations. Gives them a bit of an industrial look. But you can also add MM patches for the missing resources, of course, as you say.

Link to comment
Share on other sites

Howdy! I'm super excited to see this, since Some Assembly Required came out I've been looking forward to making (however limited they may be) ships or stations in orbit, but I was semi-surprised to see there was no way of crafting new parts mid-mission, can't wait to see how this turns out!

I'm wondering how you're going to tackle bigger parts though, will you just be sticking with what can fit into inventories?

Link to comment
Share on other sites

1 hour ago, Captain Tak said:

what can fit into inventories

Squad didn't add configs(that allow interactions) for big parts. To add them, get this and and run it without size limits and including stock parts. Made by our glorious code overlord LinuxGuruGamer. And get an enormous cargo container somehow, maybe MKS Kontainers will help.

 

Link to comment
Share on other sites

Man, I just wanna say... wow... thats quite the awesome & detailed plan for plan for the mod...
So, essentially, instead of the VAB/SPH editor, this could almost be considered an In-Flight editor? :P
 

On 4/14/2021 at 4:38 PM, Alphathon said:
  • I worked around a memory issue: The KIS volume calculator seems to calculate the volume by loading up the part model and "measuring" it, but it seemingly never unloads it. (Since the KIS code documentation says to remember to destroy the object I suspect it's the Workshop's implementation but I haven't looked into this.) Previously this was done every frame for the selected part meaning that over time memory usage would creep up. This was especially bad for complex models (e.g. the large KIS containers) and could lead to several GB of extra memory use in a few minutes. This is now done only once on flight startup.

So on this point, I was wondering if its still an issue?
Have you seen LGG & ValiZockt's KSP PartVolumes ?

Mebbe poke that, and see if theres anything in there that might help with optimization/performance improvements, if the above is an issue... vOv

Edited by Stone Blue
Link to comment
Share on other sites

Hi all. Here's what I've been up to in the last two weeks.

  • I implemented stock-like sliders and used them to implement variable Motor Size and Output(%) and Extension/Angle Limit for robotic parts. I also added stock-PAW-like toggles for Motorized, Allow Full Rotation for servos, Ratcheted for rotors, and Attach nodes for parts with a Dynamic Nodes module (such as the rotors). It should be fairly trivial to use these for the other variables (e.g. resources such as solid fuel for SRBs, ablator for heat shields).
    • I have also implemented a text input mode (like the # button on stock PAWs) for the Extension/Angle Limit. This will be generalised and added to the other sliders later.
  • The mass of the workshop module/part now increases as parts are manufactured, to simulate the part actually being built from the resources. This makes sure the total mass of the vessel doesn't change while manufacturing. (Previously it would decrease as the resources were used up, then increase again when the part was added to the container.)
  • The workshop UI is now not drawn when the KSP UI is hidden (triggered by the F2 button by default).
  • (I think) I have fixed the scrolling issue (or at least worked around it in a more robust manner).
  • I did most of the remaining UI work
  • Behind the scenes I built a new class for the queued items which uses ProtoPartSnapshots rather than the AvailableParts used before. This doesn't have much impact on the user but does mean a lot of hacky workarounds involving variables (variants/B9 subtypes, motor mass etc, basically anything that differentiates a part from its "base" version) can be avoided, and will allow me to implement things like item stacks and pausing of in-progress parts down the line. It has also allowed me to build a specific hover widget for the queued parts (similar to the part preview in the editor) which displays things like the selected variants, recipe, whether it is destined for a stock or KIS inventory, build time etc. It should also be useful for the recycler when I get to it.

I have also just taken some screenshots of various features which I will post soon. (I need to properly crop them etc and get them uploaded somewhere.)

 

On 4/26/2021 at 11:58 PM, Captain Tak said:

I'm wondering how you're going to tackle bigger parts though, will you just be sticking with what can fit into inventories?

Any part with a cargo module can be manufactured and placed in a stock container. The way the stock system works means that if it doesn't have a cargo module it cannot be added. At the moment this means any of the large or crewed stock parts and any modded parts which don't have one cannot be manufactured using a stock inventory. They can however still be put in a KIS inventory (as long as you have one big enough – some parts, such as the Rhino and Twin-Boar engines, are too large for the containers included with KIS but I'm pretty sure other mods add larger containers). Also, if you get another mod which adds a cargo module to them (like the one Hohmannson mentioned) they'll go into a stock container just fine. I plan to add the ability to add cargo modules to parts at some point down the line, but haven't done so yet (see the Planned features/ideas (for future releases) section of the OP).

 

On 4/27/2021 at 12:44 PM, Stone Blue said:

Man, I just wanna say... wow... thats quite the awesome & detailed plan for plan for the mod...

Thanks!

On 4/27/2021 at 12:44 PM, Stone Blue said:

So, essentially, instead of the VAB/SPH editor, this could almost be considered an In-Flight editor? :P

Sort-of,  in the sense that you can manufacture parts in the field. Any vessels would need to be built "manually" (piece-by-piece) using KAS or the new in-flight construction mode added in 1.11. In that sense it is no different than the previous iterations.

On 4/27/2021 at 12:44 PM, Stone Blue said:

So on this point, I was wondering if its still an issue?

Have you seen LGG & ValiZockt's KSP PartVolumes ?

Mebbe poke that, and see if theres anything in there that might help with optimization/performance improvements, if the above is an issue... vOv

The calculator needs to be identical to the KIS one as it is being used to test if there's enough space in KIS containers. If it's different that may introduce problems where the workshop and KIS calculate different volumes. If I were only using the stock inventory system it wouldn't be an issue as the volumes it uses are explicitly encoded in the cargo module. As I said though I suspect it's the implementation of it in the mod that's the issue rather than being an intrinsic part of KIS, and even if I can't fix it it isn't really a big issue unless you're using a lot of part mods.

Edited by Alphathon
Link to comment
Share on other sites

Screenshots!

fpf3f9Z.png

This is how the interface currently looks. Most of the elements shown here are as they will be once finished, but some changes are inevitable. Some almost guaranteed changes are that I intend to round off the top corners of the window (Edit: this is now done), and that the pause and cancel buttons will be changed at some point. The grey piece at the bottom left is also a placeholder and will probably change.

Most of it should be pretty self-explanatory. The parts shown in red in the items list are those which are too large for to fit in any of the available containers, or are blocked from being put in containers for some other reason. None of the screenshots show any parts with B9 subtypes but they show up in exactly the same way as stock variants.

bNvl97e.png

If a part's mass varies based on its variant, B9 subtype or motor mass (or any other as-yet unimplemented variables) the mass in the description is highlighted in yellow/gold and has an asterisk after it, and has a tooltip explaining it. (Note that the in-game cursor does not show up on screenshots. The tooltip appears at approximately the same place as stock ones do.)

I6wUkY4.png

Here you can see most of the variables available for robotic parts, as well as the numeric input for the hinge's Angle Limit. Also, the text in brackets/parentheses after the part name shows that this is a part added in the Breaking Ground expansion. For modded parts, this will show the mod folder's name (except for a few hard-coded exceptions; e.g. Infernal Robotics parts display as Infernal Robotics, not MagicSmokeIndustries.)

VyzawYG.png

This is how the mouseover widget for queued parts currently looks. This part is very much a WIP.

iGhbbbs.gif

Here is an example of switching between stock and KIS containers. As you can see, in stock mode several of the parts turn red. This is because they either lack a cargo part module, have a cargo part module but are blocked from being put in a container (examples of this are the stock containers themselves, which can be manipulated on EVA, but cannot be put in another container), or are too large for any of the available containers.

JTczTrT.gif

Here is an example of search-as-you-type working.

373Nyrl.png

Finally, here is the current state of the PAW. Notice that there is now a progress bar at the top, and a pause/resume button underneath the close workbench button

Edited by Alphathon
Link to comment
Share on other sites

  • 2 weeks later...

Update time.

I've done a fair amount of work on this since my last post, although most of it has been general structural and minor UI stuff rather than anything worth talking about specifically. Some of it is though:

  • Standard categories added by USI tools (Rovers, Manufacturing, Logistics, Construction, Kolonization and LifeSupport) are now added automatically to the Workshop UI. As I understand it current USI mod versions use CCK but this is included for anyone using legacy versions.
  • I wrote a Localiser method (which acts as a wrapper for the stock Localization.Format() method) which allows the player to use British English spellings/terminology if they wish. This is done via an option in the settings menu. Examples include motorised instead of motorized, anticlockwise instead of counterclockwise, cancelling instead of canceling etc. This applies to all Workshop UI elements (i.e. anything directly controlled by the mod) but does not apply to things like part descriptions and doesn't effect any other part of KSP's interface (so motors still say counterclockwise in the editors for example). The way the system works means that it will have no impact on users who don't have English selected, and in fact the option won't even show up in the menu. Although not implemented at the moment this could also be extended to allow for other regional language variants (e.g. Swiss German or European/Brazilian Portuguese).
  • Cancelling a part which has already been started now pauses production and brings up a dialogue box letting the player know how many resources have already been used etc. This replaces the existing system which simply displayed an on-screen message telling the player to hit the button again to confirm.
  • I have added the ability to modify the amount of resources added to a part. This is done through stock-like sliders, much like the variables for motorised parts.
    • "Static" resources such as ablator and solid fuel, which can normally only be changed in the editors, are added as part of the manufacturing process. (This is how they already worked but the player couldn't choose how much to add – they always included 100% of their capacity.)
    • For transferable resources such as liquid fuel or electric charge this is done at the end of the manufacturing process and is displayed in a dialogue box. If a resource is unavailable the transfer will obviously stall, but the player can cancel any or all of the planned transfers (either because they've stalled or because they changed their mind). A full tank/battery/container transfer takes exactly 20 seconds, just like when transferring resources between parts in-game. In future I plan to allow the player to change the amount to be added after they have added the part to the queue (both during the manufacturing process and the resource transfer phase) but this is not yet implemented.
    • Some resources are blacklisted and cannot be added (some from stock, others from the Community Resource Pack): intake air, intake liquid, intake atmosphere, solar wind, and thermal power. EVA Propellant is always set to full as it is always refilled when a Kerbal enters a pod. Duct tape is currently also blacklisted but will at some point get a recipe and work like ablator etc.
  • I have been working on a "pass-through" system for keyboard shortcuts. At the moment it only works for time warp. In an ideal world I'd like it to work for all or most (in-flight) shortcuts, but I've been having some issues getting pausing working. As far as I can tell each shortcut has to essentially be re-implemented by the workshop in order to work (I haven't found a way to truly let them just pass through to the main game without also sacrificing camera and mouse lock). Once this is set up I intend to add shortcuts of my own for Workshop functions. These will be selectable in the options menu.
  • Warning icons now appear in the recipe box next to resources etc which are currently unavailable. These icons are the same ones used in the editor Engineer's Report (e.g. for ElectricCharge required but not generated). The recipe is also separated into sections (resources required, resources to be transferred, volume required and build time, although they aren't labelled as such) using horizontal lines as dividers.
Link to comment
Share on other sites

20 hours ago, Barar said:

I'd make suggestions but they would be redundant as you look to be quite thorough. I look forward to playing with this mod when you release it.

Thanks. I do try to be thorough but I'm certainly not infallible so if you do have any suggestions please feel free to make them. Different perspectives are always welcome. :) If you do make a redundant suggestion all that will happen is you will find out more about (my plans for) the mod, so it's no big deal. All I'd say is most of my short-to-medium term plans are in the OP so if you're not sure give it a quick read.

Edited by Alphathon
typo
Link to comment
Share on other sites

  • 2 weeks later...

This past week or so I've been mainly working on the queue system, and have made some fairly significant changes to it:

  • Parts can now be added to the queue in stacks.
  • Individual parts (or stacks of parts) can be paused. For items in the queue this means they will be ignored and not manufactured until unpaused. Parts which have already been started (i.e. are partially constructed) are moved back into the queue and display a small progress bar indicating their progress.
  • Queue items can be dragged around to re-order the queue.
  • Parts in the queue now have a radial menu which shows up when you right-click them. This has a short expansion animation similar to stock manoeuvre (maneuver) nodes. Currently this only has cancel and pause/resume buttons but will later allow things like stack size management.
  • I have re-designed the bottom part of the interface and added individual progress bars for each resource. The part icon is now surrounded by six buttons, three of which are currently implemented: pause, cancel and switch target inventory type.

Here are some screenshots showing how it currently looks. You can also see the cancel and resource transfer dialogue boxes, resource sliders, the updated recipe window (with dividers and warning icons) and some other minor UI tweaks. The radial menu for the queued items can be seen in the black box overlaid on the first screenshot, which was only added because you cannot both right-click and item and drag one at the same time.

3JAh8ys.png

pk5tHlu.png

Edited by Alphathon
Link to comment
Share on other sites

8 hours ago, Kerbex said:

This looks extremely promising, can't wait to try it out. :)

Thanks! :)

5 hours ago, Friznit said:

Is the window by any chance resizable?  I suspect that's a bit of a pain to implement in the UI but it would be a very welcome addition

At the moment it's fixed, but I do plan to have at least some degree of resizability and I have coded it with that in mind. How exactly it will be implemented I don't know though.

One thing I do plan to do though is to have a "large" mode: currently the parts list, category buttons etc are scaled to 75% of those in the editors (VAB/SPH) but in "large" mode they'd be 100%. From a coding POV that's fairly trivial to do, I just need to actually do it.

I have also toyed with the idea of a minimal UI which only shows the queue and print progress without the part list etc.

I haven't ruled out completely dynamic scaling (i.e. to any arbitrary size) but I haven't any specific plans for it either. The part preview is already the same scale as the editors' so that probably wouldn't change (although it could easily become taller without changing anything else). The progress bars etc are all at the same scale as the stock UI too. The queue can fairly easily be changed as long as it remains a multiple of the part icons.

I would also assume it would respect the stock UI scale setting, as I think that applies automatically to all UI elements. (I haven't tested this though so I may be wrong.)

Link to comment
Share on other sites

  • 2 weeks later...

Really looking forward to trying this out, even if it's in beta (I don't mind bleeding edges). There's some excellent attention to detail - I did try the original OSE Workshop just to see how it works.

The only downside is I hardly ever get far enough to build things off planet - constantly upgrading KSP and restarting careers as modders bring out even more cool mods.

Definitely would appreciate scaling support, I play at 4K so there's one or two really old mods that don't do this, I may have to buy a physical magnifying glass :lol:

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...