chore: updated engine again
This commit is contained in:
		
							
								
								
									
										2
									
								
								Engine
									
									
									
									
									
								
							
							
								
								
								
								
								
							
						
						
									
										2
									
								
								Engine
									
									
									
									
									
								
							 Submodule Engine updated: beecefec1c...c7f63dc638
									
								
							@@ -1,7 +1,16 @@
 | 
			
		||||
using Syntriax.Engine.Core;
 | 
			
		||||
using Microsoft.Xna.Framework.Graphics;
 | 
			
		||||
 | 
			
		||||
using Syntriax.Engine.Core;
 | 
			
		||||
using Syntriax.Engine.Integration.MonoGame;
 | 
			
		||||
 | 
			
		||||
IUniverseObject universeObject = Syntriax.Engine.Core.Factory.UniverseObjectFactory.Instantiate().SetUniverseObject("Desktop HO");
 | 
			
		||||
universeObject.BehaviourController.AddBehaviour<KeyboardInputsBehaviour>();
 | 
			
		||||
using var game = new Pong.GamePong(universeObject);
 | 
			
		||||
using var game = new Pong.GamePong();
 | 
			
		||||
 | 
			
		||||
game.Universe
 | 
			
		||||
    .InstantiateUniverseObject().SetUniverseObject("Desktop HO")
 | 
			
		||||
    .BehaviourController.AddBehaviour<KeyboardInputsBehaviour>();
 | 
			
		||||
 | 
			
		||||
game.Graphics.PreferredBackBufferWidth = 1024;
 | 
			
		||||
game.Graphics.PreferredBackBufferHeight = 576;
 | 
			
		||||
game.Graphics.GraphicsProfile = GraphicsProfile.HiDef;
 | 
			
		||||
 | 
			
		||||
game.Run();
 | 
			
		||||
 
 | 
			
		||||
@@ -1,18 +1,22 @@
 | 
			
		||||
using Microsoft.Xna.Framework.Graphics;
 | 
			
		||||
 | 
			
		||||
using Syntriax.Engine.Core;
 | 
			
		||||
using Syntriax.Engine.Integration.MonoGame;
 | 
			
		||||
 | 
			
		||||
namespace Pong.Behaviours;
 | 
			
		||||
 | 
			
		||||
public class TextScoreBehaviour : TextBehaviour, IFirstFrameUpdate
 | 
			
		||||
public class TextScoreBehaviour(bool IsLeft) : TextBehaviour, IFirstFrameUpdate
 | 
			
		||||
{
 | 
			
		||||
    public bool IsLeft { get; }
 | 
			
		||||
    public readonly bool IsLeft = IsLeft;
 | 
			
		||||
 | 
			
		||||
    private PongManagerBehaviour? pongManager = null;
 | 
			
		||||
    private PongManagerBehaviour pongManager = null!;
 | 
			
		||||
 | 
			
		||||
    public void FirstActiveFrame()
 | 
			
		||||
    {
 | 
			
		||||
        if (!UniverseObject.Universe.TryFindBehaviour(out pongManager))
 | 
			
		||||
            return;
 | 
			
		||||
        MonoGameWindow monoGameWindow = Universe.FindRequiredBehaviour<MonoGameWindowContainer>().Window;
 | 
			
		||||
        Font = monoGameWindow.Content.Load<SpriteFont>("UbuntuMono");
 | 
			
		||||
 | 
			
		||||
        pongManager = Universe.FindRequiredBehaviour<PongManagerBehaviour>();
 | 
			
		||||
 | 
			
		||||
        pongManager.OnScored += UpdateScores;
 | 
			
		||||
        pongManager.OnReset += UpdateScores;
 | 
			
		||||
@@ -27,7 +31,4 @@ public class TextScoreBehaviour : TextBehaviour, IFirstFrameUpdate
 | 
			
		||||
        else
 | 
			
		||||
            Text = pongManager.ScoreRight.ToString();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public TextScoreBehaviour(bool IsLeft) => this.IsLeft = IsLeft;
 | 
			
		||||
    public TextScoreBehaviour(bool IsLeft, SpriteFont font) : base(font) => this.IsLeft = IsLeft;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,78 +1,72 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
 | 
			
		||||
using Microsoft.Xna.Framework;
 | 
			
		||||
using Microsoft.Xna.Framework.Graphics;
 | 
			
		||||
using Microsoft.Xna.Framework.Input;
 | 
			
		||||
 | 
			
		||||
using Pong.Behaviours;
 | 
			
		||||
 | 
			
		||||
using Syntriax.Engine.Core;
 | 
			
		||||
using Syntriax.Engine.Core.Factory;
 | 
			
		||||
using Syntriax.Engine.Integration.MonoGame;
 | 
			
		||||
using Syntriax.Engine.Network;
 | 
			
		||||
using Syntriax.Engine.Physics2D;
 | 
			
		||||
using Syntriax.Engine.Systems.Tween;
 | 
			
		||||
using Syntriax.Engine.Integration.MonoGame;
 | 
			
		||||
 | 
			
		||||
namespace Pong;
 | 
			
		||||
 | 
			
		||||
public class GamePong : MonoGameWindow
 | 
			
		||||
{
 | 
			
		||||
    private readonly IUniverseObject platformSpecificUniverseObject = null!;
 | 
			
		||||
 | 
			
		||||
    public GamePong(IUniverseObject platformSpecificUniverseObject)
 | 
			
		||||
    protected override void Initialize()
 | 
			
		||||
    {
 | 
			
		||||
        this.platformSpecificUniverseObject = platformSpecificUniverseObject;
 | 
			
		||||
        Graphics.PreferredBackBufferWidth = 1024;
 | 
			
		||||
        Graphics.PreferredBackBufferHeight = 576;
 | 
			
		||||
        Graphics.GraphicsProfile = GraphicsProfile.HiDef;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected override void PopulateUniverse(IUniverse universe)
 | 
			
		||||
    {
 | 
			
		||||
        SpriteFont spriteFont = Content.Load<SpriteFont>("UbuntuMono");
 | 
			
		||||
 | 
			
		||||
        universe.Register(platformSpecificUniverseObject);
 | 
			
		||||
        base.Initialize();
 | 
			
		||||
 | 
			
		||||
        if (Environment.GetCommandLineArgs().FirstOrDefault(x => x.CompareTo("-server") == 0) is not null)
 | 
			
		||||
        {
 | 
			
		||||
            LiteNetLibServer server = universe.InstantiateUniverseObject().SetUniverseObject("Server").BehaviourController.AddBehaviour<LiteNetLibServer>();
 | 
			
		||||
            LiteNetLibServer server = Universe.InstantiateUniverseObject().SetUniverseObject("Server").BehaviourController.AddBehaviour<LiteNetLibServer>();
 | 
			
		||||
            server.BehaviourController.AddBehaviour<NetworkManager>();
 | 
			
		||||
            server.Start(8888, 2);
 | 
			
		||||
            Window.Title = $"Server";
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            LiteNetLibClient client = universe.InstantiateUniverseObject().SetUniverseObject("Client").BehaviourController.AddBehaviour<LiteNetLibClient>();
 | 
			
		||||
            LiteNetLibClient client = Universe.InstantiateUniverseObject().SetUniverseObject("Client").BehaviourController.AddBehaviour<LiteNetLibClient>();
 | 
			
		||||
            client.BehaviourController.AddBehaviour<NetworkManager>();
 | 
			
		||||
            client.Connect("localhost", 8888);
 | 
			
		||||
            Window.Title = $"Client";
 | 
			
		||||
 | 
			
		||||
            DrawManager drawManager = universe.InstantiateUniverseObject().SetUniverseObject("Draw Manager").BehaviourController.AddBehaviour<DrawManager>();
 | 
			
		||||
            universe.InstantiateUniverseObject().SetUniverseObject("Shape Batcher", drawManager.UniverseObject).BehaviourController.AddBehaviour<ShapeBatcher>();
 | 
			
		||||
            universe.InstantiateUniverseObject().SetUniverseObject("Sprite Batcher", drawManager.UniverseObject).BehaviourController.AddBehaviour<SpriteBatcher>();
 | 
			
		||||
            DrawManager drawManager = Universe.InstantiateUniverseObject().SetUniverseObject("Draw Manager").BehaviourController.AddBehaviour<DrawManager>();
 | 
			
		||||
            Universe.InstantiateUniverseObject().SetUniverseObject("Shape Batcher", drawManager.UniverseObject).BehaviourController.AddBehaviour<ShapeBatcher>();
 | 
			
		||||
            Universe.InstantiateUniverseObject().SetUniverseObject("Sprite Batcher", drawManager.UniverseObject).BehaviourController.AddBehaviour<SpriteBatcher>();
 | 
			
		||||
 | 
			
		||||
            Universe.InstantiateUniverseObject().SetUniverseObject("Score Left")
 | 
			
		||||
                .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(-250f, 250f), scale: Vector2D.One * .25f)
 | 
			
		||||
                .BehaviourController.AddBehaviour<TextScoreBehaviour>(true);
 | 
			
		||||
 | 
			
		||||
            Universe.InstantiateUniverseObject().SetUniverseObject("Score Right")
 | 
			
		||||
                .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(250f, 250f), scale: Vector2D.One * .25f)
 | 
			
		||||
                .BehaviourController.AddBehaviour<TextScoreBehaviour>(false);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        universe.InstantiateUniverseObject().SetUniverseObject("Update Manager").BehaviourController.AddBehaviour<UpdateManager>();
 | 
			
		||||
        universe.InstantiateUniverseObject().SetUniverseObject("Coroutine Manager").BehaviourController.AddBehaviour<CoroutineManager>();
 | 
			
		||||
        universe.InstantiateUniverseObject().SetUniverseObject("Tween Manager").BehaviourController.AddBehaviour<TweenManager>();
 | 
			
		||||
        universe.InstantiateUniverseObject().SetUniverseObject("Physics Engine 2D").BehaviourController.AddBehaviour<PhysicsEngine2D>();
 | 
			
		||||
        Universe.InstantiateUniverseObject().SetUniverseObject("Update Manager").BehaviourController.AddBehaviour<UpdateManager>();
 | 
			
		||||
        Universe.InstantiateUniverseObject().SetUniverseObject("Coroutine Manager").BehaviourController.AddBehaviour<CoroutineManager>();
 | 
			
		||||
        Universe.InstantiateUniverseObject().SetUniverseObject("Tween Manager").BehaviourController.AddBehaviour<TweenManager>();
 | 
			
		||||
        Universe.InstantiateUniverseObject().SetUniverseObject("Physics Engine 2D").BehaviourController.AddBehaviour<PhysicsEngine2D>();
 | 
			
		||||
 | 
			
		||||
        ////////////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
        universe.InstantiateUniverseObject().SetUniverseObject("Camera")
 | 
			
		||||
        Universe.InstantiateUniverseObject().SetUniverseObject("Camera")
 | 
			
		||||
            .BehaviourController.AddBehaviour<Transform2D>()
 | 
			
		||||
            .BehaviourController.AddBehaviour<CameraController>()
 | 
			
		||||
            .BehaviourController.AddBehaviour<MonoGameCamera2DBehaviour>();
 | 
			
		||||
 | 
			
		||||
        ////////////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
        PongManagerBehaviour pongManager = universe.InstantiateUniverseObject().SetUniverseObject("Pong Game Manager")
 | 
			
		||||
        PongManagerBehaviour pongManager = Universe.InstantiateUniverseObject().SetUniverseObject("Pong Game Manager")
 | 
			
		||||
            .BehaviourController.AddBehaviour<PongManagerBehaviour>(5);
 | 
			
		||||
 | 
			
		||||
        ////////////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
        universe.InstantiateUniverseObject().SetUniverseObject("Ball")
 | 
			
		||||
        Universe.InstantiateUniverseObject().SetUniverseObject("Ball")
 | 
			
		||||
            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(0, 0f), scale: new Vector2D(10f, 10f))
 | 
			
		||||
            .BehaviourController.AddBehaviour<CircleBehaviour>(new Circle(Vector2D.Zero, 1f))
 | 
			
		||||
            .BehaviourController.AddBehaviour<BallBehaviour>()
 | 
			
		||||
@@ -87,7 +81,7 @@ public class GamePong : MonoGameWindow
 | 
			
		||||
        PaddleBehaviour leftPaddleBehaviour = BehaviourFactory.Instantiate<PaddleBehaviour>(Keys.W, Keys.S, 228f, -228f, 400f);
 | 
			
		||||
        leftPaddleBehaviour.Id = "lp";
 | 
			
		||||
        leftPaddle.BehaviourController.AddBehaviour(leftPaddleBehaviour);
 | 
			
		||||
        universe.Register(leftPaddle);
 | 
			
		||||
        Universe.Register(leftPaddle);
 | 
			
		||||
 | 
			
		||||
        IUniverseObject rightPaddle = UniverseObjectFactory.Instantiate().SetUniverseObject("Right Paddle");
 | 
			
		||||
        rightPaddle.BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(468f, 0f), scale: new Vector2D(15f, 60f))
 | 
			
		||||
@@ -96,40 +90,30 @@ public class GamePong : MonoGameWindow
 | 
			
		||||
        PaddleBehaviour rightPaddleBehaviour = BehaviourFactory.Instantiate<PaddleBehaviour>(Keys.Up, Keys.Down, 228f, -228f, 400f);
 | 
			
		||||
        rightPaddleBehaviour.Id = "rp";
 | 
			
		||||
        rightPaddle.BehaviourController.AddBehaviour(rightPaddleBehaviour);
 | 
			
		||||
        universe.Register(rightPaddle);
 | 
			
		||||
        Universe.Register(rightPaddle);
 | 
			
		||||
 | 
			
		||||
        ////////////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
        universe.InstantiateUniverseObject().SetUniverseObject("Wall Top")
 | 
			
		||||
        Universe.InstantiateUniverseObject().SetUniverseObject("Wall Top")
 | 
			
		||||
            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(0f, 308f), scale: new Vector2D(552f, 20f))
 | 
			
		||||
            .BehaviourController.AddBehaviour<ShapeBehaviour>(Shape2D.Square)
 | 
			
		||||
            .BehaviourController.AddBehaviour<RigidBody2D>().IsStatic = true;
 | 
			
		||||
 | 
			
		||||
        universe.InstantiateUniverseObject().SetUniverseObject("Wall Bottom")
 | 
			
		||||
        Universe.InstantiateUniverseObject().SetUniverseObject("Wall Bottom")
 | 
			
		||||
            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(0f, -308f), scale: new Vector2D(552f, 20f))
 | 
			
		||||
            .BehaviourController.AddBehaviour<ShapeBehaviour>(Shape2D.Square)
 | 
			
		||||
            .BehaviourController.AddBehaviour<RigidBody2D>().IsStatic = true;
 | 
			
		||||
 | 
			
		||||
        universe.InstantiateUniverseObject().SetUniverseObject("Wall Right")
 | 
			
		||||
        Universe.InstantiateUniverseObject().SetUniverseObject("Wall Right")
 | 
			
		||||
            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(532f, 0f), scale: new Vector2D(20f, 328f))
 | 
			
		||||
            .BehaviourController.AddBehaviour<WallScoreBehaviour>((Action)pongManager.ScoreToLeft)
 | 
			
		||||
            .BehaviourController.AddBehaviour<ShapeBehaviour>(Shape2D.Square)
 | 
			
		||||
            .BehaviourController.AddBehaviour<RigidBody2D>().IsStatic = true;
 | 
			
		||||
 | 
			
		||||
        universe.InstantiateUniverseObject().SetUniverseObject("Wall Left")
 | 
			
		||||
        Universe.InstantiateUniverseObject().SetUniverseObject("Wall Left")
 | 
			
		||||
            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(-532f, 0f), scale: new Vector2D(20f, 328f))
 | 
			
		||||
            .BehaviourController.AddBehaviour<WallScoreBehaviour>((Action)pongManager.ScoreToRight)
 | 
			
		||||
            .BehaviourController.AddBehaviour<ShapeBehaviour>(Shape2D.Square)
 | 
			
		||||
            .BehaviourController.AddBehaviour<RigidBody2D>().IsStatic = true;
 | 
			
		||||
 | 
			
		||||
        ////////////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
        universe.InstantiateUniverseObject().SetUniverseObject("Score Left")
 | 
			
		||||
            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(-250f, 250f), scale: Vector2D.One * .25f)
 | 
			
		||||
            .BehaviourController.AddBehaviour<TextScoreBehaviour>(true, spriteFont);
 | 
			
		||||
 | 
			
		||||
        universe.InstantiateUniverseObject().SetUniverseObject("Score Right")
 | 
			
		||||
            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new Vector2D(250f, 250f), scale: Vector2D.One * .25f)
 | 
			
		||||
            .BehaviourController.AddBehaviour<TextScoreBehaviour>(false, spriteFont);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user