Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }