Beispiel #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);
        }
Beispiel #2
0
        public static bool Prefix(PlayerManager __instance)
        {
            var gameObject = __instance.m_InteractiveObjectUnderCrosshair;

            if (BetterPlacing.IsPlaceableFurniture(gameObject))
            {
                BetterPlacing.PreparePlacableFurniture(gameObject);

                GameObject root = BetterPlacing.getFurnitureRoot(gameObject);
                __instance.StartPlaceMesh(root, 5f, PlaceMeshFlags.None);

                return(false);
            }

            return(true);
        }