mirror of
https://github.com/amevarashi/RJW-Sexperience.git
synced 2024-08-14 23:54:08 +00:00
Add Building_CumBucket.StoredStackCount attribute
This commit is contained in:
parent
5130c70655
commit
877bea1eb6
2 changed files with 39 additions and 14 deletions
|
@ -1,23 +1,52 @@
|
||||||
using RimWorld;
|
using RimWorld;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
using Verse;
|
using Verse;
|
||||||
|
|
||||||
namespace RJWSexperience // Used in Menstruation with this namespace
|
namespace RJWSexperience // Used in Menstruation with this namespace
|
||||||
{
|
{
|
||||||
public class Building_CumBucket : Building_Storage
|
public class Building_CumBucket : Building_Storage
|
||||||
{
|
{
|
||||||
protected float storedcum = 0f;
|
protected float storedDecimalRemainder = 0f;
|
||||||
protected float totalgathered = 0f;
|
protected float totalGathered = 0f;
|
||||||
|
|
||||||
|
public int StoredStackCount
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!slotGroup.HeldThings.Any())
|
||||||
|
return 0;
|
||||||
|
return slotGroup.HeldThings.Select(thing => thing.stackCount).Aggregate((sum, x) => sum + x);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public override void ExposeData()
|
public override void ExposeData()
|
||||||
{
|
{
|
||||||
Scribe_Values.Look(ref storedcum, "storedcum", storedcum, true);
|
Scribe_Values.Look(ref storedDecimalRemainder, "storedcum", 0f);
|
||||||
Scribe_Values.Look(ref totalgathered, "totalgathered", totalgathered, true);
|
Scribe_Values.Look(ref totalGathered, "totalgathered", 0f);
|
||||||
base.ExposeData();
|
base.ExposeData();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string GetInspectString()
|
public override string GetInspectString()
|
||||||
{
|
{
|
||||||
return Keyed.RSTotalGatheredCum + string.Format("{0:0.##}ml", totalgathered);
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
|
|
||||||
|
string baseString = base.GetInspectString();
|
||||||
|
if (!baseString.NullOrEmpty())
|
||||||
|
{
|
||||||
|
stringBuilder.AppendLine(baseString);
|
||||||
|
}
|
||||||
|
|
||||||
|
stringBuilder.Append(Keyed.RSTotalGatheredCum).AppendFormat("{0:0.##}ml", totalGathered);
|
||||||
|
|
||||||
|
if (SexperienceMod.Settings.Debug.DevMode)
|
||||||
|
{
|
||||||
|
stringBuilder.AppendLine();
|
||||||
|
stringBuilder.AppendLine($"[Debug] stored: {StoredStackCount}");
|
||||||
|
stringBuilder.Append($"[Debug] storedDecimalRemainder: {storedDecimalRemainder}");
|
||||||
|
}
|
||||||
|
|
||||||
|
return stringBuilder.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddCum(float amount)
|
public void AddCum(float amount)
|
||||||
|
@ -33,16 +62,16 @@ namespace RJWSexperience // Used in Menstruation with this namespace
|
||||||
|
|
||||||
public void AddCum(float amount, Thing cum)
|
public void AddCum(float amount, Thing cum)
|
||||||
{
|
{
|
||||||
storedcum += amount;
|
storedDecimalRemainder += amount;
|
||||||
totalgathered += amount;
|
totalGathered += amount;
|
||||||
int num = (int)storedcum;
|
int num = (int)storedDecimalRemainder;
|
||||||
|
|
||||||
cum.stackCount = num;
|
cum.stackCount = num;
|
||||||
if (cum.stackCount > 0 && !GenPlace.TryPlaceThing(cum, PositionHeld, Map, ThingPlaceMode.Direct, out Thing res))
|
if (cum.stackCount > 0 && !GenPlace.TryPlaceThing(cum, PositionHeld, Map, ThingPlaceMode.Direct, out Thing res))
|
||||||
{
|
{
|
||||||
FilthMaker.TryMakeFilth(PositionHeld, Map, VariousDefOf.FilthCum, num);
|
FilthMaker.TryMakeFilth(PositionHeld, Map, VariousDefOf.FilthCum, num);
|
||||||
}
|
}
|
||||||
storedcum -= num;
|
storedDecimalRemainder -= num;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,11 +22,7 @@ namespace RJWSexperience.Cum
|
||||||
if (!(t is Building_CumBucket bucket))
|
if (!(t is Building_CumBucket bucket))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
List<Thing> thingsInBucket = bucket.Map.thingGrid.ThingsListAt(bucket.Position);
|
return bucket.StoredStackCount < VariousDefOf.GatheredCum.stackLimit;
|
||||||
|
|
||||||
int stackInBucket = thingsInBucket.Select(thing => thing.stackCount).Aggregate((sum, x) => sum + x);
|
|
||||||
|
|
||||||
return stackInBucket < VariousDefOf.GatheredCum.stackLimit;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override Job JobOnThing(Pawn pawn, Thing t, bool forced = false)
|
public override Job JobOnThing(Pawn pawn, Thing t, bool forced = false)
|
||||||
|
|
Loading…
Reference in a new issue