public IconFactory(D3DEngine d3DEngine, VoxelModelManager modelManager, VisualWorldParameters visualWorldParameters) { _d3DEngine = d3DEngine; _modelManager = modelManager; _visualWorldParameters = visualWorldParameters; //if(Utopia.UtopiaRender.LCDefferedModeLvl !=1) this.IsDefferedLoadContent = true; }
public void Initialize(string utopiaPath) { if (_engine == null) { _utopiaFolder = utopiaPath; ClientSettings.PathRoot = _utopiaFolder; ClientSettings.EffectPack = Path.Combine(_utopiaFolder, @"EffectsPacks\Default\"); ClientSettings.TexturePack = Path.Combine(_utopiaFolder, @"TexturesPacks\Default\"); _engine = new D3DEngine(); DXStates.CreateStates(_engine); } var modelsStorage = new ModelSQLiteStorage(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Realms", "Common", "models.db")); var voxelMeshFactory = new VoxelMeshFactory(_engine); _modelManager = new VoxelModelManager(); _modelManager.VoxelModelStorage = modelsStorage; _modelManager.VoxelMeshFactory = voxelMeshFactory; _modelManager.Initialize(); _visualWorldParameters = new VisualWorldParameters(); _textureManager = new CubeTexturesManager(_engine); _textureManager.Initialization(_engine.ImmediateContext, FilterFlags.Point); _cubeTextureView = _textureManager.CubeArrayTexture; _visualWorldParameters.CubeTextureManager = _textureManager; _iconFactory = new IconFactory(_engine, _modelManager, _visualWorldParameters); //ArrayTexture.CreateTexture2DFromFiles(_engine.Device, _engine.ImmediateContext, // Path.Combine(ClientSettings.TexturePack, @"Terran\"), @"ct*.png", // FilterFlags.Point, "ArrayTexture_DefaultEntityRenderer", // out _cubeTextureView); }
public FirstPersonToolRenderer( D3DEngine d3DEngine, CameraManager <ICameraFocused> camManager, PlayerEntityManager playerEntityManager, VoxelModelManager voxelModelManager, VisualWorldParameters visualWorldParameters, SingleArrayChunkContainer chunkContainer, ISkyDome skyDome) { _d3dEngine = d3DEngine; _camManager = camManager; _voxelModelManager = voxelModelManager; _chunkContainer = chunkContainer; _skyDome = skyDome; PlayerCharacter = playerEntityManager.PlayerCharacter; playerEntityManager.PlayerEntityChanged += _player_PlayerEntityChanged; _cubeRenderer = new CubeRenderer(d3DEngine, visualWorldParameters); _animationRotation = Quaternion.Identity; DrawOrders.UpdateIndex(0, 5000); this.IsDefferedLoadContent = true; }
public CubeEmitter(string cubeTexturePath, string fileNamePatern, string biomeColorFilePath, float maximumAge, float size, VisualWorldParameters visualWorldParameters, IWorldChunks worldChunk, ILandscapeManager landscapeManager, double maxRenderingDistance, IWeather weather) { if (landscapeManager == null) { throw new ArgumentNullException("landscapeManager"); } _cubeColorSampled = new Dictionary <int, Color[]>(); _fileNamePatern = fileNamePatern; _cubeTexturePath = cubeTexturePath; _visualWorldParameters = visualWorldParameters; _biomeColorFilePath = biomeColorFilePath; _weather = weather; MaxRenderingDistance = maxRenderingDistance; _worldChunk = worldChunk; _landscapeManager = landscapeManager; _isStopped = false; _maximumAge = maximumAge; _particules = new List <ColoredParticule>(); _rnd = new FastRandom(); _cubeBB = new BoundingBox(new Vector3(-size / 2.0f, -size / 2.0f, -size / 2.0f), new Vector3(size / 2.0f, size / 2.0f, size / 2.0f)); }
public ChunkMeshManager(VisualWorldParameters visualWorldParameters, SingleArrayChunkContainer cubesHolder, [Named("SolidCubeMeshFactory")] ICubeMeshFactory solidCubeMeshFactory, [Named("LiquidCubeMeshFactory")] ICubeMeshFactory liquidCubeMeshFactory) { _visualWorldParameters = visualWorldParameters; _cubesHolder = cubesHolder; _solidCubeMeshFactory = solidCubeMeshFactory; _liquidCubeMeshFactory = liquidCubeMeshFactory; Intialize(); }
public LightingManager(SingleArrayChunkContainer cubesHolder, VisualWorldParameters visualWorldParameters) { _cubesHolder = cubesHolder; _visualWorldParameters = visualWorldParameters; _lightPropagateSteps = 8; _lightDecreaseStep = (byte)(159 / (_lightPropagateSteps - 1)); }
/// <summary> /// Constructor /// </summary> /// <param name="worldParam">The world Parameters</param>e public SingleArrayChunkContainer(VisualWorldParameters visualWorldParam) { _visualWorldParam = visualWorldParam; MoveX = _visualWorldParam.WorldVisibleSize.Y; MoveZ = _visualWorldParam.WorldVisibleSize.Y * _visualWorldParam.WorldVisibleSize.X; MoveY = 1; //Initialize the Big Array Cubes = new TerraCube[_visualWorldParam.WorldVisibleSize.X * _visualWorldParam.WorldVisibleSize.Y * _visualWorldParam.WorldVisibleSize.Z]; _config = _visualWorldParam.WorldParameters.Configuration; _bigArraySize = Cubes.Length; }
public GodEntityManager(D3DEngine engine, GodEntity playerEntity, InputsManager inputsManager, SingleArrayChunkContainer cubesHolder, CameraManager <ICameraFocused> cameraManager, LandscapeBufferManager bufferManager, VisualWorldParameters visParameters, GlobalStateManager globalStateManager) { if (engine == null) { throw new ArgumentNullException("engine"); } if (playerEntity == null) { throw new ArgumentNullException("playerEntity"); } if (inputsManager == null) { throw new ArgumentNullException("inputsManager"); } if (cubesHolder == null) { throw new ArgumentNullException("cubesHolder"); } if (cameraManager == null) { throw new ArgumentNullException("cameraManager"); } if (bufferManager == null) { throw new ArgumentNullException("bufferManager"); } if (visParameters == null) { throw new ArgumentNullException("visParameters"); } GodEntity = playerEntity; _faction = globalStateManager.GlobalState.Factions[GodEntity.FactionId]; _eyeOrientation = GodEntity.HeadRotation; _bodyOrientation = GodEntity.BodyRotation; _engine = engine; _inputsManager = inputsManager; _cubesHolder = cubesHolder; _cameraManager = cameraManager; _bufferManager = bufferManager; _visParameters = visParameters; }
public PlayerEntityManager(CameraManager <ICameraFocused> cameraManager, InputsManager inputsManager, SingleArrayChunkContainer cubesHolder, ServerComponent server, VoxelModelManager voxelModelManager, VisualWorldParameters visualWorldParameters, EntityFactory factory, LandscapeBufferManager bufferManager, ILandscapeManager landscapeManager, ChatComponent chatComponent, PostEffectComponent postEffectComponent, GuiManager guiManager, ISoundEngine soundEngine, TimerManager timerManager ) { _cameraManager = cameraManager; _inputsManager = inputsManager; _soundEngine = soundEngine; _cubesHolder = cubesHolder; _visualWorldParameters = visualWorldParameters; _factory = factory; _bufferManager = bufferManager; _landscapeManager = landscapeManager; _chatComponent = chatComponent; _postEffectComponent = postEffectComponent; OnLanding += PlayerEntityManager_OnLanding; _guiManager = guiManager; PlayerCharacter = (PlayerCharacter)server.Player; ShowDebugInfo = true; // Create a visualVoxelEntity (== Assign a voxel body to the PlayerCharacter) VisualVoxelEntity = new VisualVoxelEntity(PlayerCharacter, voxelModelManager); //Add a new Timer trigger _energyUpdateTimer = timerManager.AddTimer(1000); //A timer that will be raised every second _energyUpdateTimer.OnTimerRaised += energyUpdateTimer_OnTimerRaised; HasMouseFocus = Updatable; UpdateOrder = 0; // create "real" random var entropySource = RNGCryptoServiceProvider.Create(); var bytes = new byte[4]; entropySource.GetBytes(bytes); random = new Random(BitConverter.ToInt32(bytes, 0)); }
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); }
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 }
public void LateInitialization(ServerComponent server, SingleArrayChunkContainer cubesHolder, IWorldChunks worldChunks, IChunkStorageManager chunkStorageManager, ILightingManager lightManager, VisualWorldParameters visualWorldParameters ) { _server = server; _lightManager = lightManager; _worldChunks = worldChunks; _chunkStorageManager = chunkStorageManager; _server.MessageBlockChange += ServerConnection_MessageBlockChange; _visualWorldParameters = visualWorldParameters; _wp = _visualWorldParameters.WorldParameters; _cubesHolder = cubesHolder; _initialized = true; }
public InventoryComponent( D3DEngine engine, InputsManager inputManager, GuiManager guiManager, IconFactory iconFactory, VisualWorldParameters worldParameters) { IsDefferedLoadContent = true; _engine = engine; _inputManager = inputManager; _guiManager = guiManager; _iconFactory = iconFactory; _guiManager.Screen.Desktop.Clicked += DesktopClicked; _cubeRenderer = new CubeRenderer(engine, worldParameters); _dragOffset = new Point(InventoryWindow.CellSize / 2, InventoryWindow.CellSize / 2); }
public SharedFrameCB(D3DEngine engine, CameraManager <ICameraFocused> cameraManager, ISkyDome skydome, VisualWorldParameters visualWorldParam, IPlayerManager playerManager, IWeather weather, [Named("SkyBuffer")] StaggingBackBuffer backBuffer) { _engine = engine; _cameraManager = cameraManager; _skydome = skydome; _visualWorldParam = visualWorldParam; _playerManager = playerManager; _backBuffer = backBuffer; _weather = weather; DrawOrders.UpdateIndex(0, 0); CBPerFrame = new CBuffer <CBPerFrame_Struct>(_engine.Device, "PerFrame"); }
public DynamicEntityManager(D3DEngine d3DEngine, VoxelModelManager voxelModelManager, CameraManager <ICameraFocused> camManager, WorldFocusManager worldFocusManager, VisualWorldParameters visualWorldParameters, SingleArrayChunkContainer chunkContainer, IPlayerManager playerEntityManager, ISkyDome skyDome, SharedFrameCB sharedFrameCB, IWorldChunks worldChunks, ISoundEngine soundEngine, UtopiaParticuleEngine utopiaParticuleEngine ) { _d3DEngine = d3DEngine; _voxelModelManager = voxelModelManager; _camManager = camManager; _chunkContainer = chunkContainer; _soundEngine = soundEngine; _worldFocusManager = worldFocusManager; _visualWorldParameters = visualWorldParameters; _playerEntityManager = playerEntityManager; _playerEntityManager.UtopiaParticuleEngine = utopiaParticuleEngine; _skyDome = skyDome; _sharedFrameCB = sharedFrameCB; _worldChunks = worldChunks; _utopiaParticuleEngine = utopiaParticuleEngine; _voxelModelManager.VoxelModelAvailable += VoxelModelManagerVoxelModelReceived; _camManager.ActiveCameraChanged += CamManagerActiveCameraChanged; _playerEntityManager.PlayerEntityChanged += _playerEntityManager_PlayerEntityChanged; DynamicEntities = new List <VisualVoxelEntity>(); DrawOrders.UpdateIndex(VOXEL_DRAW, 99, "VOXEL_DRAW"); SPRITENAME_DRAW = DrawOrders.AddIndex(1060, "NAME_DRAW"); this.IsDefferedLoadContent = true; }
public VisualChunkBase( D3DEngine d3DEngine, WorldFocusManager worldFocusManager, VisualWorldParameters visualWorldParameter, Range3I cubeRange, CameraManager <ICameraFocused> cameraManager, WorldChunks worldChunkManager, VoxelModelManager voxelModelManager, IChunkEntityImpactManager chunkEntityImpactManager, ChunkDataProvider provider = null) : base(provider) { _cachedTrees = new Dictionary <TreeBpSeed, VisualVoxelModel>(); Graphics = new ChunkGraphics(this, d3DEngine); _d3DEngine = d3DEngine; _worldFocusManager = worldFocusManager; _worldChunkManager = worldChunkManager; _chunkEntityImpactManager = chunkEntityImpactManager; #if DEBUG _blockpickedUPEffect = new HLSLVertexPositionColor(_d3DEngine.Device); #endif _visualWorldParameters = visualWorldParameter; _cameraManager = cameraManager; _voxelModelManager = voxelModelManager; _visualVoxelEntities = new Dictionary <string, List <VisualVoxelEntity> >(); EmitterStaticEntities = new List <EntityMetaData>(); OutOfChunkLightSourceStaticEntities = new List <ILightEmitterEntity>(); SoundStaticEntities = new List <IItem>(); CubeRange = cubeRange; State = ChunkState.Empty; Entities.EntityAdded += EntitiesEntityAdded; Entities.EntityRemoved += EntitiesEntityRemoved; Entities.CollectionCleared += EntitiesCollectionCleared; }
public VisualChunk(D3DEngine d3DEngine, WorldFocusManager worldFocusManager, VisualWorldParameters visualWorldParameter, ref Range3I cubeRange, SingleArrayChunkContainer singleArrayContainer, CameraManager <ICameraFocused> cameraManager, WorldChunks worldChunkManager, VoxelModelManager voxelModelManager, IChunkEntityImpactManager chunkEntityImpactManager, ChunkDataProvider provider = null) : base(d3DEngine, worldFocusManager, visualWorldParameter, cubeRange, cameraManager, worldChunkManager, voxelModelManager, chunkEntityImpactManager, new SingleArrayDataProvider(singleArrayContainer)) { ((SingleArrayDataProvider)base.BlockData).DataProviderUser = this; //Didn't find a way to pass it inside the constructor _singleArrayContainer = singleArrayContainer; }
public VisualChunk3D( D3DEngine d3DEngine, WorldFocusManager worldFocusManager, VisualWorldParameters visualWorldParameter, Range3I cubeRange, CameraManager <ICameraFocused> cameraManager, WorldChunks worldChunkManager, VoxelModelManager voxelModelManager, IChunkEntityImpactManager chunkEntityImpactManager, ChunkDataProvider provider = null) : base( d3DEngine, worldFocusManager, visualWorldParameter, cubeRange, cameraManager, worldChunkManager, voxelModelManager, chunkEntityImpactManager, provider) { _lights = new ByteColor[BlockData.ChunkSize.Volume]; }
public UtopiaParticuleEngine(D3DEngine d3dEngine, SharedFrameCB sharedFrameCB, CameraManager <ICameraFocused> cameraManager, InputsManager inputsManager, VisualWorldParameters worldParameters, IChunkEntityImpactManager chunkEntityImpactManager, IWorldChunks worldChunks, ILandscapeManager landscapeManager, IWeather weather) : base(d3dEngine, sharedFrameCB.CBPerFrame) { _sharedFrameCB = sharedFrameCB; _cameraManager = cameraManager; _inputsManager = inputsManager; _worldParameters = worldParameters; _chunkEntityImpactManager = chunkEntityImpactManager; _worldChunks = worldChunks; _landscapeManager = landscapeManager; _weather = weather; _chunkEntityImpactManager.BlockReplaced += _chunkEntityImpactManager_BlockReplaced; this.IsDefferedLoadContent = true; }
public TerraCubes(D3DEngine d3DEngine, VisualWorldParameters config) { _d3DEngine = d3DEngine; _config = config; }
public LiquidCubeMeshFactory(SingleArrayChunkContainer cubesHolder, VisualWorldParameters wp) { _cubesHolder = cubesHolder; _wp = wp; }
public WorldChunks(D3DEngine d3dEngine, CameraManager <ICameraFocused> camManager, VisualWorldParameters visualWorldParameters, WorldFocusManager worldFocusManager, GameStatesManager gameStates, IClock gameClock, SingleArrayChunkContainer cubesHolder, ILandscapeManager2D landscapeManager, IChunkMeshManager chunkMeshManager, IChunksWrapper chunkWrapper, ILightingManager lightingManager, IChunkStorageManager chunkstorage, ServerComponent server, IWeather weather, [Named("SkyBuffer")] StaggingBackBuffer skyBackBuffer, VoxelModelManager voxelModelManager, IChunkEntityImpactManager chunkEntityImpactManager, InputsManager inputsManager ) { _server = server; _chunkstorage = chunkstorage; _d3dEngine = d3dEngine; _worldFocusManager = worldFocusManager; _gameStates = gameStates; _camManager = camManager; _gameClock = gameClock; VisualWorldParameters = visualWorldParameters; _cubesHolder = cubesHolder; _chunkWrapper = chunkWrapper; _landscapeManager = landscapeManager; _chunkMeshManager = chunkMeshManager; _lightingManager = lightingManager; _weather = weather; _skyBackBuffer = skyBackBuffer; _voxelModelManager = voxelModelManager; _chunkEntityImpactManager = chunkEntityImpactManager; _inputsManager = inputsManager; _skyBackBuffer.OnStaggingBackBufferChanged += _skyBackBuffer_OnStaggingBackBufferChanged; SliceViewChunks = 25; DrawStaticInstanced = true; if (visualWorldParameters.WorldParameters.Configuration is UtopiaWorldConfiguration) { _utopiaProcessorParam = ((UtopiaWorldConfiguration)visualWorldParameters.WorldParameters.Configuration).ProcessorParam; } //Self injecting inside components, to avoid circular dependency _chunkWrapper.WorldChunks = this; lightingManager.WorldChunk = this; _chunkMeshManager.WorldChunks = this; landscapeManager.WorldChunks = this; DrawOrders.UpdateIndex(SOLID_DRAW, 100, "SOLID_DRAW"); TRANSPARENT_DRAW = DrawOrders.AddIndex(1050, "TRANSPARENT_DRAW"); ENTITIES_DRAW = DrawOrders.AddIndex(101, "ENTITIES_DRAW"); this.IsDefferedLoadContent = true; }
public CubeRenderer(D3DEngine engine, VisualWorldParameters visualWorldParameters) { _engine = engine; _visualWorldParameters = visualWorldParameters; _milkShapeMeshfactory = new MilkShape3DMeshFactory(); }