public IGameObject BuildGameObject(GameObjectSerialized gameObjectSerialized) { if (gameObjectSerialized.GameObjectType != SerializedName) { throw new ArgumentException("Wrong serialized object"); } var enemyInputComponent = new EnemyInputComponent(_gameObjectLocator, _geometryMathService, _enemyData); var enemyPhysicComponent = new PhysicComponent(_enemyData.Speed); var enemyLogicComponent = new EnemyLogicComponent(_gameObjectLocator, _fireCommand, _geometryMathService, _enemyData); var enemyGraphicComponent = new EnemyGraphicComponent(_consoleWriter, _enemyData.DisplayCharNormalState, _enemyData.DisplayCharDestructionState); var enemy = new GameObject(enemyInputComponent, enemyPhysicComponent, enemyLogicComponent, enemyGraphicComponent); enemy.X = gameObjectSerialized.X; enemy.Y = gameObjectSerialized.Y; enemy.Width = _enemyData.Width; enemy.Height = _enemyData.Height; return(enemy); }
public IGameObject BuildGameObject(GameObjectSerialized gameObjectSerialized) { if (gameObjectSerialized.GameObjectType != SerializedName) { throw new ArgumentException("Wrong serialized object"); } var playerInputComponent = new PlayerInputComponent(); var playerPhysicComponent = new PhysicComponent(_playerData.Speed); var playerLogicComponent = new PlayerLogicComponent(_fireCommand, _consoleWriter, _geometryMathService); var playerGraphicComponent = new PlayerGraphicComponent(_consoleWriter, _geometryMathService, _playerData); var user = new GameObject(playerInputComponent, playerPhysicComponent, playerLogicComponent, playerGraphicComponent); user.X = gameObjectSerialized.X; user.Y = gameObjectSerialized.Y; user.Width = _playerData.Width; user.Height = _playerData.Height; return(user); }
public Entity CreateShip(Vector3d position) { var c = new Entity[] { Create("Resources/Models/cube.obj", new Vector3d(0, -1, -1), new Vector3d(0.5f, 0.5f, 0.5f)), Create("Resources/Models/cube.obj", new Vector3d(0, -1, 0), new Vector3d(0.5f, 0.5f, 0.5f)), Create("Resources/Models/cube.obj", new Vector3d(0, -1, 1), new Vector3d(0.5f, 0.5f, 0.5f)), Create("Resources/Models/table.obj", new Vector3d(0, 0, -1), new Vector3d(0.5f, 0.5f, 0.5f)) }; var p = new PhysicComponent(); foreach (var i in c) { p.BoundingSphere.Radius = Math.Max( p.BoundingSphere.Radius, i.Get <BaseComponent>().Position.Length + i.Get <PhysicComponent>().BoundingSphere.Radius ); } p.BoundingBox.Max = new Vector3d(p.BoundingSphere.Radius); p.BoundingBox.Min = -p.BoundingBox.Max; var e = new Entity("Ship", true) .Add(new BaseComponent() { Position = position }) .Add(new InputComponent() { Speed = 10.0, Type = InputControlType.Force }) .Add(new GraphicComponent()) .Add(p) .Add(new TargetComponent()) .Add(new AIComponent()) .Add(new ChunkLoaderComponent()) .Add(new CollisionComponent() { Group = CollisionGroups.All }); foreach (var i in c) { i.Get <BaseComponent>().ParentName = e.Name; } EntityManager.AddEntity(e); return(e); }
private static IGameWorld CreateWorld(IConsoleWriter consoleWriter) { var gameObjectLocator = new GameObjectLocator(); var lineIntersectionResolver = new LianBarskyIntersectionResolver(); var geometryMathService = new GeometryMathService(lineIntersectionResolver); var serializedGameObjectDataProvider = new SerializedGameObjectDataProvider(); var enemyData = serializedGameObjectDataProvider.GetEnemyData(); var playerData = serializedGameObjectDataProvider.GetPlayerData(); var stoneData = serializedGameObjectDataProvider.GetStoneData(); var shellData = serializedGameObjectDataProvider.GetShellData(); var shellInputComponent = new ShellInputComponent(); var shellPhysicComponent = new PhysicComponent(shellData.Speed); var shellLogicComponent = new ShellLogicComponent(); var shellGraphicComponent = new CharGraphicComponent(shellData.DisplayChar, consoleWriter); var shell = new GameObject(shellInputComponent, shellPhysicComponent, shellLogicComponent, shellGraphicComponent); shell.Width = shellData.Width; shell.Height = shellData.Height; var fireCommand = new FireCommand(shell); var serializedGameObjectBuilders = new List <ISerializedGameObjectBuilder>() { new StoneBuilder(consoleWriter, stoneData), new PlayerBuilder(consoleWriter, geometryMathService, fireCommand, playerData), new EnemyBuilder(consoleWriter, gameObjectLocator, geometryMathService, fireCommand, enemyData), new WinPlatformBuilder(consoleWriter, gameObjectLocator, geometryMathService) }; var gameObjectBuilder = new GameObjectBuilder(serializedGameObjectBuilders, gameObjectLocator); var worldProvider = new WorldProvider(gameObjectBuilder, geometryMathService, consoleWriter); var world = worldProvider.GetWorld(1); return(world); }
public static PhysicComponent CreateComponent() { PhysicComponent component = new PhysicComponent(); return component; }