diff --git a/changelog.txt b/changelog.txt index b0790631..b54a3b8b 100644 --- a/changelog.txt +++ b/changelog.txt @@ -5,6 +5,7 @@ Version 2.0.0-36 - Changed the Item Routing system so that it used capabilities instead - Updated the Alchemy Table recipe system so that it can provide better custom recipes. - Added some more recipes (like rudimentary ore doubling) to the alchemy table. +- Added Explosive Powder, which is used to reduce cobblestone into gravel and gravel into sand (64 uses) ------------------------------------------------------ Version 2.0.0-35 diff --git a/src/main/java/WayofTime/bloodmagic/fuel/FuelHandler.java b/src/main/java/WayofTime/bloodmagic/fuel/FuelHandler.java new file mode 100644 index 00000000..e56aaf6f --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/fuel/FuelHandler.java @@ -0,0 +1,20 @@ +package WayofTime.bloodmagic.fuel; + +import WayofTime.bloodmagic.item.ItemComponent; +import WayofTime.bloodmagic.registry.ModItems; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fml.common.IFuelHandler; + +public class FuelHandler implements IFuelHandler +{ + @Override + public int getBurnTime(ItemStack fuel) + { + if (fuel != null && fuel.getItem() == ModItems.itemComponent && fuel.getMetadata() == ItemComponent.getStack(ItemComponent.SAND_COAL).getMetadata()) + { + return 1600; + } + + return 0; + } +} diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemComponent.java b/src/main/java/WayofTime/bloodmagic/item/ItemComponent.java index f6ef1bd5..82448e8c 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemComponent.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemComponent.java @@ -45,6 +45,9 @@ public class ItemComponent extends Item implements IVariantProvider public static final String SAND_IRON = "ironSand"; public static final String SAND_GOLD = "goldSand"; public static final String SAND_COAL = "coalSand"; + public static final String PLANT_OIL = "plantOil"; + public static final String SULFUR = "sulfur"; + public static final String SALTPETER = "saltpeter"; public ItemComponent() { @@ -81,6 +84,9 @@ public class ItemComponent extends Item implements IVariantProvider names.add(19, SAND_IRON); names.add(20, SAND_GOLD); names.add(21, SAND_COAL); + names.add(22, PLANT_OIL); + names.add(23, SULFUR); + names.add(24, SALTPETER); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/item/alchemy/ItemCuttingFluid.java b/src/main/java/WayofTime/bloodmagic/item/alchemy/ItemCuttingFluid.java index babbdc62..a4652c5c 100644 --- a/src/main/java/WayofTime/bloodmagic/item/alchemy/ItemCuttingFluid.java +++ b/src/main/java/WayofTime/bloodmagic/item/alchemy/ItemCuttingFluid.java @@ -29,6 +29,7 @@ public class ItemCuttingFluid extends Item implements IVariantProvider, ICustomA private static ArrayList names = new ArrayList(); public static final String BASIC = "basicCuttingFluid"; + public static final String EXPLOSIVE = "explosive"; public ItemCuttingFluid() { @@ -53,6 +54,7 @@ public class ItemCuttingFluid extends Item implements IVariantProvider, ICustomA private void buildItemList() { names.add(0, BASIC); + names.add(1, EXPLOSIVE); } @Override @@ -105,6 +107,8 @@ public class ItemCuttingFluid extends Item implements IVariantProvider, ICustomA { case 0: return 16; + case 1: + return 64; default: return 1; } diff --git a/src/main/java/WayofTime/bloodmagic/proxy/CommonProxy.java b/src/main/java/WayofTime/bloodmagic/proxy/CommonProxy.java index 2670849a..5580e360 100644 --- a/src/main/java/WayofTime/bloodmagic/proxy/CommonProxy.java +++ b/src/main/java/WayofTime/bloodmagic/proxy/CommonProxy.java @@ -1,16 +1,18 @@ package WayofTime.bloodmagic.proxy; -import WayofTime.bloodmagic.api.ritual.CapabilityRuneType; -import WayofTime.bloodmagic.api.ritual.IRitualStone; -import WayofTime.bloodmagic.api.teleport.TeleportQueue; -import WayofTime.bloodmagic.util.handler.EventHandler; -import WayofTime.bloodmagic.util.helper.InventoryRenderHelper; -import WayofTime.bloodmagic.util.helper.InventoryRenderHelperV2; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.capabilities.CapabilityManager; +import net.minecraftforge.fml.common.registry.GameRegistry; +import WayofTime.bloodmagic.api.ritual.CapabilityRuneType; +import WayofTime.bloodmagic.api.ritual.IRitualStone; +import WayofTime.bloodmagic.api.teleport.TeleportQueue; +import WayofTime.bloodmagic.fuel.FuelHandler; +import WayofTime.bloodmagic.util.handler.EventHandler; +import WayofTime.bloodmagic.util.helper.InventoryRenderHelper; +import WayofTime.bloodmagic.util.helper.InventoryRenderHelperV2; public class CommonProxy { @@ -29,6 +31,7 @@ public class CommonProxy { MinecraftForge.EVENT_BUS.register(new EventHandler()); MinecraftForge.EVENT_BUS.register(TeleportQueue.getInstance()); + GameRegistry.registerFuelHandler(new FuelHandler()); registerRenderers(); } diff --git a/src/main/java/WayofTime/bloodmagic/registry/ModItems.java b/src/main/java/WayofTime/bloodmagic/registry/ModItems.java index c06bfd96..c68bc42f 100644 --- a/src/main/java/WayofTime/bloodmagic/registry/ModItems.java +++ b/src/main/java/WayofTime/bloodmagic/registry/ModItems.java @@ -4,6 +4,7 @@ import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.Item; import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.util.EnumHelper; +import net.minecraftforge.fml.common.IFuelHandler; import net.minecraftforge.fml.common.registry.GameRegistry; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.ConfigHandler; @@ -187,7 +188,7 @@ public class ModItems ritualReader = registerItem(new ItemRitualReader(), Constants.BloodMagicItem.RITUAL_READER.getRegName()); lavaCrystal = registerItem(new ItemLavaCrystal(), Constants.BloodMagicItem.LAVA_CRYSTAL.getRegName()); - GameRegistry.registerFuelHandler(new ItemLavaCrystal()); + GameRegistry.registerFuelHandler((IFuelHandler) lavaCrystal); boundSword = registerItem(new ItemBoundSword(), Constants.BloodMagicItem.BOUND_SWORD.getRegName()); boundPickaxe = registerItem(new ItemBoundPickaxe(), Constants.BloodMagicItem.BOUND_PICKAXE.getRegName()); diff --git a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java index 27daeb04..a1201f8e 100644 --- a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java +++ b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java @@ -283,16 +283,31 @@ public class ModRecipes AlchemyTableRecipeRegistry.registerRecipe(new ItemStack(Items.FLINT, 2), 0, 20, 0, Blocks.GRAVEL, Items.FLINT); AlchemyTableRecipeRegistry.registerRecipe(new ItemStack(Items.LEATHER, 4), 100, 200, 1, Items.ROTTEN_FLESH, Items.ROTTEN_FLESH, Items.ROTTEN_FLESH, Items.ROTTEN_FLESH, Items.FLINT, Items.WATER_BUCKET); + AlchemyTableRecipeRegistry.registerRecipe(ItemCuttingFluid.getStack(ItemCuttingFluid.EXPLOSIVE), 500, 200, 1, Items.GUNPOWDER, Items.GUNPOWDER, "dustCoal"); + AlchemyTableRecipeRegistry.registerRecipe(new ItemStack(Items.BREAD), 100, 200, 1, Items.WHEAT, Items.SUGAR); AlchemyTableRecipeRegistry.registerRecipe(new ItemStack(Blocks.GRASS), 200, 200, 1, Blocks.DIRT, new ItemStack(Items.DYE, 1, 15), Items.WHEAT_SEEDS); - AlchemyTableRecipeRegistry.registerRecipe(new ItemStack(Blocks.SAND, 2), 50, 50, 1, "cobblestone", Items.GUNPOWDER); AlchemyTableRecipeRegistry.registerRecipe(new ItemStack(Items.CLAY_BALL, 4), 50, 100, 2, Items.WATER_BUCKET, "sand"); AlchemyTableRecipeRegistry.registerRecipe(new ItemStack(Blocks.CLAY, 5), 200, 200, 1, Items.WATER_BUCKET, Blocks.HARDENED_CLAY, Blocks.HARDENED_CLAY, Blocks.HARDENED_CLAY, Blocks.HARDENED_CLAY, Blocks.HARDENED_CLAY); AlchemyTableRecipeRegistry.registerRecipe(new ItemStack(Blocks.OBSIDIAN), 50, 50, 1, Items.WATER_BUCKET, Items.LAVA_BUCKET); - AlchemyTableRecipeRegistry.registerRecipe(ItemCuttingFluid.getStack(ItemCuttingFluid.BASIC), 1000, 400, 1, "dustCoal", Items.GUNPOWDER, Items.REDSTONE, Items.SUGAR, Items.WHEAT, new ItemStack(Items.POTIONITEM)); + AlchemyTableRecipeRegistry.registerRecipe(ItemComponent.getStack(ItemComponent.SULFUR, 8), 0, 100, 0, Items.LAVA_BUCKET); + AlchemyTableRecipeRegistry.registerRecipe(ItemComponent.getStack(ItemComponent.SALTPETER, 4), 0, 100, 0, ItemComponent.getStack(ItemComponent.PLANT_OIL), ItemComponent.getStack(ItemComponent.PLANT_OIL), "dustCoal"); + AlchemyTableRecipeRegistry.registerRecipe(new ItemStack(Items.GUNPOWDER, 3), 0, 100, 0, ItemComponent.getStack(ItemComponent.SALTPETER), ItemComponent.getStack(ItemComponent.SULFUR), new ItemStack(Items.COAL, 1, 1)); - AlchemyTableRecipeRegistry.registerRecipe(new AlchemyTableCustomRecipe(ItemComponent.getStack(ItemComponent.SAND_IRON, 2), 100, 200, 1, "oreIron", ItemCuttingFluid.getStack(ItemCuttingFluid.BASIC))); - AlchemyTableRecipeRegistry.registerRecipe(new AlchemyTableCustomRecipe(ItemComponent.getStack(ItemComponent.SAND_GOLD, 2), 100, 200, 1, "oreGold", ItemCuttingFluid.getStack(ItemCuttingFluid.BASIC))); + AlchemyTableRecipeRegistry.registerRecipe(new AlchemyTableCustomRecipe(ItemComponent.getStack(ItemComponent.SAND_COAL, 4), 100, 100, 1, new ItemStack(Items.COAL, 1, 0), new ItemStack(Items.COAL, 1, 0), Items.FLINT)); + + AlchemyTableRecipeRegistry.registerRecipe(ItemCuttingFluid.getStack(ItemCuttingFluid.BASIC), 1000, 400, 1, "dustCoal", Items.GUNPOWDER, Items.REDSTONE, Items.SUGAR, ItemComponent.getStack(ItemComponent.PLANT_OIL), new ItemStack(Items.POTIONITEM)); + + AlchemyTableRecipeRegistry.registerRecipe(new AlchemyTableCustomRecipe(ItemComponent.getStack(ItemComponent.SAND_IRON, 2), 400, 200, 1, "oreIron", ItemCuttingFluid.getStack(ItemCuttingFluid.BASIC))); + AlchemyTableRecipeRegistry.registerRecipe(new AlchemyTableCustomRecipe(ItemComponent.getStack(ItemComponent.SAND_GOLD, 2), 400, 200, 1, "oreGold", ItemCuttingFluid.getStack(ItemCuttingFluid.BASIC))); + + AlchemyTableRecipeRegistry.registerRecipe(new AlchemyTableCustomRecipe(new ItemStack(Blocks.GRAVEL), 50, 50, 1, "cobblestone", ItemCuttingFluid.getStack(ItemCuttingFluid.EXPLOSIVE))); + AlchemyTableRecipeRegistry.registerRecipe(new AlchemyTableCustomRecipe(new ItemStack(Blocks.SAND), 50, 50, 1, Blocks.GRAVEL, ItemCuttingFluid.getStack(ItemCuttingFluid.EXPLOSIVE))); + + AlchemyTableRecipeRegistry.registerRecipe(ItemComponent.getStack(ItemComponent.PLANT_OIL), 100, 100, 1, Items.CARROT, Items.CARROT, Items.CARROT, new ItemStack(Items.DYE, 1, 15)); + AlchemyTableRecipeRegistry.registerRecipe(ItemComponent.getStack(ItemComponent.PLANT_OIL), 100, 100, 1, Items.POTATO, Items.POTATO, new ItemStack(Items.DYE, 1, 15)); + AlchemyTableRecipeRegistry.registerRecipe(ItemComponent.getStack(ItemComponent.PLANT_OIL), 100, 100, 1, Items.WHEAT, Items.WHEAT, new ItemStack(Items.DYE, 1, 15)); + AlchemyTableRecipeRegistry.registerRecipe(ItemComponent.getStack(ItemComponent.PLANT_OIL), 100, 100, 1, Items.BEETROOT, Items.BEETROOT, Items.BEETROOT, new ItemStack(Items.DYE, 1, 15)); } } diff --git a/src/main/resources/assets/bloodmagic/blockstates/item/ItemComponent.json b/src/main/resources/assets/bloodmagic/blockstates/item/ItemComponent.json index 86f945a7..2c5d025a 100644 --- a/src/main/resources/assets/bloodmagic/blockstates/item/ItemComponent.json +++ b/src/main/resources/assets/bloodmagic/blockstates/item/ItemComponent.json @@ -115,6 +115,21 @@ "textures": { "layer0": "bloodmagic:items/CoalSand" } + }, + "plantoil": { + "textures": { + "layer0": "bloodmagic:items/PlantOil" + } + }, + "sulfur": { + "textures": { + "layer0": "bloodmagic:items/Sulfur" + } + }, + "saltpeter": { + "textures": { + "layer0": "bloodmagic:items/Saltpeter" + } } } } diff --git a/src/main/resources/assets/bloodmagic/blockstates/item/ItemCuttingFluid.json b/src/main/resources/assets/bloodmagic/blockstates/item/ItemCuttingFluid.json index db08b18a..fbd1ac61 100644 --- a/src/main/resources/assets/bloodmagic/blockstates/item/ItemCuttingFluid.json +++ b/src/main/resources/assets/bloodmagic/blockstates/item/ItemCuttingFluid.json @@ -10,7 +10,12 @@ "textures": { "layer0": "bloodmagic:items/BasicCuttingFluid" } - } + }, + "explosive": { + "textures": { + "layer0": "bloodmagic:items/ExplosivePowder" + } + } } } } diff --git a/src/main/resources/assets/bloodmagic/lang/en_US.lang b/src/main/resources/assets/bloodmagic/lang/en_US.lang index 3c8c1755..0b004dcb 100644 --- a/src/main/resources/assets/bloodmagic/lang/en_US.lang +++ b/src/main/resources/assets/bloodmagic/lang/en_US.lang @@ -90,8 +90,12 @@ item.BloodMagic.baseComponent.reagentTransposition.name=Transposition Reagent item.BloodMagic.baseComponent.ironSand.name=Iron Sand item.BloodMagic.baseComponent.goldSand.name=Gold Sand item.BloodMagic.baseComponent.coalSand.name=Coal Sand +item.BloodMagic.baseComponent.plantOil.name=Plant Oil +item.BloodMagic.baseComponent.sulfur.name=Sulfur +item.BloodMagic.baseComponent.saltpeter.name=Saltpeter item.BloodMagic.cuttingFluid.basicCuttingFluid.name=Basic Cutting Fluid +item.BloodMagic.cuttingFluid.explosive.name=Explosive Powder item.BloodMagic.demonCrystal.crystalDefault.name=Demon Will Crystal item.BloodMagic.demonCrystal.crystalCorrosive.name=Corrosive Will Crystal diff --git a/src/main/resources/assets/bloodmagic/lang/zh_CN.lang b/src/main/resources/assets/bloodmagic/lang/zh_CN.lang index 6a653adf..11a057c8 100644 --- a/src/main/resources/assets/bloodmagic/lang/zh_CN.lang +++ b/src/main/resources/assets/bloodmagic/lang/zh_CN.lang @@ -87,6 +87,14 @@ item.BloodMagic.baseComponent.reagentSeverance.name=隔绝试剂 item.BloodMagic.baseComponent.reagentTeleposition.name=传送试剂 item.BloodMagic.baseComponent.reagentTransposition.name=移位试剂 +item.BloodMagic.baseComponent.ironSand.name=铁矿砂 +item.BloodMagic.baseComponent.goldSand.name=金矿砂 +item.BloodMagic.baseComponent.coalSand.name=煤矿砂 +item.BloodMagic.baseComponent.plantOil.name=植物油 + +item.BloodMagic.cuttingFluid.basicCuttingFluid.name=基础切削油 +item.BloodMagic.cuttingFluid.explosive.name=爆炸火药 + item.BloodMagic.demonCrystal.crystalDefault.name=邪灵魂魄晶体 item.BloodMagic.demonCrystal.crystalCorrosive.name=腐蚀魂魄晶体 item.BloodMagic.demonCrystal.crystalDestructive.name=恶意魂魄晶体 @@ -137,11 +145,11 @@ item.BloodMagic.upgradeTome.name=束灵盔甲强化手册 item.BloodMagic.upgradeTrainer.name=束灵盔甲训练手镯 item.BloodMagic.sentientSword.name=感知之剑 -item.BloodMagic.soulGem.petty.name=[微小]醇酒之晶 -item.BloodMagic.soulGem.lesser.name=[细块]醇酒之晶 -item.BloodMagic.soulGem.common.name=[普通]醇酒之晶 -item.BloodMagic.soulGem.greater.name=[较大]醇酒之晶 -item.BloodMagic.soulGem.grand.name=[精制]醇酒之晶 +item.BloodMagic.soulGem.petty.name=[微小]冥界宝石 +item.BloodMagic.soulGem.lesser.name=[细块]冥界宝石 +item.BloodMagic.soulGem.common.name=[普通]冥界宝石 +item.BloodMagic.soulGem.greater.name=[较大]冥界宝石 +item.BloodMagic.soulGem.grand.name=[精制]冥界宝石 item.BloodMagic.soulSnare.base.name=原始投网 item.BloodMagic.sentientBow.name=感知之弓 item.BloodMagic.sentientArmourGem.name=感知盔甲宝石 @@ -195,9 +203,10 @@ tile.BloodMagic.incenseAltar.name=熏香祭坛 tile.BloodMagic.teleposer.name=传送器 tile.BloodMagic.soulForge.name=狱火熔炉 -tile.BloodMagic.demonCrucible.name=恶魔坩埚 -tile.BloodMagic.demonPylon.name=恶魔集能塔 -tile.BloodMagic.demonCrystallizer.name=恶魔结晶坛 +tile.BloodMagic.alchemyTable.name=炼金术桌 +tile.BloodMagic.demonCrucible.name=邪灵坩埚 +tile.BloodMagic.demonPylon.name=邪灵导能塔 +tile.BloodMagic.demonCrystallizer.name=邪灵结晶坛 tile.BloodMagic.masterRouting.name=主路由节点 tile.BloodMagic.outputRouting.name=输出路由节点 @@ -335,6 +344,7 @@ tooltip.BloodMagic.livingArmour.upgrade.fallProtect=柔和落叶 tooltip.BloodMagic.livingArmour.upgrade.graveDigger=掘墓者 tooltip.BloodMagic.livingArmour.upgrade.sprintAttack=冲撞击打 tooltip.BloodMagic.livingArmour.upgrade.criticalStrike=精准击打 +tooltip.BloodMagic.livingArmour.upgrade.elytra=鞘翅 tooltip.BloodMagic.livingArmour.upgrade.level=%s (Level %d) tooltip.BloodMagic.livingArmour.upgrade.points=&6强化点数: %s / %s @@ -369,8 +379,10 @@ tooltip.BloodMagic.experienceTome=用于储存经验的书 tooltip.BloodMagic.experienceTome.exp=经验值: %0.3f tooltip.BloodMagic.experienceTome.expLevel=等级: %d -tooltip.BloodMagic.decoration.safe=Safe for decoration -tooltip.BloodMagic.decoration.notSafe=Dangerous for decoration +tooltip.BloodMagic.decoration.safe=安全装潢 +tooltip.BloodMagic.decoration.notSafe=危险装潢 + +tooltip.BloodMagic.cuttingFluidRatio=%d/%d 所剩可用 # Ritual ritual.BloodMagic.blockRange.tooBig=提供的方块范围过大! 最多不超过 %s 个方块. @@ -409,7 +421,7 @@ ritual.BloodMagic.placerRitual=铺设仪式 ritual.BloodMagic.fellingRitual=伐林仪式 ritual.BloodMagic.pumpRitual=虹吸圣曲 ritual.BloodMagic.altarBuilderRitual=祭坛集结号 -ritual.BloodMagic.portalRitual=折域大门 +ritual.BloodMagic.portalRitual=折域之门 ritual.BloodMagic.waterRitual.info=通过主仪式石生成一个水源方块. @@ -559,12 +571,15 @@ jei.BloodMagic.recipe.altar=血之祭坛 jei.BloodMagic.recipe.binding=炼金矩阵 (绑定) jei.BloodMagic.recipe.alchemyArrayCrafting=炼金矩阵 jei.BloodMagic.recipe.soulForge=狱火熔炉 +jei.BloodMagic.recipe.alchemyTable=炼金术桌 jei.BloodMagic.recipe.requiredLP=LP: %,d jei.BloodMagic.recipe.requiredTier=层级: %d jei.BloodMagic.recipe.consumptionRate=消耗率: %,d LP/t jei.BloodMagic.recipe.drainRate=消耗率: %,d LP/t -jei.BloodMagic.recipe.minimumSouls=Minimum: %1$,.2f Will -jei.BloodMagic.recipe.soulsDrained=Drained: %1$,.2f Will +jei.BloodMagic.recipe.minimumSouls=最小值: %1$,.2f Will +jei.BloodMagic.recipe.soulsDrained=消耗: %1$,.2f Will +jei.BloodMagic.recipe.lpDrained=消耗: %,d LP +jei.BloodMagic.recipe.ticksRequired=时间: %,d 刻 jei.BloodMagic.desc.altarBuilder=该物品仅限创造模式,用于调试测试.\n\nShift + 右键 改变层级. 右键祭坛开始搭建.\n\n手持破坏祭坛时将全部移除. jei.BloodMagic.desc.demonicWill=一个由恶魔附身于生物而形成的纹刻.\n\n可以通过用感知武器杀死生物掉落, 或是对着生物抛掷原始投网, 当它出现白色颗粒时杀了它. @@ -585,4 +600,4 @@ tc.research_category.BLOODMAGIC=血红奥术 # Thaumcraft Research bloodmagic.research_name.BLOODMAGIC=血魔法 bloodmagic.research_text.BLOODMAGIC=血红奥术 -bloodmagic.research_page.BLOODMAGIC.1=The realm of the Blood Magics has always appeared to be a more solitary and "individual" art with blood mages being notoriously reclusive and a bit insane at times. However, the powers of self-sacrifice and life essence have uses even beyond a normal blood mage's sight, in fact, it is quite apparent that it may have some uses in thaumaturgy after all! +bloodmagic.research_page.BLOODMAGIC.1=血魔法的领域总是似乎有些孤立且像是"个人"艺术, 同众所周知的喜爱隐居有时还有点疯癫的血魔法师. 然而, 自我牺牲与生命本质的力量甚至拥有超出一般血魔法师所见的用途, 事实上, 这种力量显然终究能应用于神秘学.