Jump to content

[DEV HALTED] Caelum Ire Technologies (CIT) General Thread


marce

Recommended Posts

Oh hello, fun little mod I just discovered that I've always wanted something like, allow me to introduce you to my Gamedata folder! :D

EDIT: Download link no work. You fix now pls :)

Woopsi, fixed.

Link to comment
Share on other sites

Today I'm celebrating a lot of download in the last two months (seriously, much more than I expected) :cool:

  1. ActiveStruts - 2442
  2. KERT - 1902
  3. ChopIt - 609
  4. my other mods - 2342

Thanks everyone for your support and feedback!

Link to comment
Share on other sites

  • 2 weeks later...

Just a small info update: I'm finally working on getting all my mods on CKAN (you should think "hurray" at this point :rolleyes:)

During this process there might be disturbances (downloads). Additionally, I won't bundle CITUtils any more, because they are going to be a seperate package on CKAN.

If you don't use CKAN you'll have to get them manually from now on (I only pack one version to avoid confusion).

To reflect the change there will also be a small version bump on all my mods.

Link to comment
Share on other sites

All mod packages should now be updated and available via CKAN as well. Please notify me if you encounter any problems.

In other news: while preparing the updates I added two buttons to GovFunding (for RP reasons mostly):

  • Warp 1 day
  • Warp 10 days

Those are not reliable/accurate enough for maneuver planning, use KAC or similar for those purposes!

Link to comment
Share on other sites

Yet another on-rails generic converter

A few months ago I wrote an on-rails generic converter with remaining time display and performance curve. I started with the excellent TAC converter by the amazing TaranisElsu, so thanks to him :)

It lay pretty much dormant in my utils lib until now and I finally managed to write down a proper how-to so that people who need a converter can define their modules. All the code is present in my CITUtil.dll (which is now also available via CKAN) and is a plugin only mod without active addons, so requiring it should be painless and performance friendly.

If you find problems please tell me, my (rather simple tbh) tests were successful.

Each converter needs its own module. If a part has multiple functions it needs multiple converter modules, but one converter can use multiple input/output resources. There are a lot of (partially optional) options, they are described in the sample definition below.


Sample Module (declaring the default values for everything except noted otherwise):
MODULE
{
name = ModuleCITUniversalConverter
AlwaysActive = false //optional
ConverterName = LF2OX //required, defaulting to "n.a."
ExternalControl = false //optional, if set to true the toggle action is hidden so that the module can be controlled (by being switched on/off) from other code
RequiresOxygenAtmo = false //optional, TBD!
UseRollbacks = true //optional, rolls back the whole transfer if thresholds are reached, will not reset updatetime, so conversion time is lost, but not mass loss should occur
IgnorePutTakeMore = true //optional, don't throw an error if more resources than expected are taken or produced, this is TAC default behavior
UseManualTransfer = true //optional, transfers resources practically the same way TAC does it - if set to false part.requestResource is used
LockWhilePacked = false //optional, disables the converter while vessel is focused but packed (so non physics timewarp works like going to the trackingstation, warping there and coming back) - problematic when EC is affected since the vessel will continue EC consumption while packed
MaxDelta = ConvUtil.MaxDelta //optional, defaults to 60*60*6
MaxEcDelta = ConvUtil.ElectricChargeMaxDelta //optional, defaults to Math.Min(normaldelta,Math.Max(MaxEcDelta,TimeWarp.fixedDelta)) - this is how TAC handles it
ShowRemaining = true //optional, since only the current rate is used and not the remaining curve (if defined) calculated this can lead to inconsistent result (e.g. in this demo case the rem. time drops from 01:12:xx to 00:48:xx after activating the converter because suddenly a factor 0f 1.5 is applied while it was 1.0 before)
//0-n INPUT_DEF nodes, one for each resource
INPUT_DEF
{
ResourceName = LiquidFuel
RatePerSecond = 0.98002
}
//0-n OUTPUT_DEF nodes, one for each resource
OUTPUT_DEF
{
ResourceName = Oxidizer
RatePerSecond = 1.78903
AllowOverflow = false
}
//0-1 CURVE_DEF node
CURVE_DEF
{
//contains 1-n Rules, always based on the lowest input and lowest output resource
//Rule schema: priority(int),minAvailableInput(float, percentage),maxAvailableOutput(float, percentage),inputRatioMultiplicator(float),outputRatioMultiplicator(float)
//if no rule matches it defaults back to factors 1.0 & 1.0
Rule = 1,0.5,0.25,1.5,1.25
Rule = 2,0.5,1.0,1.25,1.1
//those two rules will lead to this behavior with these in/out resources: while LF amount > 50% & OX amount < 25% produce 1.25OX for 1.5LF, once OX amount >25% produce 1.1OX for 1.25LF, once LF amount < 50% fallback to default 1OX for 1LF
}
}

I hope someone can use it :wink:

Link to comment
Share on other sites

Yet another on-rails generic converter

A few months ago I wrote an on-rails generic converter with remaining time display and performance curve. I started with the excellent TAC converter by the amazing TaranisElsu, so thanks to him :)

It lay pretty much dormant in my utils lib until now and I finally managed to write down a proper how-to so that people who need a converter can define their modules. All the code is present in my CITUtil.dll (which is now also available via CKAN) and is a plugin only mod without active addons, so requiring it should be painless and performance friendly.

If you find problems please tell me, my (rather simple tbh) tests were successful.

Each converter needs its own module. If a part has multiple functions it needs multiple converter modules, but one converter can use multiple input/output resources. There are a lot of (partially optional) options, they are described in the sample definition below.


Sample Module (declaring the default values for everything except noted otherwise):
MODULE
{
name = ModuleCITUniversalConverter
AlwaysActive = false //optional
ConverterName = LF2OX //required, defaulting to "n.a."
ExternalControl = false //optional, if set to true the toggle action is hidden so that the module can be controlled (by being switched on/off) from other code
RequiresOxygenAtmo = false //optional, TBD!
UseRollbacks = true //optional, rolls back the whole transfer if thresholds are reached, will not reset updatetime, so conversion time is lost, but not mass loss should occur
IgnorePutTakeMore = true //optional, don't throw an error if more resources than expected are taken or produced, this is TAC default behavior
UseManualTransfer = true //optional, transfers resources practically the same way TAC does it - if set to false part.requestResource is used
LockWhilePacked = false //optional, disables the converter while vessel is focused but packed (so non physics timewarp works like going to the trackingstation, warping there and coming back) - problematic when EC is affected since the vessel will continue EC consumption while packed
MaxDelta = ConvUtil.MaxDelta //optional, defaults to 60*60*6
MaxEcDelta = ConvUtil.ElectricChargeMaxDelta //optional, defaults to Math.Min(normaldelta,Math.Max(MaxEcDelta,TimeWarp.fixedDelta)) - this is how TAC handles it
ShowRemaining = true //optional, since only the current rate is used and not the remaining curve (if defined) calculated this can lead to inconsistent result (e.g. in this demo case the rem. time drops from 01:12:xx to 00:48:xx after activating the converter because suddenly a factor 0f 1.5 is applied while it was 1.0 before)
//0-n INPUT_DEF nodes, one for each resource
INPUT_DEF
{
ResourceName = LiquidFuel
RatePerSecond = 0.98002
}
//0-n OUTPUT_DEF nodes, one for each resource
OUTPUT_DEF
{
ResourceName = Oxidizer
RatePerSecond = 1.78903
AllowOverflow = false
}
//0-1 CURVE_DEF node
CURVE_DEF
{
//contains 1-n Rules, always based on the lowest input and lowest output resource
//Rule schema: priority(int),minAvailableInput(float, percentage),maxAvailableOutput(float, percentage),inputRatioMultiplicator(float),outputRatioMultiplicator(float)
//if no rule matches it defaults back to factors 1.0 & 1.0
Rule = 1,0.5,0.25,1.5,1.25
Rule = 2,0.5,1.0,1.25,1.1
//those two rules will lead to this behavior with these in/out resources: while LF amount > 50% & OX amount < 25% produce 1.25OX for 1.5LF, once OX amount >25% produce 1.1OX for 1.25LF, once LF amount < 50% fallback to default 1OX for 1LF
}
}

I hope someone can use it :wink:

hello and first thank you for your time making this mod :)

a question about the converter....does it convert "actively" when on rails or does it "catch up" for the time it was on rails?

Link to comment
Share on other sites

So since 0.90 i have had problem with the plugin. It seems to load fine in both 32 and 64 but ingame struts dont show up in the right click menu like before, cheers for your time

Please be a bit more precise. I think you are referring to ActiveStruts?

It sounds like the plugin is not loading. How have you installed it (CKAN, manually)? I will need your output log to help you!

hello and first thank you for your time making this mod :)

a question about the converter....does it convert "actively" when on rails or does it "catch up" for the time it was on rails?

Hi! It catches up. While the default amount of "working space" that has to be available is 1 day you can set whatever value you want in the config of the module (MaxDelta in seconds). But be aware, that it only converts this amount per phys frame, so if the value is really low, it catches up slowly as well, while it does almost instantly with higher values. Hope that makes sense?

This is suboptimal, but if we would be running for all modules all the time (unloaded as well) it would reduce performance massivly .

If there is a lot of demand I might give it a shot if I maybe can do it more efficiently (say running only once a minute for unloaded ships or so, maybe using the background thread thingy ferram4 worked on once,...), but I won't sink more hours into a converter nobody uses than I did already, since RoverDude made his own thing instead and ignored my questions why :huh: (which is also the reason I'm not fully sure everything works as intended :().

Link to comment
Share on other sites

Yes i meant activestruts =) Iv tried to find out if its not showing up beacuse incompatible with other mods but no luck sofar. If i find out why or whats causing it il post it here =) cheers

I'm ready to help you, I just need the log...

Link to comment
Share on other sites

Please be a bit more precise. I think you are referring to ActiveStruts?

It sounds like the plugin is not loading. How have you installed it (CKAN, manually)? I will need your output log to help you!

Hi! It catches up. While the default amount of "working space" that has to be available is 1 day you can set whatever value you want in the config of the module (MaxDelta in seconds). But be aware, that it only converts this amount per phys frame, so if the value is really low, it catches up slowly as well, while it does almost instantly with higher values. Hope that makes sense?

This is suboptimal, but if we would be running for all modules all the time (unloaded as well) it would reduce performance massivly .

If there is a lot of demand I might give it a shot if I maybe can do it more efficiently (say running only once a minute for unloaded ships or so, maybe using the background thread thingy ferram4 worked on once,...), but I won't sink more hours into a converter nobody uses than I did already, since RoverDude made his own thing instead and ignored my questions why :huh: (which is also the reason I'm not fully sure everything works as intended :().

hmm i see...i'am trying to make a converter (part.cfg) for the IFI life support mod for my personal use and witch ever converter i tried i run into the same problem and that is the "Catch up" method would stop the time warp once Life support runs low (the mod is configured that way) and while this is not a problem for short time warp (krbin-moon-minimus) the more distant planets pose a problem because when the Time warp stops you have to go back to that vessel wait so it re calculates the conversion and then back to the other vessel witch gets to be annoying after a while :)

so my next question is...if there is a possibility to make an "active" converter what would be the drawbacks or problems? :)

Link to comment
Share on other sites

hmm i see...i'am trying to make a converter (part.cfg) for the IFI life support mod for my personal use and witch ever converter i tried i run into the same problem and that is the "Catch up" method would stop the time warp once Life support runs low (the mod is configured that way) and while this is not a problem for short time warp (krbin-moon-minimus) the more distant planets pose a problem because when the Time warp stops you have to go back to that vessel wait so it re calculates the conversion and then back to the other vessel witch gets to be annoying after a while :)

so my next question is...if there is a possibility to make an "active" converter what would be the drawbacks or problems? :)

Yeah I know what you mean.

The drawbacks are (afaik):

  1. A plugin is needed to process the unloaded vessels
  2. I'm unsure if and how resources aboard an unloaded vessel can be modified
  3. The performance hit would be significant, just try having 15 vessels or so, all with multiple active converters in loading range to feel the effect.
  4. Generally speaking it will get more complex and error prone
  5. It will probably cost me a a lot of time I don't have (working 90h+ weeks since 2.5 months) to do it, which is meh

Link to comment
Share on other sites

Yeah I know what you mean.

The drawbacks are (afaik):

  1. A plugin is needed to process the unloaded vessels
  2. I'm unsure if and how resources aboard an unloaded vessel can be modified
  3. The performance hit would be significant, just try having 15 vessels or so, all with multiple active converters in loading range to feel the effect.
  4. Generally speaking it will get more complex and error prone
  5. It will probably cost me a a lot of time I don't have (working 90h+ weeks since 2.5 months) to do it, which is meh

well then that settles it...no active converters :) maybe in the future then :)

thx for your time answering my questions :)

Link to comment
Share on other sites

well then that settles it...no active converters :) maybe in the future then :)

thx for your time answering my questions :)

Np. I PM'd the author of a background processing mod who has something similar in the works. If he can provide me with the framework I need I should be able to add real on-rails, if not it's really a bit too much work for me atm.

However, PR's are welcome from anyone who wants to add the feature!

Link to comment
Share on other sites

Np. I PM'd the author of a background processing mod who has something similar in the works. If he can provide me with the framework I need I should be able to add real on-rails, if not it's really a bit too much work for me atm.

However, PR's are welcome from anyone who wants to add the feature!

hey cool i was keeping my eye on that plugin...but i don't know how to code so i dont know how to use it, but if you do come up with something let me know :)

Link to comment
Share on other sites

I can't seem to make negative payments (i.e. pay back money) in the current version of Government Funding.

If I put in, say, "-1" in the "Pay or get paid" box, I receive 1 Credit instead of paying one.

Link to comment
Share on other sites

hey cool i was keeping my eye on that plugin...but i don't know how to code so i dont know how to use it, but if you do come up with something let me know :)

We got in touch and it sounds doable, but don't expect wonders for some time :wink:

I can't seem to make negative payments (i.e. pay back money) in the current version of Government Funding.

If I put in, say, "-1" in the "Pay or get paid" box, I receive 1 Credit instead of paying one.

Woops, thanks for the catch. Should be fixed now.

Link to comment
Share on other sites

Thanks!

(Fortunately, I could burn all of the excess money on ConstructionTime build points. :D)

You're welcome :)

Hmm, I think I finally have to give construction time a try.

Link to comment
Share on other sites

For GovFunding users:

Thanks to Arsonide (who is awesome and cool with the minority who wants to play with funds but doesn't care about contracts) and sarbian who is omni-awesome, you can use this MM patch to get rid of those contracts which display orbits and markers in the tracking station etc.


@Contracts
{
@Survey
{
@MaximumAvailable = 0
@MaximumActive = 0
}
@Satellite
{
@MaximumAvailable = 0
@MaximumActive = 0
}
}

Note: this will only prevent new ones being generated, if there are some contracts in the list already you have to discard them.

Link to comment
Share on other sites

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