/// <summary> /// handles events coming in from the game manager /// </summary> protected virtual void HandleHoverCatGameEvent(object sender, HoverCatEventArgs args) { GameLog.Log(sender, this.ToString() + ":" + args.catEvent); switch (args.catEvent) { case HoverCatEvent.Show: this.Show(); break; case HoverCatEvent.Hide: this.Freeze(); this.Hide(); break; case HoverCatEvent.Reset: this.Freeze(); this.Home(); this.Show(); break; default: break; } }
//inherit old events then send out new ones for //the cat and any other objects assigned to the event. protected override void HandleStructureEvent(object sender, StructureARPluginEventArgs structureArgs) { base.HandleStructureEvent(sender, structureArgs); if (HoverCatGameEvent == null) { return; } switch (structureArgs.eventType) { case StructureARPluginEvent.TrackingLost: if (this.trackingIsGood != isCatTracking) { if (this.gameState == SensorState.Playing) { HoverCatEventArgs catArgs = new HoverCatEventArgs( this.gameState, this.trackingIsGood, HoverCatEvent.StateChange); catArgs.catEvent = HoverCatEvent.Hide; HoverCatGameEvent(this, catArgs); } isCatTracking = trackingIsGood; } break; case StructureARPluginEvent.TrackingFound: if (this.trackingIsGood != isCatTracking) { if (this.gameState == SensorState.Playing) { HoverCatEventArgs catArgs = new HoverCatEventArgs( this.gameState, this.trackingIsGood, HoverCatEvent.StateChange); catArgs.catEvent = HoverCatEvent.Show; HoverCatGameEvent(this, catArgs); } isCatTracking = trackingIsGood; } break; case StructureARPluginEvent.ScannedMeshReady: if (this.gameState == SensorState.Playing) { HoverCatEventArgs catArgs = new HoverCatEventArgs( this.gameState, this.trackingIsGood, HoverCatEvent.StateChange); catArgs.catEvent = HoverCatEvent.Reset; HoverCatGameEvent(this, catArgs); } break; case StructureARPluginEvent.CameraAccessRequired: case StructureARPluginEvent.SensorDisconnected: case StructureARPluginEvent.SensorNeedsCharging: if (this.gameState == SensorState.Playing) { HoverCatEventArgs catArgs = new HoverCatEventArgs( this.gameState, this.trackingIsGood, HoverCatEvent.StateChange); catArgs.catEvent = HoverCatEvent.Hide; HoverCatGameEvent(this, catArgs); } break; case StructureARPluginEvent.SensorConnected: if (this.gameState == SensorState.Playing) { HoverCatEventArgs catArgs = new HoverCatEventArgs( this.gameState, this.trackingIsGood, HoverCatEvent.StateChange); catArgs.catEvent = HoverCatEvent.Show; HoverCatGameEvent(this, catArgs); } break; case StructureARPluginEvent.UpdateProjectionMatrix: default: break; } }
//inherit old events then send out new ones for //the cat and any other objects assigned to the event. protected override void HandleStructureEvent(object sender, StructureARPluginEventArgs structureArgs) { base.HandleStructureEvent(sender, structureArgs); if(HoverCatGameEvent == null) { return; } switch(structureArgs.eventType) { case StructureARPluginEvent.TrackingLost: if(this.trackingIsGood != isCatTracking) { if(this.gameState == SensorState.Playing) { HoverCatEventArgs catArgs = new HoverCatEventArgs( this.gameState, this.trackingIsGood, HoverCatEvent.StateChange); catArgs.catEvent = HoverCatEvent.Hide; HoverCatGameEvent(this, catArgs); } isCatTracking = trackingIsGood; } break; case StructureARPluginEvent.TrackingFound: if(this.trackingIsGood != isCatTracking) { if(this.gameState == SensorState.Playing) { HoverCatEventArgs catArgs = new HoverCatEventArgs( this.gameState, this.trackingIsGood, HoverCatEvent.StateChange); catArgs.catEvent = HoverCatEvent.Show; HoverCatGameEvent(this, catArgs); } isCatTracking = trackingIsGood; } break; case StructureARPluginEvent.ScannedMeshReady: if(this.gameState == SensorState.Playing) { HoverCatEventArgs catArgs = new HoverCatEventArgs( this.gameState, this.trackingIsGood, HoverCatEvent.StateChange); catArgs.catEvent = HoverCatEvent.Reset; HoverCatGameEvent(this, catArgs); } break; case StructureARPluginEvent.CameraAccessRequired: case StructureARPluginEvent.SensorDisconnected: case StructureARPluginEvent.SensorNeedsCharging: if(this.gameState == SensorState.Playing) { HoverCatEventArgs catArgs = new HoverCatEventArgs( this.gameState, this.trackingIsGood, HoverCatEvent.StateChange); catArgs.catEvent = HoverCatEvent.Hide; HoverCatGameEvent(this, catArgs); } break; case StructureARPluginEvent.SensorConnected: if(this.gameState == SensorState.Playing) { HoverCatEventArgs catArgs = new HoverCatEventArgs( this.gameState, this.trackingIsGood, HoverCatEvent.StateChange); catArgs.catEvent = HoverCatEvent.Show; HoverCatGameEvent(this, catArgs); } break; case StructureARPluginEvent.UpdateProjectionMatrix: default: break; } }