diff --git a/build.properties b/build.properties index f9e660c2..4a8a5abc 100644 --- a/build.properties +++ b/build.properties @@ -4,5 +4,5 @@ mantle_version=0.3.1.jenkins176 CCLIB_version=1.1.1.95 NEI_version=1.0.2.15 ccc_version=1.0.2.9 -mod_version=1.7.0 +mod_version=1.7.1 waila_version=1.5.3_1.7.10 \ No newline at end of file diff --git a/resources/assets/tinker/lang/en_US.lang b/resources/assets/tinker/lang/en_US.lang index ca784165..5e6d70e0 100644 --- a/resources/assets/tinker/lang/en_US.lang +++ b/resources/assets/tinker/lang/en_US.lang @@ -544,27 +544,6 @@ death.four.smeltery=%1$s thought swimming in hot liquids was a good idea death.attack.Landmine=%1$s watched their legs get blown off by a landmine death.attack.FireworkExplode=%1$s was torn apart by a wild firework explosion -parttype.wood=Wooden -parttype.stone=Stone -parttype.iron=Iron -parttype.flint=Flint -parttype.cactus=Cactus -parttype.bone=Bone -parttype.obsidian=Obsidian -parttype.slime=Slime -parttype.paper=Paper -parttype.netherrack=Netherrack -parttype.cobalt=Cobalt -parttype.ardite=Ardite -parttype.manyullyn=Manyullyn -parttype.copper=Copper -parttype.bronze=Bronze -parttype.alumite=Alumite -parttype.steel=Steel -parttype.blueslime=Slime -parttype.thaumium=Thaumium -parttype.pigiron=Pig Iron - toolpart.ToolRod=%%material Tool Rod toolpart.PickaxeHead=%%material Pickaxe Head toolpart.ShovelHead=%%material Shovel Head @@ -594,6 +573,8 @@ toolpart.Fletching=%%material Fletching # Now with translations of specific material and part combinations: #toolpart.ToolRod.wood=Wooden Tool Rod +# If only the material part has to be specific, you can use this +#toolpart.material.wood=Wooden fluid.iron.molten=Molten Iron fluid.gold.molten=Molten Gold diff --git a/resources/assets/tinker/lang/ru_RU.lang b/resources/assets/tinker/lang/ru_RU.lang index 95904c7f..1c82640d 100644 --- a/resources/assets/tinker/lang/ru_RU.lang +++ b/resources/assets/tinker/lang/ru_RU.lang @@ -544,27 +544,6 @@ death.four.smeltery=%1$s думал, что купание в горячих ж death.attack.Landmine=%1$s наблюдал, как его ноги взорвались на мине death.attack.FireworkExplode=%1$s был разорван диким взрывом фейерверка -parttype.wood=Деревянный -parttype.stone=Каменный -parttype.iron=Железный -parttype.flint=Кремниевый -parttype.cactus=Кактусовый -parttype.bone=Костный -parttype.obsidian=Обсидиановый -parttype.slime=Слизневый -parttype.paper=Бумажный -parttype.netherrack=Адскокаменный -parttype.cobalt=Кобальтовый -parttype.ardite=Ардитовый -parttype.manyullyn=Мануллиновый -parttype.copper=Медный -parttype.bronze=Бронзовый -parttype.alumite=Алюмитовый -parttype.steel=Стальной -parttype.blueslime=Синеслизневый -parttype.thaumium=Таумический -parttype.pigiron=Свиножелезный - toolpart.ToolRod=%%material стержень toolpart.PickaxeHead=%%material обух кирки toolpart.ShovelHead=%%material штык лопаты @@ -594,6 +573,8 @@ toolpart.Fletching=%%material оперение # Now with translations of specific material and part combinations: #toolpart.ToolRod.wood=Wooden Tool Rod +# If only the material part has to be specific, you can use this +#toolpart.material.wood=Wooden fluid.iron.molten=Расплавленное железо fluid.gold.molten=Расплавленное золото @@ -717,6 +698,8 @@ smeltery.drain.tooltip1=Работает в качестве ввода и вы smeltery.drain.tooltip2=жидкостей в плавильне smeltery.brick.tooltip1=Структурный блок плавильни smeltery.brick.tooltip2=(Безопасен для декораций) +#Dear translators, only translate this line if the joke is applicable in your language. +grout.tooltip=I am Grout! gui.smeltery.fuel=Топливо gui.smeltery.emerald=Изумрудов: @@ -1462,3 +1445,24 @@ toolpart.ExcavatorHead.bronze=Бронзовая пластина копалки toolpart.ExcavatorHead.alumite=Алюмитовая пластина копалки toolpart.ExcavatorHead.steel=Стальная пластина копалки toolpart.ExcavatorHead.thaumium=Таумическая пластина копалки + +toolpart.material.wood=Деревянный +toolpart.material.stone=Каменный +toolpart.material.iron=Железный +toolpart.material.flint=Кремниевый +toolpart.material.cactus=Кактусовый +toolpart.material.bone=Костный +toolpart.material.obsidian=Обсидиановый +toolpart.material.slime=Слизневый +toolpart.material.paper=Бумажный +toolpart.material.netherrack=Адскокаменный +toolpart.material.cobalt=Кобальтовый +toolpart.material.ardite=Ардитовый +toolpart.material.manyullyn=Мануллиновый +toolpart.material.copper=Медный +toolpart.material.bronze=Бронзовый +toolpart.material.alumite=Алюмитовый +toolpart.material.steel=Стальной +toolpart.material.blueslime=Синеслизневый +toolpart.material.thaumium=Таумический +toolpart.material.pigiron=Свиножелезный diff --git a/src/main/java/tconstruct/TConstruct.java b/src/main/java/tconstruct/TConstruct.java index 1a36d343..b83a4ecc 100644 --- a/src/main/java/tconstruct/TConstruct.java +++ b/src/main/java/tconstruct/TConstruct.java @@ -69,7 +69,7 @@ import cpw.mods.fml.relauncher.Side; */ @Mod(modid = "TConstruct", name = "TConstruct", version = "${version}", - dependencies = "required-after:Forge@[10.13.0.1200,);required-after:Mantle@[0.3.1,);after:MineFactoryReloaded;after:NotEnoughItems;after:Waila;after:ThermalExpansion") + dependencies = "required-after:Forge@[10.13.0.1200,);required-after:Mantle@[0.3.1,);after:MineFactoryReloaded;after:NotEnoughItems;after:Waila;after:ThermalExpansion;after:ThermalFoundation") public class TConstruct { public static final String modVersion = "${version}"; diff --git a/src/main/java/tconstruct/library/TConstructRegistry.java b/src/main/java/tconstruct/library/TConstructRegistry.java index 967c2809..0ab91987 100644 --- a/src/main/java/tconstruct/library/TConstructRegistry.java +++ b/src/main/java/tconstruct/library/TConstructRegistry.java @@ -220,6 +220,15 @@ public class TConstructRegistry // Materials public static HashMap toolMaterials = new HashMap(40); public static HashMap toolMaterialStrings = new HashMap(40); + public static List defaultToolPartMaterials = new LinkedList(); + + public static void addDefaultToolPartMaterial(int materialID) + { + if(!toolMaterials.containsKey(materialID)) + logger.error("[TCon API] Can't add default toolpart: Material ID " + materialID + " is unknown."); + else + defaultToolPartMaterials.add(materialID); + } /** * Adds a tool material to the registry diff --git a/src/main/java/tconstruct/library/tools/DynamicToolPart.java b/src/main/java/tconstruct/library/tools/DynamicToolPart.java index 04b6aba1..08b17a64 100644 --- a/src/main/java/tconstruct/library/tools/DynamicToolPart.java +++ b/src/main/java/tconstruct/library/tools/DynamicToolPart.java @@ -78,7 +78,14 @@ public class DynamicToolPart extends CraftingItem implements IToolPart // general name else { - return StatCollector.translateToLocal("toolpart." + partName).replaceAll("%%material", toolmat.prefixName()); + // specific material name for materials? + String matName; + if(StatCollector.canTranslate("toolpart.material." + material)) + matName = StatCollector.translateToLocal("toolpart.material." + material); + else + matName = toolmat.prefixName(); + + return StatCollector.translateToLocal("toolpart." + partName).replaceAll("%%material", matName); } } @@ -98,8 +105,11 @@ public class DynamicToolPart extends CraftingItem implements IToolPart return; // material id == metadata - for(Integer matID : TConstructRegistry.toolMaterials.keySet()) - list.add(new ItemStack(item, 1, matID)); + for(Integer matID : TConstructRegistry.defaultToolPartMaterials) { + ItemStack stack = new ItemStack(item, 1, matID); + if (this.getMaterialID(stack) != -1) + list.add(stack); + } } @Override diff --git a/src/main/java/tconstruct/library/tools/HarvestTool.java b/src/main/java/tconstruct/library/tools/HarvestTool.java index 0c1d4f59..b124a3a4 100644 --- a/src/main/java/tconstruct/library/tools/HarvestTool.java +++ b/src/main/java/tconstruct/library/tools/HarvestTool.java @@ -258,6 +258,10 @@ public abstract class HarvestTool extends ToolCore } return; } + + // callback to the tool the player uses. Called on both sides. This damages the tool n stuff. + player.getCurrentEquippedItem().func_150999_a(world, block, x, y, z, player); + // server sided handling if (!world.isRemote) { // serverside we reproduce ItemInWorldManager.tryHarvestBlock diff --git a/src/main/java/tconstruct/plugins/imc/TinkerMystcraft.java b/src/main/java/tconstruct/plugins/imc/TinkerMystcraft.java index 514e4ac2..d582c300 100644 --- a/src/main/java/tconstruct/plugins/imc/TinkerMystcraft.java +++ b/src/main/java/tconstruct/plugins/imc/TinkerMystcraft.java @@ -1,34 +1,45 @@ package tconstruct.plugins.imc; import cpw.mods.fml.common.event.*; -import cpw.mods.fml.common.registry.GameRegistry.ObjectHolder; import mantle.pulsar.pulse.*; -import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.fluids.Fluid; import tconstruct.TConstruct; -@ObjectHolder(TConstruct.modID) -@Pulse(id = "Tinkers Mystcraft Compatibility", forced = true, modsRequired = "Mystcraft") +import static tconstruct.smeltery.TinkerSmeltery.*; + +@Pulse(id = "Tinkers Mystcraft Compatibility", forced = true, modsRequired = "Mystcraft", pulsesRequired = "Tinkers' Smeltery") public class TinkerMystcraft { - private static String[] fluids = new String[] { "invar.molten", "electrum.molten", "bronze.molten", "aluminumbrass.molten", "manyullyn.molten", "alumite.molten", "cobalt.molten", "moltenArdite", "ender", "steel.molten", "platinum.molten" }; - @Handler public void init (FMLInitializationEvent event) { + final Fluid[] fluids = new Fluid[] { + // precious tinker fluids + moltenGoldFluid, + moltenSteelFluid, + moltenEmeraldFluid, + moltenArditeFluid, + moltenCobaltFluid, + // all alloys + pigIronFluid, + moltenBronzeFluid, + moltenAlumiteFluid, + moltenAlubrassFluid, + moltenManyullynFluid, + // precious TE fluids + moltenEnderFluid, + moltenSilverFluid, + moltenInvarFluid, + moltenElectrumFluid, + moltenShinyFluid + }; + TConstruct.logger.info("Mystcraft detected. Blacklisting Mystcraft fluid symbols."); - for (String nm : fluids) - sendFluidBlacklist(nm); + for(Fluid fluid : fluids) + { + if(fluid == null) + continue; + FMLInterModComms.sendMessage("Mystcraft", "blacklistfluid", fluid.getName()); + } } - - private void sendFluidBlacklist (String FluidName) - { - NBTTagCompound NBTMsg = new NBTTagCompound(); - NBTMsg.setTag("fluidsymbol", new NBTTagCompound()); - NBTMsg.getCompoundTag("fluidsymbol").setFloat("rarity", 0.0F); - NBTMsg.getCompoundTag("fluidsymbol").setFloat("grammarweight", 0.0F); - NBTMsg.getCompoundTag("fluidsymbol").setFloat("instabilityPerBlock", 10000F); // renders creative symbol useless - NBTMsg.getCompoundTag("fluidsymbol").setString("fluidname", FluidName); - FMLInterModComms.sendMessage("Mystcraft", "fluidsymbol", NBTMsg); - } - } diff --git a/src/main/java/tconstruct/smeltery/TinkerSmeltery.java b/src/main/java/tconstruct/smeltery/TinkerSmeltery.java index a1004dea..be6f11a0 100644 --- a/src/main/java/tconstruct/smeltery/TinkerSmeltery.java +++ b/src/main/java/tconstruct/smeltery/TinkerSmeltery.java @@ -970,6 +970,10 @@ public class TinkerSmeltery } } + // water and lava bucket + tableCasting.addCastingRecipe(new ItemStack(Items.water_bucket), new FluidStack(FluidRegistry.WATER, FluidContainerRegistry.BUCKET_VOLUME), bucket, true, 10); + tableCasting.addCastingRecipe(new ItemStack(Items.lava_bucket), new FluidStack(FluidRegistry.LAVA, FluidContainerRegistry.BUCKET_VOLUME), bucket, true, 10); + // Clear glass pane casting tableCasting.addCastingRecipe(new ItemStack(TinkerSmeltery.glassPane), new FluidStack(TinkerSmeltery.moltenGlassFluid, 250), null, 80); diff --git a/src/main/java/tconstruct/tools/TinkerTools.java b/src/main/java/tconstruct/tools/TinkerTools.java index cbbc3a96..40ccf820 100644 --- a/src/main/java/tconstruct/tools/TinkerTools.java +++ b/src/main/java/tconstruct/tools/TinkerTools.java @@ -734,6 +734,78 @@ public class TinkerTools TConstructRegistry.addToolMaterial(MaterialID.BlueSlime, "BlueSlime", 0, 1200, 150, 0, 2.0F, 0, 0f, AQUA.toString(), 0x66AEB0); TConstructRegistry.addToolMaterial(MaterialID.PigIron, "PigIron", 3, 250, 600, 2, 1.3F, 1, 0f, RED.toString(), 0xF0A8A4); +<<<<<<< HEAD +======= + // Bow Materials: Material ID, durability, drawspeed, arrow speed + TConstructRegistry.addBowMaterial(MaterialID.Wood, 384, 20, 1.0f); // Wood + TConstructRegistry.addBowMaterial(MaterialID.Stone, 10, 80, 0.2f); // Stone + TConstructRegistry.addBowMaterial(MaterialID.Iron, 576, 30, 1.2f); // Iron + TConstructRegistry.addBowMaterial(MaterialID.Flint, 10, 80, 0.2f); // Flint + TConstructRegistry.addBowMaterial(MaterialID.Cactus, 384, 20, 1.0f); // Cactus + TConstructRegistry.addBowMaterial(MaterialID.Bone, 192, 30, 1.0f); // Bone + TConstructRegistry.addBowMaterial(MaterialID.Obsidian, 10, 80, 0.2f); // Obsidian + TConstructRegistry.addBowMaterial(MaterialID.Netherrack, 10, 80, 0.2f); // Netherrack + TConstructRegistry.addBowMaterial(MaterialID.Slime, 1536, 30, 1.2f); // Slime + TConstructRegistry.addBowMaterial(MaterialID.Paper, 48, 25, 0.5f); // Paper + TConstructRegistry.addBowMaterial(MaterialID.Cobalt, 1152, 30, 1.2f); // Cobalt + TConstructRegistry.addBowMaterial(MaterialID.Ardite, 960, 30, 1.2f); // Ardite + TConstructRegistry.addBowMaterial(MaterialID.Manyullyn, 1536, 30, 1.2f); // Manyullyn + TConstructRegistry.addBowMaterial(MaterialID.Copper, 384, 30, 1.2f); // Copper + TConstructRegistry.addBowMaterial(MaterialID.Bronze, 576, 30, 1.2f); // Bronze + TConstructRegistry.addBowMaterial(MaterialID.Alumite, 768, 30, 1.2f); // Alumite + TConstructRegistry.addBowMaterial(MaterialID.Steel, 768, 30, 1.2f); // Steel + TConstructRegistry.addBowMaterial(MaterialID.BlueSlime, 576, 20, 1.2f); // Blue Slime + TConstructRegistry.addBowMaterial(MaterialID.PigIron, 384, 20, 1.2f); // Pig Iron + + // Fletchling Materials: Material ID, mass, fragility + TConstructRegistry.addArrowMaterial(MaterialID.Wood, 0.69F, 1.0F, 100F); //Wood + TConstructRegistry.addArrowMaterial(MaterialID.Stone, 2.05F, 5.0F, 100F); //Stone + TConstructRegistry.addArrowMaterial(MaterialID.Iron, 3.6F, 0.5F, 100F); //Iron + TConstructRegistry.addArrowMaterial(MaterialID.Flint, 1.325F, 1.0F, 100F); //Flint + TConstructRegistry.addArrowMaterial(MaterialID.Cactus, 0.76F, 1.0F, 100F); //Cactus + TConstructRegistry.addArrowMaterial(MaterialID.Bone, 0.69F, 1.0F, 100); //Bone + TConstructRegistry.addArrowMaterial(MaterialID.Obsidian, 2.4F, 1.0F, 100F); //Obsidian + TConstructRegistry.addArrowMaterial(MaterialID.Netherrack, 1.5F, 1.0F, 100F); //Netherrack + TConstructRegistry.addArrowMaterial(MaterialID.Slime, 0.22F, 0.0F, 100F); //Slime + TConstructRegistry.addArrowMaterial(MaterialID.Paper, 0.69F, 3.0F, 90F); //Paper + TConstructRegistry.addArrowMaterial(MaterialID.Cobalt, 3.0F, 0.25F, 100F); //Cobalt + TConstructRegistry.addArrowMaterial(MaterialID.Ardite, 1.25F, 0.25F, 100F); //Ardite + TConstructRegistry.addArrowMaterial(MaterialID.Manyullyn, 2.25F, 0.1F, 100F); //Manyullyn + TConstructRegistry.addArrowMaterial(MaterialID.Copper, 2.7F, 0.5F, 100F); //Copper + TConstructRegistry.addArrowMaterial(MaterialID.Bronze, 3.6F, 0.25F, 100F); //Bronze + TConstructRegistry.addArrowMaterial(MaterialID.Alumite, 1.1F, 0.25F, 100F); //Alumite + TConstructRegistry.addArrowMaterial(MaterialID.Steel, 3.6F, 0.25F, 100F); //Steel + TConstructRegistry.addArrowMaterial(MaterialID.BlueSlime, 0.22F, 0.0F, 100F); //Blue Slime + TConstructRegistry.addArrowMaterial(MaterialID.PigIron, 3.6F, 0.5F, 100F); //Pigiron + + TConstructRegistry.addBowstringMaterial(0, 2, new ItemStack(Items.string), new ItemStack(TinkerTools.bowstring, 1, 0), 1F, 1F, 1f, 0xeeeeee); // String + TConstructRegistry.addFletchingMaterial(0, 2, new ItemStack(Items.feather), new ItemStack(TinkerTools.fletching, 1, 0), 100F, 0F, 0.05F, 0xffffff); // Feather + TConstructRegistry.addCustomMaterial(new FletchlingLeafMaterial(1, 2, "treeLeaves", new ItemStack(TinkerTools.fletching, 1, 1), 75F, 0F, 0.2F)); // all vanilla and oredicted leaves. and all leaves in general. + TConstructRegistry.addFletchingMaterial(2, 2, new ItemStack(TinkerTools.materials, 1, 1), new ItemStack(TinkerTools.fletching, 1, 2), 100F, 0F, 0.12F, 0x82c873); // Slime + TConstructRegistry.addFletchingMaterial(3, 2, new ItemStack(TinkerTools.materials, 1, 17), new ItemStack(TinkerTools.fletching, 1, 3), 100F, 0F, 0.12F, 0x74c8c7); // BlueSlime + + // Register all the materials for default toolparts + TConstructRegistry.addDefaultToolPartMaterial(MaterialID.Wood); + TConstructRegistry.addDefaultToolPartMaterial(MaterialID.Stone); + TConstructRegistry.addDefaultToolPartMaterial(MaterialID.Iron); + TConstructRegistry.addDefaultToolPartMaterial(MaterialID.Flint); + TConstructRegistry.addDefaultToolPartMaterial(MaterialID.Cactus); + TConstructRegistry.addDefaultToolPartMaterial(MaterialID.Bone); + TConstructRegistry.addDefaultToolPartMaterial(MaterialID.Obsidian); + TConstructRegistry.addDefaultToolPartMaterial(MaterialID.Netherrack); + TConstructRegistry.addDefaultToolPartMaterial(MaterialID.Slime); + TConstructRegistry.addDefaultToolPartMaterial(MaterialID.Paper); + TConstructRegistry.addDefaultToolPartMaterial(MaterialID.Cobalt); + TConstructRegistry.addDefaultToolPartMaterial(MaterialID.Ardite); + TConstructRegistry.addDefaultToolPartMaterial(MaterialID.Manyullyn); + TConstructRegistry.addDefaultToolPartMaterial(MaterialID.Copper); + TConstructRegistry.addDefaultToolPartMaterial(MaterialID.Bronze); + TConstructRegistry.addDefaultToolPartMaterial(MaterialID.Alumite); + TConstructRegistry.addDefaultToolPartMaterial(MaterialID.Steel); + TConstructRegistry.addDefaultToolPartMaterial(MaterialID.BlueSlime ); + TConstructRegistry.addDefaultToolPartMaterial(MaterialID.PigIron); + +>>>>>>> master PatternBuilder pb = PatternBuilder.instance; if (PHConstruct.enableTWood) pb.registerFullMaterial(Blocks.planks, 2, "Wood", new ItemStack(Items.stick), new ItemStack(Items.stick), 0); diff --git a/src/main/java/tconstruct/util/IMCHandler.java b/src/main/java/tconstruct/util/IMCHandler.java index e7b2cae4..61b3d39f 100644 --- a/src/main/java/tconstruct/util/IMCHandler.java +++ b/src/main/java/tconstruct/util/IMCHandler.java @@ -49,6 +49,7 @@ public final class IMCHandler { ToolMaterial mat = scanMaterial(tag); if(mat != null) { TConstructRegistry.addtoolMaterial(tag.getInteger("Id"), mat); + TConstructRegistry.addDefaultToolPartMaterial(tag.getInteger("Id")); TConstruct.logger.info("IMC: Added material " + mat.materialName); } }