using Engine.Core; using Engine.Integration.MonoGame; using Engine.Systems.Graphics; using Engine.Systems.Tween; using MyUniverse.Shared.Behaviours; 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().UniverseObject); coreManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Update Manager").BehaviourController.AddBehaviour().UniverseObject); coreManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Coroutine Manager").BehaviourController.AddBehaviour().UniverseObject); coreManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Tween Manager").BehaviourController.AddBehaviour().UniverseObject); } public static void ApplyClient(IUniverse universe) { ApplyCore(universe); IUniverseObject clientManagersUO = universe.InstantiateUniverseObject().SetUniverseObject("Core Managers"); clientManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Triangle Batcher").BehaviourController.AddBehaviour().UniverseObject); clientManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Sprite Batcher").BehaviourController.AddBehaviour().UniverseObject); clientManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("MonoGame Triangle Batch").BehaviourController.AddBehaviour().UniverseObject); MonoGameCamera2D camera = universe.InstantiateUniverseObject().SetUniverseObject("Camera") .BehaviourController.AddBehaviour() .BehaviourController.AddBehaviour(); camera.Zoom = 20f; } public static void ApplyUniverse(IUniverse universe) { universe.InstantiateUniverseObject().SetUniverseObject("Example Object") .BehaviourController.AddBehaviour(); universe.InstantiateUniverseObject().SetUniverseObject("MouseObject") .BehaviourController.AddBehaviour() .BehaviourController.AddBehaviour() .BehaviourController.AddBehaviour() .BehaviourController.AddBehaviour(Shape2D.CreateNgon(4), new ColorRGB(255, 255, 0)).Priority = 10; universe.InstantiateUniverseObject() .SetUniverseObject("Rotating Triangle") .BehaviourController.AddBehaviour().SetTransform(position: new(10f, 6f), scale: Vector2D.One * 5) .BehaviourController.AddBehaviour(Shape2D.Triangle, new ColorRGB(0, 128, 128)) .BehaviourController.AddBehaviour(); universe.InstantiateUniverseObject() .SetUniverseObject("Rotating Pentagon") .BehaviourController.AddBehaviour().SetTransform(position: new(10f, -6f), scale: Vector2D.One * 5) .BehaviourController.AddBehaviour(Shape2D.Pentagon, new ColorRGB(128, 0, 128)) .BehaviourController.AddBehaviour(); universe.InstantiateUniverseObject() .SetUniverseObject("Rotating Triangle") .BehaviourController.AddBehaviour().SetTransform(position: new(-10f, 6f), scale: Vector2D.One * 5) .BehaviourController.AddBehaviour(Shape2D.Triangle, new ColorRGB(0, 128, 128)) .BehaviourController.AddBehaviour() .BehaviourController.AddBehaviour(); universe.InstantiateUniverseObject() .SetUniverseObject("Rotating Pentagon") .BehaviourController.AddBehaviour().SetTransform(position: new(-10f, -6f), scale: Vector2D.One * 5) .BehaviourController.AddBehaviour(Shape2D.Pentagon, new ColorRGB(128, 0, 128)) .BehaviourController.AddBehaviour() .BehaviourController.AddBehaviour(); } }