Jump to content

[1.2] OSE Workshop - KIS Addon: (v1.1.0 - 2016.11.03)


ObiVanDamme

Recommended Posts

1 hour ago, Angel-125 said:

No problem, happy to keep the lights on until you return. :) One way to centralize inventory selection is to do part highlighting and watch what part the user clicks on. I already have a system in place for MOLE's experiment  transfer system, so I know how to do that for OSE Workshop. For the crew efficiency, I figured it would give about 2% production speed improvement per star, modified by the kerbal's stupidly rating. Staffing the lab with smart and experienced engineer types is a good thing. I can do both of those after kicking the latest release out the door and finishing up work on Snacks.

It sounds like we'll have extra improvements in 2017 too, I should be able to help, time permitting. :) 

Sounds good to me. Any chances I can take a look at the changes you did in the code while I was absent? I am very curious to see the crew efficiency thing, because it is the feature I postponed for the longest time. The part highlight and than select an inventory by clicking on it was my intention, too. I already had a prototyp for highlighting but did not figure out how to get where the player clicked. Good to here you already have something in place. 

Little spoiler for the improvements I planned

Spoiler

I actually liked, that some players used OSE Workshop to earn money by building parts cheaper than what you get when you recover a vessel. During that time it was an exploit, because you could just have a vessel on the launch pad, timewarp a year and have infinite funds. But what if we implement a system, where you can actually build some parts with the purpose of earning money, but with a challange for the player in regards to base building and resource harvesting :0.0:

 

Link to comment
Share on other sites

45 minutes ago, ObiVanDamme said:

Sounds good to me. Any chances I can take a look at the changes you did in the code while I was absent? I am very curious to see the crew efficiency thing, because it is the feature I postponed for the longest time. The part highlight and than select an inventory by clicking on it was my intention, too. I already had a prototyp for highlighting but did not figure out how to get where the player clicked. Good to here you already have something in place. 

Little spoiler for the improvements I planned

  Reveal hidden contents

I actually liked, that some players used OSE Workshop to earn money by building parts cheaper than what you get when you recover a vessel. During that time it was an exploit, because you could just have a vessel on the launch pad, timewarp a year and have infinite funds. But what if we implement a system, where you can actually build some parts with the purpose of earning money, but with a challange for the player in regards to base building and resource harvesting :0.0:

 

Of course. :) I will have a pull request by the weekend at the latest. Here's what I'm working on for the efficiency improvements:

        [KSPField()]
        public bool UseSpecializationBonus = true;

        [KSPField()]
        public float SpecialistEfficiencyBonus = 0.02f;

        [KSPField()]
        public string ExperienceEffect = "RepairSkill";

        private void UpdateProductivity()
        {
            int crewCount = this.part.protoModuleCrew.Count;
            ProtoCrewMember worker;

            if (_processedItem != null && UseSpecializationBonus)
            {
                if (crewCount == 0)
                    return;

                //Set initial productivity
                adjustedProductivity = ProductivityFactor;

                //Find all crews with the build skill and adjust productivity based upon their skill
                for (int index = 0; index < crewCount; index++)
                {
                    worker = this.part.protoModuleCrew[index];
                    if (worker.HasEffect(ExperienceEffect))
                        adjustedProductivity += worker.experienceTrait.CrewMemberExperienceLevel() * SpecialistEfficiencyFactor * (1 - worker.stupidity);
                }
            }
        }

As an example, the base ProductvityFactor is 0.25 for Pathfinder's Blacksmith OSE Workshop. That means the workshop chews through resources at 0.25 units per second. It holds a maximum of 4 kerbals. 2 kerbals are engineers, a 3-star and a 2-star. The 3-star has a stupidity of .86, and the 2-star has a stupidity of .2.

The 3-star engineer adds 3 * 0.02 * (1 - 0.86) = 3 * 0.02 * (0.14) = 0.0084

The 2-star engineer adds 2 * 0.02 * (1 - 0.2) = 0.032

The total adjusted productivity is: 0.25 + 0.0084 + 0.032 = 0.2904

Edited by Angel-125
Link to comment
Share on other sites

On 06.10.2016 at 6:11 AM, Angel-125 said:

Want to give it a try? Download it here! :)

Note that you'll need the latest Firespitter for KSP 1.2 and the KIS for KSP 1.2 pre-release to use OSE Workshop 1.0.0 properly. For this pre-release, you might need to manually add MaterialKits to the storage containers.

After installing this RoundDrill disappears from the game, log contains following errors:

[LOG 12:26:36.981] PartLoader: Compiling Part 'Squad/Parts/Resources/LargeTank/LargeTank/LargeTank'
[LOG 12:26:36.988] PartLoader: Compiling Part 'Squad/Parts/Resources/MiniDrill/MiniDrill/MiniDrill'
[ERR 12:26:37.007] FloatCurve: Invalid line. Requires two values, 'time' and 'value'

[ERR 12:26:37.010] PartLoader: Encountered exception during compilation. System.IndexOutOfRangeException: Array index is out of range.
  at FloatCurve.Load (.ConfigNode node) [0x00000] in <filename unknown>:0 
  at BaseFieldList.Load (.ConfigNode node) [0x00000] in <filename unknown>:0 
  at PartModule.Load (.ConfigNode node) [0x00000] in <filename unknown>:0 
  at Part.AddModule (.ConfigNode node, Boolean forceAwake) [0x00000] in <filename unknown>:0 
  at PartLoader.ParsePart (.UrlConfig urlConfig, .ConfigNode node) [0x00000] in <filename unknown>:0 
  at PartLoader+<CompileParts>c__Iterator62.MoveNext () [0x00000] in <filename unknown>:0 

[ERR 12:26:37.013] PartCompiler: Cannot compile part

[LOG 12:26:37.015] PartLoader: Compiling Part 'Squad/Parts/Resources/MiniISRU/MiniISRU/MiniISRU'
[LOG 12:26:37.031] Found 3 overheatable modules
[EXC 12:26:37.037] NullReferenceException: Object reference not set to an instance of an object
	PartLoader.GetDatabaseConfig (.Part p)
	PartLoader.GetDatabaseConfig (.Part p, System.String nodeName)
	DragCubeSystem.LoadDragCubes (.Part p)
	Part+<Start>c__Iterator38.MoveNext ()
	UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress)
[LOG 12:26:37.051] PartLoader: Compiling Part 'Squad/Parts/Resources/OrbitalScanner/OrbitalScanner/OrbitalScanner'
[LOG 12:26:37.099] PartLoader: Compiling Part 'Squad/Parts/Resources/RadialDrill/RadialDrill/RadialDrill'
[ERR 12:26:37.110] FloatCurve: Invalid line. Requires two values, 'time' and 'value'

[ERR 12:26:37.111] PartLoader: Encountered exception during compilation. System.IndexOutOfRangeException: Array index is out of range.
  at FloatCurve.Load (.ConfigNode node) [0x00000] in <filename unknown>:0 
  at BaseFieldList.Load (.ConfigNode node) [0x00000] in <filename unknown>:0 
  at PartModule.Load (.ConfigNode node) [0x00000] in <filename unknown>:0 
  at Part.AddModule (.ConfigNode node, Boolean forceAwake) [0x00000] in <filename unknown>:0 
  at PartLoader.ParsePart (.UrlConfig urlConfig, .ConfigNode node) [0x00000] in <filename unknown>:0 
  at PartLoader+<CompileParts>c__Iterator62.MoveNext () [0x00000] in <filename unknown>:0 

[ERR 12:26:37.113] PartCompiler: Cannot compile part

[LOG 12:26:37.114] PartLoader: Compiling Part 'Squad/Parts/Resources/RadialTank/RadialTank/RadialOreTank'
[LOG 12:26:37.118] Found 3 overheatable modules
[EXC 12:26:37.118] NullReferenceException: Object reference not set to an instance of an object
	PartLoader.GetDatabaseConfig (.Part p)
	PartLoader.GetDatabaseConfig (.Part p, System.String nodeName)
	DragCubeSystem.LoadDragCubes (.Part p)
	Part+<Start>c__Iterator38.MoveNext ()
	UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress)
[LOG 12:26:37.127] PartLoader: Compiling Part 'Squad/Parts/Resources/SmallTank/SmallTank/SmallTank'
[LOG 12:26:37.134] PartLoader: Compiling Part 'Squad/Parts/Resources/SurfaceScanner/SurfaceScanner/SurfaceScanner'

 

Link to comment
Share on other sites

5 hours ago, RealGecko said:

After installing this RoundDrill disappears from the game, log contains following errors:


[LOG 12:26:36.981] PartLoader: Compiling Part 'Squad/Parts/Resources/LargeTank/LargeTank/LargeTank'
[LOG 12:26:36.988] PartLoader: Compiling Part 'Squad/Parts/Resources/MiniDrill/MiniDrill/MiniDrill'
[ERR 12:26:37.007] FloatCurve: Invalid line. Requires two values, 'time' and 'value'

[ERR 12:26:37.010] PartLoader: Encountered exception during compilation. System.IndexOutOfRangeException: Array index is out of range.
  at FloatCurve.Load (.ConfigNode node) [0x00000] in <filename unknown>:0 
  at BaseFieldList.Load (.ConfigNode node) [0x00000] in <filename unknown>:0 
  at PartModule.Load (.ConfigNode node) [0x00000] in <filename unknown>:0 
  at Part.AddModule (.ConfigNode node, Boolean forceAwake) [0x00000] in <filename unknown>:0 
  at PartLoader.ParsePart (.UrlConfig urlConfig, .ConfigNode node) [0x00000] in <filename unknown>:0 
  at PartLoader+<CompileParts>c__Iterator62.MoveNext () [0x00000] in <filename unknown>:0 

[ERR 12:26:37.013] PartCompiler: Cannot compile part

[LOG 12:26:37.015] PartLoader: Compiling Part 'Squad/Parts/Resources/MiniISRU/MiniISRU/MiniISRU'
[LOG 12:26:37.031] Found 3 overheatable modules
[EXC 12:26:37.037] NullReferenceException: Object reference not set to an instance of an object
	PartLoader.GetDatabaseConfig (.Part p)
	PartLoader.GetDatabaseConfig (.Part p, System.String nodeName)
	DragCubeSystem.LoadDragCubes (.Part p)
	Part+<Start>c__Iterator38.MoveNext ()
	UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress)
[LOG 12:26:37.051] PartLoader: Compiling Part 'Squad/Parts/Resources/OrbitalScanner/OrbitalScanner/OrbitalScanner'
[LOG 12:26:37.099] PartLoader: Compiling Part 'Squad/Parts/Resources/RadialDrill/RadialDrill/RadialDrill'
[ERR 12:26:37.110] FloatCurve: Invalid line. Requires two values, 'time' and 'value'

[ERR 12:26:37.111] PartLoader: Encountered exception during compilation. System.IndexOutOfRangeException: Array index is out of range.
  at FloatCurve.Load (.ConfigNode node) [0x00000] in <filename unknown>:0 
  at BaseFieldList.Load (.ConfigNode node) [0x00000] in <filename unknown>:0 
  at PartModule.Load (.ConfigNode node) [0x00000] in <filename unknown>:0 
  at Part.AddModule (.ConfigNode node, Boolean forceAwake) [0x00000] in <filename unknown>:0 
  at PartLoader.ParsePart (.UrlConfig urlConfig, .ConfigNode node) [0x00000] in <filename unknown>:0 
  at PartLoader+<CompileParts>c__Iterator62.MoveNext () [0x00000] in <filename unknown>:0 

[ERR 12:26:37.113] PartCompiler: Cannot compile part

[LOG 12:26:37.114] PartLoader: Compiling Part 'Squad/Parts/Resources/RadialTank/RadialTank/RadialOreTank'
[LOG 12:26:37.118] Found 3 overheatable modules
[EXC 12:26:37.118] NullReferenceException: Object reference not set to an instance of an object
	PartLoader.GetDatabaseConfig (.Part p)
	PartLoader.GetDatabaseConfig (.Part p, System.String nodeName)
	DragCubeSystem.LoadDragCubes (.Part p)
	Part+<Start>c__Iterator38.MoveNext ()
	UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress)
[LOG 12:26:37.127] PartLoader: Compiling Part 'Squad/Parts/Resources/SmallTank/SmallTank/SmallTank'
[LOG 12:26:37.134] PartLoader: Compiling Part 'Squad/Parts/Resources/SurfaceScanner/SurfaceScanner/SurfaceScanner'

 

 

The patch file MM_Workshop.cfg in this download has had all the spaces removed, so "key = 0 10000" looks like this "key=010000", which causes MM to not compile the part and make it go missing in the game.  Just replace the MM_Workshop.cfg with the 0.14.0 one on Github.

Link to comment
Share on other sites

7 minutes ago, RoverDude said:

Good that it's fixed... not sure how I feel about tying the stupidity stat in.  As an option, sure.. but does change the original flavor of this mod a bit.

Easily doable as an option, I'll look into adding Workshop options next update.

Link to comment
Share on other sites

Ok, here is Workshop 1.0.7

- Radial drill fix courtesy of RealGecko.
- Added Workshop options to KSP's Settings->Game Difficulty screen.
- You can enable/disable experience-based efficiency bonus (default on).
- You can enable/disable stupidity effects on experience-based efficiency bonus (default off).
- Workshop pause/play and trashcan buttons now use the same textures as the recycler.

Pull request with these changes also submitted.

Edited by Angel-125
Link to comment
Share on other sites

4 hours ago, Angel-125 said:

Ok, here is Workshop 1.0.7

- Radial drill fix courtesy of RealGecko.
- Added Workshop options to KSP's Settings->Game Difficulty screen.
- You can enable/disable experience-based efficiency bonus (default on).
- You can enable/disable stupidity effects on experience-based efficiency bonus (default off).
- Workshop pause/play and trashcan buttons now use the same textures as the recycler.

Pull request with these changes also submitted.

 

TheMM_Workshop.cfgstillhasallthespacesremovedsothedrillsdonotcompile.

I mean :) The MM_Workshop.cfg still has all the spaces removed so the drills don't compile.

Link to comment
Share on other sites

10 hours ago, ZentroCatson said:

Help me, I'm lost. You said that 1.0.7 fixes the drills not loading, but the drills still aren't loading for me! Am I missing something? I'll provide a log if you need it. 

Still getting it sorted. @RealGecko I thought I incorporated your commit but I guess not. I'll take a look. I've also got a couple of bugs to fix, shouldn't take too long.

Link to comment
Share on other sites

On 19.10.2016 at 7:16 PM, Angel-125 said:

Ok, here is Workshop 1.0.7

- Radial drill fix courtesy of RealGecko.
- Added Workshop options to KSP's Settings->Game Difficulty screen.
- You can enable/disable experience-based efficiency bonus (default on).
- You can enable/disable stupidity effects on experience-based efficiency bonus (default off).
- Workshop pause/play and trashcan buttons now use the same textures as the recycler.

Pull request with these changes also submitted.

I saw it and this request is also merged. Thank you again for your effort

19 hours ago, Enceos said:

I fixed the Workshop airlock, now kerbals can go in and out. Updated the container decals with new icons. Hopefully in the next release.

Vda8GFK.jpg

This looks amazing. I will make the changes in the config files to incorporate those images as soon as possible. hopefully before the next release by Angel-125 so they will be available in the next patch.

Link to comment
Share on other sites

Just now, ObiVanDamme said:

I saw it and this request is also merged. Thank you again for your effort

This looks amazing. I will make the changes in the config files to incorporate those images as soon as possible. hopefully before the next release by Angel-125 so they will be available in the next patch.

I'm actually already playing with all this stuff, Angel-125 has the updated configs and will make a pull request when ready.

Link to comment
Share on other sites

14 hours ago, Enceos said:

I'm actually already playing with all this stuff, Angel-125 has the updated configs and will make a pull request when ready.

Even better. Just downloaded the 1.2 release from steam yesterday. I hope to check this out on the weekend. It looks like the best patch ever since release. 

Link to comment
Share on other sites

4 hours ago, ObiVanDamme said:

Even better. Just downloaded the 1.2 release from steam yesterday. I hope to check this out on the weekend. It looks like the best patch ever since release. 

Absolutely true, so many lifehack things which were mods became stock, it's just so much more pleasant to play now, and I have yet to crash my game.

Edited by Enceos
Link to comment
Share on other sites

5 hours ago, ObiVanDamme said:

Even better. Just downloaded the 1.2 release from steam yesterday. I hope to check this out on the weekend. It looks like the best patch ever since release. 

Should have a fix for you later today. Hopefully solve the drill issue once and for all, Enceos' art and config updates, and fix a situation where the workshop can get stuck if you pause and then cancel a build.

Link to comment
Share on other sites

OSE Workshop 1.0.8 is now available

- Fixed an issue where cancelling production after pausing the workshop will prevent you from producing other items.
- Drill fixes for real this time...
- New storage options for the containers- thanks Enceos! :)
- Updated the workshop and decal artwork- Thanks Enceos! :)

Link to comment
Share on other sites

Got this error when adding 3d printer to vab

[OSE] -   at Workshop.KIS.KISWrapper.GetInventories (.Vessel vessel) [0x00000] in <filename unknown>:0 
  at Workshop.OseModuleWorkshop.LoadMaxVolume () [0x00000] in <filename unknown>:0 
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

[OSE] - Max volume is: 0 liters
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

Module OseModuleWorkshop threw during OnStart: System.NullReferenceException: Object reference not set to an instance of an object
  at Workshop.OseModuleWorkshop.LoadFilters () [0x00000] in <filename unknown>:0 
  at Workshop.OseModuleWorkshop.OnStart (StartState state) [0x00000] in <filename unknown>:0 
  at Part.ModulesOnStart () [0x00000] in <filename unknown>:0 

 

log: https://drive.google.com/file/d/0B4kd548FeSEpcWtUY09LcmQydGs/view?usp=sharing

mods:

CRP_0.6.1.0

EasyBoard-v1.2.1

EasyVesselSwitch_v1.1.1

KAS_v0.6.0

KIS_v1.3.0

ModuleManager.2.7.1

SurfaceLights_v1.3.0

VertVel131

Workshop_1_0_8

Edited by brusura
Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

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.

×
×
  • Create New...