Esempio n. 1
0
        public FluidSystem(SystemManager systemManager, EntityManager entityManager)
        {
            _systemManager = systemManager;
            _entityManager = entityManager;

            _physicsSystem = (PhysicsSystem)_systemManager.getSystem(SystemType.Physics);
            _renderSystem = (RenderSystem)_systemManager.getSystem(SystemType.Render);
            fluidGrid = new Dictionary<int, Dictionary<int, List<int>>>();
            liquid = new Particle[MAX_PARTICLES];
            activeParticles = new int[MAX_PARTICLES];
            _simPositions = new Vector2[MAX_PARTICLES];
            _simVelocities = new Vector2[MAX_PARTICLES];
            _delta = new Vector2[MAX_PARTICLES];
            for (int i = 0; i < MAX_PARTICLES; i++)
            {
                liquid[i] = new Particle(this, i, LIQUID_ORIGIN);
            }
        }
Esempio n. 2
0
        // draw
        public void draw(RenderSystem renderSystem)
        {
            if (_renderObject != null)
            {
                _renderObject.worldMatrix = _renderObject.originMatrix * Matrix.CreateRotationZ(currentTextureAngle) * Matrix.CreateTranslation(new Vector3(position, 0));
                _renderObject.updateVertices();
                renderSystem.addRenderablePrimitive(_renderObject);
            }

            if (mainMetamer != null)
                mainMetamer.draw(renderSystem);
            if (lateralMetamer != null)
                lateralMetamer.draw(renderSystem);
        }
Esempio n. 3
0
        // endLevel
        public void endLevel()
        {
            ScreenSystem screenSystem = (ScreenSystem)_systemManager.getSystem(SystemType.Screen);

            foreach (string levelUid in _levelsData.Keys)
            {
                List<int> entitiesToPreserve = new List<int>();

                entitiesToPreserve.Add(PlayerSystem.PLAYER_ID);
                _entityManager.killAllEntities(levelUid, entitiesToPreserve);
                //_regionGoals.Clear();
                //_eventGoals.Clear();
                //_completedGoals.Clear();
            }
            ResourceManager.clearCache();
            _renderSystem = null;
            currentLevelUid = null;
            screenSystem.removeScreen(_game.levelScreen);
            _systemManager.remove(SystemType.Input);
            _systemManager.remove(SystemType.Physics);
            _systemManager.remove(SystemType.Camera);
            _systemManager.remove(SystemType.Event);
            _systemManager.remove(SystemType.Render);
            _systemManager.remove(SystemType.Rope);
            _systemManager.remove(SystemType.Fluid);
            _systemManager.remove(SystemType.Tree);
            _systemManager.remove(SystemType.CharacterMovement);
            _systemManager.remove(SystemType.Explosion);
            _game.openWorldMap();
            _scriptManager.onReturnToWorldMap(currentLevelUid, this);
        }
Esempio n. 4
0
 // Create systems
 public void createLevelSystems()
 {
     _systemManager.add(new InputSystem(_systemManager, _entityManager), -1);
     _systemManager.add(new PhysicsSystem(_systemManager, _entityManager), -1);
     _systemManager.add(new CameraSystem(_systemManager, _entityManager), -1);
     _systemManager.add(new EventSystem(_systemManager, _entityManager), -1);
     _systemManager.add(new RopeSystem(_systemManager, _entityManager), -1);
     _systemManager.add(new ExplosionSystem(_systemManager, _entityManager), -1);
     _renderSystem = new RenderSystem(_game, _systemManager, _entityManager);
     _animationSystem = new AnimationSystem(_systemManager, _entityManager, _game.animationManager);
     _systemManager.add(_renderSystem, -1);
     _systemManager.add(_animationSystem, -1);
     _systemManager.add(new TreeSystem(_systemManager, _entityManager), -1);
     _systemManager.add(new FluidSystem(_systemManager, _entityManager), -1);
     _systemManager.add(new AIBehaviorSystem(_systemManager, _entityManager), -1);
     _systemManager.add(new DialogueSystem(_systemManager, _entityManager), -1);
     _playerSystem = (PlayerSystem)_systemManager.getSystem(SystemType.Player);
 }