From 5b74679a72c28c9a5f58828b7429a3dcef0da640 Mon Sep 17 00:00:00 2001 From: Tombenpotter Date: Sat, 20 Sep 2014 12:38:57 +0200 Subject: [PATCH] Release version 1.1.0 --- Changelog.txt | 3 ++ build.gradle | 2 +- .../tombenpotter/sanguimancy/Sanguimancy.java | 2 +- .../sanguimancy/blocks/ItemBlockIllusion.java | 12 ++++++ .../items/ItemSoulCorruptionTest.java | 4 ++ .../sanguimancy/registry/BlocksRegistry.java | 2 +- .../sanguimancy/registry/RecipesRegistry.java | 14 ++++--- .../util/SanguimancyItemStacks.java | 38 ++++++++++++++++++ .../assets/sanguimancy/lang/en_US.lang | 13 +++--- .../textures/items/AddSoulCorruption.png | Bin 0 -> 3337 bytes .../textures/items/NegateSoulCorruption.png | Bin 0 -> 3339 bytes .../textures/items/RemoveSoulCorruption.png | Bin 0 -> 3329 bytes .../textures/items/SoulCorruptionReader.png | Bin 0 -> 3341 bytes 13 files changed, 75 insertions(+), 15 deletions(-) create mode 100644 src/main/java/tombenpotter/sanguimancy/util/SanguimancyItemStacks.java create mode 100644 src/main/resources/assets/sanguimancy/textures/items/AddSoulCorruption.png create mode 100644 src/main/resources/assets/sanguimancy/textures/items/NegateSoulCorruption.png create mode 100644 src/main/resources/assets/sanguimancy/textures/items/RemoveSoulCorruption.png create mode 100644 src/main/resources/assets/sanguimancy/textures/items/SoulCorruptionReader.png diff --git a/Changelog.txt b/Changelog.txt index 9b30b70..ee5de03 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,3 +1,6 @@ +Version 1.10: +Added the textures for the Soul Corruption stuff. Also added a utils class, so that I can easily access itemstacks. + Version 1.1.0-Pre4: The worst Soul Corruption effect removes a bit of corruption every time it happens. That is to say, a 1/5000 chance. Added a new effect, illusion. diff --git a/build.gradle b/build.gradle index d69f7bc..95da7cc 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ buildscript { apply plugin: 'forge' -version = "1.7.10-1.1.0-Pre4" +version = "1.7.10-1.1.0" group= "" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "Sanguimancy" diff --git a/src/main/java/tombenpotter/sanguimancy/Sanguimancy.java b/src/main/java/tombenpotter/sanguimancy/Sanguimancy.java index 6bd4637..1b81a36 100644 --- a/src/main/java/tombenpotter/sanguimancy/Sanguimancy.java +++ b/src/main/java/tombenpotter/sanguimancy/Sanguimancy.java @@ -61,7 +61,7 @@ public void load(FMLInitializationEvent event) { FMLCommonHandler.instance().bus().register(new EventHandler()); MinecraftForge.EVENT_BUS.register(new EventHandler()); PacketHandler.registerPackets(); - RitualRegistry.addToWoSBlacklist(); + // RitualRegistry.addToWoSBlacklist(); } @Mod.EventHandler diff --git a/src/main/java/tombenpotter/sanguimancy/blocks/ItemBlockIllusion.java b/src/main/java/tombenpotter/sanguimancy/blocks/ItemBlockIllusion.java index de2f2b6..f95245b 100644 --- a/src/main/java/tombenpotter/sanguimancy/blocks/ItemBlockIllusion.java +++ b/src/main/java/tombenpotter/sanguimancy/blocks/ItemBlockIllusion.java @@ -1,8 +1,14 @@ package tombenpotter.sanguimancy.blocks; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; + +import java.util.List; public class ItemBlockIllusion extends ItemBlock { @@ -89,4 +95,10 @@ public String getUnlocalizedName(ItemStack stack) { public int getMetadata(int par1) { return par1; } + + @SideOnly(Side.CLIENT) + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean p_77624_4_) { + list.add(StatCollector.translateToLocal("info.Sanguimancy.tooltip.illusion")); + } } diff --git a/src/main/java/tombenpotter/sanguimancy/items/ItemSoulCorruptionTest.java b/src/main/java/tombenpotter/sanguimancy/items/ItemSoulCorruptionTest.java index ef33a4c..e807471 100644 --- a/src/main/java/tombenpotter/sanguimancy/items/ItemSoulCorruptionTest.java +++ b/src/main/java/tombenpotter/sanguimancy/items/ItemSoulCorruptionTest.java @@ -57,6 +57,10 @@ public String getUnlocalizedName(ItemStack itemstack) { @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister ri) { + this.icon[0] = ri.registerIcon(Sanguimancy.texturePath + ":AddSoulCorruption"); + this.icon[1] = ri.registerIcon(Sanguimancy.texturePath + ":RemoveSoulCorruption"); + this.icon[2] = ri.registerIcon(Sanguimancy.texturePath + ":NegateSoulCorruption"); + this.icon[3] = ri.registerIcon(Sanguimancy.texturePath + ":SoulCorruptionReader"); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/tombenpotter/sanguimancy/registry/BlocksRegistry.java b/src/main/java/tombenpotter/sanguimancy/registry/BlocksRegistry.java index 1a1c2be..ebaed2b 100644 --- a/src/main/java/tombenpotter/sanguimancy/registry/BlocksRegistry.java +++ b/src/main/java/tombenpotter/sanguimancy/registry/BlocksRegistry.java @@ -24,6 +24,6 @@ public static void registerBlocks() { GameRegistry.registerBlock(sacrificeTransfer, "BlockSacrificeTransfer").setBlockName(Sanguimancy.modid + ".sacrificeTransfer"); illusion = new BlockIllusion(Material.iron); - GameRegistry.registerBlock(illusion, ItemBlockIllusion.class, "BlockIllusion").setBlockName(Sanguimancy.modid + ".illusion").setLightLevel(1.5F); + GameRegistry.registerBlock(illusion, ItemBlockIllusion.class, "BlockIllusion").setBlockName(Sanguimancy.modid + ".illusion").setLightLevel(1F); } } diff --git a/src/main/java/tombenpotter/sanguimancy/registry/RecipesRegistry.java b/src/main/java/tombenpotter/sanguimancy/registry/RecipesRegistry.java index f7e9d06..10cffc4 100644 --- a/src/main/java/tombenpotter/sanguimancy/registry/RecipesRegistry.java +++ b/src/main/java/tombenpotter/sanguimancy/registry/RecipesRegistry.java @@ -8,20 +8,22 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; +import tombenpotter.sanguimancy.util.SanguimancyItemStacks; public class RecipesRegistry { public static void registerShapedRecipes() { - GameRegistry.addShapedRecipe(new ItemStack(BlocksRegistry.altarEmitter), "XYX", "XZX", "XXX", 'X', Blocks.redstone_block, 'Y', Blocks.lever, 'Z', ModBlocks.blockAltar); - GameRegistry.addShapedRecipe(new ItemStack(BlocksRegistry.sacrificeTransfer), "XAX", "YZY", "XYX", 'X', new ItemStack(ModItems.demonicSlate), 'A', new ItemStack(ModItems.lavaCrystal), 'Y', new ItemStack(Items.diamond), 'Z', new ItemStack(Blocks.heavy_weighted_pressure_plate)); + GameRegistry.addShapedRecipe(SanguimancyItemStacks.altarEmitter, "XYX", "XZX", "XXX", 'X', Blocks.redstone_block, 'Y', Blocks.lever, 'Z', ModBlocks.blockAltar); + GameRegistry.addShapedRecipe(SanguimancyItemStacks.sacrificeTransferrer, "XAX", "YZY", "XYX", 'X', new ItemStack(ModItems.demonicSlate), 'A', new ItemStack(ModItems.lavaCrystal), 'Y', new ItemStack(Items.diamond), 'Z', new ItemStack(Blocks.heavy_weighted_pressure_plate)); + GameRegistry.addShapedRecipe(SanguimancyItemStacks.corruptionReader, "AXA", "ZYB", "AXA", 'X', Blocks.soul_sand, 'Y', new ItemStack(ModItems.divinationSigil), 'Z', new ItemStack(Items.skull, 1, 1), 'A', Blocks.nether_brick, 'B', Items.ender_eye); } public static void registerAltarRecipes() { - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(BlocksRegistry.altarDiviner), new ItemStack(ModBlocks.blockAltar), 3, 3000, 10, 10, false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ItemsRegistry.playerSacrificer, 1, 1), new ItemStack(ItemsRegistry.playerSacrificer, 1, 0), 5, 30000, 10, 10, false); + AltarRecipeRegistry.registerAltarRecipe(SanguimancyItemStacks.altarDiviner, new ItemStack(ModBlocks.blockAltar), 3, 3000, 10, 10, false); + AltarRecipeRegistry.registerAltarRecipe(SanguimancyItemStacks.attunnedPlayerSacrificer, SanguimancyItemStacks.unattunedPlayerSacrificer, 5, 30000, 10, 10, false); } public static void registerOrbRecipes() { - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ItemsRegistry.playerSacrificer, 1, 0), "XYX", "YOY", "XYX", 'X', new ItemStack(ModItems.demonicSlate), 'Y', new ItemStack(ModBlocks.emptySocket), 'O', new ItemStack(ModItems.archmageBloodOrb))); + GameRegistry.addRecipe(new ShapedBloodOrbRecipe(SanguimancyItemStacks.unattunedPlayerSacrificer, "XYX", "YOY", "XYX", 'X', new ItemStack(ModItems.demonicSlate), 'Y', new ItemStack(ModBlocks.emptySocket), 'O', new ItemStack(ModItems.archmageBloodOrb))); } -} +} \ No newline at end of file diff --git a/src/main/java/tombenpotter/sanguimancy/util/SanguimancyItemStacks.java b/src/main/java/tombenpotter/sanguimancy/util/SanguimancyItemStacks.java new file mode 100644 index 0000000..bfb0b88 --- /dev/null +++ b/src/main/java/tombenpotter/sanguimancy/util/SanguimancyItemStacks.java @@ -0,0 +1,38 @@ +package tombenpotter.sanguimancy.util; + +import net.minecraft.item.ItemStack; +import tombenpotter.sanguimancy.registry.BlocksRegistry; +import tombenpotter.sanguimancy.registry.ItemsRegistry; + +public class SanguimancyItemStacks { + + // Items + public static ItemStack unattunedPlayerSacrificer = new ItemStack(ItemsRegistry.playerSacrificer, 1, 0); + public static ItemStack attunnedPlayerSacrificer = new ItemStack(ItemsRegistry.playerSacrificer, 1, 1); + public static ItemStack focusedPlayerSacrificer = new ItemStack(ItemsRegistry.playerSacrificer, 1, 2); + public static ItemStack addCorruption = new ItemStack(ItemsRegistry.soulCorruptionTest, 1, 0); + public static ItemStack removeCorruption = new ItemStack(ItemsRegistry.soulCorruptionTest, 1, 1); + public static ItemStack negateCorruption = new ItemStack(ItemsRegistry.soulCorruptionTest, 1, 2); + public static ItemStack corruptionReader = new ItemStack(ItemsRegistry.soulCorruptionTest, 1, 3); + + // Blocks + public static ItemStack altarEmitter = new ItemStack(BlocksRegistry.altarEmitter); + public static ItemStack altarDiviner = new ItemStack(BlocksRegistry.altarDiviner); + public static ItemStack sacrificeTransferrer = new ItemStack(BlocksRegistry.sacrificeTransfer); + public static ItemStack diamondOreIllusion = new ItemStack(BlocksRegistry.illusion, 1, 0); + public static ItemStack diamondBlockIllusion = new ItemStack(BlocksRegistry.illusion, 1, 1); + public static ItemStack glowstoneIllusion = new ItemStack(BlocksRegistry.illusion, 1, 2); + public static ItemStack netherrackIllusion = new ItemStack(BlocksRegistry.illusion, 1, 3); + public static ItemStack quartzOreIllusion = new ItemStack(BlocksRegistry.illusion, 1, 4); + public static ItemStack endStoneIllusion = new ItemStack(BlocksRegistry.illusion, 1, 5); + public static ItemStack pinkWoolIllusion = new ItemStack(BlocksRegistry.illusion, 1, 6); + public static ItemStack lavaIllusion = new ItemStack(BlocksRegistry.illusion, 1, 7); + public static ItemStack jackOLanternIllusion = new ItemStack(BlocksRegistry.illusion, 1, 8); + public static ItemStack bedrockIllusion = new ItemStack(BlocksRegistry.illusion, 1, 9); + public static ItemStack obsidianIllusion = new ItemStack(BlocksRegistry.illusion, 1, 10); + public static ItemStack glassIllusion = new ItemStack(BlocksRegistry.illusion, 1, 11); + public static ItemStack snowIllusion = new ItemStack(BlocksRegistry.illusion, 1, 12); + public static ItemStack melonIllusion = new ItemStack(BlocksRegistry.illusion, 1, 13); + public static ItemStack goldBlockIllusion = new ItemStack(BlocksRegistry.illusion, 1, 14); + public static ItemStack clayIllusion = new ItemStack(BlocksRegistry.illusion, 1, 15); +} diff --git a/src/main/resources/assets/sanguimancy/lang/en_US.lang b/src/main/resources/assets/sanguimancy/lang/en_US.lang index 0f033b2..8f7c57b 100644 --- a/src/main/resources/assets/sanguimancy/lang/en_US.lang +++ b/src/main/resources/assets/sanguimancy/lang/en_US.lang @@ -1,7 +1,7 @@ #Blocks tile.Sanguimancy.altarDiviner.name=Altar Diviner tile.Sanguimancy.altarEmitter.name=Altar Emitter -tile.Sanguimancy.sacrificeTransfer.name=Sacrifice Transferrer +tile.Sanguimancy.sacrificeTransfer.name=Soul Transferrer tile.Sanguimancy.illusion.diamond.ore.name=Diamond Ore tile.Sanguimancy.illusion.diamond.block.name=Diamond Block tile.Sanguimancy.illusion.glowstone.name=Glowstone @@ -20,13 +20,13 @@ tile.Sanguimancy.illusion.gold.block.name=Gold Block tile.Sanguimancy.illusion.clay.name=Clay #Items -item.Sanguimancy.playerSacrificer.unattuned.name=Unattuned Player Sacrifice Stone -item.Sanguimancy.playerSacrificer.attuned.name=Attuned Player Sacrifice Stone -item.Sanguimancy.playerSacrificer.focused.name=Focused Player Sacrifice Stone +item.Sanguimancy.playerSacrificer.unattuned.name=Unattuned Player Sacrificing Stone +item.Sanguimancy.playerSacrificer.attuned.name=Attuned Player Sacrificing Stone +item.Sanguimancy.playerSacrificer.focused.name=Focused Player Sacrificing Stone item.Sanguimancy.soulCorruption.add.name=Add Soul Corruption item.Sanguimancy.soulCorruption.remove.name=Remove Soul Corruption item.Sanguimancy.soulCorruption.negate.name=Negate Soul Corruption -item.Sanguimancy.soulCorruption.reader.name=Read Corruption Level +item.Sanguimancy.soulCorruption.reader.name=Soul Corruption Reader #Creative Tab itemGroup.tabSanguimancy=Sanguimancy @@ -50,4 +50,5 @@ info.Sanguimancy.tooltip.sacrifice.transfer=Do not have your dirty work done by info.Sanguimancy.tooltip.sacrifice.player.owner=Blood owner info.Sanguimancy.tooltip.sacrifice.player.stolen=LP stolen info.Sanguimancy.tooltip.sacrifice.player.thief=Thief name -info.Sanguimancy.tooltip.creative.only=Creative Only \ No newline at end of file +info.Sanguimancy.tooltip.creative.only=Creative Only +info.Sanguimancy.tooltip.illusion=The block is a lie. \ No newline at end of file diff --git a/src/main/resources/assets/sanguimancy/textures/items/AddSoulCorruption.png b/src/main/resources/assets/sanguimancy/textures/items/AddSoulCorruption.png new file mode 100644 index 0000000000000000000000000000000000000000..0f6178bdf58195fd89540f61dccd5f48feba9b2c GIT binary patch literal 3337 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 V;C$#0mx%xX002ovPDHLkV1gbzGl&2H literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/sanguimancy/textures/items/RemoveSoulCorruption.png b/src/main/resources/assets/sanguimancy/textures/items/RemoveSoulCorruption.png new file mode 100644 index 0000000000000000000000000000000000000000..f87b3cbaa4b33b584c340f1da3ae887e39e16f07 GIT binary patch literal 3329 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 XoJr=5g^6#900000NkvXXu0mjfIl(%- literal 0 HcmV?d00001