public TrackMixerEntity(Scene scene, Vector2 TracksPos, UICanvas canvas, bool[] trackbtn) { // // ONLY piano key entities come here // MainGameScene = scene as MainScene; //hand entity belongs to MainScene // // Background for mixer // StartX = TracksPos.X; StartY = TracksPos.Y; //Background = scene.CreateEntity("background", new Vector2(StartX, StartY)); //Background.Tag = 90; //Background.AddComponent(new SpriteRenderer(scene.Content.Load<Texture2D>("Slider/BackgroundMetal")).SetOrigin(new Vector2(0, 0)).SetRenderLayer(99)); StartX = TracksPos.X + 10; StartY = TracksPos.Y + 10; // // bitmap font for checkbox // Nez.BitmapFonts.BitmapFont bf = scene.Content.Load <BitmapFont>("fonts/futura"); slidertick = new SpriteDrawable((scene.Content.Load <Texture2D>("Slider/SliderMetalSmall"))); sliderknob = new SpriteDrawable((scene.Content.Load <Texture2D>("Slider/SliderKnobBlk"))); selecton = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/SelOn"))); selectoff = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/SelOff"))); soloon = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/SoloOn"))); solooff = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/SoloOff"))); muteon = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/MuteOn"))); muteoff = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/MuteOff"))); // // Add all the buttons for each track used (I assume 16 maximum) // int trackNo = 0; foreach (bool trkOnOff in trackbtn) { // // track is being used (check mark) button is disabled // sel = canvas.Stage.AddElement(new Nez.UI.CheckBox("", new CheckBoxStyle(selectoff, selecton, bf, Color.Black))); sel.SetPosition(StartX, StartY); sel.OnClicked += MainGameScene.Track_Selection; sel.IsChecked = trkOnOff; //on or off button? sel.SetDisabled(!trkOnOff); //if !trkOnOff = true then track not in use sel.Tag = trackNo; // // volume slider // slider = canvas.Stage.AddElement(new Slider(0, 100, 5, true, new SliderStyle(slidertick, sliderknob))); slider.SetPosition(StartX, StartY + 30); slider.SetHeight(150); slider.OnChanged += MainGameScene.Vol_Changed; slider.SetValue(100); //slider.Tag = trackNo; // // track SOLO // solo = canvas.Stage.AddElement(new Nez.UI.CheckBox("", new CheckBoxStyle(solooff, soloon, bf, Color.Black))); solo.SetPosition(StartX, StartY + 180); solo.OnClicked += MainGameScene.SoloBtn_OnClicked; solo.IsChecked = false; solo.Tag = trackNo; MainGameScene.SoloBtnGroup[trackNo] = solo; //add solo button to the group // // track MUTE // mute = canvas.Stage.AddElement(new Nez.UI.CheckBox("", new CheckBoxStyle(muteoff, muteon, bf, Color.Black))); mute.SetPosition(StartX, StartY + 210); mute.OnClicked += MainGameScene.Track_Selection; mute.IsChecked = false; mute.Tag = trackNo; // // On/Off button to give track instrument/channel number // switch (trackNo) { case 0: trkon = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk00On"))); trkoff = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk00Off"))); break; case 1: trkon = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk01On"))); trkoff = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk01Off"))); break; case 2: trkon = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk02On"))); trkoff = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk02Off"))); break; case 3: trkon = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk03On"))); trkoff = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk03Off"))); break; case 4: trkon = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk04On"))); trkoff = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk04Off"))); break; case 5: trkon = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk05On"))); trkoff = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk05Off"))); break; case 6: trkon = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk06On"))); trkoff = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk06Off"))); break; case 7: trkon = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk07On"))); trkoff = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk07Off"))); break; case 8: trkon = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk08On"))); trkoff = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk08Off"))); break; case 9: trkon = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk09On"))); trkoff = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk09Off"))); break; case 10: trkon = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk10On"))); trkoff = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk10Off"))); break; case 11: trkon = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk11On"))); trkoff = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk11Off"))); break; case 12: trkon = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk12On"))); trkoff = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk12Off"))); break; case 13: trkon = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk13On"))); trkoff = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk13Off"))); break; case 14: trkon = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk14On"))); trkoff = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk14Off"))); break; case 15: trkon = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk15On"))); trkoff = new SpriteDrawable((scene.Content.Load <Texture2D>("slider/Trk15Off"))); break; } trk = canvas.Stage.AddElement(new Nez.UI.CheckBox("", new CheckBoxStyle(trkoff, trkoff, bf, Color.Black))); trk.SetPosition(StartX, StartY + 240); trk.OnClicked += MainGameScene.TrackBtn_OnClicked; trk.Tag = trackNo; trk.IsChecked = false; trk.SetDisabled(!trkOnOff); //if !trkOnOff = true then track not in use StartX += 36.5f; trackNo += 1; } }