public MeshData GenMesh(ItemStack itemstack, ITextureAtlasAPI targetAtlas, BlockPos forBlockPos = null) { ItemStack[] contents = GetNonEmptyContents(api.World, itemstack); string recipeCode = itemstack.Attributes.GetString("recipeCode"); return(GenMesh(api as ICoreClientAPI, LabelForContents(recipeCode, contents))); }
/// <summary> /// Expands the Composite Texture to a texture atlas friendly version and populates the Baked field. This method can be called after the game world has loaded. /// </summary> /// <param name="capi">The Client API</param> /// <param name="intoAtlas">The atlas to insert the baked texture.</param> public void RuntimeBake(ICoreClientAPI capi, ITextureAtlasAPI intoAtlas) { Baked = Bake(capi.Assets, this); RuntimeInsert(capi, intoAtlas, Baked); if (Baked.BakedVariants != null) { foreach (var val in Baked.BakedVariants) { RuntimeInsert(capi, intoAtlas, val); } } }
public MeshData GenMesh(ItemStack itemstack, ITextureAtlasAPI targetAtlas, BlockPos forBlockPos = null) { var capi = api as ICoreClientAPI; if (targetAtlas == capi.ItemTextureAtlas) { ITexPositionSource texSource = capi.Tesselator.GetTextureSource(itemstack.Item); return(genMesh(capi, itemstack, texSource)); } curAtlas = targetAtlas; MeshData mesh = genMesh(api as ICoreClientAPI, itemstack, this); mesh.RenderPassesAndExtraBits.Fill((short)EnumChunkRenderPass.OpaqueNoCull); return(mesh); }
bool RuntimeInsert(ICoreClientAPI capi, ITextureAtlasAPI intoAtlas, BakedCompositeTexture btex) { BitmapRef bmp = capi.Assets.Get(btex.BakedName).ToBitmap(capi); int textureSubId; TextureAtlasPosition texpos; if (intoAtlas.InsertTexture(bmp, out textureSubId, out texpos)) { btex.TextureSubId = textureSubId; capi.Render.RemoveTexture(btex.BakedName); return(true); } bmp.Dispose(); return(false); }
public virtual MeshData GenMesh(ItemStack itemstack, ITextureAtlasAPI targetAtlas, BlockPos forBlockPos = null) { var capi = api as ICoreClientAPI; return(meshCache.GenMealInContainerMesh(this, GetCookingRecipe(capi.World, itemstack), GetNonEmptyContents(capi.World, itemstack))); }
public override MeshData GenMesh(ItemStack itemstack, ITextureAtlasAPI targetAtlas, BlockPos atBlockPos = null) { return(ms.GetPieMesh(itemstack)); }
public MeshData GenMesh(ItemStack itemstack, ITextureAtlasAPI targetAtlas, BlockPos forBlockPos = null) { return(meshCache.GenMealInContainerMesh(this, GetCookingRecipe(api.World, itemstack), GetNonEmptyContents(api.World, itemstack), new Vec3f(0, yoff / 16f, 0))); }