69 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
 | 
						|
using MyUniverse.Shared.Behaviours;
 | 
						|
 | 
						|
using Engine.Core;
 | 
						|
using Engine.Integration.MonoGame;
 | 
						|
using Engine.Systems.Tween;
 | 
						|
 | 
						|
namespace MyUniverse.Shared;
 | 
						|
 | 
						|
public static class UniverseSource
 | 
						|
{
 | 
						|
    public static void ApplyCore(IUniverse universe)
 | 
						|
    {
 | 
						|
        IUniverseObject coreManagersUO = universe.InstantiateUniverseObject().SetUniverseObject("Core Managers");
 | 
						|
 | 
						|
        coreManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Entrance Manager").BehaviourController.AddBehaviour<UniverseEntranceManager>().UniverseObject);
 | 
						|
        coreManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Update Manager").BehaviourController.AddBehaviour<UpdateManager>().UniverseObject);
 | 
						|
        coreManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Coroutine Manager").BehaviourController.AddBehaviour<CoroutineManager>().UniverseObject);
 | 
						|
        coreManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Tween Manager").BehaviourController.AddBehaviour<TweenManager>().UniverseObject);
 | 
						|
    }
 | 
						|
 | 
						|
    public static void ApplyClient(IUniverse universe)
 | 
						|
    {
 | 
						|
        ApplyCore(universe);
 | 
						|
 | 
						|
        IUniverseObject clientManagersUO = universe.InstantiateUniverseObject().SetUniverseObject("Core Managers");
 | 
						|
        clientManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Sprite Batcher").BehaviourController.AddBehaviour<SpriteBatcher>().UniverseObject);
 | 
						|
        clientManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Triangle Batcher").BehaviourController.AddBehaviour<TriangleBatcher>().UniverseObject);
 | 
						|
 | 
						|
 | 
						|
        MonoGameCamera2D camera = universe.InstantiateUniverseObject().SetUniverseObject("Camera")
 | 
						|
            .BehaviourController.AddBehaviour<Transform2D>()
 | 
						|
            .BehaviourController.AddBehaviour<MonoGameCamera2D>();
 | 
						|
 | 
						|
        camera.Zoom = 20f;
 | 
						|
    }
 | 
						|
 | 
						|
    public static void ApplyUniverse(IUniverse universe)
 | 
						|
    {
 | 
						|
        IUniverseObject exampleObject = universe.InstantiateUniverseObject().SetUniverseObject("Example Object");
 | 
						|
        ExampleBehaviour exampleBehaviour = exampleObject.BehaviourController.AddBehaviour<ExampleBehaviour>();
 | 
						|
 | 
						|
        universe.InstantiateUniverseObject()
 | 
						|
            .SetUniverseObject("Rotating Triangle")
 | 
						|
            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new(10f, 6f), scale: Vector2D.One * 5)
 | 
						|
            .BehaviourController.AddBehaviour<DrawableShape>(Shape2D.Triangle, new ColorRGB(0, 128, 128))
 | 
						|
            .BehaviourController.AddBehaviour<LinearRotator>();
 | 
						|
 | 
						|
        universe.InstantiateUniverseObject()
 | 
						|
            .SetUniverseObject("Rotating Pentagon")
 | 
						|
            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new(10f, -6f), scale: Vector2D.One * 5)
 | 
						|
            .BehaviourController.AddBehaviour<DrawableShape>(Shape2D.Pentagon, new ColorRGB(128, 0, 128))
 | 
						|
            .BehaviourController.AddBehaviour<TweenRotator>();
 | 
						|
        universe.InstantiateUniverseObject()
 | 
						|
            .SetUniverseObject("Rotating Triangle")
 | 
						|
            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new(-10f, 6f), scale: Vector2D.One * 5)
 | 
						|
            .BehaviourController.AddBehaviour<DrawableShape>(Shape2D.Triangle, new ColorRGB(0, 128, 128))
 | 
						|
            .BehaviourController.AddBehaviour<LinearRotator>()
 | 
						|
            .BehaviourController.AddBehaviour<RotatorToggler>();
 | 
						|
 | 
						|
        universe.InstantiateUniverseObject()
 | 
						|
            .SetUniverseObject("Rotating Pentagon")
 | 
						|
            .BehaviourController.AddBehaviour<Transform2D>().SetTransform(position: new(-10f, -6f), scale: Vector2D.One * 5)
 | 
						|
            .BehaviourController.AddBehaviour<DrawableShape>(Shape2D.Pentagon, new ColorRGB(128, 0, 128))
 | 
						|
            .BehaviourController.AddBehaviour<TweenRotator>()
 | 
						|
            .BehaviourController.AddBehaviour<RotatorToggler>();
 | 
						|
    }
 | 
						|
}
 |