49 lines
1.4 KiB
C#
49 lines
1.4 KiB
C#
using RimWorld;
|
|
using Verse;
|
|
|
|
namespace ArachnaeSwarm
|
|
{
|
|
// 重命名以避免冲突
|
|
public class QueuedPawnSpawnEntry : IExposable
|
|
{
|
|
public PawnKindDef pawnKind;
|
|
public int delayTicks = 0;
|
|
public ResearchProjectDef requiredResearch;
|
|
public float totalNutritionNeeded = 0f;
|
|
|
|
public void ExposeData()
|
|
{
|
|
Scribe_Defs.Look(ref pawnKind, "pawnKind");
|
|
Scribe_Values.Look(ref delayTicks, "delayTicks", 0);
|
|
Scribe_Defs.Look(ref requiredResearch, "requiredResearch");
|
|
Scribe_Values.Look(ref totalNutritionNeeded, "totalNutritionNeeded", 0f);
|
|
}
|
|
}
|
|
|
|
// 重命名以避免冲突
|
|
public class QueuedProductionOrder : IExposable
|
|
{
|
|
public QueuedPawnSpawnEntry entry;
|
|
public int spawnUntilTick = -1;
|
|
|
|
public void ExposeData()
|
|
{
|
|
if (Scribe.mode == LoadSaveMode.Saving || Scribe.mode == LoadSaveMode.LoadingVars)
|
|
{
|
|
if (Scribe.EnterNode("entry"))
|
|
{
|
|
try
|
|
{
|
|
if (entry == null) entry = new QueuedPawnSpawnEntry();
|
|
entry.ExposeData();
|
|
}
|
|
finally
|
|
{
|
|
Scribe.ExitNode();
|
|
}
|
|
}
|
|
}
|
|
Scribe_Values.Look(ref spawnUntilTick, "spawnUntilTick", -1);
|
|
}
|
|
}
|
|
} |