Skip to content

Commit

Permalink
Showing 4 changed files with 34 additions and 6 deletions.
Binary file modified GameData/RP-0/Plugins/RP0.dll
Binary file not shown.
2 changes: 1 addition & 1 deletion Source/RP0.csproj
Original file line number Diff line number Diff line change
@@ -90,7 +90,7 @@
<Compile Include="ProceduralAvionics\ProceduralAvionicsUnlockedNodes.cs" />
<Compile Include="ProceduralAvionics\ProceduralAvionicsUtils.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Tooling\ModuleToolingy.cs" />
<Compile Include="Tooling\ModuleTooling.cs" />
<Compile Include="Tooling\ToolingDatabase.cs" />
<Compile Include="Tooling\ToolingScenario.cs" />
<Compile Include="Tooling\ModuleToolingPTank.cs" />
21 changes: 17 additions & 4 deletions Source/Tooling/ModuleTooling.cs
Original file line number Diff line number Diff line change
@@ -29,6 +29,8 @@ public abstract class ModuleTooling : PartModule, IPartCostModifier
// d^2, d^1, l^1, 1
public Vector4 lengthToolingCost = new Vector4(500f, 2000f, 200f, 100f);

protected BaseEvent tEvent;

[KSPEvent(guiActive = false, guiActiveEditor = true, guiName = "Tool Tank")]
public virtual void ToolingEvent()
{
@@ -81,16 +83,25 @@ public override void OnLoad(ConfigNode node)
{
base.OnLoad(node);

Events["ToolingEvent"].guiActiveEditor = IsUnlocked();
Events["ToolingEvent"].guiName = toolingName;
tEvent = Events["ToolingEvent"];

tEvent.guiActiveEditor = IsUnlocked();
tEvent.guiName = toolingName;
}

public virtual float GetModuleCost(float defaultCost, ModifierStagingSituation sit)
{
if (!HighLogic.LoadedSceneIsEditor)
return 0f;

if (IsUnlocked())
{
tEvent.guiActiveEditor = false;
return 0f;
}
tEvent.guiActiveEditor = true;

float cost = part.partInfo.cost;
/*float cost = part.partInfo.cost;
float baseCost = cost;
for (int i = part.Modules.Count; i-- > 0;)
@@ -106,7 +117,9 @@ public virtual float GetModuleCost(float defaultCost, ModifierStagingSituation s
cost += c.GetModuleCost(baseCost, ModifierStagingSituation.CURRENT);
}
return cost;
return cost * untooledMultiplier;*/

return GetToolingCost() * ((1f / 50f) * 0.25f) * untooledMultiplier;
}

public ModifierChangeWhen GetModuleCostChangeWhen()
17 changes: 16 additions & 1 deletion Source/Tooling/ModuleToolingPTank.cs
Original file line number Diff line number Diff line change
@@ -27,7 +27,10 @@ protected void GetDimensions(out float diam, out float len)
len = 0f;

if (procTank == null)
{
Debug.LogError("[ModuleTooling]: Could not find proc part to bind to");
return;
}

string newName = procTank.Fields["shapeName"].GetValue<string>(procTank);
if (newName != shapeName || procShape == null)
@@ -53,7 +56,10 @@ protected void GetDimensions(out float diam, out float len)
}

if (procShape == null)
{
Debug.LogError("[ModuleTooling]: Could not find proc SHAPE to bind to");
return;
}

if (cone)
{
@@ -62,14 +68,23 @@ protected void GetDimensions(out float diam, out float len)
}
else
{
diam1 = procShape.Fields["Diameter"];
diam1 = procShape.Fields["diameter"];
diam2 = null;
}

length = procShape.Fields["length"];
}
else if (procShape == null)
{
Debug.LogError("[ModuleTooling]: Lost proc SHAPE to bind to");
return;
}

if (diam1 == null || length == null)
{
Debug.LogError("[ModuleTooling]: Could not bind to procpart fields");
return;
}

if (cone)
diam = Math.Max(diam1.GetValue<float>(procShape), diam2.GetValue<float>(procShape));

0 comments on commit f59753e

Please sign in to comment.