Jump to content

[1.1.2] Kerbal Inventory System (KIS) 1.2.12


KospY

Recommended Posts

I'm so happy that I can replace the docking ports on my stations and upgrade the engines on my crafts in flight. The 1° incremets of attachment is what KAS always lacked + the anchor reverse, no more engines facing backwards! Previously I was tinkering with the adaptive docking nodes and was adding configs for KAS grabbability to many parts, used Chop It for detaching unwanted parts. This mod opened a whole new era of possibilities!

Jeremy-Renner.gif

- - - Updated - - -

BTW, where should I post my questions regarding modding development with KIS (I'm getting some awesome ideas), do you have a dev thread for that or should I break the flow and post technical queries here?

Github issue tracker: https://github.com/KospY/KIS/issues

Edited by Enceos
Link to comment
Share on other sites

You can actually carry more parts with the new EVA inventory. But don't worry, we're thinking about EVA container manipulation in space.

And low gravity, too, I hope. How low? Depends on the mass of the container and its contents, of course.

30cm3 seems to be a m3 to cm3 conversion error. We still want to keep the value quite high for gameplay purpose even if its a bit less realistic.

Conversion errors happen all too easily.

Less realistic is actually counter to gameplay (particularly in KSP), though a little bit is ok (maybe that bit of chubbiness kerbals have is not blubber but overly large pockets). However, even a human head is about 4L (0.004m3).

As to why going less realistic counter to gameplay in KSP: realism is the only way to achieve balance. Minor deviations (such as making the gravitational constant ten times higher) can be ok so long as they apply to everything (which, fortunately, that particular deviation does). However, I feel that stock aerodynamics actually hurts gameplay as it removes all challenge from dealing with atmospheres and adds a completely bogus requirement for huge rockets. Worse, it penalizes good aerodynamic design. I will celebrate its demise when 1.0 comes out.

My point being, do not use "gameplay" as an excuse for being unrealistic in a game where so much hinges on realism. Being unrealistic (or for games that are inherently unrealistic, inconsistent) is really for the sake of convenience, and convenience is counter to gameplay as gameplay is about overcoming inconvenience.

Blah, sorry, but that pushed the wrong buttons.

Link to comment
Share on other sites

A lot more realistic than Steve! :P

BTW, where should I post my questions regarding modding development with KIS (I'm getting some awesome ideas), do you have a dev thread for that or should I break the flow and post technical queries here?

Cheers!

Wow, that's quite a carrying capacity.

I'm really excited about this mod.

Off-topic: people on the Minecraft forum are jerks! Demanding that the person credit someone else for doing simple math is insane.

Link to comment
Share on other sites

Omg its here!! =D Just saw it as i n now, thank you both for working on it and for sharing it with us ! So many things to try ouit hehehe...

Ah the ghettoblaster! Now we can have some sweet customingame tracks awyeah

Edited by ahappydude
Link to comment
Share on other sites

So what happens to non-container parts that contain KAS storage?

Like MCM parts or LanderCans which have modded in KAS storage?

Its up to you Yemo or up to the creators of those mods to make a config that detects KIS and changes the storage type from KAS to KIS. I wrote a code on the previous page of how I do this.

Link to comment
Share on other sites

I'm reconfiguring all my containers for KIS, you can use the following config for KAS containers:


...code...

They will still be grabbable and can be stored in the racks, but the inventory will be KAS style. Make sure you empty all your KAS containers before applying this, cause it will remove the KAS inventory from them.

RESULT:

http://i.imgur.com/oZFpIa5.png

Thank you, I wrote a similar MM patch which don't remove the KASModuleContainer, so I can transfer items from KAS to KIS storage.

You can actually carry more parts with the new EVA inventory. But don't worry, we're thinking about EVA container manipulation in space.

Excellent!

Sometimes it is good to swap out containers for resupply, and not just drag and drop items from one inventory to another.

Away from that, the inventory itself is a great work, I would also like to see that going stock. :-)

Link to comment
Share on other sites

Its up to you Yemo or up to the creators of those mods to make a config that detects KIS and changes the storage type from KAS to KIS. I wrote a code on the previous page of how I do this.
Thank you, I wrote a similar MM patch which don't remove the KASModuleContainer, so I can transfer items from KAS to KIS storage.

Excellent!

Sometimes it is good to swap out containers for resupply, and not just drag and drop items from one inventory to another.

Away from that, the inventory itself is a great work, I would also like to see that going stock. :-)

Thank you, I ll try to phase out the old KAS as user friendly as possible.

@Johnwayne1930:

Can you share your code, so that the transition is less violent than what is proposed in the KIS pdf?

Will have to do that for my SETI-BalanceMod, which adds KAS storage to many command pods.

Link to comment
Share on other sites

The ability to move containers with stuff, on the back of a Kerbal, to a workside in space (!) is one of the finest functions of KAS.

Please don't remove that, make at least one small container able to carry on the back of a Kerbal!

With the new, larger parts, it makes less sense, but why not migrate the old parts over to KIS? Though the large one would be pushing it in high gravity, the small one was pretty reasonable for a tough kerbal.

oZFpIa5.png

It was good fun giving the kerbals little backpacks full of stuff.

Plus, you could carry them up ladders when necessary.

Edited by Tw1
Link to comment
Share on other sites

Less realistic is actually counter to gameplay (particularly in KSP), though a little bit is ok (maybe that bit of chubbiness kerbals have is not blubber but overly large pockets). However, even a human head is about 4L (0.004m3).

As to why going less realistic counter to gameplay in KSP: realism is the only way to achieve balance. Minor deviations (such as making the gravitational constant ten times higher) can be ok so long as they apply to everything (which, fortunately, that particular deviation does).

My point being, do not use "gameplay" as an excuse for being unrealistic in a game where so much hinges on realism. Being unrealistic (or for games that are inherently unrealistic, inconsistent) is really for the sake of convenience, and convenience is counter to gameplay as gameplay is about overcoming inconvenience.

Blah, sorry, but that pushed the wrong buttons.

I totally agree and you're right on that point. Gameplay can easily be used as an excuse to make things convenient.

But...

Well, it's not our way.

IMO, in simulation games, "simulation" doesn't mean "real". Au contraire, a simulation "simulates", it "fakes" reality.

Then, the point is not to make something real, it's to make an illusion of real. And as it's a game, it has to be an "entertaining realism".

"Real" include boredom or frustration elements as waiting (too long) or repeating (always the same thing).

The "gameplay purpose" I mentioned is not an excuse but a conscious choice, to limit those element and to keep the player interest and entertainment high.

So about the inventory size, we want a good balance between believable (to keep that cool illusion) and gameplay focus (to avoid the "annoying realism" effect).

Anyway, the setting.cfg is here to allow you to change those parameter ther way you want ;)

Edited by winn75
Link to comment
Share on other sites

Is anyone having issues with the Filter Extensions mod along with KIS? In VAB I can't load saved crafts with KIS containers without glitching the parts filters. And the craft loads only partially. The problem disappeared after I removed Filter Extensions.

Link to comment
Share on other sites

How did you guys build rovers with this? I had trouble building a rover because it was very difficult to attach wheels to the rovemate body without the wheels clipping into the ground. I ended up just blowing the rover up with explosives (lol).

Link to comment
Share on other sites

How did you guys build rovers with this? I had trouble building a rover because it was very difficult to attach wheels to the rovemate body without the wheels clipping into the ground. I ended up just blowing the rover up with explosives (lol).

Try putting the rovemate body on top of something or attach something to it to elevate it off the ground.

Link to comment
Share on other sites

@Johnwayne1930:

Can you share your code, so that the transition is less violent than what is proposed in the KIS pdf?

Actually it works the same like Enceos's MM code.

Just remove the red highlighted parts.

With this you have on the KAS container both, the KAS and KIS storage, if both mods installed.

I'm reconfiguring all my containers for KIS, you can use the following config for KAS containers:


@PART[KAS_Container1]
{

[COLOR="#FF0000"]!MODULE[KASModuleContainer] {}[/COLOR]

MODULE
{
name = ModuleKISInventory
maxVolume = 0.5
externalAccess = true
internalAccess = false
slotsX = 3
slotsY = 4
slotSize = 50
itemIconResolution = 128
selfIconResolution = 128
openSndPath = KIS/Sounds/containerOpen
closeSndPath = KIS/Sounds/containerClose
defaultMoveSndPath = KIS/Sounds/itemMove
}

MODULE
{
name = ModuleKISItem
volumeOverride = 0.55
editorItemsCategory = false
}
}


@PART[KAS_Container2]
{

[COLOR="#FF0000"]!MODULE[KASModuleContainer] {}[/COLOR]

MODULE
{
name = ModuleKISInventory
maxVolume = 0.8
externalAccess = true
internalAccess = false
slotsX = 5
slotsY = 4
slotSize = 50
itemIconResolution = 128
selfIconResolution = 128
openSndPath = KIS/Sounds/containerOpen
closeSndPath = KIS/Sounds/containerClose
defaultMoveSndPath = KIS/Sounds/itemMove
}

MODULE
{
name = ModuleKISItem
volumeOverride = 0.85
editorItemsCategory = false
}
}

Link to comment
Share on other sites

Congratulations for this masterpiece!

Request: Please make an option to hide the text next to icons (grab, attach..). The icons are pretty much self-explaning.

p.s. Explosives are dangerous! - R.I.P. Jeb...

Link to comment
Share on other sites

After much trial and error from comparing my mods with those listed by Celann I have found Near Future to be in common and causing the problem of the KIS category not showing up. This for sure happens with Near Future Solar and may or may not happen with other Near Future components. I certainly hope narrowing down the conflict is helpful and including the log as well for reproducing the problem once Near Future Solar was put in. If it will help I am very willing to try experimental builds for this compatibility issue.

https://www.dropbox.com/s/mb0l6m0y77d1wvm/output_log.txt?dl=0

Link to comment
Share on other sites

I m using this code based on the code from Enceos and johnwayne1930 to give parts with KAS storage the new KIS inventory for an easy transition to the new system:

// Add KIS support for KAS storage containers
@PART
[*]:HAS[@MODULE[KASModuleContainer]:HAS[#maxSize[40]]]:NEEDS[KAS,KIS]
{
MODULE
{
name = ModuleKISInventory
maxVolume = 0.4
externalAccess = true
internalAccess = true
slotsX = 3
slotsY = 4
slotSize = 50
itemIconResolution = 128
selfIconResolution = 128
openSndPath = KIS/Sounds/containerOpen
closeSndPath = KIS/Sounds/containerClose
defaultMoveSndPath = KIS/Sounds/itemMove
}

MODULE
{
name = ModuleKISItem
volumeOverride = 0.45
editorItemsCategory = false
}
}

@PART
[*]:HAS[@MODULE[KASModuleContainer]:HAS[#maxSize[60]],!MODULE[KISInventory]:HAS[#maxVolume[0.6]]]:NEEDS[KAS,KIS]
{
MODULE
{
name = ModuleKISInventory
maxVolume = 0.6
externalAccess = true
internalAccess = true
slotsX = 4
slotsY = 4
slotSize = 50
itemIconResolution = 128
selfIconResolution = 128
openSndPath = KIS/Sounds/containerOpen
closeSndPath = KIS/Sounds/containerClose
defaultMoveSndPath = KIS/Sounds/itemMove
}

MODULE
{
name = ModuleKISItem
volumeOverride = 0.65
editorItemsCategory = false
}
}

@PART
[*]:HAS[@MODULE[KASModuleContainer]:HAS[#maxSize[80]],!MODULE[KISInventory]:HAS[#maxVolume[0.8]]]:NEEDS[KAS,KIS]
{
MODULE
{
name = ModuleKISInventory
maxVolume = 0.8
externalAccess = true
internalAccess = true
slotsX = 5
slotsY = 4
slotSize = 50
itemIconResolution = 128
selfIconResolution = 128
openSndPath = KIS/Sounds/containerOpen
closeSndPath = KIS/Sounds/containerClose
defaultMoveSndPath = KIS/Sounds/itemMove
}

MODULE
{
name = ModuleKISItem
volumeOverride = 0.85
editorItemsCategory = false
}
}

Unfortunately the KIS plugin does not allow for editing KIS storage when it is part of a command pod, in that case it only gives the editor option for "Open seat ~ inventory" instead of also giving the option to "Open inventory".

Since other mods like MCM and SETI add KAS storage to command pods, a change of the plugin code would be necessary for a compatibility transition.

Alternatively those mods could redistribute a fixed KIS plugin under the given license, but that would not be desireable given the experience with the firespitter.dll custom versions.

Thank you very much!

- - - Updated - - -

Another small bug report/suggestion:

The right click tool tip currently shows maxVolume without any decimal places. For info compatibility with the old KAS container transitions, I recommend showing 2 decimal places.

Link to comment
Share on other sites

Is anyone having issues with the Filter Extensions mod along with KIS? In VAB I can't load saved crafts with KIS containers without glitching the parts filters. And the craft loads only partially. The problem disappeared after I removed Filter Extensions.

It'd be nice if you notified me of this directly :P

Could you post a log in the FE thread please (and whether 2.0 pre- or 1.17). If there's an issue, it's likely something I'll have to deal with.

EDIT

@KospY

I am seeing a nullref on entering the VAB. Is EditorPartsList.Instance created when Awake fires? With Filter Extensions I have to wait for PartCategorizer.Instance to be created before doing anything

The nullref:

NullReferenceException: Object reference not set to an instance of an object  at KIS.KISAddonPickup.Awake () [0x00000] in <filename unknown>:0 
UnityEngine.GameObject:Internal_AddComponentWithType(Type)
UnityEngine.GameObject:AddComponent(Type)
AddonLoader:StartAddon(LoadedAssembly, Type, KSPAddon, Startup)
AddonLoader:StartAddons(Startup)
AddonLoader:OnLevelWasLoaded(Int32)

Edited by Crzyrndm
Link to comment
Share on other sites

Great, I will do up the PR (not sure how long it will take, though, as I have a few irons in the fire).

What I am saying is that traits themselves should be ignored. Instead, scan the trait's effects for the required effect. This is the relevant code from EL:


private bool HasConstructionSkill (ProtoCrewMember crew)
{
ExperienceEffect skill = crew.experienceTrait.Effects.Where (e => e is ExConstructionSkill).FirstOrDefault ();
if (skill == null) {
return false;
}
return true;
}

ExConstructionSkill is an ExperienceEffect that I created for EL and used MM to add to engineers.

Do not worry about the GPL for this. When it comes to spreading ideas and techniques, I consider my stuff to be more PD than GPL.

Well, there is no way to add an experience effect without MM (from code ?) I'm trying to avoid any dependancy with KIS.

Also, what exactly is your problem by checking the trait name ? It seem simple and good enough for me. I'm using it only to restrict the use of the screwdriver and the wrench to engineer, but if you don't set the parameter in the config file, nothing is restricted at all.

If you want, I can however add a new config file parameter to check experienceEffect requirement for an item, I don't think I will use it, but if it can help you.

For information, it's also possible to write your own item code and check ExperienceEffect from here : https://github.com/KospY/KIS/wiki/ItemPlugin

- - - Updated - - -

Unfortunately the KIS plugin does not allow for editing KIS storage when it is part of a command pod, in that case it only gives the editor option for "Open seat ~ inventory" instead of also giving the option to "Open inventory".

Didn't think about that. I will change the behaviour for the command pods.

Another small bug report/suggestion:

The right click tool tip currently shows maxVolume without any decimal places. For info compatibility with the old KAS container transitions, I recommend showing 2 decimal places.

Added to my todo list too

Also, don't hesite to use the issue tracker for that kind of things : https://github.com/KospY/KIS/issues

- - - Updated - - -

@KospY

I am seeing a nullref on entering the VAB. Is EditorPartsList.Instance created when Awake fires? With Filter Extensions I have to wait for PartCategorizer.Instance to be created before doing anything

The nullref:

NullReferenceException: Object reference not set to an instance of an object  at KIS.KISAddonPickup.Awake () [0x00000] in <filename unknown>:0 
UnityEngine.GameObject:Internal_AddComponentWithType(Type)
UnityEngine.GameObject:AddComponent(Type)
AddonLoader:StartAddon(LoadedAssembly, Type, KSPAddon, Startup)
AddonLoader:StartAddons(Startup)
AddonLoader:OnLevelWasLoaded(Int32)

Yes it is the error (EditorPartsList.Instance is null). I just fixed it by checking if null before (see my commit)

As awake seem to fire two time in vab (don't know why), it work. Not sure if that will fix the problem with FilterExtension however.

Link to comment
Share on other sites

Possibly one Awake() on scene change and another one when it decides whether you are in the VAB or SPH. That's the only reason I can think of.

E: And no that error shouldn't have any impact on FE at all (I am debugging on 2.0 though, might be something in 1.17 that broke)

Edited by Crzyrndm
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...