Search in sources :

Example 1 with HeadlessTexture

use of org.terasology.engine.core.subsystem.headless.assets.HeadlessTexture in project Terasology by MovingBlocks.

the class HeadlessGraphics method registerCoreAssetTypes.

@Override
public void registerCoreAssetTypes(ModuleAwareAssetTypeManager assetTypeManager) {
    assetTypeManager.createAssetType(Font.class, FontImpl::new, "fonts");
    AssetType<Texture, TextureData> texture = assetTypeManager.createAssetType(Texture.class, (urn, assetType, data) -> new HeadlessTexture(urn, assetType, data, new HeadlessTexture.DisposalAction()), "textures", "fonts");
    assetTypeManager.getAssetFileDataProducer(texture).addAssetFormat(new PNGTextureFormat(Texture.FilterMode.NEAREST, path -> path.getPath().get(1).equals("textures")));
    assetTypeManager.getAssetFileDataProducer(texture).addAssetFormat(new PNGTextureFormat(Texture.FilterMode.LINEAR, path -> path.getPath().get(1).equals("fonts")));
    assetTypeManager.createAssetType(Shader.class, HeadlessShader::new, "shaders");
    assetTypeManager.createAssetType(Material.class, HeadlessMaterial::new, "materials");
    assetTypeManager.createAssetType(Mesh.class, HeadlessMesh::new, "mesh");
    assetTypeManager.createAssetType(SkeletalMesh.class, HeadlessSkeletalMesh::new, "skeletalMesh");
    assetTypeManager.createAssetType(MeshAnimation.class, MeshAnimationImpl::new, "animations");
    assetTypeManager.createAssetType(Atlas.class, Atlas::new, "atlas");
    assetTypeManager.createAssetType(Subtexture.class, Subtexture::new);
}
Also used : PNGTextureFormat(org.terasology.engine.rendering.assets.texture.PNGTextureFormat) Atlas(org.terasology.engine.rendering.assets.atlas.Atlas) Shader(org.terasology.engine.rendering.assets.shader.Shader) HeadlessMesh(org.terasology.engine.core.subsystem.headless.assets.HeadlessMesh) Texture(org.terasology.engine.rendering.assets.texture.Texture) HeadlessSkeletalMesh(org.terasology.engine.core.subsystem.headless.assets.HeadlessSkeletalMesh) CanvasRenderer(org.terasology.nui.canvas.CanvasRenderer) HeadlessMaterial(org.terasology.engine.core.subsystem.headless.assets.HeadlessMaterial) Subtexture(org.terasology.engine.rendering.assets.texture.subtexture.Subtexture) DisplayDevice(org.terasology.engine.core.subsystem.DisplayDevice) Font(org.terasology.engine.rendering.assets.font.Font) ModuleAwareAssetTypeManager(org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManager) FontImpl(org.terasology.engine.rendering.assets.font.FontImpl) HeadlessShader(org.terasology.engine.core.subsystem.headless.assets.HeadlessShader) HeadlessDisplayDevice(org.terasology.engine.core.subsystem.headless.device.HeadlessDisplayDevice) MeshAnimationImpl(org.terasology.engine.rendering.assets.animation.MeshAnimationImpl) AssetType(org.terasology.gestalt.assets.AssetType) SkeletalMesh(org.terasology.engine.rendering.assets.skeletalmesh.SkeletalMesh) RenderingSubsystemFactory(org.terasology.engine.core.subsystem.RenderingSubsystemFactory) HeadlessTexture(org.terasology.engine.core.subsystem.headless.assets.HeadlessTexture) HeadlessCanvasRenderer(org.terasology.engine.core.subsystem.headless.renderer.HeadlessCanvasRenderer) ShaderManagerHeadless(org.terasology.engine.core.subsystem.headless.renderer.ShaderManagerHeadless) EngineSubsystem(org.terasology.engine.core.subsystem.EngineSubsystem) Context(org.terasology.engine.context.Context) Material(org.terasology.engine.rendering.assets.material.Material) PNGTextureFormat(org.terasology.engine.rendering.assets.texture.PNGTextureFormat) HeadlessRenderingSubsystemFactory(org.terasology.engine.core.subsystem.headless.renderer.HeadlessRenderingSubsystemFactory) TextureData(org.terasology.engine.rendering.assets.texture.TextureData) Mesh(org.terasology.engine.rendering.assets.mesh.Mesh) ShaderManager(org.terasology.engine.rendering.ShaderManager) MeshAnimation(org.terasology.engine.rendering.assets.animation.MeshAnimation) Atlas(org.terasology.engine.rendering.assets.atlas.Atlas) HeadlessMaterial(org.terasology.engine.core.subsystem.headless.assets.HeadlessMaterial) HeadlessMesh(org.terasology.engine.core.subsystem.headless.assets.HeadlessMesh) Texture(org.terasology.engine.rendering.assets.texture.Texture) HeadlessTexture(org.terasology.engine.core.subsystem.headless.assets.HeadlessTexture) MeshAnimationImpl(org.terasology.engine.rendering.assets.animation.MeshAnimationImpl) HeadlessShader(org.terasology.engine.core.subsystem.headless.assets.HeadlessShader) FontImpl(org.terasology.engine.rendering.assets.font.FontImpl) HeadlessTexture(org.terasology.engine.core.subsystem.headless.assets.HeadlessTexture) TextureData(org.terasology.engine.rendering.assets.texture.TextureData) HeadlessSkeletalMesh(org.terasology.engine.core.subsystem.headless.assets.HeadlessSkeletalMesh) Subtexture(org.terasology.engine.rendering.assets.texture.subtexture.Subtexture)

Example 2 with HeadlessTexture

use of org.terasology.engine.core.subsystem.headless.assets.HeadlessTexture in project Terasology by MovingBlocks.

the class HeadlessEnvironment method setupAssetManager.

@Override
protected AssetManager setupAssetManager() {
    ModuleAwareAssetTypeManager assetTypeManager = new ModuleAwareAssetTypeManagerImpl();
    // cast lambdas explicitly to avoid inconsistent compiler behavior wrt. type inference
    assetTypeManager.createAssetType(Prefab.class, PojoPrefab::new, "prefabs");
    assetTypeManager.createAssetType(BlockShape.class, BlockShapeImpl::new, "shapes");
    assetTypeManager.createAssetType(BlockSounds.class, BlockSounds::new, "blockSounds");
    assetTypeManager.createAssetType(BlockTile.class, BlockTile::new, "blockTiles");
    AssetType<BlockFamilyDefinition, BlockFamilyDefinitionData> blockFamilyDefinitionDataAssetType = assetTypeManager.createAssetType(BlockFamilyDefinition.class, BlockFamilyDefinition::new, "blocks");
    assetTypeManager.getAssetFileDataProducer(blockFamilyDefinitionDataAssetType).addAssetFormat(new BlockFamilyDefinitionFormat(assetTypeManager.getAssetManager()));
    assetTypeManager.createAssetType(StaticSound.class, NullSound::new, "sounds");
    assetTypeManager.createAssetType(StreamingSound.class, NullStreamingSound::new, "music");
    assetTypeManager.createAssetType(UISkinAsset.class, UISkinAsset::new, "skins");
    assetTypeManager.createAssetType(BehaviorTree.class, BehaviorTree::new, "behaviors");
    assetTypeManager.createAssetType(UIElement.class, UIElement::new, "ui");
    assetTypeManager.createAssetType(Font.class, FontImpl::new, "fonts");
    AssetType<Texture, TextureData> textureDataAssetType = assetTypeManager.createAssetType(Texture.class, HeadlessTexture::create, "textures", "fonts");
    assetTypeManager.getAssetFileDataProducer(textureDataAssetType).addAssetFormat(new PNGTextureFormat(Texture.FilterMode.NEAREST, path -> path.getPath().get(1).equals("textures")));
    assetTypeManager.getAssetFileDataProducer(textureDataAssetType).addAssetFormat(new PNGTextureFormat(Texture.FilterMode.LINEAR, path -> path.getPath().get(1).equals("fonts")));
    assetTypeManager.createAssetType(Shader.class, HeadlessShader::new, "shaders");
    assetTypeManager.createAssetType(Material.class, HeadlessMaterial::new, "materials");
    assetTypeManager.createAssetType(Mesh.class, HeadlessMesh::new, "mesh");
    assetTypeManager.createAssetType(SkeletalMesh.class, HeadlessSkeletalMesh::new, "skeletalMesh");
    assetTypeManager.createAssetType(MeshAnimation.class, MeshAnimationImpl::new, "animations");
    assetTypeManager.createAssetType(Atlas.class, Atlas::new, "atlas");
    assetTypeManager.createAssetType(Subtexture.class, Subtexture::new);
    assetTypeManager.switchEnvironment(context.get(ModuleManager.class).getEnvironment());
    context.put(ModuleAwareAssetTypeManager.class, assetTypeManager);
    context.put(AssetManager.class, assetTypeManager.getAssetManager());
    return assetTypeManager.getAssetManager();
}
Also used : PNGTextureFormat(org.terasology.engine.rendering.assets.texture.PNGTextureFormat) BlockFamilyDefinitionData(org.terasology.engine.world.block.loader.BlockFamilyDefinitionData) RecordAndReplayUtils(org.terasology.engine.recording.RecordAndReplayUtils) NetworkSystemImpl(org.terasology.engine.network.internal.NetworkSystemImpl) Texture(org.terasology.engine.rendering.assets.texture.Texture) LoggerFactory(org.slf4j.LoggerFactory) TypeRegistry(org.terasology.reflection.TypeRegistry) HeadlessSkeletalMesh(org.terasology.engine.core.subsystem.headless.assets.HeadlessSkeletalMesh) HeadlessMaterial(org.terasology.engine.core.subsystem.headless.assets.HeadlessMaterial) BasicCelestialModel(org.terasology.engine.world.sun.BasicCelestialModel) LoadPrefabs(org.terasology.engine.core.modes.loadProcesses.LoadPrefabs) RecordAndReplaySerializer(org.terasology.engine.recording.RecordAndReplaySerializer) WorldInfo(org.terasology.engine.world.internal.WorldInfo) BehaviorTree(org.terasology.engine.logic.behavior.asset.BehaviorTree) ExternalApiWhitelist(org.terasology.engine.core.module.ExternalApiWhitelist) Font(org.terasology.engine.rendering.assets.font.Font) ModuleAwareAssetTypeManager(org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManager) BlockFamilyDefinitionFormat(org.terasology.engine.world.block.loader.BlockFamilyDefinitionFormat) StorageManager(org.terasology.engine.persistence.StorageManager) BlockShape(org.terasology.engine.world.block.shapes.BlockShape) Path(java.nio.file.Path) BlockFamilyLibrary(org.terasology.engine.world.block.family.BlockFamilyLibrary) HeadlessShader(org.terasology.engine.core.subsystem.headless.assets.HeadlessShader) MeshAnimationImpl(org.terasology.engine.rendering.assets.animation.MeshAnimationImpl) CollisionGroupTypeHandler(org.terasology.engine.persistence.typeHandling.extensionTypes.CollisionGroupTypeHandler) NullAudioManager(org.terasology.engine.audio.nullAudio.NullAudioManager) ModuleAwareAssetTypeManagerImpl(org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManagerImpl) BlockSounds(org.terasology.engine.world.block.sounds.BlockSounds) BlockFamilyTypeHandler(org.terasology.engine.persistence.typeHandling.extensionTypes.BlockFamilyTypeHandler) ModuleEnvironment(org.terasology.gestalt.module.ModuleEnvironment) SkeletalMesh(org.terasology.engine.rendering.assets.skeletalmesh.SkeletalMesh) Set(java.util.Set) AudioManager(org.terasology.engine.audio.AudioManager) WorldProvider(org.terasology.engine.world.WorldProvider) BlockFamilyDefinition(org.terasology.engine.world.block.loader.BlockFamilyDefinition) PojoPrefab(org.terasology.engine.entitySystem.prefab.internal.PojoPrefab) UISkinAsset(org.terasology.nui.skin.UISkinAsset) Collectors(java.util.stream.Collectors) WorldTimeImpl(org.terasology.engine.world.time.WorldTimeImpl) EngineTime(org.terasology.engine.core.EngineTime) Context(org.terasology.engine.context.Context) ExtraBlockDataManager(org.terasology.engine.world.chunks.blockdata.ExtraBlockDataManager) BlockShapeImpl(org.terasology.engine.world.block.shapes.BlockShapeImpl) PNGTextureFormat(org.terasology.engine.rendering.assets.texture.PNGTextureFormat) EntitySystemSetupUtil(org.terasology.engine.core.bootstrap.EntitySystemSetupUtil) NullWorldAtlas(org.terasology.engine.world.block.tiles.NullWorldAtlas) TextureData(org.terasology.engine.rendering.assets.texture.TextureData) ModuleManagerFactory(org.terasology.engine.testUtil.ModuleManagerFactory) CollisionGroup(org.terasology.engine.physics.CollisionGroup) MeshAnimation(org.terasology.engine.rendering.assets.animation.MeshAnimation) Name(org.terasology.gestalt.naming.Name) Mockito.mock(org.mockito.Mockito.mock) BlockTile(org.terasology.engine.world.block.tiles.BlockTile) Atlas(org.terasology.engine.rendering.assets.atlas.Atlas) WorldAtlas(org.terasology.engine.world.block.tiles.WorldAtlas) NullStreamingSound(org.terasology.engine.audio.nullAudio.NullStreamingSound) Shader(org.terasology.engine.rendering.assets.shader.Shader) UIElement(org.terasology.nui.asset.UIElement) HeadlessMesh(org.terasology.engine.core.subsystem.headless.assets.HeadlessMesh) ModuleManager(org.terasology.engine.core.module.ModuleManager) EngineEntityManager(org.terasology.engine.entitySystem.entity.internal.EngineEntityManager) Block(org.terasology.engine.world.block.Block) Subtexture(org.terasology.engine.rendering.assets.texture.subtexture.Subtexture) Time(org.terasology.engine.core.Time) StaticSound(org.terasology.engine.audio.StaticSound) StreamingSound(org.terasology.engine.audio.StreamingSound) TypeHandlerLibrary(org.terasology.persistence.typeHandling.TypeHandlerLibrary) FontImpl(org.terasology.engine.rendering.assets.font.FontImpl) CelestialSystem(org.terasology.engine.world.sun.CelestialSystem) WorldTime(org.terasology.engine.world.time.WorldTime) AssetManager(org.terasology.gestalt.assets.management.AssetManager) ComponentSystemManager(org.terasology.engine.core.ComponentSystemManager) CollisionGroupManager(org.terasology.engine.physics.CollisionGroupManager) Logger(org.slf4j.Logger) ReadWriteStorageManager(org.terasology.engine.persistence.internal.ReadWriteStorageManager) BlockFamily(org.terasology.engine.world.block.family.BlockFamily) DefaultCelestialSystem(org.terasology.engine.world.sun.DefaultCelestialSystem) Files(java.nio.file.Files) AssetType(org.terasology.gestalt.assets.AssetType) IOException(java.io.IOException) Prefab(org.terasology.engine.entitySystem.prefab.Prefab) Mockito.when(org.mockito.Mockito.when) RecordAndReplayCurrentStatus(org.terasology.engine.recording.RecordAndReplayCurrentStatus) HeadlessTexture(org.terasology.engine.core.subsystem.headless.assets.HeadlessTexture) BlockManagerImpl(org.terasology.engine.world.block.internal.BlockManagerImpl) Config(org.terasology.engine.config.Config) ModuleTypeRegistry(org.terasology.reflection.ModuleTypeRegistry) Material(org.terasology.engine.rendering.assets.material.Material) BlockManager(org.terasology.engine.world.block.BlockManager) NullSound(org.terasology.engine.audio.nullAudio.NullSound) BlockTypeHandler(org.terasology.engine.persistence.typeHandling.extensionTypes.BlockTypeHandler) Mesh(org.terasology.engine.rendering.assets.mesh.Mesh) NetworkSystem(org.terasology.engine.network.NetworkSystem) PathManager(org.terasology.engine.core.PathManager) NullStreamingSound(org.terasology.engine.audio.nullAudio.NullStreamingSound) UIElement(org.terasology.nui.asset.UIElement) HeadlessMaterial(org.terasology.engine.core.subsystem.headless.assets.HeadlessMaterial) BlockFamilyDefinitionFormat(org.terasology.engine.world.block.loader.BlockFamilyDefinitionFormat) BlockTile(org.terasology.engine.world.block.tiles.BlockTile) Texture(org.terasology.engine.rendering.assets.texture.Texture) HeadlessTexture(org.terasology.engine.core.subsystem.headless.assets.HeadlessTexture) MeshAnimationImpl(org.terasology.engine.rendering.assets.animation.MeshAnimationImpl) HeadlessShader(org.terasology.engine.core.subsystem.headless.assets.HeadlessShader) FontImpl(org.terasology.engine.rendering.assets.font.FontImpl) HeadlessTexture(org.terasology.engine.core.subsystem.headless.assets.HeadlessTexture) BlockFamilyDefinitionData(org.terasology.engine.world.block.loader.BlockFamilyDefinitionData) TextureData(org.terasology.engine.rendering.assets.texture.TextureData) HeadlessSkeletalMesh(org.terasology.engine.core.subsystem.headless.assets.HeadlessSkeletalMesh) NullSound(org.terasology.engine.audio.nullAudio.NullSound) PojoPrefab(org.terasology.engine.entitySystem.prefab.internal.PojoPrefab) NullWorldAtlas(org.terasology.engine.world.block.tiles.NullWorldAtlas) Atlas(org.terasology.engine.rendering.assets.atlas.Atlas) WorldAtlas(org.terasology.engine.world.block.tiles.WorldAtlas) BlockShapeImpl(org.terasology.engine.world.block.shapes.BlockShapeImpl) UISkinAsset(org.terasology.nui.skin.UISkinAsset) ModuleAwareAssetTypeManager(org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManager) ModuleAwareAssetTypeManagerImpl(org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManagerImpl) BehaviorTree(org.terasology.engine.logic.behavior.asset.BehaviorTree) HeadlessMesh(org.terasology.engine.core.subsystem.headless.assets.HeadlessMesh) BlockSounds(org.terasology.engine.world.block.sounds.BlockSounds) BlockFamilyDefinition(org.terasology.engine.world.block.loader.BlockFamilyDefinition) Subtexture(org.terasology.engine.rendering.assets.texture.subtexture.Subtexture)

Aggregations

Context (org.terasology.engine.context.Context)2 HeadlessMaterial (org.terasology.engine.core.subsystem.headless.assets.HeadlessMaterial)2 HeadlessMesh (org.terasology.engine.core.subsystem.headless.assets.HeadlessMesh)2 HeadlessShader (org.terasology.engine.core.subsystem.headless.assets.HeadlessShader)2 HeadlessSkeletalMesh (org.terasology.engine.core.subsystem.headless.assets.HeadlessSkeletalMesh)2 HeadlessTexture (org.terasology.engine.core.subsystem.headless.assets.HeadlessTexture)2 IOException (java.io.IOException)1 Files (java.nio.file.Files)1 Path (java.nio.file.Path)1 Set (java.util.Set)1 Collectors (java.util.stream.Collectors)1 Mockito.mock (org.mockito.Mockito.mock)1 Mockito.when (org.mockito.Mockito.when)1 Logger (org.slf4j.Logger)1 LoggerFactory (org.slf4j.LoggerFactory)1 AudioManager (org.terasology.engine.audio.AudioManager)1 StaticSound (org.terasology.engine.audio.StaticSound)1 StreamingSound (org.terasology.engine.audio.StreamingSound)1 NullAudioManager (org.terasology.engine.audio.nullAudio.NullAudioManager)1 NullSound (org.terasology.engine.audio.nullAudio.NullSound)1