Fixed error in animal inheritance

This commit is contained in:
Shabakur 2022-12-01 06:52:13 +01:00
parent 3cc62ba818
commit b8a5e64baf
13 changed files with 61 additions and 39 deletions

Binary file not shown.

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<RJW_BGS.RaceGeneDef>
<RJW_BGS.RaceGeneDef Name = "Canine">
<defName>Canine</defName>
<raceGroup>Canine_Group</raceGroup>
<genes>
@ -11,6 +11,19 @@
</genechances>
</RJW_BGS.RaceGeneDef>
<RJW_BGS.RaceGeneDef ParentName = "Canine">
<defName>Warg</defName>
<raceNames>
<li>Warg</li>
</raceNames>
<genes>
<li>DarkVision</li>
</genes>
<genechances>
<li>0.9</li>
</genechances>
</RJW_BGS.RaceGeneDef>
<RJW_BGS.RaceGeneDef>
<defName>Insect</defName>
<raceGroup>Insect_Group</raceGroup>

Binary file not shown.

View file

@ -1,30 +1,30 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using rjw;
using Verse;
using RimWorld;
namespace RJW_BGS
{
[StaticConstructorOnStartup]
internal static class Class1
{
static Class1()
{
RJWcopy.Racegroupdictbuilder();
//foreach (RaceGroupDef raceGroupDef2 in DefDatabase<RaceGroupDef>.AllDefs)
//{
//Log.Message("defName = " + raceGroupDef2.defName);
// if (raceGroupDef2.raceNames != null)
// {
// foreach (string race in raceGroupDef2.raceNames)
// {
//Log.Message(race);
// }
// }
//}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using rjw;
using Verse;
using RimWorld;
namespace RJW_BGS
{
[StaticConstructorOnStartup]
internal static class First
{
static First()
{
RJWcopy.Racegroupdictbuilder();
//foreach (RaceGroupDef raceGroupDef2 in DefDatabase<RaceGroupDef>.AllDefs)
//{
//Log.Message("defName = " + raceGroupDef2.defName);
// if (raceGroupDef2.raceNames != null)
// {
// foreach (string race in raceGroupDef2.raceNames)
// {
//Log.Message(race);
// }
// }
//}
}
}
}

View file

@ -57,7 +57,7 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Class1.cs" />
<Compile Include="First.cs" />
<Compile Include="Harmony_Init.cs" />
<Compile Include="InheritanceUtility.cs" />
<Compile Include="PatchRJWBestialityPregnancyUtility.cs" />

View file

@ -34,6 +34,7 @@ namespace RJW_BGS
return raceGroupDef != null;
}
//slightly modified code so it also works racegroupdefs
public static RaceGroupDef GetRaceGroupDefInternal(PawnKindDef kindDef)
{
string raceName = kindDef.race.defName;
@ -71,9 +72,14 @@ namespace RJW_BGS
public static RaceGeneDef GetRaceGenDefInternal(PawnKindDef kindDef)
{
if (kindDef == null)
{
return null;
}
string raceName = kindDef.race.defName;
string pawnKindName = kindDef.defName;
string raceGroupName = GetRaceGroupDef(kindDef).defName;
RaceGroupDef raceGroupDef = GetRaceGroupDef(kindDef);
//string raceGroupName = GetRaceGroupDef(kindDef).defName;
IEnumerable<RaceGeneDef> allDefs = DefDatabase<RaceGeneDef>.AllDefs;
List<RaceGeneDef> list = allDefs.Where(delegate (RaceGeneDef group)
{
@ -85,12 +91,15 @@ namespace RJW_BGS
List<string> raceNames = group.raceNames;
return raceNames != null && raceNames.Contains(raceName);
}).ToList<RaceGeneDef>();
List<RaceGeneDef> list3 = allDefs.Where(delegate (RaceGeneDef group)
List<RaceGeneDef> list3 = new List<RaceGeneDef>();
if (raceGroupDef != null)
{
String raceGroupDefName = group.raceGroup;
return raceGroupDefName != null && raceGroupDefName == raceGroupName;
}).ToList<RaceGeneDef>();
list3 = allDefs.Where(delegate (RaceGeneDef group)
{
String raceGroupDefName = group.raceGroup;
return raceGroupDefName != null && raceGroupDefName == raceGroupDef.defName;
}).ToList<RaceGeneDef>();
}
RaceGeneDef result = null;
//First check if there is a matching pawnkinddef then race, then racegroup
if (list.Any())

View file

@ -1 +1 @@
bbcef32adb57331bca8d9d64ae20e770e4ed1e71
0b0a8825bf7e783f74047adfd92c6a9898735e8c

Binary file not shown.