diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll
index e2258e1..36d7672 100644
Binary files a/1.6/1.6/Assemblies/ArachnaeSwarm.dll and b/1.6/1.6/Assemblies/ArachnaeSwarm.dll differ
diff --git a/1.6/1.6/Defs/Thing_building/ARA_NutrientNetworkBuilding.xml b/1.6/1.6/Defs/Thing_building/ARA_NutrientNetworkBuilding.xml
index b2048ec..74d62a1 100644
--- a/1.6/1.6/Defs/Thing_building/ARA_NutrientNetworkBuilding.xml
+++ b/1.6/1.6/Defs/Thing_building/ARA_NutrientNetworkBuilding.xml
@@ -39,11 +39,12 @@
ARA_MorphableResearchBench
80
+ 0.9
- 1000.0
+ 10000.0
Foods
@@ -418,8 +419,7 @@
0.5
- 150
- 4
+ 50
Building
PassThroughOnly
@@ -467,6 +467,8 @@
ARA_BioforgeIncubator
ARA_BioforgeIncubator_Thing
+ 10
+ 20
0.05
0.1
diff --git a/Source/ArachnaeSwarm/Building_Comps/ARA_NutrientNetwork/CompNutrientProvider.cs b/Source/ArachnaeSwarm/Building_Comps/ARA_NutrientNetwork/CompNutrientProvider.cs
index 4224ae7..a38fa3a 100644
--- a/Source/ArachnaeSwarm/Building_Comps/ARA_NutrientNetwork/CompNutrientProvider.cs
+++ b/Source/ArachnaeSwarm/Building_Comps/ARA_NutrientNetwork/CompNutrientProvider.cs
@@ -9,6 +9,7 @@ namespace ArachnaeSwarm
public class CompNutrientProvider : CompFacility
{
private CompRefuelableNutrition selfRefuelable;
+ private new CompProperties_NutrientProvider Props => (CompProperties_NutrientProvider)props;
public override void PostSpawnSetup(bool respawningAfterLoad)
{
@@ -20,7 +21,7 @@ namespace ArachnaeSwarm
{
StringBuilder sb = new StringBuilder();
- float efficiency = Mathf.Clamp(parent.GetStatValue(StatDef.Named("NutrientTransmissionEfficiency")), 0f, 0.1f);
+ float efficiency = Mathf.Clamp(parent.GetStatValue(StatDef.Named("NutrientTransmissionEfficiency")), 0f, Props.maxEfficiency);
sb.AppendLine("生物质传输效率".Translate() + ": " + efficiency.ToStringPercent());
sb.AppendLine("链接的建筑".Translate() + ":");
@@ -48,15 +49,12 @@ namespace ArachnaeSwarm
public override void CompTick()
{
base.CompTick();
- // Log.Message($"[NutrientProvider] CompTick called for {parent.Label}."); // This will be too spammy
if (!parent.IsHashIntervalTick(250))
{
return;
}
- Log.Message($"[NutrientProvider] Rare Tick Logic executing for {parent.Label}.");
-
if (selfRefuelable == null || !selfRefuelable.HasFuel)
{
return;
@@ -73,12 +71,18 @@ namespace ArachnaeSwarm
var consumerComp = targetBuilding.Comp;
float desiredLevel = GetDesiredFuelLevel(consumerComp);
float fuelNeeded = desiredLevel - consumerComp.Fuel;
+
+ if (fuelNeeded < 0.1f)
+ {
+ return;
+ }
+
float fuelToTransfer = Mathf.Min(fuelNeeded, selfRefuelable.Fuel);
- float efficiency = Mathf.Clamp(parent.GetStatValue(StatDef.Named("NutrientTransmissionEfficiency")), 0f, 0.1f);
+ float efficiency = Mathf.Clamp(parent.GetStatValue(StatDef.Named("NutrientTransmissionEfficiency")), 0f, Props.maxEfficiency);
float finalCost = fuelToTransfer * (1 - efficiency);
- Log.Message($"[NutrientProvider] Found target: {targetBuilding.Building.Label}. Fuel: {consumerComp.Fuel:F0}/{consumerComp.Props.fuelCapacity:F0}. Needs: {fuelNeeded:F2}. Transferring: {fuelToTransfer:F2}. Final cost: {finalCost:F2}");
+ // Log.Message($"[NutrientProvider] Found target: {targetBuilding.Building.Label}. Fuel: {consumerComp.Fuel:F0}/{consumerComp.Props.fuelCapacity:F0}. Needs: {fuelNeeded:F2}. Transferring: {fuelToTransfer:F2}. Final cost: {finalCost:F2}");
selfRefuelable.ConsumeFuel(finalCost);
consumerComp.ReceiveFuel(fuelToTransfer);
@@ -88,7 +92,7 @@ namespace ArachnaeSwarm
private bool NeedsFuel(CompRefuelableNutrition comp)
{
if (comp == null) return false;
- return comp.Fuel < GetDesiredFuelLevel(comp);
+ return GetDesiredFuelLevel(comp) - comp.Fuel >= 0.1f;
}
private float GetDesiredFuelLevel(CompRefuelableNutrition comp)
diff --git a/Source/ArachnaeSwarm/Building_Comps/ARA_NutrientNetwork/CompProperties_NutrientProvider.cs b/Source/ArachnaeSwarm/Building_Comps/ARA_NutrientNetwork/CompProperties_NutrientProvider.cs
index 9e3677b..3d04413 100644
--- a/Source/ArachnaeSwarm/Building_Comps/ARA_NutrientNetwork/CompProperties_NutrientProvider.cs
+++ b/Source/ArachnaeSwarm/Building_Comps/ARA_NutrientNetwork/CompProperties_NutrientProvider.cs
@@ -1,9 +1,12 @@
using RimWorld;
+using Verse;
namespace ArachnaeSwarm
{
public class CompProperties_NutrientProvider : CompProperties_Facility
{
+ public float maxEfficiency = 0.9f;
+
public CompProperties_NutrientProvider()
{
compClass = typeof(CompNutrientProvider);