diff --git a/.travis.yml b/.travis.yml
index 523c0b5..81522e3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,11 +1,18 @@
language: csharp
solution: ZombustersWindows.sln
before_install:
- - wget http://www.monogame.net/releases/v3.4/MonoGame.Linux.zip
- - unzip MonoGame.Linux.zip
+ - wget http://www.monogame.net/releases/v3.6/monogame-sdk.run
- find * -type f -exec chmod 777 {} \; # lazy just make all executable
install:
- - sudo apt-get install -qq monodevelop libopenal-dev referenceassemblies-pcl ttf-mscorefonts-installer gtk-sharp2; # install needed packages for the monogame sdk
- - sudo ./generate.sh && yes Y|sudo ./monogame-linux.run; # install monogame sdk
+ # Extracted from http://community.monogame.net/t/running-monogame-sdk-run-on-linux-without-confirmation-travis-ci/9567
+ - sudo apt-get install gtk-sharp3
+ - sudo apt-get install libopenal-dev referenceassemblies-pcl ttf-mscorefonts-installer
+
+ - echo y | sudo ./monogame-sdk.run
+
+ - nuget restore
+ #- nuget install NUnit.Runners -Version 2.6.4 -OutputDirectory testrunner
script:
+ - msbuild
+ #- mono ./testrunner/NUnit.Runners.2.6.4/tools/nunit-console.exe ./MonoGameSample.UnitTests/bin/Debug/MonoGameSample.UnitTests.dll
- (cd ZombustersWindows/Content && mono /opt/monogame-pipeline/MGCB.exe /rebuild /@:"Content.mgcb" /outputDir:"../bin/Release/Content")
diff --git a/ZombustersWindows/Debug/DebugInfoPortlet.cs b/ZombustersWindows/Debug/DebugInfoPortlet.cs
new file mode 100644
index 0000000..ea8aefa
--- /dev/null
+++ b/ZombustersWindows/Debug/DebugInfoPortlet.cs
@@ -0,0 +1,251 @@
+#region File Description
+//-----------------------------------------------------------------------------
+// DebugInfoPortlet.cs
+//-----------------------------------------------------------------------------
+#endregion
+
+#region Using Statements
+using System;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Audio;
+using Microsoft.Xna.Framework.Content;
+
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+#if !WINDOWS_PHONE
+using Microsoft.Xna.Framework.Storage;
+#endif
+using GameStateManagement;
+using ZombustersWindows.Subsystem_Managers;
+#endregion
+
+namespace ZombustersWindows
+{
+ ///
+ /// A message box screen, used to display "debug" messages.
+ ///
+ public class DebugInfoComponent : DrawableGameComponent
+ {
+ MyGame mygame;
+ ContentManager content;
+ SpriteBatch spriteBatch;
+ SpriteFont spriteFont, smallspriteFont;
+ bool stopUpdatingText = false;
+ InputState input = new InputState();
+
+ ScrollingTextManager mText;
+ String previousNetDebugText = "";
+ public String NetDebugText = "";
+
+ public DebugInfoComponent(MyGame game)
+ : base(game)
+ {
+ content = game.Content;
+ mygame = game;
+ }
+
+
+ protected override void LoadContent()
+ {
+ spriteBatch = new SpriteBatch(GraphicsDevice);
+ spriteFont = content.Load(@"menu\ArialMenuInfo"); //content.Load(@"menu/ArialMenuInfo");
+ smallspriteFont = content.Load(@"menu\ArialMusicItalic");
+
+ //Create a Textblock object. This object will calculate the line wraps needs for the
+ //block of text and position the lines of text for scrolling through the display area
+ mText = new ScrollingTextManager(new Rectangle(0, 280, 500, 400), smallspriteFont, NetDebugText);
+ }
+
+ public virtual void HandleInput(InputState input) { }
+
+ public void HandleDebugInput(InputState input)
+ {
+ if (input.IsNewButtonPress(Buttons.X))
+ {
+ if (stopUpdatingText == false)
+ stopUpdatingText = true;
+ else
+ stopUpdatingText = false;
+
+
+ return;
+ }
+
+ this.HandleInput(input);
+ }
+
+
+ public override void Update(GameTime gameTime)
+ {
+ input.Update();
+ this.HandleDebugInput(input);
+
+#if !WINDOWS_PHONE
+ //Update the TextBlock. This will allow the lines of text to scroll.
+ if (NetDebugText != previousNetDebugText)
+ {
+ mText = new ScrollingTextManager(new Rectangle(781, 322, 500, 400), smallspriteFont, NetDebugText);
+ previousNetDebugText = NetDebugText;
+ }
+
+ if (stopUpdatingText == false)
+ mText.Update(gameTime);
+#endif
+ }
+
+
+ public override void Draw(GameTime gameTime)
+ {
+ int count = 0;
+
+ Vector2 position = new Vector2(32, 64);
+
+ spriteBatch.Begin();
+
+ //spriteBatch.DrawString(spriteFont, "Signed In Gamers: " + Gamer.SignedInGamers.Count.ToString(), position, Color.White);
+
+#if !WINDOWS_PHONE && !WINDOWS
+ if (mygame.networkSessionManager.networkSession != null)
+ {
+ position = new Vector2(position.X, position.Y + 32);
+ spriteBatch.DrawString(spriteFont, "NET Gamers: " + mygame.networkSessionManager.networkSession.AllGamers.Count.ToString(), position, Color.White);
+ position = new Vector2(position.X, position.Y + 32);
+ spriteBatch.DrawString(spriteFont, "LocalNetworkGamers: " + mygame.networkSessionManager.networkSession.LocalGamers.Count.ToString(), position, Color.White);
+ position = new Vector2(position.X, position.Y + 32);
+ spriteBatch.DrawString(spriteFont, "RemoteNetworkGamers: " + mygame.networkSessionManager.networkSession.RemoteGamers.Count.ToString(), position, Color.White);
+ position = new Vector2(position.X, position.Y + 32);
+ spriteBatch.DrawString(spriteFont, "IsHost: " + mygame.networkSessionManager.networkSession.LocalGamers[0].IsHost.ToString(), position, Color.White);
+ }
+#endif
+
+#if XBOX
+ if (mygame.gamerManager.getOnlinePlayerGamertag() != null)
+ {
+ position = new Vector2(position.X, position.Y + 32);
+ spriteBatch.DrawString(spriteFont, "Online Gamertags: " + mygame.gamerManager.getOnlinePlayerGamertag().Count.ToString(), position, Color.White);
+ }
+
+ if (mygame.gamerManager.getOnlinePlayerIcons() != null)
+ {
+ position = new Vector2(position.X, position.Y + 32);
+ spriteBatch.DrawString(spriteFont, "Online Icons: " + mygame.gamerManager.getOnlinePlayerIcons().Count.ToString(), position, Color.White);
+ }
+#endif
+
+#if !WINDOWS_PHONE && !WINDOWS
+ if (mygame.networkSessionManager.networkSession != null)
+ {
+ position = new Vector2(position.X, position.Y + 32);
+ spriteBatch.DrawString(spriteFont, "BPS Received: " + mygame.networkSessionManager.networkSession.BytesPerSecondReceived.ToString(), position, Color.White);
+ position = new Vector2(position.X, position.Y + 32);
+ spriteBatch.DrawString(spriteFont, "BPS Sent: " + mygame.networkSessionManager.networkSession.BytesPerSecondSent.ToString(), position, Color.White);
+ position = new Vector2(position.X, position.Y + 32);
+ spriteBatch.DrawString(spriteFont, "Private Slots: " + mygame.networkSessionManager.networkSession.PrivateGamerSlots.ToString(), position, Color.White);
+ position = new Vector2(position.X, position.Y + 32);
+ spriteBatch.DrawString(spriteFont, "Max session Gamers: " + mygame.networkSessionManager.networkSession.MaxGamers.ToString(), position, Color.White);
+ }
+#endif
+
+ /*if (Guide.IsTrialMode == true)
+ {
+ position = new Vector2(position.X, position.Y + 32);
+ spriteBatch.DrawString(spriteFont, "Trial Mode On", position, Color.White);
+ }
+ else*/
+ {
+ position = new Vector2(position.X, position.Y + 32);
+ spriteBatch.DrawString(spriteFont, "Trial Mode Off", position, Color.White);
+ }
+
+ count = 0;
+ foreach (Avatar avatar in mygame.currentPlayers)
+ {
+ if (avatar.Player != null)
+ {
+#if !WINDOWS_PHONE
+ position = new Vector2(position.X, position.Y + 32);
+ spriteBatch.DrawString(spriteFont, "Name: " + avatar.Player.Name, position, Color.White);
+#endif
+ position = new Vector2(position.X, position.Y + 32);
+ spriteBatch.DrawString(spriteFont, "ULevels" + count.ToString() + ": " + avatar.Player.levelsUnlocked.ToString(), position, Color.White);
+
+#if !WINDOWS_PHONE && !WINDOWS
+ if (avatar.Player.Container != null)
+ {
+ position = new Vector2(position.X, position.Y + 32);
+ spriteBatch.DrawString(spriteFont, "Contner Dispsd: " + avatar.Player.Container.IsDisposed.ToString(), position, Color.White);
+ }
+#endif
+ }
+ count++;
+ }
+
+ //Now draw the text to be drawn on the screen
+ mText.Draw(spriteBatch);
+
+ spriteBatch.End();
+ }
+ }
+
+
+
+
+
+
+
+ ///
+ /// A message box screen, used to display framerate.
+ ///
+ public class FrameRateCounter : DrawableGameComponent
+ {
+ ContentManager content;
+ SpriteBatch spriteBatch;
+ SpriteFont spriteFont;
+
+ int frameRate = 0;
+ int frameCounter = 0;
+ TimeSpan elapsedTime = TimeSpan.Zero;
+
+
+ public FrameRateCounter(Game game)
+ : base(game)
+ {
+ content = game.Content;
+ }
+
+
+ protected override void LoadContent()
+ {
+ spriteBatch = new SpriteBatch(GraphicsDevice);
+ spriteFont = content.Load(@"menu\ArialMenuInfo"); //content.Load(@"menu/ArialMenuInfo");
+ }
+
+
+ public override void Update(GameTime gameTime)
+ {
+ elapsedTime += gameTime.ElapsedGameTime;
+
+ if (elapsedTime > TimeSpan.FromSeconds(1))
+ {
+ elapsedTime -= TimeSpan.FromSeconds(1);
+ frameRate = frameCounter;
+ frameCounter = 0;
+ }
+ }
+
+
+ public override void Draw(GameTime gameTime)
+ {
+ frameCounter++;
+
+ string fps = string.Format("fps: {0}", frameRate);
+
+ spriteBatch.Begin();
+
+ spriteBatch.DrawString(spriteFont, fps, new Vector2(33, 33), Color.Black);
+ spriteBatch.DrawString(spriteFont, fps, new Vector2(32, 32), Color.White);
+
+ spriteBatch.End();
+ }
+ }
+}
\ No newline at end of file