diff --git a/Mods/HugsLib/About/About.xml b/Mods/HugsLib/About/About.xml
index 86554d3..c3a5b58 100644
--- a/Mods/HugsLib/About/About.xml
+++ b/Mods/HugsLib/About/About.xml
@@ -5,6 +5,6 @@
0.16.0
<color=orange><b>Important: </b> This mod should be one of the first to be loaded to work properly.</color>\n
HugsLib is a library that provides shared functionality to other mods.
-Version: 2.4.1
+Version: 2.4.2
\ No newline at end of file
diff --git a/Mods/HugsLib/About/Version.xml b/Mods/HugsLib/About/Version.xml
index 70da1a0..27f9b6a 100644
--- a/Mods/HugsLib/About/Version.xml
+++ b/Mods/HugsLib/About/Version.xml
@@ -1,5 +1,5 @@
- 2.4.1
+ 2.4.2
UnlimitedHugs/RimworldHugsLib
\ No newline at end of file
diff --git a/Mods/HugsLib/Assemblies/HugsLib.dll b/Mods/HugsLib/Assemblies/HugsLib.dll
index f73d821..947bade 100644
Binary files a/Mods/HugsLib/Assemblies/HugsLib.dll and b/Mods/HugsLib/Assemblies/HugsLib.dll differ
diff --git a/Mods/HugsLib/Languages/Spanish/Keyed/Spanish.xml b/Mods/HugsLib/Languages/Spanish/Keyed/Spanish.xml
new file mode 100644
index 0000000..f49b519
--- /dev/null
+++ b/Mods/HugsLib/Languages/Spanish/Keyed/Spanish.xml
@@ -0,0 +1,57 @@
+
+
+
+ Ajustes de mod
+ Ajustes de mod
+ resetear ajustes por default
+ Resetear todo
+ ¿Restablecer todos los ajustes de modificación a sus valores originales?
+ No se cargan mods con ajustes configurables.
+
+ Otros
+ Mostrar noticias de actualizaciones de mods
+ Permite que los mods recién instalados resalten sus nuevas funciones en una ventana emergente al iniciar el juego.
+ Todas las noticias de actualización de mod
+ Muestra todas las noticias de actualización de mod disponibles, incluidas las que ya se han mostrado.
+ Mostrar ahora
+ Ninguno de los mods activos tiene noticias de actualización que mostrar.
+
+ Nuevas funciones de modificación
+ Se han instalado las siguientes actualizaciones de modificación y éstas son las nuevas características y mejoras incluidas en ellas. \nPuede deshabilitar este diálogo en Opciones > Mod Settings
+ {0} v{1}
+ Enlace
+ Abre su navegador en una página donde puede obtener más información sobre esta actualización..\nDireccion: {0}
+
+ Copiado al portapapeles.
+
+ Copiar
+ Compartir registros
+ Confirmar
+ Subir los registros ahora?\n\nEsto publicará los registros de su juego en un servidor público y le dará el enlace para compartir con otros. Esto es útil si necesita ayuda para solucionar un problema o desea informar de un problema a un autor de modificaciones.\n\nNo se compartirá información privada.
+ Editor de registro
+ Cargando{0}
+ Obteniendo URL{0}
+ Carga completa!
+ Error en carga: {0}
+ Abortar
+ Reintentar
+ Abrir en el navegador
+
+ Archivos
+ Abrir archivo de registro
+ Abrir carpeta de guardar
+ Abrir carpeta de Mods
+
+ Reiniciar juego
+ Los cambios han sido guardados.\n\nPara activar la nueva configuración de modificación, se recomienda reiniciar el juego.
+ Reiniciar ahora
+ Reiniciar automáticamente
+ Reiniciando
+ Reiniciar después de cambiar el menú Mods
+ Reinicia automáticamente el juego después de haber realizado cambios en el menú Mods.
+
+ Valor por defecto
+ Valor Uno
+ Valor Dos
+
+
diff --git a/Mods/HugsLib/Languages/SpanishLatin/Keyed/Spanish.xml b/Mods/HugsLib/Languages/SpanishLatin/Keyed/Spanish.xml
new file mode 100644
index 0000000..f49b519
--- /dev/null
+++ b/Mods/HugsLib/Languages/SpanishLatin/Keyed/Spanish.xml
@@ -0,0 +1,57 @@
+
+
+
+ Ajustes de mod
+ Ajustes de mod
+ resetear ajustes por default
+ Resetear todo
+ ¿Restablecer todos los ajustes de modificación a sus valores originales?
+ No se cargan mods con ajustes configurables.
+
+ Otros
+ Mostrar noticias de actualizaciones de mods
+ Permite que los mods recién instalados resalten sus nuevas funciones en una ventana emergente al iniciar el juego.
+ Todas las noticias de actualización de mod
+ Muestra todas las noticias de actualización de mod disponibles, incluidas las que ya se han mostrado.
+ Mostrar ahora
+ Ninguno de los mods activos tiene noticias de actualización que mostrar.
+
+ Nuevas funciones de modificación
+ Se han instalado las siguientes actualizaciones de modificación y éstas son las nuevas características y mejoras incluidas en ellas. \nPuede deshabilitar este diálogo en Opciones > Mod Settings
+ {0} v{1}
+ Enlace
+ Abre su navegador en una página donde puede obtener más información sobre esta actualización..\nDireccion: {0}
+
+ Copiado al portapapeles.
+
+ Copiar
+ Compartir registros
+ Confirmar
+ Subir los registros ahora?\n\nEsto publicará los registros de su juego en un servidor público y le dará el enlace para compartir con otros. Esto es útil si necesita ayuda para solucionar un problema o desea informar de un problema a un autor de modificaciones.\n\nNo se compartirá información privada.
+ Editor de registro
+ Cargando{0}
+ Obteniendo URL{0}
+ Carga completa!
+ Error en carga: {0}
+ Abortar
+ Reintentar
+ Abrir en el navegador
+
+ Archivos
+ Abrir archivo de registro
+ Abrir carpeta de guardar
+ Abrir carpeta de Mods
+
+ Reiniciar juego
+ Los cambios han sido guardados.\n\nPara activar la nueva configuración de modificación, se recomienda reiniciar el juego.
+ Reiniciar ahora
+ Reiniciar automáticamente
+ Reiniciando
+ Reiniciar después de cambiar el menú Mods
+ Reinicia automáticamente el juego después de haber realizado cambios en el menú Mods.
+
+ Valor por defecto
+ Valor Uno
+ Valor Dos
+
+
diff --git a/Source/Detour/DetourValidator.cs b/Source/Detour/DetourValidator.cs
index 208909d..f12bc3e 100644
--- a/Source/Detour/DetourValidator.cs
+++ b/Source/Detour/DetourValidator.cs
@@ -200,7 +200,7 @@ private static bool DetourTargetsAreValid(Type targetA, MethodType typeA, string
if (typeB == MethodType.Static) {
reason = string.Format("'{0}' is static but not an extension method", nameB);
return false;
- } else if (targetA != targetB) {
+ } else if (targetB != null && !targetB.IsAssignableFrom(targetA)) {
reason = string.Format("Target classes do not match :: '{0}' target is '{1}'; '{2}' target is '{3}'",
nameA, FullNameOfType(targetA), nameB, FullNameOfType(targetB));
return false;
diff --git a/Source/Restarter/AutoRestarter.cs b/Source/Restarter/AutoRestarter.cs
index 66712bf..c87d030 100644
--- a/Source/Restarter/AutoRestarter.cs
+++ b/Source/Restarter/AutoRestarter.cs
@@ -1,4 +1,5 @@
-using HugsLib.GuiInject;
+using System.Threading;
+using HugsLib.GuiInject;
using HugsLib.Settings;
using HugsLib.Shell;
using RimWorld;
@@ -21,12 +22,15 @@ internal class AutoRestarter {
public static void PerformRestart() {
LongEventHandler.QueueLongEvent(() => {
- ShellRestartRimWorld.Execute();
+ // put up the loading screen while the game shuts down
+ Thread.Sleep(5000);
}, "HugsLib_restart_restarting", true, null);
+ // execute in main thread
+ LongEventHandler.ExecuteWhenFinished(() => ShellRestartRimWorld.Execute());
}
[WindowInjection(typeof (Page_ModsConfig), Mode = WindowInjectionManager.InjectMode.AfterContents)]
- private static void DrawLogWindowButtons(Window window, Rect inRect) {
+ private static void DoModsDialogControls(Window window, Rect inRect) {
// update mod list hash
if (window.GetHashCode() != lastSeenWindowHash) {
lastSeenWindowHash = window.GetHashCode();