64 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using Microsoft.Xna.Framework;
 | 
						|
 | 
						|
using Android.App;
 | 
						|
using Android.Content.PM;
 | 
						|
using Android.OS;
 | 
						|
using Android.Views;
 | 
						|
using Engine.Integration.MonoGame;
 | 
						|
using Engine.Core;
 | 
						|
using Engine.Core.Debug;
 | 
						|
 | 
						|
namespace MyUniverse.Platforms.Android
 | 
						|
{
 | 
						|
    [Activity(
 | 
						|
        Label = "@string/app_name",
 | 
						|
        MainLauncher = true,
 | 
						|
        Icon = "@drawable/icon",
 | 
						|
        AlwaysRetainTaskState = true,
 | 
						|
        LaunchMode = LaunchMode.SingleInstance,
 | 
						|
        ScreenOrientation = ScreenOrientation.Portrait,
 | 
						|
        ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.Keyboard | ConfigChanges.KeyboardHidden | ConfigChanges.ScreenSize
 | 
						|
    )]
 | 
						|
    public class Program : AndroidGameActivity
 | 
						|
    {
 | 
						|
        private MonoGameWindow _game;
 | 
						|
        private View _view;
 | 
						|
 | 
						|
        protected override void OnCreate(Bundle bundle)
 | 
						|
        {
 | 
						|
            base.OnCreate(bundle);
 | 
						|
 | 
						|
            Universe universe = new();
 | 
						|
 | 
						|
            ILogger logger = new RotatingFileLogger("Logs", "MyGame");
 | 
						|
 | 
						|
            IUniverseObject mobileParent = universe.InstantiateUniverseObject().SetUniverseObject("Desktop");
 | 
						|
 | 
						|
            universe.InstantiateUniverseObject().SetUniverseObject("Logger")
 | 
						|
                .BehaviourController.AddBehaviour<LoggerContainer>().Logger = ILogger.Shared = logger;
 | 
						|
 | 
						|
            universe.InstantiateUniverseObject().SetUniverseObject("Mobile Inputs", mobileParent)
 | 
						|
                .BehaviourController.AddBehaviour<MobileInputs>();
 | 
						|
 | 
						|
            universe.InstantiateUniverseObject().SetUniverseObject("Visual Managers", mobileParent)
 | 
						|
                .BehaviourController.AddBehaviour<DrawManager>()
 | 
						|
                .BehaviourController.AddBehaviour<LoadContentManager>();
 | 
						|
 | 
						|
            /* For Networking
 | 
						|
            LiteNetLibClient client = universe.InstantiateUniverseObject().SetUniverseObject("Client").BehaviourController.AddBehaviour<LiteNetLibClient>();
 | 
						|
            client.BehaviourController.AddBehaviour<NetworkManager>();
 | 
						|
            universe.OnPreUpdate.AddOneTimeListener((_, _) => client.Connect("localhost", 8888));
 | 
						|
            */
 | 
						|
 | 
						|
            Shared.UniverseSource.ApplyClient(universe);
 | 
						|
            Shared.UniverseSource.ApplyUniverse(universe);
 | 
						|
 | 
						|
            _game = new MonoGameWindow(universe);
 | 
						|
            _view = _game.Services.GetService(typeof(View)) as View;
 | 
						|
 | 
						|
            SetContentView(_view);
 | 
						|
            _game.Run();
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |