diff options
Diffstat (limited to 'src/Java/binnie/core/resource')
-rw-r--r-- | src/Java/binnie/core/resource/BinnieIcon.java | 47 | ||||
-rw-r--r-- | src/Java/binnie/core/resource/BinnieResource.java | 38 | ||||
-rw-r--r-- | src/Java/binnie/core/resource/IBinnieTexture.java | 6 | ||||
-rw-r--r-- | src/Java/binnie/core/resource/ManagerResource.java | 48 | ||||
-rw-r--r-- | src/Java/binnie/core/resource/ResourceType.java | 18 |
5 files changed, 157 insertions, 0 deletions
diff --git a/src/Java/binnie/core/resource/BinnieIcon.java b/src/Java/binnie/core/resource/BinnieIcon.java new file mode 100644 index 0000000000..cf7f44a018 --- /dev/null +++ b/src/Java/binnie/core/resource/BinnieIcon.java @@ -0,0 +1,47 @@ +package binnie.core.resource; + +import binnie.Binnie; +import binnie.core.AbstractMod; +import binnie.core.BinnieCore; +import binnie.core.proxy.BinnieProxy; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; + +public class BinnieIcon + extends BinnieResource +{ + public BinnieIcon(AbstractMod mod, ResourceType type, String path) + { + super(mod, type, path); + this.textureSheet = (type == ResourceType.Block ? 0 : 1); + Binnie.Resource.registerIcon(this); + } + + private int textureSheet = 0; + private IIcon icon = null; + + public IIcon getIcon() + { + return this.icon; + } + + @SideOnly(Side.CLIENT) + public IIcon getIcon(IIconRegister register) + { + registerIcon(register); + return this.icon; + } + + @SideOnly(Side.CLIENT) + public void registerIcon(IIconRegister register) + { + this.icon = BinnieCore.proxy.getIcon(register, this.mod, this.path); + } + + public int getTextureSheet() + { + return this.textureSheet; + } +} diff --git a/src/Java/binnie/core/resource/BinnieResource.java b/src/Java/binnie/core/resource/BinnieResource.java new file mode 100644 index 0000000000..d9c3d54a0a --- /dev/null +++ b/src/Java/binnie/core/resource/BinnieResource.java @@ -0,0 +1,38 @@ +package binnie.core.resource; + +import binnie.core.AbstractMod; +import net.minecraft.util.ResourceLocation; + +public class BinnieResource +{ + String mod; + private ResourceType type; + String path; + + public BinnieResource(AbstractMod mod, ResourceType type, String path) + { + this(mod.getModID(), type, path); + } + + public BinnieResource(String modid, ResourceType type, String path) + { + this.mod = modid; + this.type = type; + this.path = path; + } + + public String getFullPath() + { + return "/assets/" + this.mod + "/textures/" + this.type.toString() + "/" + this.path; + } + + public ResourceLocation getResourceLocation() + { + return new ResourceLocation(this.mod, "textures/" + this.type.toString() + "/" + this.path); + } + + public String getShortPath() + { + return "textures/" + this.type.toString() + "/" + this.path; + } +} diff --git a/src/Java/binnie/core/resource/IBinnieTexture.java b/src/Java/binnie/core/resource/IBinnieTexture.java new file mode 100644 index 0000000000..8db06e2c6a --- /dev/null +++ b/src/Java/binnie/core/resource/IBinnieTexture.java @@ -0,0 +1,6 @@ +package binnie.core.resource; + +public abstract interface IBinnieTexture +{ + public abstract BinnieResource getTexture(); +} diff --git a/src/Java/binnie/core/resource/ManagerResource.java b/src/Java/binnie/core/resource/ManagerResource.java new file mode 100644 index 0000000000..31a5116931 --- /dev/null +++ b/src/Java/binnie/core/resource/ManagerResource.java @@ -0,0 +1,48 @@ +package binnie.core.resource; + +import binnie.core.AbstractMod; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import java.util.ArrayList; +import java.util.List; +import net.minecraft.client.renderer.texture.IIconRegister; + +public class ManagerResource +{ + public BinnieResource getPNG(AbstractMod mod, ResourceType type, String path) + { + return getFile(mod, type, path + ".png"); + } + + public BinnieResource getFile(AbstractMod mod, ResourceType type, String path) + { + return new BinnieResource(mod, type, path); + } + + private List<BinnieIcon> icons = new ArrayList(); + + public void registerIcon(BinnieIcon binnieIcon) + { + this.icons.add(binnieIcon); + } + + public BinnieIcon getItemIcon(AbstractMod mod, String iconFile) + { + return new BinnieIcon(mod, ResourceType.Item, iconFile); + } + + public BinnieIcon getBlockIcon(AbstractMod mod, String iconFile) + { + return new BinnieIcon(mod, ResourceType.Block, iconFile); + } + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister register, int type) + { + for (BinnieIcon icon : this.icons) { + if (icon.getTextureSheet() == type) { + icon.registerIcon(register); + } + } + } +} diff --git a/src/Java/binnie/core/resource/ResourceType.java b/src/Java/binnie/core/resource/ResourceType.java new file mode 100644 index 0000000000..e9705ce252 --- /dev/null +++ b/src/Java/binnie/core/resource/ResourceType.java @@ -0,0 +1,18 @@ +package binnie.core.resource; + +public enum ResourceType +{ + Item("items"), Block("blocks"), Tile("tile"), GUI("gui"), FX("fx"), Entity("entities"); + + String name; + + private ResourceType(String name) + { + this.name = name; + } + + public String toString() + { + return this.name; + } +} |