From 42641277153904d49ebe87cece52257dd790aeea Mon Sep 17 00:00:00 2001 From: JAWolfe04 Date: Thu, 11 Feb 2016 19:39:00 -0600 Subject: [PATCH] Fix PvP damage, fix boilers, added config and changelog --- build.gradle | 6 + build.prop | 2 +- builds/Minetweaker Instructions.zs | 23 +- builds/TerraFirmaPunkTweaks-1.7.10-1.05.jar | Bin 24966 -> 0 bytes builds/TerraFirmaPunkTweaks-1.7.10-1.06.jar | Bin 0 -> 54486 bytes ...TerraFirmaPunkTweaks-1.7.10-deobf-1.05.jar | Bin 24547 -> 0 bytes ...TerraFirmaPunkTweaks-1.7.10-deobf-1.06.jar | Bin 0 -> 53630 bytes .../TerraFirmaPunkTweaks-1.7.10-src-1.05.jar | Bin 10561 -> 0 bytes .../TerraFirmaPunkTweaks-1.7.10-src-1.06.jar | Bin 0 -> 26833 bytes changelog.txt | 49 ++++ .../java/com/JAWolfe/tfptweaks/LogHelper.java | 2 + .../java/com/JAWolfe/tfptweaks/NEIConfig.java | 15 +- .../com/JAWolfe/tfptweaks/RecipeTweaks.java | 28 +- .../com/JAWolfe/tfptweaks/References.java | 15 - .../tfptweaks/TerraFirmaPunkTweaks.java | 29 +- .../java/com/JAWolfe/tfptweaks/WAILAInfo.java | 84 ++++++ .../JAWolfe/tfptweaks/blocks/TFPBlocks.java | 27 ++ .../tfptweaks/blocks/TweakedBoiler.java | 139 ++++++++++ .../tfptweaks/blocks/TweakedFlashBoiler.java | 135 +++++++++ .../tfptweaks/handlers/ConfigHandler.java | 83 ++++++ ...rHandler.java => PlayerDamageHandler.java} | 150 ++++++---- .../handlers/PlayerInteractionHandler.java | 142 ++++++++++ .../tfptweaks/handlers/SpawnHandler.java | 18 ++ .../JAWolfe/tfptweaks/minetweaker/Anvil.java | 9 + .../JAWolfe/tfptweaks/minetweaker/Barrel.java | 232 ++++++++++++++++ .../tfptweaks/minetweaker/TFCTweaker.java | 6 +- .../JAWolfe/tfptweaks/proxy/ClientProxy.java | 9 + .../JAWolfe/tfptweaks/proxy/CommonProxy.java | 25 ++ .../tfptweaks/reference/ConfigSettings.java | 21 ++ .../tfptweaks/reference/References.java | 23 ++ .../com/JAWolfe/tfptweaks/tiles/TEBoiler.java | 71 +++++ .../tfptweaks/tiles/TEFlashBoiler.java | 261 ++++++++++++++++++ .../assets/tfptweaks/lang/en_US.lang | 12 + src/main/resources/mcmod.info | 10 +- 34 files changed, 1523 insertions(+), 103 deletions(-) delete mode 100644 builds/TerraFirmaPunkTweaks-1.7.10-1.05.jar create mode 100644 builds/TerraFirmaPunkTweaks-1.7.10-1.06.jar delete mode 100644 builds/TerraFirmaPunkTweaks-1.7.10-deobf-1.05.jar create mode 100644 builds/TerraFirmaPunkTweaks-1.7.10-deobf-1.06.jar delete mode 100644 builds/TerraFirmaPunkTweaks-1.7.10-src-1.05.jar create mode 100644 builds/TerraFirmaPunkTweaks-1.7.10-src-1.06.jar create mode 100644 changelog.txt delete mode 100644 src/main/java/com/JAWolfe/tfptweaks/References.java create mode 100644 src/main/java/com/JAWolfe/tfptweaks/WAILAInfo.java create mode 100644 src/main/java/com/JAWolfe/tfptweaks/blocks/TFPBlocks.java create mode 100644 src/main/java/com/JAWolfe/tfptweaks/blocks/TweakedBoiler.java create mode 100644 src/main/java/com/JAWolfe/tfptweaks/blocks/TweakedFlashBoiler.java create mode 100644 src/main/java/com/JAWolfe/tfptweaks/handlers/ConfigHandler.java rename src/main/java/com/JAWolfe/tfptweaks/handlers/{PlayerHandler.java => PlayerDamageHandler.java} (64%) create mode 100644 src/main/java/com/JAWolfe/tfptweaks/handlers/PlayerInteractionHandler.java create mode 100644 src/main/java/com/JAWolfe/tfptweaks/handlers/SpawnHandler.java create mode 100644 src/main/java/com/JAWolfe/tfptweaks/minetweaker/Anvil.java create mode 100644 src/main/java/com/JAWolfe/tfptweaks/minetweaker/Barrel.java create mode 100644 src/main/java/com/JAWolfe/tfptweaks/proxy/ClientProxy.java create mode 100644 src/main/java/com/JAWolfe/tfptweaks/proxy/CommonProxy.java create mode 100644 src/main/java/com/JAWolfe/tfptweaks/reference/ConfigSettings.java create mode 100644 src/main/java/com/JAWolfe/tfptweaks/reference/References.java create mode 100644 src/main/java/com/JAWolfe/tfptweaks/tiles/TEBoiler.java create mode 100644 src/main/java/com/JAWolfe/tfptweaks/tiles/TEFlashBoiler.java create mode 100644 src/main/resources/assets/tfptweaks/lang/en_US.lang diff --git a/build.gradle b/build.gradle index 8f7b701..677fb97 100644 --- a/build.gradle +++ b/build.gradle @@ -61,6 +61,11 @@ allprojects repositories { + maven { + // The repo from which to get waila + name "Mobius Repo" + url "http://mobiusstrip.eu/maven" + } maven { // the repo from which to get NEI and stuff name 'CB Repo' @@ -73,6 +78,7 @@ dependencies compile "codechicken:CodeChickenCore:1.7.10-1.0.4.35:dev" compile "codechicken:CodeChickenLib:1.7.10-1.1.3.127:dev" compile "codechicken:NotEnoughItems:1.7.10-1.0.4.95:dev" + compile "mcp.mobius.waila:Waila:1.5.11-RC2-NONEI_1.7.10" } //Creates a compiled de-obfuscated jar diff --git a/build.prop b/build.prop index da31bf5..f2ecf9d 100644 --- a/build.prop +++ b/build.prop @@ -1,6 +1,6 @@ minecraft_version=1.7.10 forge_version=10.13.4.1558-1.7.10 tfc_version=0.79.27 -mod_version=1.05 +mod_version=1.06 mod_id=TerraFirmaPunkTweaks group_name=com.JAWolfe.tfptweaks \ No newline at end of file diff --git a/builds/Minetweaker Instructions.zs b/builds/Minetweaker Instructions.zs index a87c0cd..0cf931f 100644 --- a/builds/Minetweaker Instructions.zs +++ b/builds/Minetweaker Instructions.zs @@ -1,5 +1,5 @@ //======================================================================== -// Heating items +// Heating items //======================================================================== //Add Recipe @@ -18,7 +18,7 @@ //mods.tfptweaks.ItemHeat.removeRecipe(); //======================================================================== -// Loom Recipes +// Loom Recipes //======================================================================== //Add Recipe @@ -36,7 +36,7 @@ //mods.tfptweaks.Loom.removeRecipe( * 16); //======================================================================== -// Quern Recipes +// Quern Recipes //======================================================================== //Add Recipe @@ -47,5 +47,18 @@ //Remove Recipe //OutputStack, InputStack {Stack sizes must be the same as the recipe to be removed} -//mods.tfptweaks.Quern.removeRecipe( * 2, ); -//mods.tfptweaks.Quern.removeRecipe(, ); \ No newline at end of file +//mods.tfptweaks.Quern.removeRecipe(, ); + +//======================================================================== +// Barrel Recipe(NOT FULLY IMPLEMENTED DO NOT USE) +//======================================================================== + +//Add Recipe + +//OutputStack, OutputFluid, InputStack, InputFluid, sealtime, removesLiquid, sealed, minTechLevel, allowAnyStack +//mods.tfptweaks.Barrel.addRecipe(); + +//Add Multi-Item Recipe + +//OutputStack, InputStack, inputFS, sealed, minTechLevel, allowAnyStack, keepstacksize +//mods.tfptweaks.Barrel.addMultiItemRecipe(); \ No newline at end of file diff --git a/builds/TerraFirmaPunkTweaks-1.7.10-1.05.jar b/builds/TerraFirmaPunkTweaks-1.7.10-1.05.jar deleted file mode 100644 index 63b67e17d1e32d5c3e1a252138375f856753ba22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24966 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 UVwgigAxHd8Abw0CLL2$&Kb)M#7ytkO diff --git a/builds/TerraFirmaPunkTweaks-1.7.10-1.06.jar b/builds/TerraFirmaPunkTweaks-1.7.10-1.06.jar new file mode 100644 index 0000000000000000000000000000000000000000..5707211d2ae787fabb1a5f3a5f371b23886ccb4a GIT binary patch literal 54486 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 literal 0 HcmV?d00001 diff --git a/builds/TerraFirmaPunkTweaks-1.7.10-deobf-1.05.jar b/builds/TerraFirmaPunkTweaks-1.7.10-deobf-1.05.jar deleted file mode 100644 index 7828825e18ce3a5157b9784773099d52c312a74d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24547 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 diff --git a/builds/TerraFirmaPunkTweaks-1.7.10-deobf-1.06.jar b/builds/TerraFirmaPunkTweaks-1.7.10-deobf-1.06.jar new file mode 100644 index 0000000000000000000000000000000000000000..d86bded32b97bb465f0a8672911c9422cb5e6c27 GIT binary patch literal 53630 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

0)8hva-oDGzGFEZ6UvU%rTnA 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 literal 0 HcmV?d00001 diff --git a/builds/TerraFirmaPunkTweaks-1.7.10-src-1.05.jar b/builds/TerraFirmaPunkTweaks-1.7.10-src-1.05.jar deleted file mode 100644 index 9405e90e9a0b970fce35e7b7c111e34165158fa2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10561 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 recipes = CraftingManager.getInstance().getRecipeList(); - for (int i = 0; i < recipes.size(); i++) + if(!ConfigSettings.FleshBlockRecipe) { - if (recipes.get(i) != null) + List recipes = CraftingManager.getInstance().getRecipeList(); + for (int i = 0; i < recipes.size(); i++) { - ItemStack recipeResult = recipes.get(i).getRecipeOutput(); - - if (recipeResult != null && recipeResult.getItem() == Item.getItemFromBlock(InitBlocks.blockFlesh)) - recipes.remove(i--); + if (recipes.get(i) != null) + { + ItemStack recipeResult = recipes.get(i).getRecipeOutput(); + + if (recipeResult != null && recipeResult.getItem() == Item.getItemFromBlock(InitBlocks.blockFlesh)) + { + recipes.remove(i--); + } + } } } - OreDictionary.registerOre("itemAxe", new ItemStack(InitItems.axeSteam, 1, OreDictionary.WILDCARD_VALUE)); + //OreDictionary.registerOre("itemAxe", new ItemStack(InitItems.axeSteam, 1, OreDictionary.WILDCARD_VALUE)); } } @@ -39,7 +43,7 @@ public class RecipeTweaks { if(Loader.isModLoaded("Steamcraft")) { - OreDictionary.registerOre("itemAxe", new ItemStack(SteamcraftItems.steamAxe, 1, OreDictionary.WILDCARD_VALUE)); + //OreDictionary.registerOre("itemAxe", new ItemStack(SteamcraftItems.steamAxe, 1, OreDictionary.WILDCARD_VALUE)); } } } diff --git a/src/main/java/com/JAWolfe/tfptweaks/References.java b/src/main/java/com/JAWolfe/tfptweaks/References.java deleted file mode 100644 index ca5e710..0000000 --- a/src/main/java/com/JAWolfe/tfptweaks/References.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.JAWolfe.tfptweaks; - -public class References -{ - public static final String ModID = "terrafirmapunktweaks"; - public static final String ModName = "TerraFirmaPunk Tweaks"; - - public static final String MODID_TFC = "terrafirmacraft"; - public static final String MODNAME_TFC = "TerraFirmaCraft"; - - public static final String MODID_SC2 = "steamcraft2"; - - public static final String ModVersion = "@MOD_VERSION@"; - public static final String ModDependencies = "required-after:" + MODID_TFC + MODID_SC2; -} diff --git a/src/main/java/com/JAWolfe/tfptweaks/TerraFirmaPunkTweaks.java b/src/main/java/com/JAWolfe/tfptweaks/TerraFirmaPunkTweaks.java index b4bb57f..9414ffe 100644 --- a/src/main/java/com/JAWolfe/tfptweaks/TerraFirmaPunkTweaks.java +++ b/src/main/java/com/JAWolfe/tfptweaks/TerraFirmaPunkTweaks.java @@ -1,21 +1,40 @@ package com.JAWolfe.tfptweaks; +import com.JAWolfe.tfptweaks.blocks.TFPBlocks; import com.JAWolfe.tfptweaks.handlers.*; import com.JAWolfe.tfptweaks.minetweaker.TFCTweaker; +import com.JAWolfe.tfptweaks.proxy.CommonProxy; +import com.JAWolfe.tfptweaks.reference.References; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.registry.ExistingSubstitutionException; import net.minecraftforge.common.MinecraftForge; @Mod(modid = References.ModID, name = References.ModName, version = References.ModVersion, dependencies = References.ModDependencies) public class TerraFirmaPunkTweaks -{ +{ + @Mod.Instance(References.ModID) + public static TerraFirmaPunkTweaks instance; + + @SidedProxy(clientSide = References.CLIENT_PROXY_CLASS, serverSide = References.SERVER_PROXY_CLASS) + public static CommonProxy proxy; + @EventHandler public void preInit(FMLPreInitializationEvent event) { + ConfigHandler.init(event.getSuggestedConfigurationFile()); + FMLCommonHandler.instance().bus().register(new ConfigHandler()); + + TFPBlocks.setup(); + + proxy.registerTileEntities(); } @EventHandler @@ -23,12 +42,16 @@ public class TerraFirmaPunkTweaks { RecipeTweaks.RecipeFixes(); - MinecraftForge.EVENT_BUS.register(new PlayerHandler()); + MinecraftForge.EVENT_BUS.register(new PlayerInteractionHandler()); + MinecraftForge.EVENT_BUS.register(new PlayerDamageHandler()); + MinecraftForge.EVENT_BUS.register(new SpawnHandler()); + + proxy.registerWAILA(); } @EventHandler public void postInit(FMLPostInitializationEvent event) - { + { TFCTweaker.postInit(); RecipeTweaks.SC2RecipeTweaks(); diff --git a/src/main/java/com/JAWolfe/tfptweaks/WAILAInfo.java b/src/main/java/com/JAWolfe/tfptweaks/WAILAInfo.java new file mode 100644 index 0000000..c4c6d3b --- /dev/null +++ b/src/main/java/com/JAWolfe/tfptweaks/WAILAInfo.java @@ -0,0 +1,84 @@ +package com.JAWolfe.tfptweaks; + +import java.util.List; + +import com.JAWolfe.tfptweaks.reference.ConfigSettings; +import com.JAWolfe.tfptweaks.tiles.TEBoiler; +import com.JAWolfe.tfptweaks.tiles.TEFlashBoiler; + +import cpw.mods.fml.common.Loader; +import mcp.mobius.waila.api.IWailaConfigHandler; +import mcp.mobius.waila.api.IWailaDataAccessor; +import mcp.mobius.waila.api.IWailaDataProvider; +import mcp.mobius.waila.api.IWailaRegistrar; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class WAILAInfo implements IWailaDataProvider +{ + public static void callbackRegister(IWailaRegistrar reg) + { + if(Loader.isModLoaded("Steamcraft")) + { + reg.registerBodyProvider(new WAILAInfo(), TEBoiler.class); + reg.registerNBTProvider(new WAILAInfo(), TEBoiler.class); + + reg.registerBodyProvider(new WAILAInfo(), TEFlashBoiler.class); + reg.registerNBTProvider(new WAILAInfo(), TEFlashBoiler.class); + } + } + + @Override + public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config) + { + return accessor.getStack(); + } + + @Override + public List getWailaHead(ItemStack itemStack, List currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) + { + return currenttip; + } + + @Override + public List getWailaBody(ItemStack itemStack, List currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) + { + NBTTagCompound tag = accessor.getNBTData(); + TileEntity tileEntity = accessor.getTileEntity(); + + if(Loader.isModLoaded("Steamcraft") && ConfigSettings.FSPWailaIntegration) + { + if (tileEntity != null && tileEntity instanceof TEBoiler) + { + currenttip.add(StatCollector.translateToLocal("gui.tfptweaks.watertank") + ": " + tag.getInteger("water") + " / " + ((TEBoiler)tileEntity).myTank.getCapacity()); + currenttip.add(StatCollector.translateToLocal("gui.tfptweaks.steamtank") + ": " + tag.getInteger("steam") + " / " + ((TEBoiler)tileEntity).getCapacity()); + } + else if (tileEntity != null && tileEntity instanceof TEFlashBoiler && ((TEFlashBoiler)tileEntity).hasMaster()) + { + currenttip.add(StatCollector.translateToLocal("gui.tfptweaks.watertank") + ": " + ((TEFlashBoiler)tileEntity).getMasterTileEntity().getTank().getFluidAmount() + " / " + ((TEFlashBoiler)tileEntity).getMasterTileEntity().getTank().getCapacity()); + currenttip.add(StatCollector.translateToLocal("gui.tfptweaks.steamtank") + ": "+ tag.getInteger("steam") + " / " + ((TEFlashBoiler)tileEntity).getMasterTileEntity().getCapacity()); + } + } + + return currenttip; + } + + @Override + public List getWailaTail(ItemStack itemStack, List currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) + { + return currenttip; + } + + @Override + public NBTTagCompound getNBTData(EntityPlayerMP player, TileEntity te, NBTTagCompound tag, World world, int x, int y, int z) + { + if (te != null) + te.writeToNBT(tag); + return tag; + } +} diff --git a/src/main/java/com/JAWolfe/tfptweaks/blocks/TFPBlocks.java b/src/main/java/com/JAWolfe/tfptweaks/blocks/TFPBlocks.java new file mode 100644 index 0000000..efdcbb1 --- /dev/null +++ b/src/main/java/com/JAWolfe/tfptweaks/blocks/TFPBlocks.java @@ -0,0 +1,27 @@ +package com.JAWolfe.tfptweaks.blocks; + +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.registry.GameRegistry; +import flaxbeard.steamcraft.SteamcraftBlocks; +import net.minecraft.block.Block; + +public class TFPBlocks +{ + public static Block tweakedboiler; + public static Block tweakedboilerOn; + public static Block tweakedFlashBoiler; + + public static void setup() + { + if(Loader.isModLoaded("Steamcraft")) + { + tweakedboiler = new TweakedBoiler(false).setBlockName(SteamcraftBlocks.boiler.getUnlocalizedName().substring(5)).setHardness(5.0F).setResistance(10.0F); + tweakedboilerOn = new TweakedBoiler(true).setBlockName(SteamcraftBlocks.boilerOn.getUnlocalizedName().substring(5)).setHardness(5.0F).setResistance(10.0F); + tweakedFlashBoiler = new TweakedFlashBoiler().setBlockName(SteamcraftBlocks.flashBoiler.getUnlocalizedName().substring(5)).setHardness(5.0f).setResistance(10.0F); + + GameRegistry.registerBlock(tweakedboiler, "tweakedboiler"); + GameRegistry.registerBlock(tweakedboilerOn, "tweakedboilerOn"); + GameRegistry.registerBlock(tweakedFlashBoiler, "tweakedFlashBoiler"); + } + } +} diff --git a/src/main/java/com/JAWolfe/tfptweaks/blocks/TweakedBoiler.java b/src/main/java/com/JAWolfe/tfptweaks/blocks/TweakedBoiler.java new file mode 100644 index 0000000..47080f6 --- /dev/null +++ b/src/main/java/com/JAWolfe/tfptweaks/blocks/TweakedBoiler.java @@ -0,0 +1,139 @@ +package com.JAWolfe.tfptweaks.blocks; + +import java.util.Random; + +import com.JAWolfe.tfptweaks.tiles.TEBoiler; +import com.bioxx.tfc.api.TFCFluids; + +import flaxbeard.steamcraft.Steamcraft; +import flaxbeard.steamcraft.SteamcraftBlocks; +import flaxbeard.steamcraft.api.IWrenchable; +import flaxbeard.steamcraft.block.BlockBoiler; +import flaxbeard.steamcraft.tile.TileEntityBoiler; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidContainerItem; + + +/////////////////////////////////////////////////////////////////////////////// +//Only here till FSP updates then this is redundant +/////////////////////////////////////////////////////////////////////////////// +public class TweakedBoiler extends BlockBoiler implements IWrenchable +{ + private final Random rand = new Random(); + + public TweakedBoiler(boolean on) + { + super(on); + } + + @Override + public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) + { + player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1); + player.addExhaustion(0.025F); + + float f = this.rand.nextFloat() * 0.8F + 0.1F; + float f1 = this.rand.nextFloat() * 0.8F + 0.1F; + float f2 = this.rand.nextFloat() * 0.8F + 0.1F; + + EntityItem entityitem = new EntityItem(world, (double) ((float) x + f), (double) ((float) y + f1), (double) ((float) z + f2), new ItemStack(SteamcraftBlocks.boiler, 1, 0)); + + float f3 = 0.05F; + entityitem.motionX = (double) ((float) this.rand.nextGaussian() * f3); + entityitem.motionY = (double) ((float) this.rand.nextGaussian() * f3 + 0.2F); + entityitem.motionZ = (double) ((float) this.rand.nextGaussian() * f3); + world.spawnEntityInWorld(entityitem); + } + + @Override + public TileEntity createNewTileEntity(World var1, int var2) { + return new TEBoiler(); + } + + @Override + public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer player, int par6, float par7, float par8, float par9) + { + TileEntityBoiler tileentityboiler = (TileEntityBoiler) par1World.getTileEntity(par2, par3, par4); + + if(tileentityboiler != null) + { + ItemStack heldItem = player.getHeldItem(); + + if(heldItem != null) + { + if (heldItem.getItem() instanceof IFluidContainerItem) + { + IFluidContainerItem fluidContainerItem = (IFluidContainerItem) heldItem.getItem(); + FluidStack fluid = fluidContainerItem.getFluid(heldItem); + if(fluid != null && (fluid.getFluid() == FluidRegistry.WATER || fluid.getFluid() == TFCFluids.FRESHWATER)) + { + int containerSpace = tileentityboiler.getTank().getCapacity() - tileentityboiler.getTank().getFluidAmount(); + if(containerSpace > 0) + { + FluidStack drained; + if(!player.capabilities.isCreativeMode) + drained = fluidContainerItem.drain(heldItem, containerSpace, true); + else + drained = fluidContainerItem.drain(heldItem, containerSpace, false); + + if(drained != null) + { + tileentityboiler.getTank().fill(new FluidStack(FluidRegistry.WATER, drained.amount), true); + return true; + } + } + } + } + else + { + FluidStack fluid = FluidContainerRegistry.getFluidForFilledItem(heldItem); + if(fluid != null && (fluid.getFluid() == FluidRegistry.WATER || fluid.getFluid() == TFCFluids.FRESHWATER)) + { + int amountAdded = tileentityboiler.getTank().fill(new FluidStack(FluidRegistry.WATER, fluid.amount), true); + + if (amountAdded > 0) + { + FluidStack leftovers = fluid.copy(); + leftovers.amount = fluid.amount - amountAdded; + + ItemStack oldContainer = FluidContainerRegistry.drainFluidContainer(heldItem); + + if (leftovers.amount > 0) + { + ItemStack newContainer = FluidContainerRegistry.fillFluidContainer(leftovers, oldContainer); + + if(newContainer != null) + oldContainer = newContainer; + } + + if(!player.capabilities.isCreativeMode) + player.setCurrentItemOrArmor(0, oldContainer); + + return true; + } + } + } + } + + if (!par1World.isRemote) + { + if (tileentityboiler != null) + { + player.openGui(Steamcraft.instance, 0, par1World, par2, par3, par4); + } + } + + return true; + } + + return false; + } +} diff --git a/src/main/java/com/JAWolfe/tfptweaks/blocks/TweakedFlashBoiler.java b/src/main/java/com/JAWolfe/tfptweaks/blocks/TweakedFlashBoiler.java new file mode 100644 index 0000000..1e81ab6 --- /dev/null +++ b/src/main/java/com/JAWolfe/tfptweaks/blocks/TweakedFlashBoiler.java @@ -0,0 +1,135 @@ +package com.JAWolfe.tfptweaks.blocks; + +import java.util.Random; + +import com.JAWolfe.tfptweaks.tiles.TEFlashBoiler; +import com.bioxx.tfc.api.TFCFluids; + +import flaxbeard.steamcraft.Steamcraft; +import flaxbeard.steamcraft.SteamcraftBlocks; +import flaxbeard.steamcraft.block.BlockFlashBoiler; +import flaxbeard.steamcraft.tile.TileEntityFlashBoiler; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidContainerItem; + +public class TweakedFlashBoiler extends BlockFlashBoiler +{ + private final Random rand = new Random(); + + public TweakedFlashBoiler() + { + super(); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TEFlashBoiler(); + } + + @Override + public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) + { + player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1); + player.addExhaustion(0.025F); + + float f = this.rand.nextFloat() * 0.8F + 0.1F; + float f1 = this.rand.nextFloat() * 0.8F + 0.1F; + float f2 = this.rand.nextFloat() * 0.8F + 0.1F; + + EntityItem entityitem = new EntityItem(world, (double) ((float) x + f), (double) ((float) y + f1), (double) ((float) z + f2), new ItemStack(SteamcraftBlocks.flashBoiler, 1, 0)); + + float f3 = 0.05F; + entityitem.motionX = (double) ((float) this.rand.nextGaussian() * f3); + entityitem.motionY = (double) ((float) this.rand.nextGaussian() * f3 + 0.2F); + entityitem.motionZ = (double) ((float) this.rand.nextGaussian() * f3); + world.spawnEntityInWorld(entityitem); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float xf, float yf, float zf) + { + TileEntityFlashBoiler tileentityboiler = (TileEntityFlashBoiler) world.getTileEntity(x, y, z); + + if (world.getBlockMetadata(x, y, z) > 0 && tileentityboiler != null) + { + ItemStack heldItem = player.getHeldItem(); + + if(heldItem != null) + { + if (heldItem.getItem() instanceof IFluidContainerItem) + { + IFluidContainerItem fluidContainerItem = (IFluidContainerItem) heldItem.getItem(); + FluidStack fluid = fluidContainerItem.getFluid(heldItem); + if(fluid != null && (fluid.getFluid() == FluidRegistry.WATER || fluid.getFluid() == TFCFluids.FRESHWATER)) + { + int containerSpace = tileentityboiler.getTank().getCapacity() - tileentityboiler.getTank().getFluidAmount(); + if(containerSpace > 0) + { + FluidStack drained; + if(!player.capabilities.isCreativeMode) + drained = fluidContainerItem.drain(heldItem, containerSpace, true); + else + drained = fluidContainerItem.drain(heldItem, containerSpace, false); + + if(drained != null) + { + tileentityboiler.fill(ForgeDirection.UP, new FluidStack(FluidRegistry.WATER, drained.amount), true); + + return true; + } + } + } + } + else + { + FluidStack fluid = FluidContainerRegistry.getFluidForFilledItem(heldItem); + if(fluid != null && (fluid.getFluid() == FluidRegistry.WATER || fluid.getFluid() == TFCFluids.FRESHWATER)) + { + int amountAdded = tileentityboiler.fill(ForgeDirection.UP, new FluidStack(FluidRegistry.WATER, fluid.amount), true); + if (amountAdded > 0) + { + FluidStack leftovers = fluid.copy(); + leftovers.amount = fluid.amount - amountAdded; + + ItemStack oldContainer = FluidContainerRegistry.drainFluidContainer(heldItem); + + if (leftovers.amount > 0) + { + ItemStack newContainer = FluidContainerRegistry.fillFluidContainer(leftovers, oldContainer); + + if(newContainer != null) + oldContainer = newContainer; + } + + if(!player.capabilities.isCreativeMode) + player.setCurrentItemOrArmor(0, oldContainer); + + return true; + } + } + } + } + + if (!world.isRemote) + { + + if (tileentityboiler != null) + player.openGui(Steamcraft.instance, 0, world, x, y, z); + + } + + return true; + } + + return false; + } +} diff --git a/src/main/java/com/JAWolfe/tfptweaks/handlers/ConfigHandler.java b/src/main/java/com/JAWolfe/tfptweaks/handlers/ConfigHandler.java new file mode 100644 index 0000000..b37e987 --- /dev/null +++ b/src/main/java/com/JAWolfe/tfptweaks/handlers/ConfigHandler.java @@ -0,0 +1,83 @@ +package com.JAWolfe.tfptweaks.handlers; + +import java.io.File; + +import com.JAWolfe.tfptweaks.reference.ConfigSettings; +import com.JAWolfe.tfptweaks.reference.References; + +import cpw.mods.fml.client.event.ConfigChangedEvent; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.common.config.Configuration; + +public class ConfigHandler +{ + + public static Configuration config; + + public static void init(File configFile) + { + if(config == null) + { + config = new Configuration(configFile); + loadConfig(); + } + } + + @SubscribeEvent + public void onConfigChangedEvent(ConfigChangedEvent.OnConfigChangedEvent event) + { + if(event.modID.equalsIgnoreCase(References.ModID)) + loadConfig(); + } + + private static void loadConfig() + { + ConfigSettings.VanillaChestConversion = config.getBoolean("VanillaChestConversion", Configuration.CATEGORY_GENERAL, + true, "Enable vanilla chest conversion: "); + + ConfigSettings.FleshBlockRecipe = config.getBoolean("FleshBlockRecipe", Configuration.CATEGORY_GENERAL, + false, "Enable Steamcraft 2 Flesh Block Recipe: "); + + ConfigSettings.FSPBoilerWaterFix = config.getBoolean("FSPBoilerWaterFix", Configuration.CATEGORY_GENERAL, + true, "Enable Flaxbeard's Steam Power Boiler TFC water fix: "); + + ConfigSettings.FSPFlashBoilerWaterFix = config.getBoolean("FSPFlashBoilerWaterFix", Configuration.CATEGORY_GENERAL, + true, "Enable Flaxbeard's Steam Power Flash Boiler TFC water fix: "); + + ConfigSettings.FSPWailaIntegration = config.getBoolean("FSPWailaIntegration", Configuration.CATEGORY_GENERAL, + true, "Enable Flaxbeard's Steam Power Waila integration: "); + + ConfigSettings.VanillaMagicScaling = config.getBoolean("EnableVanillaMagicScaling", "MagicScaling", + true, "Enable vanilla magic damage to TFC scaling: "); + + ConfigSettings.VanillaMagicMultipier = config.getInt("VanillaMagicMultipier", "MagicScaling", + 25, 20, 1000, "Multiplier used to scale vanilla magic damage to TFC levels: "); + + ConfigSettings.VanillaDamageScaling = config.getBoolean("EnableVanillaDamageScaling", "HitScaling", + true, "Enable vanilla hit damage to TFC scaling: "); + + ConfigSettings.VanillaPvPDamageScaling = config.getBoolean("EnableVanillaPvPDamageScaling", "HitScaling.PvP", + true, "Enable vanilla PvP hit damage to TFC scaling: "); + + ConfigSettings.VanillaPvPDamageMultipier = config.getInt("VanillaPvPDamageMultipier", "HitScaling.PvP", + 25, 20, 1000, "Multiplier used to scale vanilla PvP hit damage to TFC levels: "); + + ConfigSettings.VanillaMobDamageScaling = config.getBoolean("EnableVanillaMobDamageScaling", "HitScaling.mob", + true, "Enable vanilla mob hit damage to TFC scaling: "); + + ConfigSettings.VanillaMobDamageMultipier = config.getInt("VanillaMobDamageMultipier", "HitScaling.mob", + 50, 20, 1000, "Multiplier used to scale vanilla mob hit damage to TFC levels: "); + + ConfigSettings.InstantHealingScaling = config.getBoolean("EnableInstantHealingScaling", "HealScaling", + true, "Enable vanilla instant healing potion to TFC scaling: "); + + ConfigSettings.VanillaHealingMultipier = config.getInt("VanillaHealingMultipier", "HealScaling", + 50, 10, 1000, "Multiplier used to scale vanilla instant healing potion to TFC levels: "); + + ConfigSettings.MineTweakerSupport = config.getBoolean("MineTweakerSupport", Configuration.CATEGORY_GENERAL, + true, "Enable Minetweaker support for TFC: "); + + if(config.hasChanged()) + config.save(); + } +} diff --git a/src/main/java/com/JAWolfe/tfptweaks/handlers/PlayerHandler.java b/src/main/java/com/JAWolfe/tfptweaks/handlers/PlayerDamageHandler.java similarity index 64% rename from src/main/java/com/JAWolfe/tfptweaks/handlers/PlayerHandler.java rename to src/main/java/com/JAWolfe/tfptweaks/handlers/PlayerDamageHandler.java index 189db2f..8be167c 100644 --- a/src/main/java/com/JAWolfe/tfptweaks/handlers/PlayerHandler.java +++ b/src/main/java/com/JAWolfe/tfptweaks/handlers/PlayerDamageHandler.java @@ -2,22 +2,20 @@ package com.JAWolfe.tfptweaks.handlers; import java.util.Random; +import com.JAWolfe.tfptweaks.reference.ConfigSettings; import com.bioxx.tfc.Items.ItemTFCArmor; -import com.bioxx.tfc.api.TFCBlocks; import com.bioxx.tfc.api.Enums.EnumDamageType; import com.bioxx.tfc.api.Events.EntityArmorCalcEvent; import com.bioxx.tfc.api.Interfaces.ICausesDamage; import com.bioxx.tfc.api.Interfaces.IInnateArmor; import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; @@ -27,91 +25,123 @@ import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.living.LivingAttackEvent; import net.minecraftforge.event.entity.living.LivingHealEvent; import net.minecraftforge.event.entity.living.LivingHurtEvent; -import net.minecraftforge.event.entity.player.EntityItemPickupEvent; -public class PlayerHandler +public class PlayerDamageHandler { - @SubscribeEvent - public void onItemPickup(EntityItemPickupEvent event) - { - EntityItem item = event.item; - ItemStack is = item.getEntityItem(); - EntityPlayer player = event.entityPlayer; - Item droppedItem = is.getItem(); - - if(droppedItem.equals(Item.getItemFromBlock(Blocks.chest))) - { - item.delayBeforeCanPickup = 100; - item.setDead(); - item.setInvisible(true); - Random rand = player.worldObj.rand; - player.worldObj.playSoundAtEntity(player, "random.pop", 0.2F, ((rand.nextFloat() - rand.nextFloat()) * 0.7F + 1.0F) * 2.0F); - - player.inventory.addItemStackToInventory(new ItemStack(TFCBlocks.chest, 1, 0)); - } - } - @SubscribeEvent public void onDamaged(LivingHurtEvent event) { if(event.entity instanceof EntityPlayer) - { + { if (event.source == DamageSource.onFire || event.source == DamageSource.fall || event.source == DamageSource.drown || event.source == DamageSource.lava || event.source == DamageSource.inWall || event.source == DamageSource.fallingBlock || event.source.isExplosion() || event.source == DamageSource.inFire || event.source == DamageSource.starve) return; - else if(event.source == DamageSource.magic && event.ammount <= 20) + else if((event.source == DamageSource.magic || event.source == DamageSource.wither) && event.ammount < 20 && ConfigSettings.VanillaMagicScaling) { - event.ammount = event.ammount * 50; + event.ammount = event.ammount * ConfigSettings.VanillaMagicMultipier; - if(event.source == DamageSource.magic && (event.entityLiving.getHealth() - event.ammount) <= 0) + if((event.source == DamageSource.magic || event.source == DamageSource.wither) && (event.entityLiving.getHealth() - event.ammount) <= 0) event.setCanceled(true); } else { - if(!event.source.isUnblockable()) - { - event.ammount = applyArmorCalculations(event.entityLiving, event.source, event.ammount); - } - else if(event.source.isUnblockable() && event.source.getSourceOfDamage() instanceof EntityLivingBase) - { - float damage = (float)((EntityLivingBase)event.source.getSourceOfDamage()).getEntityAttribute(SharedMonsterAttributes.attackDamage).getAttributeValue(); - - if(damage <= 20) - damage *= 50; - - event.ammount = applyArmorCalculations(event.entityLiving, event.source, damage); - } + if(event.source.getSourceOfDamage() instanceof EntityLivingBase && ConfigSettings.VanillaDamageScaling) + { + if(event.source.isUnblockable()) + { + float damage = (float)((EntityLivingBase)event.source.getSourceOfDamage()).getEntityAttribute(SharedMonsterAttributes.attackDamage).getAttributeValue(); + + if(event.source.getSourceOfDamage() instanceof EntityPlayer && damage < 20 && ConfigSettings.VanillaPvPDamageScaling) + damage *= ConfigSettings.VanillaPvPDamageMultipier; + + if(!(event.source.getSourceOfDamage() instanceof EntityPlayer) && damage < 20 && ConfigSettings.VanillaMobDamageScaling) + damage *= ConfigSettings.VanillaMobDamageMultipier; + + event.ammount = applyArmorCalculations(event.entityLiving, event.source, event.ammount > damage ? event.ammount : damage); + } + } } } } - @SubscribeEvent - public void onHeal(LivingHealEvent event) - { - if(event.amount > 1 && event.amount < 9) - event.amount = event.amount * 50; - } - @SubscribeEvent public void entityAttack(LivingAttackEvent event) { if(event.entityLiving.worldObj.isRemote) return; - if(event.entity instanceof EntityPlayerMP) - { - if(event.source == DamageSource.onFire || event.source == DamageSource.fall || event.source == DamageSource.drown || - event.source == DamageSource.lava || event.source == DamageSource.inWall || event.source == DamageSource.fallingBlock || - event.source.isExplosion() || event.source == DamageSource.inFire || event.source == DamageSource.starve) - return; - else if(event.ammount < 20) - { - event.entity.attackEntityFrom(event.source, event.ammount * 50); + if(event.source == DamageSource.onFire || event.source == DamageSource.fall || event.source == DamageSource.drown || + event.source == DamageSource.lava || event.source == DamageSource.inWall || event.source == DamageSource.fallingBlock || + event.source.isExplosion() || event.source == DamageSource.inFire || event.source == DamageSource.starve || + event.source == DamageSource.magic || event.source == DamageSource.wither) + return; + else if(event.ammount < 20 && event.entity instanceof EntityPlayer && ConfigSettings.VanillaDamageScaling) + { + if(event.source.getEntity() instanceof EntityPlayer && ConfigSettings.VanillaPvPDamageScaling) + { + EntityLivingBase attacker = (EntityLivingBase)event.source.getEntity(); + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + Entity target = event.entity; + ItemStack stack = attacker.getHeldItem(); + if (stack != null && stack.getItem().onLeftClickEntity(stack, player, target)) + return; + + if (target.canAttackWithItem()) + { + if (!target.hitByEntity(target)) + { + float damageAmount = ConfigSettings.VanillaPvPDamageMultipier; + if(attacker.getHeldItem() != null) + { + damageAmount = (float)player.getEntityAttribute(SharedMonsterAttributes.attackDamage).getAttributeValue(); + + damageAmount *= ConfigSettings.VanillaPvPDamageMultipier; + } + + if (player.isPotionActive(Potion.damageBoost)) + damageAmount += 3 << player.getActivePotionEffect(Potion.damageBoost).getAmplifier(); + + float enchantmentDamage = 0; + + if (target instanceof EntityLiving) + { + enchantmentDamage = EnchantmentHelper.getEnchantmentModifierLiving(player, (EntityLiving) target); + } + + if (damageAmount > 0 || enchantmentDamage > 0) + { + boolean criticalHit = player.fallDistance > 0.0F && !player.onGround && + !player.isOnLadder() && !player.isInWater() && + !player.isPotionActive(Potion.blindness) && player.ridingEntity == null && + target instanceof EntityLiving; + + if (criticalHit && damageAmount > 0) + damageAmount += event.entity.worldObj.rand.nextInt((int) (damageAmount / 2 + 2)); + + damageAmount += enchantmentDamage; + + target.attackEntityFrom(DamageSource.causePlayerDamage(player), damageAmount); + } + } + } + } + + if(!(event.source.getEntity() instanceof EntityPlayer) && event.source.getEntity() != null && + !event.source.getEntity().getClass().getName().contains("bioxx.tfc") && ConfigSettings.VanillaMobDamageScaling) + { + event.entity.attackEntityFrom(event.source, event.ammount * ConfigSettings.VanillaMobDamageMultipier); } } } + @SubscribeEvent + public void onHeal(LivingHealEvent event) + { + if(event.amount > 1 && event.amount < 9 && ConfigSettings.InstantHealingScaling) + event.amount = event.amount * ConfigSettings.VanillaHealingMultipier; + } + protected int applyArmorCalculations(EntityLivingBase entity, DamageSource source, float originalDamage) { ItemStack[] armor = entity.getLastActiveItems(); diff --git a/src/main/java/com/JAWolfe/tfptweaks/handlers/PlayerInteractionHandler.java b/src/main/java/com/JAWolfe/tfptweaks/handlers/PlayerInteractionHandler.java new file mode 100644 index 0000000..6990e56 --- /dev/null +++ b/src/main/java/com/JAWolfe/tfptweaks/handlers/PlayerInteractionHandler.java @@ -0,0 +1,142 @@ +package com.JAWolfe.tfptweaks.handlers; + +import java.util.Random; + +import com.JAWolfe.tfptweaks.blocks.TFPBlocks; +import com.JAWolfe.tfptweaks.reference.ConfigSettings; +import com.bioxx.tfc.api.TFCBlocks; + +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.eventhandler.Event.Result; +import flaxbeard.steamcraft.SteamcraftBlocks; +import net.minecraft.block.Block; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.event.entity.player.EntityItemPickupEvent; +import net.minecraftforge.event.entity.player.PlayerInteractEvent; +import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; + +public class PlayerInteractionHandler +{ + /*@SubscribeEvent + public void onToolTip(ItemTooltipEvent event) + { + ItemStack object = event.itemStack; + if(!(object.getItem() instanceof ISize)) + event.toolTip.add("\u2696" + TFC_Core.translate("gui.Weight." + EnumWeight.LIGHT.getName()) + " \u21F2" + + TFC_Core.translate("gui.Size." + EnumSize.VERYSMALL.getName().replace(" ", ""))); + }*/ + + @SubscribeEvent + public void onItemPickup(EntityItemPickupEvent event) + { + EntityItem item = event.item; + ItemStack is = item.getEntityItem(); + EntityPlayer player = event.entityPlayer; + Item droppedItem = is.getItem(); + + if(droppedItem.equals(Item.getItemFromBlock(Blocks.chest)) && ConfigSettings.VanillaChestConversion) + { + item.delayBeforeCanPickup = 100; + item.setDead(); + item.setInvisible(true); + Random rand = player.worldObj.rand; + player.worldObj.playSoundAtEntity(player, "random.pop", 0.2F, ((rand.nextFloat() - rand.nextFloat()) * 0.7F + 1.0F) * 2.0F); + + player.inventory.addItemStackToInventory(new ItemStack(TFCBlocks.chest, 1, 0)); + } + } + + @SubscribeEvent + public void onBlockPlaced(PlayerInteractEvent event) + { + if (event.entityPlayer.worldObj.isRemote) + return; + + ItemStack itemInHand = event.entityPlayer.getCurrentEquippedItem(); + + if(itemInHand == null) + return; + + if(event.action == Action.RIGHT_CLICK_BLOCK && event.getResult() != Result.DENY) + { + if(Loader.isModLoaded("Steamcraft")) + { + if(event.entityPlayer.getCurrentEquippedItem().getItem() == Item.getItemFromBlock(SteamcraftBlocks.boiler) && ConfigSettings.FSPBoilerWaterFix) + { + event.setCanceled(true); + handleBlockPlacement(event.entityPlayer, event.entityLiving, event.world, TFPBlocks.tweakedboiler, event.x, event.y, event.z, event.face); + } + else if(event.entityPlayer.getCurrentEquippedItem().getItem() == Item.getItemFromBlock(SteamcraftBlocks.flashBoiler) && ConfigSettings.FSPFlashBoilerWaterFix) + { + event.setCanceled(true); + switch(event.face) + { + case 0: PlaceBlock(event.entityLiving, event.world, event.x, event.y - 1, event.z, TFPBlocks.tweakedFlashBoiler, 0); break; + case 1: PlaceBlock(event.entityLiving, event.world, event.x, event.y + 1, event.z, TFPBlocks.tweakedFlashBoiler, 0); break; + case 2: PlaceBlock(event.entityLiving, event.world, event.x, event.y, event.z - 1, TFPBlocks.tweakedFlashBoiler, 0); break; + case 3: PlaceBlock(event.entityLiving, event.world, event.x, event.y, event.z + 1, TFPBlocks.tweakedFlashBoiler, 0); break; + case 4: PlaceBlock(event.entityLiving, event.world, event.x - 1, event.y, event.z, TFPBlocks.tweakedFlashBoiler, 0); break; + case 5: PlaceBlock(event.entityLiving, event.world, event.x + 1, event.y, event.z, TFPBlocks.tweakedFlashBoiler, 0); break; + default: break; + } + + if(event.entityPlayer.getCurrentEquippedItem().stackSize == 1) + event.entityPlayer.setCurrentItemOrArmor(0, null); + else + event.entityPlayer.getCurrentEquippedItem().stackSize--; + } + } + } + } + + private void PlaceBlockRotation(EntityLivingBase player, World world, int x, int y, int z, Block block) + { + int l = MathHelper.floor_double((double) (player.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; + + int meta = 2; + switch(l) + { + case 1: meta = 5; break; + case 2: meta = 3; break; + case 3: meta = 4; break; + } + + PlaceBlock(player, world, x, y, z, block, meta); + } + + private void PlaceBlock(EntityLivingBase player, World world, int x, int y, int z, Block block, int meta) + { + if(world.setBlock(x, y, z, block, meta, 3)) + { + block.onBlockPlacedBy(world, x, y, z, player, new ItemStack(Item.getItemFromBlock(block))); + block.onPostBlockPlaced(world, x, y, z, 0); + } + } + + private void handleBlockPlacement(EntityPlayer player, EntityLivingBase elb, World world, Block block, int x, int y, int z, int face) + { + switch(face) + { + case 0: PlaceBlockRotation(elb, world, x, y - 1, z, block); break; + case 1: PlaceBlockRotation(elb, world, x, y + 1, z, block); break; + case 2: PlaceBlockRotation(elb, world, x, y, z - 1, block); break; + case 3: PlaceBlockRotation(elb, world, x, y, z + 1, block); break; + case 4: PlaceBlockRotation(elb, world, x - 1, y, z, block); break; + case 5: PlaceBlockRotation(elb, world, x + 1, y, z, block); break; + default: break; + } + + if(player.getCurrentEquippedItem().stackSize == 1) + player.setCurrentItemOrArmor(0, null); + else + player.getCurrentEquippedItem().stackSize--; + } +} diff --git a/src/main/java/com/JAWolfe/tfptweaks/handlers/SpawnHandler.java b/src/main/java/com/JAWolfe/tfptweaks/handlers/SpawnHandler.java new file mode 100644 index 0000000..a4ca315 --- /dev/null +++ b/src/main/java/com/JAWolfe/tfptweaks/handlers/SpawnHandler.java @@ -0,0 +1,18 @@ +package com.JAWolfe.tfptweaks.handlers; + +public class SpawnHandler +{ + /*@SubscribeEvent + public void onSpawn(EntityJoinWorldEvent event) + { + /*if(event.entity instanceof EntityProjectileBase) + { + EntityProjectileBase projectile = (EntityProjectileBase)event.entity; + projectile.baseDamage = 2; + LogHelper.info(projectile.getDamage(null)); + } + /*if(!event.entity.getClass().getSimpleName().contains("EntityItem") && !event.entity.getClass().getSimpleName().contains("EntityBat") + && !event.entity.getClass().getSimpleName().contains("TFC")) + LogHelper.info(event.entity.getClass().getSimpleName()); + }*/ +} diff --git a/src/main/java/com/JAWolfe/tfptweaks/minetweaker/Anvil.java b/src/main/java/com/JAWolfe/tfptweaks/minetweaker/Anvil.java new file mode 100644 index 0000000..54a8fd0 --- /dev/null +++ b/src/main/java/com/JAWolfe/tfptweaks/minetweaker/Anvil.java @@ -0,0 +1,9 @@ +package com.JAWolfe.tfptweaks.minetweaker; + +import stanhebben.zenscript.annotations.ZenClass; + +@ZenClass("mods.tfptweaks.Anvil") +public class Anvil +{ + +} diff --git a/src/main/java/com/JAWolfe/tfptweaks/minetweaker/Barrel.java b/src/main/java/com/JAWolfe/tfptweaks/minetweaker/Barrel.java new file mode 100644 index 0000000..60668c4 --- /dev/null +++ b/src/main/java/com/JAWolfe/tfptweaks/minetweaker/Barrel.java @@ -0,0 +1,232 @@ +package com.JAWolfe.tfptweaks.minetweaker; + +import java.util.List; + +import com.bioxx.tfc.api.Crafting.BarrelManager; +import com.bioxx.tfc.api.Crafting.BarrelMultiItemRecipe; +import com.bioxx.tfc.api.Crafting.BarrelRecipe; + +import minetweaker.IUndoableAction; +import minetweaker.MineTweakerAPI; +import minetweaker.api.item.IItemStack; +import minetweaker.api.liquid.ILiquidStack; +import minetweaker.api.minecraft.MineTweakerMC; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; +import stanhebben.zenscript.annotations.ZenClass; +import stanhebben.zenscript.annotations.ZenMethod; + +@ZenClass("mods.tfptweaks.Barrel") +public class Barrel +{ + @ZenMethod + public static void convertFluid(ILiquidStack outputFS, IItemStack inputIS, ILiquidStack inputFS, int sealtime, boolean removesLiquid, boolean sealed, int minTechLevel, boolean allowAnyStack) + { + ItemStack inputStack = MineTweakerMC.getItemStack(inputIS); + FluidStack inputFluid = MineTweakerMC.getLiquidStack(inputFS); + FluidStack outputFluid = MineTweakerMC.getLiquidStack(outputFS); + + MineTweakerAPI.apply(new convertFluidAction(inputStack, inputFluid, outputFluid, sealtime, removesLiquid, sealed, minTechLevel, allowAnyStack)); + } + + @ZenMethod + public static void convertFluid(ILiquidStack outputFS, IItemStack inputIS, ILiquidStack inputFS, int sealtime, boolean removesLiquid, boolean sealed, int minTechLevel) + { + convertFluid(outputFS, inputIS, inputFS, sealtime, removesLiquid, sealed, minTechLevel, true); + } + + @ZenMethod + public static void convertFluid(ILiquidStack outputFS, IItemStack inputIS, ILiquidStack inputFS, int sealtime, boolean removesLiquid, boolean sealed) + { + convertFluid(outputFS, inputIS, inputFS, sealtime, removesLiquid, sealed, 1, true); + } + + @ZenMethod + public static void convertFluid(ILiquidStack outputFS, IItemStack inputIS, ILiquidStack inputFS, int sealtime, boolean removesLiquid) + { + convertFluid(outputFS, inputIS, inputFS, sealtime, removesLiquid, true, 1, true); + } + + @ZenMethod + public static void convertFluid(ILiquidStack outputFS, IItemStack inputIS, ILiquidStack inputFS, int sealtime) + { + convertFluid(outputFS, inputIS, inputFS, sealtime, true, true, 1, true); + } + + @ZenMethod + public static void convertFluid(ILiquidStack outputFS, IItemStack inputIS, ILiquidStack inputFS) + { + convertFluid(outputFS, inputIS, inputFS, 8, true, true, 1, true); + } + + @ZenMethod + public static void convertItem(IItemStack outputIS, IItemStack inputIS, ILiquidStack inputFS, boolean sealed, int minTechLevel, boolean allowAnyStack, boolean keepstacksize) + { + ItemStack inputStack = MineTweakerMC.getItemStack(inputIS); + ItemStack outputStack = MineTweakerMC.getItemStack(outputIS); + FluidStack inputFluid = MineTweakerMC.getLiquidStack(inputFS); + + MineTweakerAPI.apply(new addBarrelMultiItemAction(inputStack, inputFluid, outputStack, sealed, minTechLevel, allowAnyStack, keepstacksize)); + } + + @ZenMethod + public static void convertItem(IItemStack outputIS, IItemStack inputIS, ILiquidStack inputFS, boolean sealed, int minTechLevel, boolean allowAnyStack) + { + convertItem(outputIS, inputIS, inputFS, sealed, minTechLevel, allowAnyStack, true); + } + + @ZenMethod + public static void convertItem(IItemStack outputIS, IItemStack inputIS, ILiquidStack inputFS, boolean sealed, int minTechLevel) + { + convertItem(outputIS, inputIS, inputFS, sealed, minTechLevel, true, true); + } + + @ZenMethod + public static void convertItem(IItemStack outputIS, IItemStack inputIS, ILiquidStack inputFS, boolean sealed) + { + convertItem(outputIS, inputIS, inputFS, sealed, 1, true, true); + } + + @ZenMethod + public static void convertItem(IItemStack outputIS, IItemStack inputIS, ILiquidStack inputFS) + { + convertItem(outputIS, inputIS, inputFS, true, 1, true, true); + } + + private static class convertFluidAction implements IUndoableAction + { + ItemStack inputStack; + ItemStack outputStack; + FluidStack inputFluid; + FluidStack outputFluid; + int sealtime; + boolean removesLiquid; + boolean sealed; + int minTechLevel; + boolean allowAnyStack; + + public convertFluidAction(ItemStack inputIS, FluidStack inputFS, FluidStack outputFS, int sealtime, boolean removesLiquid, boolean sealed, int minTechLevel, boolean allowAnyStack) + { + this.inputStack = inputIS; + this.inputFluid = inputFS; + this.outputFluid = outputFS; + this.sealtime = sealtime; + this.removesLiquid = removesLiquid; + this.sealed = sealed; + this.minTechLevel = minTechLevel; + this.allowAnyStack = allowAnyStack; + } + + @Override + public void apply() + { + BarrelManager.getInstance().addRecipe(new BarrelRecipe(inputStack, inputFluid, outputStack, outputFluid, sealtime).setRemovesLiquid(removesLiquid).setAllowAnyStack(allowAnyStack).setMinTechLevel(minTechLevel).setSealedRecipe(sealed)); + } + + @Override + public String describe() + { + if(outputStack != null) + return "Adding item '" + inputStack.getDisplayName() + "' with '" + inputFluid.getLocalizedName() + + "' to barrel yeilding '" + outputStack.getDisplayName() + "'"; + else + return "Adding item '" + inputStack.getDisplayName() + "' with '" + inputFluid.getLocalizedName() + + "' to barrel yeilding '" + outputFluid.getLocalizedName() + "'"; + } + + @Override + public boolean canUndo() + { + return true; + } + + @Override + public void undo() + { + List BarrelList = BarrelManager.getInstance().getRecipes(); + for (int i = 0; i < BarrelList.size(); i++) + { + if (BarrelList.get(i) != null) + { + if (BarrelList.get(i).matches(inputStack, inputFluid)) + BarrelList.remove(i--); + } + } + } + + @Override + public String describeUndo() + { + return "Removing item '" + inputStack.getDisplayName() + "' with '" + inputFluid.getLocalizedName() + "' from barrel '"; + } + + @Override + public Object getOverrideKey() { + return null; + } + } + + private static class addBarrelMultiItemAction implements IUndoableAction + { + ItemStack inputStack; + ItemStack outputStack; + FluidStack inputFluid; + boolean sealed; + int minTechLevel; + boolean allowAnyStack; + + public addBarrelMultiItemAction(ItemStack inputIS, FluidStack inputFS, ItemStack outputIS, boolean sealed, int minTechLevel, boolean allowAnyStack, boolean keepstacksize) + { + this.inputStack = inputIS; + this.inputFluid = inputFS; + this.outputStack = outputIS; + this.sealed = sealed; + this.minTechLevel = minTechLevel; + this.allowAnyStack = allowAnyStack; + } + + @Override + public void apply() + { + BarrelManager.getInstance().addRecipe(new BarrelMultiItemRecipe(inputStack, inputFluid, outputStack, inputFluid).setAllowAnyStack(allowAnyStack).setMinTechLevel(minTechLevel).setSealedRecipe(sealed)); + } + + @Override + public String describe() + { + return "Adding item '" + inputStack.getDisplayName() + "' with '" + inputFluid.getLocalizedName() + + "' to barrel yeilding '" + outputStack.getDisplayName() + "'"; + } + + @Override + public boolean canUndo() + { + return true; + } + + @Override + public void undo() + { + List BarrelList = BarrelManager.getInstance().getRecipes(); + for (int i = 0; i < BarrelList.size(); i++) + { + if (BarrelList.get(i) != null) + { + if (BarrelList.get(i).matches(inputStack, inputFluid)) + BarrelList.remove(i--); + } + } + } + + @Override + public String describeUndo() + { + return "Removing item '" + inputStack.getDisplayName() + "' with '" + inputFluid.getLocalizedName() + "' from barrel '"; + } + + @Override + public Object getOverrideKey() { + return null; + } + } +} diff --git a/src/main/java/com/JAWolfe/tfptweaks/minetweaker/TFCTweaker.java b/src/main/java/com/JAWolfe/tfptweaks/minetweaker/TFCTweaker.java index 4d8ea94..452806e 100644 --- a/src/main/java/com/JAWolfe/tfptweaks/minetweaker/TFCTweaker.java +++ b/src/main/java/com/JAWolfe/tfptweaks/minetweaker/TFCTweaker.java @@ -1,5 +1,7 @@ package com.JAWolfe.tfptweaks.minetweaker; +import com.JAWolfe.tfptweaks.reference.ConfigSettings; + import cpw.mods.fml.common.Loader; import minetweaker.MineTweakerAPI; @@ -7,11 +9,13 @@ public class TFCTweaker { public static void postInit() { - if (Loader.isModLoaded("MineTweaker3")) + if (Loader.isModLoaded("MineTweaker3") && ConfigSettings.MineTweakerSupport) { MineTweakerAPI.registerClass(ItemHeat.class); MineTweakerAPI.registerClass(Loom.class); MineTweakerAPI.registerClass(Quern.class); + //MineTweakerAPI.registerClass(Barrel.class); + //MineTweakerAPI.registerClass(Anvil.class); } } } diff --git a/src/main/java/com/JAWolfe/tfptweaks/proxy/ClientProxy.java b/src/main/java/com/JAWolfe/tfptweaks/proxy/ClientProxy.java new file mode 100644 index 0000000..8bc8a7d --- /dev/null +++ b/src/main/java/com/JAWolfe/tfptweaks/proxy/ClientProxy.java @@ -0,0 +1,9 @@ +package com.JAWolfe.tfptweaks.proxy; + +public class ClientProxy extends CommonProxy +{ + public void registerTileEntities() + { + super.registerTileEntities(); + } +} diff --git a/src/main/java/com/JAWolfe/tfptweaks/proxy/CommonProxy.java b/src/main/java/com/JAWolfe/tfptweaks/proxy/CommonProxy.java new file mode 100644 index 0000000..653a750 --- /dev/null +++ b/src/main/java/com/JAWolfe/tfptweaks/proxy/CommonProxy.java @@ -0,0 +1,25 @@ +package com.JAWolfe.tfptweaks.proxy; + +import com.JAWolfe.tfptweaks.tiles.TEBoiler; +import com.JAWolfe.tfptweaks.tiles.TEFlashBoiler; + +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.event.FMLInterModComms; +import cpw.mods.fml.common.registry.GameRegistry; + +public class CommonProxy +{ + public void registerTileEntities() + { + if(Loader.isModLoaded("Steamcraft")) + { + GameRegistry.registerTileEntity(TEBoiler.class, "TEBoiler"); + GameRegistry.registerTileEntity(TEFlashBoiler.class, "TEFlashBoiler"); + } + } + + public void registerWAILA() + { + FMLInterModComms.sendMessage("Waila", "register", "com.JAWolfe.tfptweaks.WAILAInfo.callbackRegister"); + } +} diff --git a/src/main/java/com/JAWolfe/tfptweaks/reference/ConfigSettings.java b/src/main/java/com/JAWolfe/tfptweaks/reference/ConfigSettings.java new file mode 100644 index 0000000..c69cbe8 --- /dev/null +++ b/src/main/java/com/JAWolfe/tfptweaks/reference/ConfigSettings.java @@ -0,0 +1,21 @@ +package com.JAWolfe.tfptweaks.reference; + +public class ConfigSettings +{ + public static boolean VanillaChestConversion = true; + public static boolean FleshBlockRecipe = false; + public static boolean FSPBoilerWaterFix = true; + public static boolean FSPFlashBoilerWaterFix = true; + public static boolean FSPWailaIntegration = true; + public static boolean VanillaMagicScaling = true; + public static int VanillaMagicMultipier = 25; + public static boolean VanillaDamageScaling = true; + public static boolean VanillaPvPDamageScaling = true; + public static int VanillaPvPDamageMultipier = 25; + public static boolean VanillaMobDamageScaling = true; + public static int VanillaMobDamageMultipier = 50; + public static boolean InstantHealingScaling = true; + public static int VanillaHealingMultipier = 50; + public static boolean MineTweakerSupport = true; + +} diff --git a/src/main/java/com/JAWolfe/tfptweaks/reference/References.java b/src/main/java/com/JAWolfe/tfptweaks/reference/References.java new file mode 100644 index 0000000..255177d --- /dev/null +++ b/src/main/java/com/JAWolfe/tfptweaks/reference/References.java @@ -0,0 +1,23 @@ +package com.JAWolfe.tfptweaks.reference; + +public class References +{ + public static final String ModID = "TerraFirmaPunkTweaks"; + public static final String ModName = "TerraFirmaPunk Tweaks"; + + public static final String MODID_TFC = "terrafirmacraft"; + public static final String MODNAME_TFC = "TerraFirmaCraft"; + + public static final String MODID_SC2 = "steamcraft2"; + + public static final String MODID_FSP = "Steamcraft"; + + public static final String ModVersion = "@MOD_VERSION@"; + + public static final String ModDependencies = "required-after:" + MODID_TFC + + ";required-after:" + MODID_SC2 + + ";required-after:" + MODID_FSP; + + public static final String SERVER_PROXY_CLASS = "com.JAWolfe.tfptweaks.proxy.CommonProxy"; + public static final String CLIENT_PROXY_CLASS = "com.JAWolfe.tfptweaks.proxy.ClientProxy"; +} diff --git a/src/main/java/com/JAWolfe/tfptweaks/tiles/TEBoiler.java b/src/main/java/com/JAWolfe/tfptweaks/tiles/TEBoiler.java new file mode 100644 index 0000000..a87f354 --- /dev/null +++ b/src/main/java/com/JAWolfe/tfptweaks/tiles/TEBoiler.java @@ -0,0 +1,71 @@ +package com.JAWolfe.tfptweaks.tiles; + +import com.bioxx.tfc.api.TFCFluids; + +import flaxbeard.steamcraft.tile.TileEntityBoiler; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidContainerItem; + +public class TEBoiler extends TileEntityBoiler +{ + public TEBoiler() + { + super(50000); + } + + @Override + public void updateEntity() + { + super.updateEntity(); + + ItemStack is = this.getStackInSlot(1); + + if(is != null && is.getItem() != Items.water_bucket) + { + if (is.getItem() instanceof IFluidContainerItem) + { + IFluidContainerItem fluidContainerItem = (IFluidContainerItem) is.getItem(); + FluidStack fluid = fluidContainerItem.getFluid(is); + if(fluid != null && (fluid.getFluid() == TFCFluids.FRESHWATER)) + { + int containerSpace = getTank().getCapacity() - getTank().getFluidAmount(); + if(containerSpace > 0) + { + FluidStack drained = fluidContainerItem.drain(is, containerSpace, true); + if(drained != null) + getTank().fill(new FluidStack(FluidRegistry.WATER, drained.amount), true); + } + } + } + else + { + FluidStack fluid = FluidContainerRegistry.getFluidForFilledItem(is); + if(fluid != null && (fluid.getFluid() == FluidRegistry.WATER || fluid.getFluid() == TFCFluids.FRESHWATER)) + { + int amountAdded = getTank().fill(new FluidStack(FluidRegistry.WATER, fluid.amount), true); + if (amountAdded > 0) + { + FluidStack leftovers = fluid.copy(); + leftovers.amount = fluid.amount - amountAdded; + + ItemStack oldContainer = FluidContainerRegistry.drainFluidContainer(is); + + if (leftovers.amount > 0) + { + ItemStack newContainer = FluidContainerRegistry.fillFluidContainer(leftovers, oldContainer); + + if(newContainer != null) + oldContainer = newContainer; + } + + this.setInventorySlotContents(1, oldContainer); + } + } + } + } + } +} diff --git a/src/main/java/com/JAWolfe/tfptweaks/tiles/TEFlashBoiler.java b/src/main/java/com/JAWolfe/tfptweaks/tiles/TEFlashBoiler.java new file mode 100644 index 0000000..17ef648 --- /dev/null +++ b/src/main/java/com/JAWolfe/tfptweaks/tiles/TEFlashBoiler.java @@ -0,0 +1,261 @@ +package com.JAWolfe.tfptweaks.tiles; + +import java.util.HashSet; + +import com.JAWolfe.tfptweaks.blocks.TFPBlocks; +import com.bioxx.tfc.api.TFCFluids; + +import flaxbeard.steamcraft.api.ISteamTransporter; +import flaxbeard.steamcraft.api.steamnet.SteamNetwork; +import flaxbeard.steamcraft.tile.TileEntityFlashBoiler; +import net.minecraft.block.Block; +import net.minecraft.init.Items; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidContainerItem; +import net.minecraftforge.fluids.IFluidHandler; + +public class TEFlashBoiler extends TileEntityFlashBoiler implements IFluidHandler, ISidedInventory, ISteamTransporter +{ + private static int[][] bbl = new int[][]{ + new int[]{0, 0, 0}, new int[]{1, 0, 0}, new int[]{0, 0, 1}, new int[]{1, 0, 1}, + new int[]{0, 1, 0}, new int[]{1, 1, 0}, new int[]{0, 1, 1}, new int[]{1, 1, 1}}; + private static int[][] tbl = new int[][]{ + new int[]{0, -1, 0}, new int[]{1, -1, 0}, new int[]{0, -1, 1}, new int[]{1, -1, 1}, + new int[]{0, 0, 0}, new int[]{1, 0, 0}, new int[]{0, 0, 1}, new int[]{1, 0, 1}}; + private static int[][] bbr = new int[][]{ + new int[]{-1, 0, 0}, new int[]{0, 0, 0}, new int[]{-1, 0, 1}, new int[]{0, 0, 1}, + new int[]{-1, 1, 0}, new int[]{0, 1, 0}, new int[]{-1, 1, 1}, new int[]{0, 1, 1}}; + private static int[][] tbr = new int[][]{ + new int[]{-1, -1, 0}, new int[]{0, -1, 0}, new int[]{-1, -1, 1}, new int[]{0, -1, 1}, + new int[]{-1, 0, 0}, new int[]{0, 0, 0}, new int[]{-1, 0, 1}, new int[]{0, 0, 1}}; + private static int[][] btl = new int[][]{ + new int[]{0, 0, -1}, new int[]{1, 0, -1}, new int[]{0, 0, 0}, new int[]{1, 0, 0}, + new int[]{0, 1, -1}, new int[]{1, 1, -1}, new int[]{0, 1, 0}, new int[]{1, 1, 0}}; + private static int[][] ttl = new int[][]{ + new int[]{0, -1, -1}, new int[]{1, -1, -1}, new int[]{0, -1, 0}, new int[]{1, -1, 0}, + new int[]{0, 0, -1}, new int[]{1, 0, -1}, new int[]{0, 0, 0}, new int[]{1, 0, 0}}; + private static int[][] btr = new int[][]{ + new int[]{-1, 0, -1}, new int[]{0, 0, -1}, new int[]{-1, 0, 0}, new int[]{0, 0, 0}, + new int[]{-1, 1, -1}, new int[]{0, 1, -1}, new int[]{-1, 1, 0}, new int[]{0, 1, 0}}; + private static int[][] ttr = new int[][]{ + new int[]{-1, -1, -1}, new int[]{0, -1, -1}, new int[]{-1, -1, 0}, new int[]{0, -1, 0}, + new int[]{-1, 0, -1}, new int[]{0, 0, -1}, new int[]{-1, 0, 0}, new int[]{0, 0, 0}}; + private static int[][][] validConfigs = new int[][][]{ + bbl, tbl, bbr, tbr, btl, ttl, btr, ttr}; + + public TEFlashBoiler() + { + super(); + } + + @Override + public void updateEntity() + { + super.updateEntity(); + + if (!worldObj.isRemote && worldObj.getBlockMetadata(xCoord, yCoord, zCoord) == 1) + { + ItemStack is = this.getStackInSlot(1); + + if (is != null && is.getItem() != Items.water_bucket) + { + if (is.getItem() instanceof IFluidContainerItem) + { + IFluidContainerItem fluidContainerItem = (IFluidContainerItem) is.getItem(); + FluidStack fluid = fluidContainerItem.getFluid(is); + if(fluid != null && (fluid.getFluid() == TFCFluids.FRESHWATER)) + { + int containerSpace = getTank().getCapacity() - getTank().getFluidAmount(); + if(containerSpace > 0) + { + FluidStack drained = fluidContainerItem.drain(is, containerSpace, true); + if(drained != null) + getTank().fill(new FluidStack(FluidRegistry.WATER, drained.amount), true); + } + } + } + else + { + FluidStack fluid = FluidContainerRegistry.getFluidForFilledItem(is); + if(fluid != null && (fluid.getFluid() == FluidRegistry.WATER || fluid.getFluid() == TFCFluids.FRESHWATER)) + { + int amountAdded = getTank().fill(new FluidStack(FluidRegistry.WATER, fluid.amount), true); + if (amountAdded > 0) + { + FluidStack leftovers = fluid.copy(); + leftovers.amount = fluid.amount - amountAdded; + + ItemStack oldContainer = FluidContainerRegistry.drainFluidContainer(is); + + if (leftovers.amount > 0) + { + ItemStack newContainer = FluidContainerRegistry.fillFluidContainer(leftovers, oldContainer); + + if(newContainer != null) + oldContainer = newContainer; + } + + this.setInventorySlotContents(1, oldContainer); + } + } + } + } + } + } + + @Override + public void destroyMultiblock() { + updateMultiblock(this.getValidClusterFromMetadata(), false, -1); + } + + @Override + public void checkMultiblock(boolean isBreaking, int frontSide) + { + if (!worldObj.isRemote) + { + if (!isBreaking) + { + int[] validClusters = getValidClusters(); + + if (validClusters.length == 1) + updateMultiblock(validClusters[0], true, frontSide); + } + } + + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + private void updateMultiblock(int clusterIndex, boolean isMultiblock, int frontSide) { + int[][] cluster = getClusterCoords(clusterIndex); + HashSet boilers = new HashSet(); + for (int pos = 7; pos >= 0; pos--) { + int x = cluster[pos][0], y = cluster[pos][1], z = cluster[pos][2]; + if (worldObj.getBlock(x, y, z) == TFPBlocks.tweakedFlashBoiler) { + worldObj.setBlockMetadataWithNotify( + cluster[pos][0], cluster[pos][1], cluster[pos][2], + isMultiblock ? pos + 1 : 0, + 2 + ); + TEFlashBoiler boiler = (TEFlashBoiler) worldObj.getTileEntity(cluster[pos][0], cluster[pos][1], cluster[pos][2]); + boiler.setFront(frontSide, false); + boilers.add(boiler); + + } else { + ////Steamcraft.log.debug("ERROR! ("+x+","+y+","+z+") is not a flashBoiler!"); + } + + } + for (TEFlashBoiler boiler : boilers) { + if (isMultiblock) { + SteamNetwork.newOrJoin(boiler); + } else { + if (this.getNetwork() != null) { + this.getNetwork().split(boiler, true); + } + } + } + } + + private int[] getValidClusters() { + int[] valid = new int[8]; + int[] out; + int count = 0; + for (int clusterIndex = 0; clusterIndex < 8; clusterIndex++) { + if (checkCluster(validConfigs[clusterIndex]) == 8) { + valid[count] = clusterIndex; + count++; + } + } + out = new int[count]; + for (int i = 0; i < count; i++) { + out[i] = valid[i]; + } + return out; + } + + private int checkCluster(int[][] cluster) { + int count = 0; + for (int pos = 0; pos < 8; pos++) { + int x = cluster[pos][0] + xCoord, y = cluster[pos][1] + yCoord, z = cluster[pos][2] + zCoord; + Block b = worldObj.getBlock(x, y, z); + if (b == TFPBlocks.tweakedFlashBoiler) { + if (!(worldObj.getBlockMetadata(x, y, z) > 0)) { + count++; + } + + } + + } + + return count; + } + + private int[][] getClusterCoords(int clusterIndex) { + int[][] cluster = validConfigs[clusterIndex]; + int[][] out = new int[8][3]; + for (int pos = 0; pos < 8; pos++) { + out[pos] = new int[]{cluster[pos][0] + xCoord, cluster[pos][1] + yCoord, cluster[pos][2] + zCoord}; + } + return out; + } + + @Override + public TEFlashBoiler getMasterTileEntity() { + int[][] cluster = getClusterCoords(getValidClusterFromMetadata()); + int x = cluster[0][0], y = cluster[0][1], z = cluster[0][2]; + TEFlashBoiler boiler = null; + if (worldObj.getBlock(x, y, z) == TFPBlocks.tweakedFlashBoiler && worldObj.getBlockMetadata(x, y, z) > 0) { + boiler = (TEFlashBoiler) worldObj.getTileEntity(x, y, z); + } + + return boiler; + } + + private int getValidClusterFromMetadata() { + int validCluster = -1; + // Because the clusters at the top are doofy and not in the right order =\ + switch (worldObj.getBlockMetadata(xCoord, yCoord, zCoord)) { + case 1: + validCluster = 0; + break; + case 2: + validCluster = 2; + break; + case 3: + validCluster = 4; + break; + case 4: + validCluster = 6; + break; + case 5: + validCluster = 1; + break; + case 6: + validCluster = 3; + break; + case 7: + validCluster = 5; + break; + case 8: + validCluster = 7; + break; + } + + return validCluster; + } + + @Override + public boolean isInCluster(int x, int y, int z) { + int[][] cluster = this.getClusterCoords(this.getValidClusterFromMetadata()); + for (int pos = 0; pos < cluster.length; pos++) { + if (x == cluster[pos][0] && y == cluster[pos][1] && z == cluster[pos][1]) { + return worldObj.getBlock(x, y, z) == TFPBlocks.tweakedFlashBoiler && worldObj.getBlockMetadata(x, y, z) > 0; + } + } + return false; + } +} diff --git a/src/main/resources/assets/tfptweaks/lang/en_US.lang b/src/main/resources/assets/tfptweaks/lang/en_US.lang new file mode 100644 index 0000000..480fec8 --- /dev/null +++ b/src/main/resources/assets/tfptweaks/lang/en_US.lang @@ -0,0 +1,12 @@ +#en_US +#This is the Main language configuration file +# +#If you want to color code the text then I recommend you visit http://www.minecraftwiki.net/wiki/Formatting_codes#Color_codes +#To create the § symbol which is used for assigning a color to the following text press Alt + 21 on Windows. For other OSes, view the above link. +#This file needs to be UTF-8 encoded to work with MC 1.7+ + +#======= +#= GUI = +#======= +gui.tfptweaks.watertank=Water Tank +gui.tfptweaks.steamtank=Steam Tank \ No newline at end of file diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 37335cc..916d2e0 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -1,9 +1,9 @@ { "modListVersion": 2, "modList": [{ - "modid": "terrafirmapunktweaks", + "modid": "TerraFirmaPunkTweaks", "name": "TerraFirmaPunk Tweaks", - "description": "Various tweaks for TerraFirmaPunk.", + "description": "Various tweaks for the TerraFirmaPunk Pack.", "version": "${mod_version}", "mcversion": "${minecraft_version}", "url": "", @@ -13,9 +13,9 @@ "logoFile": "", "screenshots": [], "parent": "", - "requiredMods": [], - "dependencies": ["terrafirmacraft", "steamcraft2"], - "dependants": [ ], + "requiredMods": ["Forge", "terrafirmacraft"], + "dependencies": ["terrafirmacraft", "steamcraft2", "Steamcraft"], + "dependants": [], "useDependencyInformation": "true" }] }