// ===================================================================== // Utility Functions // ===================================================================== private static void PlaceResourceAt(FreeResourceType resourceType, Vector3 position) { // Refer to Player::DestroyPerson. FreeResource resource = FreeResourceManager.inst.GetPrefabFor(resourceType).CreateResource(position, -1); resource.Holder = null; }
public static void Prefix(Villager __instance, FreeResource resource) { bool enabled = ModMain.settings.enabled.Value && ModMain.settings.graveDiggingSettings.enabled.Value; bool removeGraveAfterDigging = ModMain.settings.graveDiggingSettings.removeGraveAfterDigging.Value; if (resource.type == FreeResourceType.Pork && enabled && removeGraveAfterDigging) { Vector3 position = resource.transform.position; int x = (int)position.x; int z = (int)position.z; if (Cemetery.IsCemetery(x, z)) { // Refer to Cemetery::IsCemetery. Building building = World.inst.GetCellData(x, z).StructureFindByCategory(World.cemeteryHash); Cemetery cemetery = building.GetComponentInParent <Cemetery>(); RemoveRandomGraveFromCemetery(cemetery); } } }