private void CheckForCollisions(CollisionEventType trackedEvents) { while (true) { // This will block the coroutine until a collision happens CollisionData data = (CollisionData)WaitFor(RigidBody.Subscribe, trackedEvents, Sansar.Script.ComponentId.Invalid); if (data.EventType == CollisionEventType.CharacterContact) { //Log.Write("I hit an avatar"); } else { //Log.Write("I hit an object"); //Log.Write("CollisionEventType: " + data.EventType); goodhit = false; if (!hitDetected) { //Log.Write("BeatBlock: BeatBlockName: " + BeatBlockName); //Log.Write("Position: " + RigidBody.GetPosition()); pos = GetXPosition(RigidBody.GetPosition().ToString4()); ypos = GetYPosition(RigidBody.GetPosition().ToString4()); if ((ypos == "-0") || (ypos == "0.")) { goodhit = true; } if (goodhit) { SendBlockNames sendBlocks = new SendBlockNames(); sendBlocks.BlockNameArray = new List <string>(); sendBlocks.BlockNameArray.Add(BeatBlockName); //sendBlocks.BlockNameArray.Add(pos); sendBlocks.BlockNameArray.Add(newpos); sendBlocks.BlockNameArray.Add(beats); PostScriptEvent(ScriptId.AllScripts, "BeatBlock", sendBlocks); BuildSampleLibrary(); Wait(TimeSpan.FromSeconds(1.5)); DisplayBeatBlock(); Wait(TimeSpan.FromSeconds(0.5)); //ReturnBeatBlock(); //Wait(TimeSpan.FromSeconds(1)); LightSplash(); SubscribeToScriptEvent("ReturnBeatBlock", getBin); //Log.Write("Here"); hitDetected = true; } else { //ScenePrivate.Chat.MessageAllUsers("Drop the Beat Block in a Loop Bin"); //send it back ReturnBeatBlock(); } } } } }
private void CheckForCollisions(CollisionEventType trackedEvents) { while (true) { // This will block the coroutine until a collision happens CollisionData data = (CollisionData)WaitFor(RigidBody.Subscribe, trackedEvents, Sansar.Script.ComponentId.Invalid); if (data.EventType == CollisionEventType.CharacterContact) { //Log.Write("I hit an avatar"); } else { //Log.Write("I hit an object"); //Log.Write("CollisionEventType: " + data.EventType); goodhit = false; if (!hitDetected) { //Log.Write("VolumeBlock"); //Log.Write("Position: " + RigidBody.GetPosition()); pos = GetXPosition(RigidBody.GetPosition().ToString4()); ypos = GetYPosition(RigidBody.GetPosition().ToString4()); if ((ypos == "-0") || (ypos == "0.")) { goodhit = true; } SendBlockNames sendBlocks = new SendBlockNames(); sendBlocks.BlockNameArray = new List <string>(); sendBlocks.BlockNameArray.Add("volume"); sendBlocks.BlockNameArray.Add(pos); sendBlocks.BlockNameArray.Add(change); if (goodhit) { PostScriptEvent(ScriptId.AllScripts, "VolumeBlock", sendBlocks); Wait(TimeSpan.FromSeconds(2)); ReturnBeatBlock(); } else { ScenePrivate.Chat.MessageAllUsers("Drop the Beat Block in a Loop Bin"); ReturnBeatBlock(); } } } } }
private void CheckForCollisions(CollisionEventType trackedEvents) { while (true) { // This will block the coroutine until a collision happens CollisionData data = (CollisionData)WaitFor(RigidBody.Subscribe, trackedEvents, Sansar.Script.ComponentId.Invalid); if (data.EventType == CollisionEventType.CharacterContact) { //Log.Write("I hit an avatar"); } else { //Log.Write("I hit an object"); //Log.Write("CollisionEventType: " + data.EventType); goodhit = false; if (!hitDetected) { //Log.Write("BPMBlock"); //Log.Write("BPMBlock: Position: " + RigidBody.GetPosition()); pos = GetXPosition(RigidBody.GetPosition().ToString4()); ypos = GetYPosition(RigidBody.GetPosition().ToString4()); if ((ypos == "-0") || (ypos == "0.")) { goodhit = true; } SendBPM sendBPM = new SendBPM(); sendBPM.BPMArray = new List <string>(); sendBPM.BPMArray.Add("bpm"); sendBPM.BPMArray.Add(pos); sendBPM.BPMArray.Add(bpm); SendBlockNames sendBlocks = new SendBlockNames(); sendBlocks.BlockNameArray = new List <string>(); sendBlocks.BlockNameArray.Add(BeatBlockName); sendBlocks.BlockNameArray.Add("0"); sendBlocks.BlockNameArray.Add(beats); SendSamples sendSamples = new SendSamples(); sendSamples.SampleLibrary = new List <SoundResource>(); if (Sample1 != null) { //Log.Write("BPMBlock: sample being sent from BPM: " + Sample1.GetName()); sendSamples.SampleLibrary.Add(Sample1); } if (goodhit) { //Log.Write("BPMBlock: goodhit"); PostScriptEvent(ScriptId.AllScripts, "BPMBlock", sendBPM); PostScriptEvent(ScriptId.AllScripts, "BeatBlock", sendBlocks); PostScriptEvent(ScriptId.AllScripts, "BeatBlockSample", sendSamples); Wait(TimeSpan.FromSeconds(1.5)); DisplayBPMBlock(); Wait(TimeSpan.FromSeconds(1.0)); SubscribeToScriptEvent("ReturnBeatBlock", getBin); subscribe = true; hitDetected = true; } else { //ScenePrivate.Chat.MessageAllUsers("Drop the BPM Block in a Loop Bin"); ReturnBPMBlock(); } } } } }