public WaitForSubmissionEnumerator(IEntityFunctions entityFunctions, IEntityFactory entityFactory, IEntitiesDB entitiesDb) { _entityFactory = entityFactory; _entityFunctions = entityFunctions; _entitiesDB = entitiesDb; }
void SwapMinNeededForException(IEntityFunctions entityFunctions) { entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(18, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(19, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(20, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(21, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(22, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(17, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(16, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(15, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(14, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(13, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(11, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(9, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(6, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(5, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(4, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(3, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(2, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(0, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(24, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(25, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(26, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(27, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(28, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(23, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(8, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(7, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(1, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(12, group1, group2); entityFunctions.SwapEntityGroup <TestDescriptorEntityView>(10, group1, group2); }
public ValidateDisplayGUIInputEngine(IServiceRequestsFactory serviceFactory, IEntityStreamConsumerFactory buttonEntityConsumer, IEntityFunctions entitiesFunction) { _serviceFactory = serviceFactory; _buttonEntityConsumer = buttonEntityConsumer; _entitiesFunction = entitiesFunction; }
public EnemyAnimationEngine(ITime time, EnemyDeathSequencer enemyDeadSequencer, IEntityFunctions entityFunctions) { _time = time; _enemyDeadSequencer = enemyDeadSequencer; _entityFunctions = entityFunctions; }
public ClientPlayerSpawnerEngine(IClientFactory clientPlayerFactory, IEntityFunctions entityFunctions) { _entityFunctions = entityFunctions; _clientFactory = clientPlayerFactory; // num = 1; num = PhotonNetwork.room.playerCount; }
public void Init() { _simpleSubmissionEntityViewScheduler = new SimpleEntitiesSubmissionScheduler(); _enginesRoot = new EnginesRoot(_simpleSubmissionEntityViewScheduler); _entityFactory = _enginesRoot.GenerateEntityFactory(); _entityFunctions = _enginesRoot.GenerateEntityFunctions(); }
private void SetupEnginesAndEntities() { _EnginesRoot = new EnginesRoot(new UnitySumbmissionEntityViewScheduler()); _EntityFactory = _EnginesRoot.GenerateEntityFactory(); IEntityFunctions entityFunctions = _EnginesRoot.GenerateEntityFunctions(); GameObjectFactory gameObjectFactory = new GameObjectFactory(); Sequencer damageSequence = new Sequencer(); Sequencer roundSequence = new Sequencer(); ITime time = new Time(); //Construct Tank(Player) engines TankSpawnerEngine tankSpawnerEngine = new TankSpawnerEngine(gameObjectFactory, _EntityFactory); TankMovementEngine tankMovementEngine = new TankMovementEngine(time); TankHudEngine tankHudEngine = new TankHudEngine(); HealthEngine healthEngine = new HealthEngine(damageSequence); //Construct Weapon engines ShellSpawnerEngine shellSpawnerEngine = new ShellSpawnerEngine(gameObjectFactory, _EntityFactory, time); ShellDamageEngine shellDamageEngine = new ShellDamageEngine(damageSequence); //Construct Camera engines CameraEngine cameraEngine = new CameraEngine(time); //Add tanks engines _EnginesRoot.AddEngine(tankSpawnerEngine); _EnginesRoot.AddEngine(new TankInputEngine()); _EnginesRoot.AddEngine(tankMovementEngine); _EnginesRoot.AddEngine(new TankMovementEffectsEngine()); _EnginesRoot.AddEngine(tankHudEngine); _EnginesRoot.AddEngine(healthEngine); //Add weapon engines _EnginesRoot.AddEngine(new TankShootingEngine()); _EnginesRoot.AddEngine(shellSpawnerEngine); _EnginesRoot.AddEngine(shellDamageEngine); //Add camera engines _EnginesRoot.AddEngine(cameraEngine); damageSequence.SetSequence( new Steps { { shellDamageEngine, new To { new IStep[] { healthEngine } } }, { healthEngine, new To { { (int)DamageCondition.DAMAGE, new IStep[] { tankHudEngine } }, { (int)DamageCondition.DEAD, new IStep[] { tankMovementEngine } } } } } ); }
public CoinSpawningEngine(uint seed, CoinDefinition coinDefinition, IEntityFactory entityFactory, GameObjectFactory gameObjectFactory, IEntityFunctions functions, ITime time) { _entityFactory = entityFactory; _gameObjectFactory = gameObjectFactory; _functions = functions; _coinDefinition = coinDefinition; _time = time; _random = new Random(seed); }
public void Init() { _scheduler = new SimpleEntitiesSubmissionScheduler(); _enginesRoot = new EnginesRoot(_scheduler); _factory = _enginesRoot.GenerateEntityFactory(); _functions = _enginesRoot.GenerateEntityFunctions(); _engine = new TestEngine(); _enginesRoot.AddEngine(_engine); }
private void BootstrapEnginesRoot() { var scheduler = new MonoGameNezUpdateScheduler(); registerGlobalManager(scheduler.scheduler); gameEnginesRoot = new EnginesRoot(scheduler); gameEngineEntityFactory = gameEnginesRoot.GenerateEntityFactory(); gameEngineEntityFunctions = gameEnginesRoot.GenerateEntityFunctions(); }
public EnemyDeathEngine(IEntityFunctions entityFunctions, IEntityStreamConsumerFactory consumerFactory, ITime time, WaitForSubmissionEnumerator waitForSubmission) { _entityFunctions = entityFunctions; _consumerFactory = consumerFactory; _time = time; _waitForSubmission = waitForSubmission; _animations = new FasterList <IEnumerator>(); _consumer = _consumerFactory.GenerateConsumer <DeathComponent>( ECSGroups.EnemiesGroup, "EnemyDeathEngine", 10); }
public ShipSpawningEngine(uint seed, IEntityFactory entityFactory, IEntityFunctions functions, GameObjectFactory gameObjectFactory, Transform[] spawnPoints, ShipDefinition shipDefinition) { _entityFactory = entityFactory; _functions = functions; _gameObjectFactory = gameObjectFactory; _spawnPoints = spawnPoints; _shipDefinition = shipDefinition; _respawnWait = new WaitForSecondsEnumerator(_shipDefinition.TimeToRespawn); _transitionWait = new WaitForSecondsEnumerator(_shipDefinition.RespawnTransitionTime); _animationWait = new WaitForSecondsEnumerator(_shipDefinition.BlinkAnimationTime); _random = new Random(seed); }
public override void SetupEntities(IEntityFactory factory, IEntityFunctions functions) { //create the "stub implementor" (note this could actually be used already in gameplay, // but never mix testing stuff inside gamemplay) stub = new MovingPositionStub { Position = new Vector2(2, 2), Movement = new Vector2(3, 3) }; factory.BuildEntity <MovingPositionStubber>(1, new object[] { stub }); }
public void RunTest() { var ecs = new EnginesRoot(GenerateMySubmissionScheduler()); IEntityFactory entityFactory = ecs.GenerateEntityFactory(); IEntityFunctions entityFunctions = ecs.GenerateEntityFunctions(); SetupEngines(ecs, entityFactory, entityFunctions); SetupEntities(entityFactory, entityFunctions); StartCoroutine(UpdateTest()); }
public SECSContext() { Runner = new GameRunner(); Root = new EnginesRoot(Runner.SubmissionScheduler); Engine = new DummyEngine(); Root.AddEngine(Engine); EntitiesDB = Engine.entitiesDB; EntityFactory = Root.GenerateEntityFactory(); EntityFunctions = Root.GenerateEntityFunctions(); ConsumerFactory = Root.GenerateConsumerFactory(); Scheduler = Runner.SubmissionScheduler; GameObjectFactory = new GameObjectFactory(); Time = Runner.Time; }
public BattleInitEngine(IEntityFunctions entityFunctions, PrefabsDictionary prefabsDictionary, IEntityFactory entityFactory) { _entityFunctions = entityFunctions; _prefabsDictionary = prefabsDictionary; _entityFactory = entityFactory; var go = _prefabsDictionary.Istantiate("BattleEntity"); var implementors = new List <IImplementor> { new BattleImplementor() }; _entityFactory.BuildEntity <BattleEntityDescriptor>( go.GetInstanceID(), implementors.ToArray()); }
public override void SetupEntities(IEntityFactory factory, IEntityFunctions functions) { stubParent = new LifterParentStub { }; stubChild = new LiftableChildStub { Id = 20 }; factory.BuildEntity <LifterStubber>(10, new object[] { stubParent }); factory.BuildEntity <LifterChildStubber>(20, new object[] { stubChild }); }
protected override void LoadContent() { IsMouseVisible = true; spriteBatch = new SpriteBatch(GraphicsDevice); graphics.SynchronizeWithVerticalRetrace = false; IsFixedTimeStep = false; graphics.PreferredBackBufferWidth = 1280; graphics.PreferredBackBufferHeight = 720; graphics.ApplyChanges(); enginesRoot = new EnginesRoot(new SimpleSubmissionEntityViewScheduler()); entityFactory = enginesRoot.GenerateEntityFactory(); entityFunctions = enginesRoot.GenerateEntityFunctions(); objects.RegisterInstance(spriteBatch); objects.RegisterInstance(graphics); objects.RegisterInstance(GraphicsDevice); objects.RegisterInstance(Content); objects.RegisterInstance(typeof(IEntityFactory), entityFactory); objects.RegisterInstance(typeof(IEntityFunctions), entityFunctions); objects.DiscoverServices(); objects.Verify(); objects.DoOnAttribute <SystemAttribute>((attribute, type) => { if (type.Implements <IEngine>()) { var engine = (IEngine)objects.Get(type); enginesRoot.AddEngine(engine); } }); parts = objects.Get <PartManager>(); parts.Load(); var resourceLoader = objects.Get <ResourceLoader>(); resourceLoader.Process(); var repository = objects.Get <SpriteRepository>(); repository.PlaceInternalCache(); parts.Ready(); }
public override void SetupEntities(IEntityFactory factory, IEntityFunctions functions) { // another way to create entities it to search for existing Game Objects, // as you see it is perfectly valid for Implementors to be MonoBehaviours // attached to some gameobject liftableStub = FindObjectOfType <SystemTestLiftableImplementor>(); lifterStub = FindObjectOfType <SystemTestLifterImplementor>(); // we start the game with the liftable parented to the lifter liftableStub.Id = 2; liftableStub.Carrier = 1; lifterStub.CarriedThings.Add(2); factory.BuildEntity <LifterStubber>(1, new object[] { lifterStub }); factory.BuildEntity <LiftableStubber>(2, new object[] { liftableStub }); }
/// <summary> /// Wire all the game logic and setup the engines /// </summary> private IEnumerator SetupEngines(EnginesRoot ecs) { IEntityFactory entityFactory = ecs.GenerateEntityFactory(); IEntityFunctions entityFunctions = ecs.GenerateEntityFunctions(); MovementScheduler movementPhaser = new MovementScheduler(); Sequencer landingEventResponseSequence = new Sequencer(); var lifterCollection = new LifterCollectionEngine(); var lifterMovement = new LifterMovementEngine(movementPhaser); var movingPosition = new MovingPositionEngine(movementPhaser); var lifterSnap = new AnyLifterSnapEngine(movementPhaser, landingEventResponseSequence); ecs.AddEngine(lifterCollection); ecs.AddEngine(lifterMovement); ecs.AddEngine(movingPosition); // a sequence is just a set of "labels" each label can be triggered by the owning engine // and cause the listed engines to receive the messages. landingEventResponseSequence.SetSequence ( new Steps { { // LABEL // owning engine lifterSnap, // when lifterSnap calls "next" the message is delivered "To"... //listed engines new To { lifterCollection //.. lifterCollection } } } ); while (true) { movementPhaser.ScheduleMovement(); yield return(null); } }
public void RunTest() { var ecs = new EnginesRoot(GenerateMySubmissionScheduler()); IEntityFactory entityFactory = ecs.GenerateEntityFactory(); IEntityFunctions entityFunctions = ecs.GenerateEntityFunctions(); SetupEngines(ecs, entityFactory, entityFunctions); SetupEntities(entityFactory, entityFunctions); Tick(); CheckPreconditions(); Tick(); DoStuff(); Tick(); CheckPostconditions(); }
void CompositionRoot(GameContext context) { _runner = new GameRunner(); _enginesRoot = new EnginesRoot(_runner.SubmissionScheduler); _entityFactory = _enginesRoot.GenerateEntityFactory(); _entityFunctions = _enginesRoot.GenerateEntityFunctions(); _entityConsumerFactory = _enginesRoot.GenerateConsumerFactory(); _gameObjectFactory = new GameObjectFactory(); _gridUtils = new GridUtils(context.GridDefinition); _seed = context.Seed == 0 ? (uint)Random.Range(int.MinValue, int.MinValue) : context.Seed; AddMatchEngines(context); AddGridEngines(context); AddShipEngines(context); AddPlayerEngines(context); AddAiEngines(context); AddCoinEngines(context); _runner.Play(); }
public override void SetupEntities(IEntityFactory factory, IEntityFunctions functions) { stubParent = new LifterMovementStub { Movement = new Vector2(2, 2) }; stubParent.CarriedThings.Add(20); stubCarriedChild = new LiftableMovementStub { Movement = new Vector2(3, 3) }; stubAloneChild = new LiftableMovementStub { Movement = new Vector2(3, 3) }; factory.BuildEntity <LifterStubber>(10, new object[] { stubParent }); factory.BuildEntity <LifterChildStubber>(20, new object[] { stubCarriedChild }); factory.BuildEntity <LifterChildStubber>(30, new object[] { stubAloneChild }); }
void SetupEngines() { // "The core of Svelto.ECS" ??? m_EnginesRoot = new EnginesRoot(new UnitySumbmissionEntityViewScheduler()); // Factory for creating all entities (?) m_EntityFactory = m_EnginesRoot.GenerateEntityFactory(); // ??? IEntityFunctions entityFunctions = m_EnginesRoot.GenerateEntityFunctions(); // Factory used to create Unity GameObjects (wrapper around GameObject.Instantiate) GameObjectFactory gameObjectFactory = new GameObjectFactory(); IRayCaster rayCaster = new RayCaster(); ITime time = new FrameTimer(); PlayerInputEngine playerInputEngine = new PlayerInputEngine(); AimingEngine aimingEngine = new AimingEngine(); GunShootingEngine gunShootingEngine = new GunShootingEngine(rayCaster); GunEffectsEngine gunEffectsEngine = new GunEffectsEngine(gameObjectFactory); ZombieSpawnerEngine zombieSpawnerEngine = new ZombieSpawnerEngine(gameObjectFactory, m_EntityFactory); ZombieMovementEngine zombieMovementEngine = new ZombieMovementEngine(time); ZombieAnimationEngine zombieAnimationEngine = new ZombieAnimationEngine(); HUDEngine hudEngine = new HUDEngine(); DeathEngine deathEngine = new DeathEngine(entityFunctions); m_EnginesRoot.AddEngine(playerInputEngine); m_EnginesRoot.AddEngine(aimingEngine); m_EnginesRoot.AddEngine(gunShootingEngine); m_EnginesRoot.AddEngine(gunEffectsEngine); m_EnginesRoot.AddEngine(zombieSpawnerEngine); m_EnginesRoot.AddEngine(zombieMovementEngine); m_EnginesRoot.AddEngine(zombieAnimationEngine); m_EnginesRoot.AddEngine(hudEngine); m_EnginesRoot.AddEngine(deathEngine); }
public PlayerDeathEngine(IEntityFunctions entityFunctions) { _entityFunctions = entityFunctions; }
public EnemyDeathEngine(IEntityFunctions entityFunctions, ITime time) { _entityFunctions = entityFunctions; _time = time; }
public abstract void SetupEntities(IEntityFactory factory, IEntityFunctions functions);
public abstract void SetupEngines(EnginesRoot enginesRoot, IEntityFactory factory, IEntityFunctions functions);
public LookingForFoodDoofusesEngine(IEntityFunctions entityFunctions) { _entityFunctions = entityFunctions; }
public override void SetupEngines(EnginesRoot enginesRoot, IEntityFactory factory, IEntityFunctions functions) { // add the lifter engine, it uses a fake MovementScheduler (mocked) movementEngine = new LifterMovementEngine(new MockedMovementScheduler()); enginesRoot.AddEngine(movementEngine); }