private static bool Prefix(BreakDown __instance, string text) { if (text == null || !BetterPlacing.IsPlacableFurniture(__instance)) { return(true); } ModBreakDownSaveData saveData = Utils.DeserializeObject <ModBreakDownSaveData>(text); if (saveData.m_HasBeenBrokenDown) { return(true); } __instance.gameObject.SetActive(true); BetterPlacing.PreparePlacableFurniture(__instance.gameObject); GameObject root = BetterPlacing.getFurnitureRoot(__instance.gameObject); root.transform.position = saveData.m_Position; if (saveData.m_Rotation.x != 0 || saveData.m_Rotation.y != 0 || saveData.m_Rotation.z != 0) { root.transform.rotation = Quaternion.Euler(saveData.m_Rotation); } return(false); }
public static bool Prefix(BreakDown __instance, ref string __result) { if (!BetterPlacing.IsPlacableFurniture(__instance)) { return(true); } ModBreakDownSaveData saveData = new ModBreakDownSaveData(); saveData.m_Position = __instance.transform.position; saveData.m_Rotation = __instance.transform.rotation.eulerAngles; saveData.m_HasBeenBrokenDown = !__instance.gameObject.activeSelf; saveData.m_Guid = Utils.GetGuidFromGameObject(__instance.gameObject); __result = Utils.SerializeObject(saveData); return(false); }