public Mesh build() { return Assets.generateAsset(meshData, Mesh.class); }
public Mesh build(ResourceUrn urn) { return Assets.generateAsset(urn, meshData, Mesh.class); }
public static Mesh generateIconMesh(ResourceUrn urn, TextureRegion tex, int alphaLimit, boolean withContour, Vector4f colorContour) { if (urn == null) { return Assets.generateAsset(generateIconMeshData(tex, alphaLimit, withContour, colorContour), Mesh.class); } else { return Assets.generateAsset(urn, generateIconMeshData(tex, alphaLimit, withContour, colorContour), Mesh.class); } }
public Mesh generateMesh(ResourceUrn urn) { Preconditions.checkNotNull(urn); Mesh result = Assets.generateAsset(urn, meshData, Mesh.class); meshData = new MeshData(); return result; }
public Mesh generateMesh() { Mesh result = Assets.generateAsset(meshData, Mesh.class); meshData = new MeshData(); return result; }
public GLSLMaterial addShaderProgram(String title) { String uri = "engine:" + title; Optional<? extends Shader> shader = Assets.getShader(uri); checkState(shader.isPresent(), "Failed to resolve %s", uri); shader.get().recompile(); GLSLMaterial material = (GLSLMaterial) Assets.generateAsset(new ResourceUrn("engine:prog." + title), new MaterialData(shader.get()), Material.class); progamaticShaders.add(material); return material; }
private void genTexture() { int imgWidth = 384; int imgHeight = 384; ByteBuffer buffer = ByteBuffer.allocateDirect(imgWidth * imgHeight * Integer.BYTES); ByteBuffer[] data = new ByteBuffer[]{buffer}; ResourceUrn uri = new ResourceUrn("engine:terrainPreview"); TextureData texData = new TextureData(imgWidth, imgHeight, data, Texture.WrapMode.CLAMP, Texture.FilterMode.LINEAR); texture = Assets.generateAsset(uri, texData, Texture.class); previewImage = find("preview", UIImage.class); previewImage.setImage(texture); }
/** * Generates a texture and sets it to the image view, thus previewing the world. */ private void genTexture() { int imgWidth = 384; int imgHeight = 384; ByteBuffer buffer = ByteBuffer.allocateDirect(imgWidth * imgHeight * Integer.BYTES); ByteBuffer[] data = new ByteBuffer[]{buffer}; ResourceUrn uri = new ResourceUrn("engine:terrainPreview"); TextureData texData = new TextureData(imgWidth, imgHeight, data, Texture.WrapMode.CLAMP, Texture.FilterMode.LINEAR); texture = Assets.generateAsset(uri, texData, Texture.class); previewImage = find("preview", UIImage.class); previewImage.setImage(texture); }
private Prefab createPrefab(EntityData.Prefab prefabData) { PrefabData protoPrefab = prefabSerializer.deserialize(prefabData); return Assets.generateAsset(new ResourceUrn(prefabData.getName()), protoPrefab, Prefab.class); }
private void loadPreviewImages(final GameInfo gameInfo) { List<Texture> textures = new ArrayList<>(); if (gameInfo != null && gameInfo.getSavePath() != null) { final List<BufferedImage> bufferedImages = GamePreviewImageProvider.getAllPreviewImages(gameInfo.getSavePath()); textures = bufferedImages .stream() .map(buffImage -> { TextureData textureData; try { textureData = AWTTextureFormat.convertToTextureData(buffImage, Texture.FilterMode.LINEAR); } catch (IOException e) { logger.error("Converting preview image to texture data {} failed", e); return null; } return Assets.generateAsset(new ResourceUrn(PREVIEW_IMAGE_URI_PATTERN + bufferedImages.indexOf(buffImage)), textureData, Texture.class); }) .filter(Objects::nonNull) .collect(Collectors.toList()); } if (textures.isEmpty()) { textures.add(Assets.getTexture(DEFAULT_PREVIEW_IMAGE_URI).get()); } previewSlideshow.clean(); textures.forEach(tex -> { UIImage image = new UIImage(null, tex, true); previewSlideshow.addImage(image); }); }
private Texture generateNoiseTexture() { Optional<Texture> texture = Assets.getTexture("engine:ssaoNoise"); if (!texture.isPresent()) { ByteBuffer noiseValues = BufferUtils.createByteBuffer(SSAO_NOISE_SIZE * SSAO_NOISE_SIZE * 4); for (int i = 0; i < SSAO_NOISE_SIZE * SSAO_NOISE_SIZE; ++i) { Vector3f noiseVector = new Vector3f(randomGenerator.nextFloat(-1.0f, 1.0f), randomGenerator.nextFloat(-1.0f, 1.0f), 0.0f); noiseVector.normalize(); noiseValues.put((byte) ((noiseVector.x * 0.5 + 0.5) * 255.0f)); noiseValues.put((byte) ((noiseVector.y * 0.5 + 0.5) * 255.0f)); noiseValues.put((byte) ((noiseVector.z * 0.5 + 0.5) * 255.0f)); noiseValues.put((byte) 0x0); } noiseValues.flip(); return Assets.generateAsset(new ResourceUrn("engine:ssaoNoise"), new TextureData(SSAO_NOISE_SIZE, SSAO_NOISE_SIZE, new ByteBuffer[]{noiseValues}, Texture.WrapMode.REPEAT, Texture.FilterMode.NEAREST), Texture.class); } return texture.get(); } }
private Texture generateTexture(ResourceUrn urn) { ByteBuffer buffer = ByteBuffer.allocateDirect(size.x() * size.y() * Integer.BYTES); ByteBuffer[] mipmaps = new ByteBuffer[]{buffer}; TextureData data = new TextureData(size.x(), size.y(), mipmaps, Texture.WrapMode.CLAMP, Texture.FilterMode.NEAREST); return Assets.generateAsset(urn, data, Texture.class); }
private void createTextureAtlas(final Texture texture) { final Map<Name, Map<Name, SubtextureData>> textureAtlases = Maps.newHashMap(); final Vector2f texSize = new Vector2f(getRelativeTileSize(), getRelativeTileSize()); tileIndexes.forEachEntry((tileUri, index) -> { Vector2f coords = getTexCoords(index); SubtextureData subtextureData = new SubtextureData(texture, Rect2f.createFromMinAndSize(coords, texSize)); Map<Name, SubtextureData> textureAtlas = textureAtlases.get(tileUri.getModuleName()); if (textureAtlas == null) { textureAtlas = Maps.newHashMap(); textureAtlases.put(tileUri.getModuleName(), textureAtlas); } textureAtlas.put(tileUri.getResourceName(), subtextureData); return true; }); for (Map.Entry<Name, Map<Name, SubtextureData>> atlas : textureAtlases.entrySet()) { AtlasData data = new AtlasData(atlas.getValue()); Assets.generateAsset(new ResourceUrn(atlas.getKey(), new Name("terrain")), data, Atlas.class); } }
private void buildAtlas() { calculateAtlasSizes(); int numMipMaps = getNumMipmaps(); ByteBuffer[] data = createAtlasMipmaps(numMipMaps, TRANSPARENT_COLOR, tiles, "tiles.png"); ByteBuffer[] dataNormal = createAtlasMipmaps(numMipMaps, UNIT_Z_COLOR, tilesNormal, "tilesNormal.png", tilesGloss); ByteBuffer[] dataHeight = createAtlasMipmaps(numMipMaps, MID_RED_COLOR, tilesHeight, "tilesHeight.png"); TextureData terrainTexData = new TextureData(atlasSize, atlasSize, data, Texture.WrapMode.CLAMP, Texture.FilterMode.NEAREST); Texture terrainTex = Assets.generateAsset(new ResourceUrn("engine:terrain"), terrainTexData, Texture.class); TextureData terrainNormalData = new TextureData(atlasSize, atlasSize, dataNormal, Texture.WrapMode.CLAMP, Texture.FilterMode.NEAREST); Assets.generateAsset(new ResourceUrn("engine:terrainNormal"), terrainNormalData, Texture.class); TextureData terrainHeightData = new TextureData(atlasSize, atlasSize, dataHeight, Texture.WrapMode.CLAMP, Texture.FilterMode.LINEAR); Assets.generateAsset(new ResourceUrn("engine:terrainHeight"), terrainHeightData, Texture.class); MaterialData terrainMatData = new MaterialData(Assets.getShader("engine:block").get()); terrainMatData.setParam("textureAtlas", terrainTex); terrainMatData.setParam("colorOffset", new float[]{1, 1, 1}); terrainMatData.setParam("textured", true); Assets.generateAsset(new ResourceUrn("engine:terrain"), terrainMatData, Material.class); createTextureAtlas(terrainTex); }
widget.setSkin(Assets.generateAsset(data, UISkin.class)); selectedScreenBox.setContent(widget);
private void createPrefab(EntityData.Prefab prefabData) { SimpleUri uri = new SimpleUri(prefabData.getName()); try (ModuleContext.ContextSpan ignored = ModuleContext.setContext(moduleManager.getEnvironment().get(uri.getModuleName()))) { PrefabData protoPrefab = prefabSerializer.deserialize(prefabData); Assets.generateAsset(new ResourceUrn(prefabData.getName()), protoPrefab, Prefab.class); } catch (Exception e) { logger.error("Failed to create prefab {}", prefabData.getName()); } }
@Before public void setup() { context.put(NetworkSystem.class, mock(NetworkSystem.class)); EntitySystemSetupUtil.addReflectionBasedLibraries(context); EntitySystemSetupUtil.addEntityManagementRelatedClasses(context); entityManager = (PojoEntityManager) context.get(EntityManager.class); PrefabData protoPrefab = new PrefabData(); protoPrefab.addComponent(new StringComponent("Test")); prefab = Assets.generateAsset(new ResourceUrn("unittest:myprefab"), protoPrefab, Prefab.class); }
@Test public void testPrefabPersistedRetainedCorrectly() { PrefabData protoPrefab = new PrefabData(); protoPrefab.setPersisted(false); prefab = Assets.generateAsset(new ResourceUrn("unittest:nonpersistentPrefab"), protoPrefab, Prefab.class); EntityRef entity1 = entityManager.create(prefab); assertFalse(entity1.isPersistent()); }
@Test public void testRetrievePrefab() { PrefabData data = new PrefabData(); data.addComponent(new StringComponent("Test")); Prefab prefab = Assets.generateAsset(new ResourceUrn(PREFAB_NAME), data, Prefab.class); Prefab ref = prefabManager.getPrefab(PREFAB_NAME); assertNotNull(ref); assertEquals(PREFAB_NAME, ref.getName()); }
@Before public void setup() { context.put(NetworkSystem.class, mock(NetworkSystem.class)); EntitySystemSetupUtil.addReflectionBasedLibraries(context); EntitySystemSetupUtil.addEntityManagementRelatedClasses(context); entityManager = context.get(EngineEntityManager.class); entityManager.getComponentLibrary().register(new SimpleUri("test", "gettersetter"), GetterSetterComponent.class); entityManager.getComponentLibrary().register(new SimpleUri("test", "string"), StringComponent.class); entityManager.getComponentLibrary().register(new SimpleUri("test", "integer"), IntegerComponent.class); entitySerializer = new EntitySerializer(entityManager); componentLibrary = entityManager.getComponentLibrary(); PrefabData prefabData = new PrefabData(); prefabData.addComponent(new StringComponent("Value")); prefab = Assets.generateAsset(new ResourceUrn("test:Test"), prefabData, Prefab.class); }