mirror of
https://github.com/soarqin/DSP_Mods.git
synced 2025-12-11 06:43:29 +08:00
ProtectVeinsFromExhaustion: fix #52
This commit is contained in:
@@ -974,7 +974,7 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var consumeCount = 0U;
|
var res = 0U;
|
||||||
int veinId;
|
int veinId;
|
||||||
int times;
|
int times;
|
||||||
switch (__instance.type)
|
switch (__instance.type)
|
||||||
@@ -986,7 +986,7 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
|
|||||||
if (__instance.time <= __instance.period)
|
if (__instance.time <= __instance.period)
|
||||||
{
|
{
|
||||||
__instance.time += (int)(power * __instance.speedDamper * __instance.speed * miningSpeed * __instance.veinCount);
|
__instance.time += (int)(power * __instance.speedDamper * __instance.speed * miningSpeed * __instance.veinCount);
|
||||||
consumeCount = 1U;
|
res = 1U;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (__instance.time < __instance.period)
|
if (__instance.time < __instance.period)
|
||||||
@@ -1120,15 +1120,18 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
|
|||||||
if (__instance.time < __instance.period)
|
if (__instance.time < __instance.period)
|
||||||
{
|
{
|
||||||
__instance.time += (int)(power * __instance.speedDamper * __instance.speed * miningSpeed * workCount + 0.5f);
|
__instance.time += (int)(power * __instance.speedDamper * __instance.speed * miningSpeed * workCount + 0.5f);
|
||||||
consumeCount = 1U;
|
res = 1U;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (__instance.time >= __instance.period && __instance.productCount < 50)
|
if (__instance.time >= __instance.period && __instance.productCount < 50)
|
||||||
{
|
{
|
||||||
__instance.productId = veinPool[veinId].productId;
|
__instance.productId = veinPool[veinId].productId;
|
||||||
times = __instance.time / __instance.period;
|
times = __instance.time / __instance.period;
|
||||||
|
if (times <= 0) break;
|
||||||
var outputCount = 0;
|
var outputCount = 0;
|
||||||
if (miningRate > 0f && amount > _keepOilAmount)
|
if (miningRate > 0f)
|
||||||
|
{
|
||||||
|
if (amount > _keepOilAmount)
|
||||||
{
|
{
|
||||||
var usedCount = 0;
|
var usedCount = 0;
|
||||||
var maxAllowed = amount - _keepOilAmount;
|
var maxAllowed = amount - _keepOilAmount;
|
||||||
@@ -1161,9 +1164,16 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
|
|||||||
{
|
{
|
||||||
outputCount = times;
|
outputCount = times;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
if (outputCount > 0)
|
|
||||||
{
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
outputCount = times;
|
||||||
|
}
|
||||||
|
|
||||||
__instance.productCount += outputCount;
|
__instance.productCount += outputCount;
|
||||||
lock (productRegister)
|
lock (productRegister)
|
||||||
{
|
{
|
||||||
@@ -1173,7 +1183,6 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
|
|||||||
__instance.time -= __instance.period * outputCount;
|
__instance.time -= __instance.period * outputCount;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1181,7 +1190,7 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
|
|||||||
if (__instance.time < __instance.period)
|
if (__instance.time < __instance.period)
|
||||||
{
|
{
|
||||||
__instance.time += (int)(power * __instance.speedDamper * __instance.speed * miningSpeed);
|
__instance.time += (int)(power * __instance.speedDamper * __instance.speed * miningSpeed);
|
||||||
consumeCount = 1U;
|
res = 1U;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (__instance.time < __instance.period) break;
|
if (__instance.time < __instance.period) break;
|
||||||
@@ -1230,7 +1239,7 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
__result = consumeCount;
|
__result = res;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user