Support for custom item rarity types. Works in SMP.

This commit is contained in:
pahimar 2012-05-25 13:37:01 -04:00
parent f73271d6b6
commit 1c1ceb162a
9 changed files with 106 additions and 14 deletions

View file

@ -4,11 +4,14 @@ import java.io.File;
import java.lang.reflect.Field;
import ee3.core.interfaces.IProxy;
import static ee3.lib.CustomItemRarity.*;
import net.minecraft.client.Minecraft;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.EnumRarity;
import net.minecraft.src.ModLoader;
import net.minecraft.src.NetworkManager;
import net.minecraft.src.World;
import net.minecraft.src.forge.EnumHelperClient;
import net.minecraft.src.forge.MinecraftForgeClient;
/**
@ -106,4 +109,21 @@ public class EEProxy implements IProxy {
ModLoader.getMinecraftInstance().sndManager.playSound(soundName, x, y, z, volume, pitch);
}
public void addCustomEnumRarityTypes() {
EnumHelperClient.addRarity(JUNK, COLOR_JUNK, DISPLAY_NAME_JUNK);
EnumHelperClient.addRarity(NORMAL, COLOR_NORMAL, DISPLAY_NAME_NORMAL);
EnumHelperClient.addRarity(MAGICAL, COLOR_MAGICAL, DISPLAY_NAME_MAGICAL);
EnumHelperClient.addRarity(RARE, COLOR_RARE, DISPLAY_NAME_RARE);
EnumHelperClient.addRarity(LEGENDARY, COLOR_LEGENDARY, DISPLAY_NAME_LEGENDARY);
}
@Override
public EnumRarity getCustomEnumRarityType(String custom) {
for (EnumRarity eRare : EnumRarity.class.getEnumConstants()) {
if (eRare.name().equals(custom))
return eRare;
}
return EnumRarity.common;
}
}

View file

@ -40,12 +40,12 @@ public class RecipesPhilStone {
public static void initRecipes() {
determineBaseMaterials();
//initTransmutationRecipes();
//initEquivalenceRecipes();
//initReconstructiveRecipes();
//initDestructorRecipes();
//initPortableSmeltingRecipes();
//determineBaseMaterials();
initTransmutationRecipes();
initEquivalenceRecipes();
initReconstructiveRecipes();
initDestructorRecipes();
initPortableSmeltingRecipes();
}
public static void determineBaseMaterials() {

View file

@ -3,6 +3,7 @@ package ee3.core.interfaces;
import java.io.File;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.EnumRarity;
import net.minecraft.src.NetworkManager;
import net.minecraft.src.ShapedRecipes;
import net.minecraft.src.World;
@ -44,5 +45,8 @@ public interface IProxy {
public abstract Object handleGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z);
public abstract void playSound(String soundName, float x, float y, float z, float volume, float pitch);
public abstract void addCustomEnumRarityTypes();
public abstract EnumRarity getCustomEnumRarityType(String custom);
}

View file

@ -2,8 +2,10 @@ package ee3.item;
import ee3.core.interfaces.IItemChargeable;
import ee3.core.interfaces.IItemModal;
import ee3.lib.CustomItemRarity;
import net.minecraft.src.EnumRarity;
import net.minecraft.src.ItemStack;
import net.minecraft.src.mod_EE3;
/**
* TODO Class Description
@ -24,7 +26,7 @@ public class ItemPhilosopherStone extends ItemEE implements IItemChargeable, IIt
}
public EnumRarity getRarity(ItemStack par1ItemStack) {
return EnumRarity.uncommon;
return mod_EE3.proxy.getCustomEnumRarityType(CustomItemRarity.RARE);
}
@Override

View file

@ -20,8 +20,6 @@ public class ModItems {
if (initialized)
initialized = true;
System.out.println("philStone: " + ItemIds.PHIL_STONE);
/* Initialise each mod item individually */
philStone = new ItemPhilosopherStone(ItemIds.PHIL_STONE).setIconCoord(0, 0).setItemName("philStone");

View file

@ -0,0 +1,50 @@
package ee3.lib;
/**
* TODO Class Description
* @author pahimar
*
*/
public class CustomItemRarity {
/**
* Colour Value Guide
*
* 0 = Black
* 1 = Dark Blue
* 2 = Green
* 3 = Cyan
* 4 = Dark Red
* 5 = Purple
* 6 = Orange
* 7 = Light Grey
* 8 = Dark Grey
* 9 = Blue
* 10 = Light Green
* 11 = Light Cyan
* 12 = Light Red
* 13 = Pink
* 14 = Yellow
* 15 = White
*
**/
public static final int COLOR_JUNK = 7;
public static final int COLOR_NORMAL = 15;
public static final int COLOR_MAGICAL = 9;
public static final int COLOR_RARE = 14;
public static final int COLOR_LEGENDARY = 6;
public static final String JUNK = "custom_junk";
public static final String NORMAL = "custom_normal";
public static final String MAGICAL = "custom_magical";
public static final String RARE = "custom_rare";
public static final String LEGENDARY = "custom_legendary";
public static final String DISPLAY_NAME_JUNK = "Junk";
public static final String DISPLAY_NAME_NORMAL = "Normal";
public static final String DISPLAY_NAME_MAGICAL = "Magical";
public static final String DISPLAY_NAME_RARE = "Rare";
public static final String DISPLAY_NAME_LEGENDARY = "Legendary";
}

View file

@ -53,7 +53,10 @@ public class mod_EE3 extends NetworkMod {
this.proxy.registerSoundHandler();
// Initialise the configuration settings from file
config.init();
this.config.init();
// Add in the custom Item rarity types
this.proxy.addCustomEnumRarityTypes();
// Initialise the mod items
ModItems.init();
@ -61,9 +64,8 @@ public class mod_EE3 extends NetworkMod {
// Initialise the Philosopher Stone recipes
RecipesPhilStone.initRecipes();
BuildCraftAddon.init();
emcList.initEMCList();
// Initialise the EMC List
this.emcList.initEMCList();
}
@Override

View file

@ -7,6 +7,7 @@ import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.ReflectionHelper;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.EnumRarity;
import net.minecraft.src.ModLoader;
import net.minecraft.src.NetworkManager;
import net.minecraft.src.World;
@ -74,7 +75,6 @@ public class EEProxy implements IProxy {
public void handleTEPacket(int x, int y, int z, byte direction, String player) { }
@Override
// Stub, no need for a Sound Handler on the server
public void registerSoundHandler() { }
@Override
@ -86,4 +86,11 @@ public class EEProxy implements IProxy {
@Override
public void playSound(String soundName, float x, float y, float z, float volume, float pitch) { }
@Override
public void addCustomEnumRarityTypes() { }
@Override
public EnumRarity getCustomEnumRarityType(String custom) {
return null;
}
}

View file

@ -0,0 +1,9 @@
package net.minecraft.src;
/**
* EnumRarity
* Stubbed in server side to allow for EE item code to be common and not client/server specific
* @author pahimar
*
*/
public enum EnumRarity { }