From 17329115a2563ee8d73b5065eb87d92f12bae12a Mon Sep 17 00:00:00 2001 From: bdew Date: Thu, 20 Feb 2014 18:03:34 +0200 Subject: [PATCH] made ItemPreloader easier to use --- src/net/bdew/lib/render/IconPreloader.scala | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/net/bdew/lib/render/IconPreloader.scala b/src/net/bdew/lib/render/IconPreloader.scala index 23ec122..f8e2dfe 100644 --- a/src/net/bdew/lib/render/IconPreloader.scala +++ b/src/net/bdew/lib/render/IconPreloader.scala @@ -13,13 +13,23 @@ import net.minecraft.client.renderer.texture.IconRegister import net.minecraftforge.common.MinecraftForge import net.minecraftforge.event.ForgeSubscribe import net.minecraftforge.client.event.TextureStitchEvent +import net.minecraft.util.Icon /** * Allows loading of texture that don't belong to specific block or item into vanilla block/item atlas * @param kind 0=Blocks / 1=Items */ -abstract class IconPreloader(kind: Int) { - def registerIcons(reg: IconRegister) +class IconPreloader(kind: Int) { + var icons = Set.empty[Entry] + + case class Entry(loc: String) { + var icon: Icon = null + icons += this + } + + implicit def entry2icon(v: Entry) = v.icon + + def registerIcons(reg: IconRegister) {} def init() { MinecraftForge.EVENT_BUS.register(this) @@ -27,7 +37,9 @@ abstract class IconPreloader(kind: Int) { @ForgeSubscribe def preTextureStitch(ev: TextureStitchEvent.Pre) { - if (ev.map.getTextureType == kind) + if (ev.map.getTextureType == kind) { + for (x <- icons) x.icon = ev.map.registerIcon(x.loc) registerIcons(ev.map) + } } }