Inscription Tools and Slates
This commit is contained in:
parent
437dc1b96e
commit
7dd170e5ad
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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()];
|
||||
}
|
||||
}
|
47
src/main/java/WayofTime/bloodmagic/item/ItemSlate.java
Normal file
47
src/main/java/WayofTime/bloodmagic/item/ItemSlate.java
Normal 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"))));
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue