aboutsummaryrefslogtreecommitdiff
path: root/src/Java/binnie/core/resource
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/binnie/core/resource')
-rw-r--r--src/Java/binnie/core/resource/BinnieIcon.java47
-rw-r--r--src/Java/binnie/core/resource/BinnieResource.java38
-rw-r--r--src/Java/binnie/core/resource/IBinnieTexture.java6
-rw-r--r--src/Java/binnie/core/resource/ManagerResource.java48
-rw-r--r--src/Java/binnie/core/resource/ResourceType.java18
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;
+ }
+}