Beispiel #1
0
 public SyncManager(IVisualDynamicEntityManager dynamicEntityManager,
                    ServerComponent server,
                    IWorldChunks chunks,
                    ChatComponent chat)
 {
     _dynamicEntityManager = dynamicEntityManager;
     _server = server;
     _chunks = chunks;
     _chat   = chat;
     _server.MessageError      += _server_MessageError;
     _server.MessageEntityData += server_MessageEntityData;
 }
 public RealmGameSoundManager(ISoundEngine soundEngine,
                              CameraManager <ICameraFocused> cameraManager,
                              SingleArrayChunkContainer singleArray,
                              IVisualDynamicEntityManager dynamicEntityManager,
                              IChunkEntityImpactManager chunkEntityImpactManager,
                              IWorldChunks worldChunk,
                              IClock gameClockTime,
                              PlayerEntityManager playerEntityManager,
                              VisualWorldParameters visualWorldParameters,
                              IClock worlClock)
     : base(soundEngine, cameraManager, singleArray, dynamicEntityManager, chunkEntityImpactManager, worldChunk, gameClockTime, playerEntityManager, visualWorldParameters, worlClock)
 {
     PreLoadSound("Hurt", @"Sounds\Events\hurt.adpcm.wav", 0.3f, 16.0f, 100);
     PreLoadSound("Dying", @"Sounds\Events\dying.adpcm.wav", 0.5f, 16.0f, 1000);
 }
        /// <summary>
        /// Creates new instance of EntityMessageTranslator
        /// </summary>
        public EntityMessageTranslator(
            ServerComponent server,
            PlayerEntityManager playerEntityManager,
            IVisualDynamicEntityManager dynamicEntityManager,
            IChunkEntityImpactManager landscapeManager,
            SyncManager syncManager)
        {
            _server = server;

            //Handle Entity received Message from Server
            _server.MessageEntityIn              += ServerMessageEntityIn;
            _server.MessageEntityOut             += ServerMessageEntityOut;
            _server.MessagePosition              += ServerMessagePosition;
            _server.MessageDirection             += ServerMessageDirection;
            _server.MessageEntityLock            += ServerMessageEntityLock;
            _server.MessageEntityUse             += _server_MessageEntityUse;
            _server.MessageEntityEquipment       += _server_MessageEntityEquipment;
            _server.MessageUseFeedback           += _server_MessageUseFeedback;
            _server.MessageItemTransfer          += _server_MessageItemTransfer;
            _server.MessageEntityVoxelModel      += ServerOnMessageEntityVoxelModel;
            _server.MessageEntityHealth          += _server_MessageEntityHealth;
            _server.MessageEntityHealthState     += _server_MessageEntityHealthState;
            _server.MessageEntityAfflictionState += _server_MessageEntityAfflictionState;

            if (dynamicEntityManager == null)
            {
                throw new ArgumentNullException("dynamicEntityManager");
            }
            if (landscapeManager == null)
            {
                throw new ArgumentNullException("landscapeManager");
            }
            if (syncManager == null)
            {
                throw new ArgumentNullException("syncManager");
            }
            if (playerEntityManager == null)
            {
                throw new ArgumentNullException("playerEntityManager");
            }

            _dynamicEntityManager = dynamicEntityManager;
            _landscapeManager     = landscapeManager;
            _syncManager          = syncManager;
            PlayerEntity          = playerEntityManager.PlayerCharacter;
            playerEntityManager.PlayerEntityChanged += (sender, args) => { PlayerEntity = args.PlayerCharacter; };
        }
Beispiel #4
0
        public GameSoundManager(ISoundEngine soundEngine,
                                CameraManager <ICameraFocused> cameraManager,
                                SingleArrayChunkContainer singleArray,
                                IVisualDynamicEntityManager dynamicEntityManager,
                                IChunkEntityImpactManager chunkEntityImpactManager,
                                IWorldChunks worldChunk,
                                IClock gameClockTime,
                                PlayerEntityManager playerEntityManager,
                                VisualWorldParameters visualWorldParameters,
                                IClock worlClock)
        {
            _cameraManager            = cameraManager;
            _soundEngine              = soundEngine;
            _singleArray              = singleArray;
            _worldChunk               = worldChunk;
            _chunkEntityImpactManager = chunkEntityImpactManager;
            _gameClockTime            = gameClockTime;
            _playerEntityManager      = playerEntityManager;
            _visualWorldParameters    = visualWorldParameters;
            _worlClock = worlClock;
            if (visualWorldParameters.WorldParameters.Configuration is UtopiaWorldConfiguration)
            {
                _biomesParams = ((UtopiaWorldConfiguration)visualWorldParameters.WorldParameters.Configuration).ProcessorParam;
            }

            _dynamicEntityManager = dynamicEntityManager;
            _stepsTracker.Add(new DynamicEntitySoundTrack {
                Entity = _playerEntityManager.Player, Position = _playerEntityManager.Player.Position, isLocalSound = true
            });
            _playerEntityManager.PlayerEntityChanged += _playerEntityManager_PlayerEntityChanged;

            //Register to Events

            _dynamicEntityManager.EntityAdded             += DynamicEntityManagerEntityAdded;
            _dynamicEntityManager.EntityRemoved           += DynamicEntityManagerEntityRemoved;
            _chunkEntityImpactManager.BlockReplaced       += _chunkEntityImpactManager_BlockReplaced;
            _chunkEntityImpactManager.StaticEntityAdd     += StaticEntityAdd;
            _chunkEntityImpactManager.StaticEntityRemoved += StaticEntityRemoved;

            _rnd        = new FastRandom();
            MoodsSounds = new Dictionary <MoodSoundKey, List <IUtopiaSoundSource> >();

            IsDefferedLoadContent = true; //Make LoadContent executed in thread
        }