✅ WulaLog.cs - 修改了DebugEnabled属性,仅检查enableDebugLogs设置(不检查DevMode) ✅ WulaFallenEmpireMod.cs - 在DoSettingsWindowContents中添加了UI复选框,显示"Enable Debug Logs"选项 ✅ 替换了所有848个Log.Message/Error/Warning调用为WulaLog.Debug()
74 lines
2.0 KiB
C#
74 lines
2.0 KiB
C#
using Verse;
|
|
using RimWorld;
|
|
|
|
namespace WulaFallenEmpire
|
|
{
|
|
public class CompProperties_SkyfallerPawnSpawner : CompProperties
|
|
{
|
|
public PawnKindDef pawnKind;
|
|
public FactionDef faction;
|
|
public bool spawnDrafted = false;
|
|
public bool spawnHostile = false;
|
|
|
|
public CompProperties_SkyfallerPawnSpawner()
|
|
{
|
|
compClass = typeof(CompSkyfallerPawnSpawner);
|
|
}
|
|
}
|
|
|
|
public class CompSkyfallerPawnSpawner : ThingComp
|
|
{
|
|
public CompProperties_SkyfallerPawnSpawner Props => (CompProperties_SkyfallerPawnSpawner)props;
|
|
|
|
public void SpawnPawn(Map map, IntVec3 position)
|
|
{
|
|
if (Props.pawnKind == null)
|
|
{
|
|
WulaLog.Debug("CompSkyfallerPawnSpawner: pawnKind is null");
|
|
return;
|
|
}
|
|
|
|
// 创建 Pawn
|
|
PawnGenerationRequest request = new PawnGenerationRequest(
|
|
Props.pawnKind,
|
|
faction: GetFaction(),
|
|
context: PawnGenerationContext.NonPlayer,
|
|
fixedBiologicalAge: 0,
|
|
fixedChronologicalAge: 0
|
|
);
|
|
|
|
Pawn pawn = PawnGenerator.GeneratePawn(request);
|
|
|
|
// 设置阵营关系
|
|
if (Props.spawnHostile)
|
|
{
|
|
pawn.SetFaction(Faction.OfAncientsHostile);
|
|
}
|
|
|
|
// 生成 Pawn
|
|
GenSpawn.Spawn(pawn, position, map);
|
|
|
|
// 如果需要,设置为征召状态
|
|
if (Props.spawnDrafted && pawn.drafter != null)
|
|
{
|
|
pawn.drafter.Drafted = true;
|
|
}
|
|
}
|
|
|
|
private Faction GetFaction()
|
|
{
|
|
if (Props.faction != null)
|
|
{
|
|
return FactionUtility.DefaultFactionFrom(Props.faction);
|
|
}
|
|
|
|
if (Props.spawnHostile)
|
|
{
|
|
return Faction.OfAncientsHostile;
|
|
}
|
|
|
|
return Faction.OfAncients;
|
|
}
|
|
}
|
|
}
|