Inscription Tools and Slates

This commit is contained in:
Nick 2015-12-02 00:55:32 -08:00
parent 437dc1b96e
commit 7dd170e5ad
13 changed files with 178 additions and 12 deletions

View file

@ -9,8 +9,7 @@ import net.minecraftforge.fluids.Fluid;
public class BloodMagicAPI {
@Getter
@Setter
@Getter @Setter
private static boolean loggingEnabled;
@Getter
@ -19,11 +18,12 @@ public class BloodMagicAPI {
@Getter
private static DamageSource damageSource = new DamageSourceBloodMagic();
@Getter
@Setter
@Getter @Setter
private static Item orbItem;
@Getter @Setter
private static Item scribeItem;
@Getter
@Setter
@Getter @Setter
private static Fluid lifeEssence;
}

View file

@ -1,5 +1,7 @@
package WayofTime.bloodmagic.api.ritual;
import WayofTime.bloodmagic.api.BloodMagicAPI;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IStringSerializable;
import java.util.Locale;
@ -21,6 +23,10 @@ public enum EnumRuneType implements IStringSerializable {
return values()[meta];
}
public ItemStack getScribeStack() {
return new ItemStack(BloodMagicAPI.getScribeItem(), 1, ordinal());
}
@Override
public String toString() {
return name().toLowerCase(Locale.ENGLISH);
@ -30,4 +36,5 @@ public enum EnumRuneType implements IStringSerializable {
public String getName() {
return this.toString();
}
}

View file

@ -0,0 +1,69 @@
package WayofTime.bloodmagic.item;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.block.BlockRitualStone;
import WayofTime.bloodmagic.util.helper.TextHelper;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import java.util.Arrays;
import java.util.List;
// TODO - NBT based damage
public class ItemInscriptionTool extends ItemBindable {
public ItemInscriptionTool() {
super();
setEnergyUsed(100);
setUnlocalizedName(Constants.Mod.MODID + ".scribe.");
setHasSubtypes(true);
}
@Override
public String getUnlocalizedName(ItemStack stack) {
return super.getUnlocalizedName(stack) + EnumRuneType.values()[stack.getItemDamage()];
}
@Override
@SideOnly(Side.CLIENT)
@SuppressWarnings("unchecked")
public void getSubItems(Item id, CreativeTabs creativeTab, List list) {
for (int i = 1; i < EnumRuneType.values().length; i++)
list.add(new ItemStack(id, 1, i));
}
@Override
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ) {
IBlockState state = world.getBlockState(pos);
if (state.getBlock() instanceof BlockRitualStone && !((BlockRitualStone)state.getBlock()).isRuneType(world, pos, getType(stack))) {
world.setBlockState(pos, state.withProperty(((BlockRitualStone) state.getBlock()).getStringProp(), getType(stack).getName()));
return true;
}
return false;
}
@Override
@SideOnly(Side.CLIENT)
@SuppressWarnings("unchecked")
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean advanced) {
list.addAll(Arrays.asList(TextHelper.cutLongString(TextHelper.localizeEffect("tooltip.BloodMagic.inscriber.desc"))));
super.addInformation(stack, player, list, advanced);
}
public EnumRuneType getType(ItemStack stack) {
return EnumRuneType.values()[stack.getItemDamage()];
}
}

View file

@ -0,0 +1,47 @@
package WayofTime.bloodmagic.item;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.util.helper.TextHelper;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import java.util.Arrays;
import java.util.List;
public class ItemSlate extends Item {
public String[] names = { "blank", "reinforced", "imbued", "demonic" };
public ItemSlate() {
super();
setCreativeTab(BloodMagic.tabBloodMagic);
setUnlocalizedName(Constants.Mod.MODID + ".slate.");
setHasSubtypes(true);
}
@Override
@SideOnly(Side.CLIENT)
@SuppressWarnings("unchecked")
public void getSubItems(Item id, CreativeTabs creativeTab, List list) {
for (int i = 0; i < names.length; i++)
list.add(new ItemStack(id, 1, i));
}
@Override
public String getUnlocalizedName(ItemStack stack) {
return super.getUnlocalizedName(stack) + names[stack.getItemDamage()];
}
@Override
@SideOnly(Side.CLIENT)
@SuppressWarnings("unchecked")
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean advanced) {
list.addAll(Arrays.asList(TextHelper.cutLongString(TextHelper.localizeEffect("tooltip.BloodMagic.slate.desc"))));
}
}

View file

@ -28,6 +28,8 @@ public class ModItems {
public static Item bucketEssence;
public static Item activationCrystal;
public static Item slate;
public static Item inscriptionTool;
public static Item sacrificialDagger;
public static Item packSelfSacrifice;
@ -65,6 +67,9 @@ public class ModItems {
bucketEssence = registerItem(new ItemBucketEssence());
activationCrystal = registerItem(new ItemActivationCrystal());
slate = registerItem(new ItemSlate());
inscriptionTool = registerItem(new ItemInscriptionTool());
BloodMagicAPI.setScribeItem(inscriptionTool);
sacrificialDagger = registerItem(new ItemSacrificialDagger());
packSacrifice = registerItem(new ItemPackSacrifice());
@ -101,6 +106,18 @@ public class ModItems {
renderHelper.itemRender(activationCrystal, 1);
renderHelper.itemRender(activationCrystal, 2, "ItemActivationCrystal0");
renderHelper.itemRender(slate, 0);
renderHelper.itemRender(slate, 1);
renderHelper.itemRender(slate, 2);
renderHelper.itemRender(slate, 3);
renderHelper.itemRender(inscriptionTool, 1);
renderHelper.itemRender(inscriptionTool, 2);
renderHelper.itemRender(inscriptionTool, 3);
renderHelper.itemRender(inscriptionTool, 4);
renderHelper.itemRender(inscriptionTool, 5);
renderHelper.itemRender(inscriptionTool, 6);
renderHelper.itemRender(sacrificialDagger, 0);
renderHelper.itemRender(sacrificialDagger, 1);
renderHelper.itemRender(packSacrifice);

View file

@ -4,6 +4,7 @@ import WayofTime.bloodmagic.api.altar.AltarRecipe;
import WayofTime.bloodmagic.api.altar.EnumAltarTier;
import WayofTime.bloodmagic.api.registry.AltarRecipeRegistry;
import WayofTime.bloodmagic.api.registry.OrbRegistry;
import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
@ -14,8 +15,31 @@ public class ModRecipes {
}
public static void addAltarRecipes() {
// ONE
AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Items.diamond), OrbRegistry.getOrbStack(ModItems.orbWeak), EnumAltarTier.ONE, 2000, 2, 1, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Blocks.stone), new ItemStack(ModItems.slate), EnumAltarTier.ONE, 1000, 5, 5, false));
// TWO
AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Items.emerald), OrbRegistry.getOrbStack(ModItems.orbApprentice), EnumAltarTier.TWO, 5000, 2, 1, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(ModItems.slate), new ItemStack(ModItems.slate, 1, 1), EnumAltarTier.TWO, 2000, 5, 5, false));
// THREE
AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Blocks.gold_block), OrbRegistry.getOrbStack(ModItems.orbMagician), EnumAltarTier.THREE, 25000, 2, 1, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(ModItems.slate, 1, 1), new ItemStack(ModItems.slate, 1, 2), EnumAltarTier.THREE, 5000, 15, 10, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Blocks.obsidian), EnumRuneType.EARTH.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Blocks.lapis_block), EnumRuneType.WATER.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Items.magma_cream), EnumRuneType.FIRE.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Items.ghast_tear), EnumRuneType.AIR.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5, false));
// FOUR
AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(ModItems.slate, 1, 2), new ItemStack(ModItems.slate, 1, 3), EnumAltarTier.FOUR, 15000, 20, 20, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Blocks.coal_block), EnumRuneType.DUSK.getScribeStack(), EnumAltarTier.FOUR, 2000, 20, 10, false));
// FIVE
AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(ModItems.slate, 1, 3), new ItemStack(ModItems.slate, 1, 4), EnumAltarTier.FIVE, 30000, 40, 100, false));
// SIX
AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(ModBlocks.crystal), OrbRegistry.getOrbStack(ModItems.orbTranscendent), EnumAltarTier.SIX, 200000, 100, 200, false));
AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Blocks.glowstone), EnumRuneType.DAWN.getScribeStack(), EnumAltarTier.SIX, 200000, 100, 200, false));
}
}

View file

@ -13,12 +13,12 @@ item.BloodMagic.pack.sacrifice.name=Coat of Arms
item.BloodMagic.bucket.lifeEssence.name=Bucket of Life
item.BloodMagic.scribe.water.name=Water Scribing Tools
item.BloodMagic.scribe.fire.name=Fire Scribing Tools
item.BloodMagic.scribe.earth.name=Earth Scribing Tools
item.BloodMagic.scribe.air.name=Air Scribing Tools
item.BloodMagic.scribe.dusk.name=Dusk Scribing Tools
item.BloodMagic.scribe.dawn.name=Dawn Scribing Tools
item.BloodMagic.scribe.water.name=Elemental Inscription Tool: Water
item.BloodMagic.scribe.fire.name=Elemental Inscription Tool: Fire
item.BloodMagic.scribe.earth.name=Elemental Inscription Tool: Earth
item.BloodMagic.scribe.air.name=Elemental Inscription Tool: Air
item.BloodMagic.scribe.dusk.name=Elemental Inscription Tool: Dusk
item.BloodMagic.scribe.dawn.name=Elemental Inscription Tool: Dawn
item.BloodMagic.focus.weak.name=Teleposition Focus
item.BloodMagic.focus.enhanced.name=Enhanced Teleposition Focus
@ -118,6 +118,8 @@ tooltip.BloodMagic.sigil.lava.desc=&oHOT! DO NOT EAT
tooltip.BloodMagic.sigil.void.desc=&oBetter than a Swiffer®!
tooltip.BloodMagic.sacrificialDagger.desc=Just a prick of the finger will suffice...
tooltip.BloodMagic.slate.desc=Infused stone inside of a Blood Altar
tooltip.BloodMagic.inscriber.desc=The writing is on the wall...
tooltip.BloodMagic.pack.selfSacrifice.desc=This pack really chafes...
tooltip.BloodMagic.pack.sacrifice.desc=Description