This commit is contained in:
NotAKidoS 2023-04-13 19:11:50 -05:00
parent df51d421aa
commit e990a8581e

View file

@ -191,9 +191,9 @@ public class PropUndoButton : MelonMod
for (int i = propsList.Length - 1; i >= 0; i--) for (int i = propsList.Length - 1; i >= 0; i--)
{ {
CVRSyncHelper.PropData propData = propsList[i]; CVRSyncHelper.PropData propData = propsList[i];
SafeDeleteProp(propData); DeleteProp(propData);
} }
return false; return false;
} }
@ -229,10 +229,15 @@ public class PropUndoButton : MelonMod
if (Time.time - deletedProp.timeDeleted <= redoTimeoutLimit) if (Time.time - deletedProp.timeDeleted <= redoTimeoutLimit)
{ {
SendRedoProp(deletedProp.propGuid, deletedProp.position, deletedProp.rotation); SendRedoProp(deletedProp.propGuid, deletedProp.position, deletedProp.rotation);
deletedProps.RemoveAt(index);
PlayAudioModule(sfx_redo); PlayAudioModule(sfx_redo);
} }
else
deletedProps.RemoveAt(index); {
// if latest prop is too old, same with rest
deletedProps.Clear();
PlayAudioModule(sfx_warn);
}
} }
// original spawn prop method does not let you specify rotation // original spawn prop method does not let you specify rotation
@ -266,6 +271,20 @@ public class PropUndoButton : MelonMod
} }
} }
private static void DeleteProp(CVRSyncHelper.PropData propData)
{
if (propData.Spawnable != null)
{
propData.Spawnable.Delete();
}
else
{
if (propData.Wrapper != null)
UnityEngine.Object.DestroyImmediate(propData.Wrapper);
propData.Recycle();
}
}
private static void SafeDeleteProp(CVRSyncHelper.PropData propData) private static void SafeDeleteProp(CVRSyncHelper.PropData propData)
{ {
//fixes getting props stuck in limbo state if spawn & delete fast //fixes getting props stuck in limbo state if spawn & delete fast