public void SetContents(ItemStack newContentStack, ModelTransform transform) { contentStackRenderer?.Dispose(); contentStackRenderer = null; this.transform = transform; if (transform == null) { this.transform = defaultTransform; } this.transform.EnsureDefaultValues(); meshref?.Dispose(); meshref = null; if (newContentStack == null || newContentStack.Class == EnumItemClass.Block) { this.ContentStack = null; return; } if (newContentStack == null || newContentStack.Class == EnumItemClass.Item) { this.ContentStack = null; return; } this.ContentStack = newContentStack; }
internal void SetChildRenderer(ItemStack contentStack, IInKilnRenderer renderer) { this.ContentStack = contentStack; meshref?.Dispose(); meshref = null; contentStackRenderer = renderer; }
void UpdateRenderer() { if (renderer == null) { return; } ItemStack contentStack = inputStack == null ? outputStack : inputStack; bool useOldRenderer = renderer.ContentStack != null && renderer.contentStackRenderer != null && contentStack?.Collectible is IInKilnRendererSupplier && renderer.ContentStack.Equals(Api.World, contentStack, GlobalConstants.IgnoredStackAttributes) ; if (useOldRenderer) { return; // Otherwise the cooking sounds restarts all the time } renderer.contentStackRenderer?.Dispose(); renderer.contentStackRenderer = null; if (contentStack?.Collectible is IInKilnRendererSupplier) { IInKilnRenderer childrenderer = (contentStack?.Collectible as IInKilnRendererSupplier).GetRendererWhenInKiln(contentStack, this, contentStack == outputStack); if (childrenderer != null) { renderer.SetChildRenderer(contentStack, childrenderer); return; } } InKilnProps props = GetRenderProps(contentStack); if (contentStack?.Collectible != null && !(contentStack?.Collectible is IInKilnMeshSupplier) && props != null) { renderer.SetContents(contentStack, props.Transform); } else { renderer.SetContents(null, null); } }