diff options
Diffstat (limited to 'src/Java/gtPlusPlus')
8 files changed, 535 insertions, 146 deletions
diff --git a/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java b/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java index 9a3958a908..24ebf0ecca 100644 --- a/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java +++ b/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java @@ -1,19 +1,15 @@ package gtPlusPlus.core.fluids; -import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.potion.Potion; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; - -import gtPlusPlus.core.creative.AddToCreativeTab; -import gtPlusPlus.core.lib.CORE; -import gtPlusPlus.core.material.Material; -import gtPlusPlus.core.util.Utils; -import gtPlusPlus.core.util.math.MathUtils; import net.minecraftforge.fluids.BlockFluidClassic; import net.minecraftforge.fluids.Fluid; @@ -24,90 +20,46 @@ public class BlockFluidBase extends BlockFluidClassic { @SideOnly(Side.CLIENT) protected IIcon flowingIcon; - protected int colour; - protected Material fluidMaterial; - final String displayName; - - @SuppressWarnings("deprecation") - public BlockFluidBase(final Fluid fluid, final Material material) { - super(fluid, net.minecraft.block.material.Material.lava); - final short[] tempColour = material.getRGBA(); - this.colour = Utils.rgbtoHexValue(tempColour[0], tempColour[1], tempColour[2]); - this.fluidMaterial = material; - this.setCreativeTab(AddToCreativeTab.tabOther); - this.displayName = material.getLocalizedName(); - LanguageRegistry.addName(this, "Molten "+this.displayName+" ["+MathUtils.celsiusToKelvin(this.fluidMaterial.getBoilingPointC())+"K]"); - this.setBlockName(this.GetProperName()); + public BlockFluidBase(Fluid fluid, Material material) { + super(fluid, material); } - @SuppressWarnings("deprecation") - public BlockFluidBase(final String fluidName, final Fluid fluid, final short[] colour) { - super(fluid, net.minecraft.block.material.Material.lava); - final short[] tempColour = colour; - this.colour = Utils.rgbtoHexValue(tempColour[0], tempColour[1], tempColour[2]); - this.setCreativeTab(AddToCreativeTab.tabOther); - this.displayName = fluidName; - LanguageRegistry.addName(this, "Molten "+this.displayName); - this.setBlockName(this.GetProperName()); + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity ent) { + if (!(ent instanceof EntityLivingBase)) { + return; + } + EntityLivingBase player = (EntityLivingBase) ent; + int pot = world.rand.nextInt(Potion.potionTypes.length); + Potion.potionTypes[pot].performEffect(player, 40); } @Override - public IIcon getIcon(final int side, final int meta) { - return ((side == 0) || (side == 1))? this.stillIcon : this.flowingIcon; + public IIcon getIcon(int side, int meta) { + return (side == 0 || side == 1) ? stillIcon : flowingIcon; } @SideOnly(Side.CLIENT) @Override - public void registerBlockIcons(final IIconRegister register) { - this.stillIcon = register.registerIcon(CORE.MODID+":fluids/fluid.molten.autogenerated"); - this.flowingIcon = register.registerIcon(CORE.MODID+":fluids/fluid.molten.autogenerated"); + public void registerBlockIcons(IIconRegister register) { + stillIcon = register.registerIcon("chaotica:pureChaosStill"); + flowingIcon = register.registerIcon("chaotica:pureChaosFlowing"); } @Override - public boolean canDisplace(final IBlockAccess world, final int x, final int y, final int z) { - if (world.getBlock(x, y, z).getMaterial().isLiquid()) { + public boolean canDisplace(IBlockAccess world, int x, int y, int z) { + if (world.getBlock(x, y, z).getMaterial().isLiquid()) { return false; } return super.canDisplace(world, x, y, z); } @Override - public boolean displaceIfPossible(final World world, final int x, final int y, final int z) { - if (world.getBlock(x, y, z).getMaterial().isLiquid()) { + public boolean displaceIfPossible(World world, int x, int y, int z) { + if (world.getBlock(x, y, z).getMaterial().isLiquid()) { return false; } return super.displaceIfPossible(world, x, y, z); } - @Override - public int colorMultiplier(final IBlockAccess par1IBlockAccess, final int par2, final int par3, final int par4){ - - if (this.colour == 0){ - return MathUtils.generateSingularRandomHexValue(); - } - - return this.colour; - } - - @Override - public int getRenderColor(final int aMeta) { - if (this.colour == 0){ - return MathUtils.generateSingularRandomHexValue(); - } - - return this.colour; - } - - public String GetProperName() { - String tempIngot; - - tempIngot = "Molten "+this.displayName; - - return tempIngot; - } - - public Material getFluidMaterial(){ - return this.fluidMaterial; - } - } diff --git a/src/Java/gtPlusPlus/core/fluids/FactoryFluid.java b/src/Java/gtPlusPlus/core/fluids/FactoryFluid.java new file mode 100644 index 0000000000..9755dd42b2 --- /dev/null +++ b/src/Java/gtPlusPlus/core/fluids/FactoryFluid.java @@ -0,0 +1,25 @@ +package gtPlusPlus.core.fluids; +import net.minecraft.block.Block; +import net.minecraft.item.EnumRarity; +import net.minecraftforge.fluids.Fluid; + +public class FactoryFluid extends Fluid { + + + public FactoryFluid(String fluidName, int luminosity, int density, int temp, int viscosity) { + this(fluidName, null, luminosity, density, temp, viscosity, false, EnumRarity.common); + } + + + public FactoryFluid(String fluidName, Block aBlock, int luminosity, int density, int temp, int viscosity, boolean gas, EnumRarity aRarity) { + super(fluidName); + this.setBlock(aBlock); + this.setLuminosity(luminosity); + this.setDensity(density); + this.setTemperature(temp); + this.setViscosity(viscosity); + this.setGaseous(gas); + this.setRarity(aRarity); + } + + }
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/fluids/FluidFactory.java b/src/Java/gtPlusPlus/core/fluids/FluidFactory.java new file mode 100644 index 0000000000..fec008ecff --- /dev/null +++ b/src/Java/gtPlusPlus/core/fluids/FluidFactory.java @@ -0,0 +1,168 @@ +package gtPlusPlus.core.fluids; + +import java.util.LinkedHashMap; +import java.util.Map; + +import cpw.mods.fml.common.eventhandler.Event.Result; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.registry.GameRegistry; +import gtPlusPlus.GTplusplus; +import gtPlusPlus.GTplusplus.INIT_PHASE; +import gtPlusPlus.api.objects.GregtechException; +import gtPlusPlus.api.objects.data.AutoMap; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; +import net.minecraftforge.event.entity.player.FillBucketEvent; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidRegistry; + +public class FluidFactory { + + public static final Map<String, Fluid> mNameToFluidMap = new LinkedHashMap<String, Fluid>(); + public static final Map<String, ItemStack> mNameToBucketMap = new LinkedHashMap<String, ItemStack>(); + public static final Map<String, Block> mNameToBlockMap = new LinkedHashMap<String, Block>(); + public static final Map<String, Integer> mNameToMetaMap = new LinkedHashMap<String, Integer>(); + + public static final Map<Fluid, String> mFluidToNameMap = new LinkedHashMap<Fluid, String>(); + public static final Map<Fluid, ItemStack> mFluidToBucketMap = new LinkedHashMap<Fluid, ItemStack>(); + public static final Map<Fluid, Block> mFluidToBlockMap = new LinkedHashMap<Fluid, Block>(); + public static final Map<Fluid, Integer> mFluidToMetaMap = new LinkedHashMap<Fluid, Integer>(); + + public static final Map<ItemStack, Fluid> mBucketToFluidMap = new LinkedHashMap<ItemStack, Fluid>(); + public static final Map<ItemStack, String> mBucketToNameMap = new LinkedHashMap<ItemStack, String>(); + public static final Map<ItemStack, Block> mBucketToBlockMap = new LinkedHashMap<ItemStack, Block>(); + public static final Map<ItemStack, Integer> mBucketToMetaMap = new LinkedHashMap<ItemStack, Integer>(); + + public static final Map<Block, String> mBlockToNameMap = new LinkedHashMap<Block, String>(); + public static final Map<Block, Fluid> mBlockToFluidMap = new LinkedHashMap<Block, Fluid>(); + public static final Map<Block, ItemStack> mBlockToBucketMap = new LinkedHashMap<Block, ItemStack>(); + public static final Map<Block, Integer> mBlockToMetaMap = new LinkedHashMap<Block, Integer>(); + + public static final Map<Integer, String> mMetaToNameMap = new LinkedHashMap<Integer, String>(); + public static final Map<Integer, Fluid> mMetaToFluidMap = new LinkedHashMap<Integer, Fluid>(); + public static final Map<Integer, ItemStack> mMetaToBucketMap = new LinkedHashMap<Integer, ItemStack>(); + public static final Map<Integer, Block> mMetaToBlockMap = new LinkedHashMap<Integer, Block>(); + + + private static Fluid mErrorFluid; + private static AutoMap<FluidPackage> mGeneratedFluids = new AutoMap<FluidPackage>(); + + public static void preInit() { + + } + + public static void init() { + GameRegistry.registerItem(new ItemGenericFluidBucket(Blocks.air), "gtpp.bucket.generic"); + for (FluidPackage y : mGeneratedFluids) { + FluidRegistry.registerFluid(y.get()); + GameRegistry.registerBlock(y.mBlock, "gtpp_" + y.mName); + FluidContainerRegistry.registerFluidContainer(y.get(), y.mBucket, new ItemStack(Items.bucket)); + } + Utils.registerEvent(BucketHandler.INSTANCE); + } + + public static void postInit() { + + } + + public static FluidPackage generate(int aID, String aUnlocalName, int luminosity, int density, int temp, + int viscosity) { + + FluidPackage aFluidToGenerate = null; + + // Check Load Phase for some Safety, only allow this to be called in Pre-Init. + if (GTplusplus.CURRENT_LOAD_PHASE != INIT_PHASE.PRE_INIT) { + try { + throw new GregtechException("Cannot generate Fluid Packages outside of Pre-Init!"); + } catch (GregtechException e) { + System.exit(0); + } + } + + Fluid aGenFluid = fluid(aUnlocalName, 0, 0, 0, 0); + Block aGenBlock = block(); + ItemStack aGenBucket = bucket(); + + aFluidToGenerate = new FluidPackage(aID, aUnlocalName, aGenFluid, aGenBucket, aGenBlock); + + if (aFluidToGenerate.valid()) { + FluidRegistry.registerFluid(aFluidToGenerate.get()); + } + + + // Handle Bad generation + if (mErrorFluid == null) { + mErrorFluid = new Fluid("baderrorfluid.gtpp").setViscosity(4000); + } + if (aFluidToGenerate != null) { + mGeneratedFluids.put(aFluidToGenerate); + } + return aFluidToGenerate; + } + + + + private static Fluid fluid(String aUnlocalName, int luminosity, int density, int temp, + int viscosity) { + return new FactoryFluid(aUnlocalName, 0, 0, 0, 0); + } + + private static ItemStack bucket() { + return null; + } + + private static Block block() { + return null; + } + + /** + * Copyright © SpaceToad, 2011 http://www.mod-buildcraft.com BuildCraft is + * distributed under the terms of the Minecraft Mod Public License 1.0, or MMPL. + * Please check the contents of the license located in + * http://www.mod-buildcraft.com/MMPL-1.0.txt + * + * Modified version of the BC BucketHandler, except using ItemStacks > Items + * (Why?) + * + * @author Alkalus + */ + + public static class BucketHandler { + + public static BucketHandler INSTANCE = new BucketHandler(); + + private BucketHandler() { + + } + + @SubscribeEvent + public void onBucketFill(FillBucketEvent event) { + ItemStack result = fillCustomBucket(event.world, event.target); + if (result == null) { + return; + } + event.result = result; + event.setResult(Result.ALLOW); + } + + private ItemStack fillCustomBucket(World world, MovingObjectPosition pos) { + Block block = world.getBlock(pos.blockX, pos.blockY, pos.blockZ); + ItemStack bucket = mBlockToBucketMap.get(block); + if (bucket != null && world.getBlockMetadata(pos.blockX, pos.blockY, pos.blockZ) == 0) { + world.setBlockToAir(pos.blockX, pos.blockY, pos.blockZ); + return ItemUtils.getSimpleStack(bucket, 1); + } else { + return null; + } + } + + } + +} diff --git a/src/Java/gtPlusPlus/core/fluids/FluidPackage.java b/src/Java/gtPlusPlus/core/fluids/FluidPackage.java new file mode 100644 index 0000000000..7c8cf70c70 --- /dev/null +++ b/src/Java/gtPlusPlus/core/fluids/FluidPackage.java @@ -0,0 +1,65 @@ +package gtPlusPlus.core.fluids; + +import static gtPlusPlus.core.fluids.FluidFactory.*; + +import java.util.LinkedHashMap; +import java.util.Map; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; + +public class FluidPackage { + + + public final int mID; + public final String mName; + private final Fluid mFluid; + public final ItemStack mBucket; + public final Block mBlock; + + public FluidPackage(int aID, String aName, Fluid aFluid, ItemStack aBucket, Block aBlock) { + + mNameToFluidMap.put(aName, aFluid); + mNameToBucketMap.put(aName, aBucket); + mNameToBlockMap.put(aName, aBlock); + mNameToMetaMap.put(aName, aID); + + mFluidToNameMap.put(aFluid, aName); + mFluidToBucketMap.put(aFluid, aBucket); + mFluidToBlockMap.put(aFluid, aBlock); + mFluidToMetaMap.put(aFluid, aID); + + mBucketToFluidMap.put(aBucket, aFluid); + mBucketToNameMap.put(aBucket, aName); + mBucketToBlockMap.put(aBucket, aBlock); + mBucketToMetaMap.put(aBucket, aID); + + mBlockToNameMap.put(aBlock, aName); + mBlockToFluidMap.put(aBlock, aFluid); + mBlockToBucketMap.put(aBlock, aBucket); + mBlockToMetaMap.put(aBlock, aID); + + mMetaToNameMap.put(aID, aName); + mMetaToFluidMap.put(aID, aFluid); + mMetaToBucketMap.put(aID, aBucket); + mMetaToBlockMap.put(aID, aBlock); + + + mID = aID; + mName = aName; + mFluid = aFluid; + mBucket = aBucket; + mBlock = aBlock; + + } + + public Fluid get() { + return mFluid; + } + + public boolean valid() { + return mName != null && mName.length() > 0 && mFluid != null && mBucket != null && mBlock != null; + } + +} diff --git a/src/Java/gtPlusPlus/core/fluids/GenericFluid.java b/src/Java/gtPlusPlus/core/fluids/GenericFluid.java deleted file mode 100644 index 4f1f5df006..0000000000 --- a/src/Java/gtPlusPlus/core/fluids/GenericFluid.java +++ /dev/null @@ -1,70 +0,0 @@ -package gtPlusPlus.core.fluids; - -import cpw.mods.fml.common.registry.GameRegistry; - -import net.minecraft.block.Block; - -import gtPlusPlus.core.item.base.itemblock.ItemBlockFluid; -import gtPlusPlus.core.material.Material; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; - -public class GenericFluid extends Fluid{ - - protected final String fluidName; - protected final Fluid fluidFactory; - protected final Block blockFactory; - protected final short[] rgba; - - public GenericFluid(final String displayName, final String fluidName, final int luminosity, final int density, final int temperature, final int viscosity, final boolean isGas, final short[] rgba) { - super(fluidName); - this.fluidFactory = this; - this.rgba = rgba; - this.fluidName = fluidName; - this.fluidFactory.setLuminosity(luminosity); - this.fluidFactory.setDensity(density); - this.fluidFactory.setTemperature(temperature); - this.fluidFactory.setViscosity(viscosity); - this.fluidFactory.setGaseous(isGas); - this.fluidFactory.setUnlocalizedName("fluid"+fluidName); - FluidRegistry.registerFluid(this.fluidFactory); - this.blockFactory = new BlockFluidBase(displayName, this.fluidFactory, rgba).setBlockName("fluidblock"+fluidName); - GameRegistry.registerBlock(this.blockFactory, ItemBlockFluid.class, this.blockFactory.getUnlocalizedName().substring(5)); - this.fluidFactory.setBlock(this.blockFactory); - - //fluidFactory.setUnlocalizedName(blockFactory.getUnlocalizedName()); - - } - - public GenericFluid(final Material fluidMaterial, final int luminosity, final int density, final int temperature, final int viscosity, final boolean isGas) { - - super(fluidMaterial.getUnlocalizedName()); - //IC2_ItemFluidCell fullFluidCell = emptyCell.fill(emptyCell, FluidUtils.getFluidStack(getUnlocalizedName(), 1), true); - - this.fluidFactory = this; - this.rgba = fluidMaterial.getRGBA(); - this.fluidName = fluidMaterial.getUnlocalizedName(); - this.fluidFactory.setLuminosity(luminosity); - this.fluidFactory.setDensity(density); - this.fluidFactory.setTemperature(temperature); - this.fluidFactory.setViscosity(viscosity); - this.fluidFactory.setGaseous(isGas); - this.fluidFactory.setUnlocalizedName("fluid"+this.fluidName); - FluidRegistry.registerFluid(this.fluidFactory); - this.blockFactory = new BlockFluidBase(this.fluidFactory, fluidMaterial).setBlockName("fluidblock"+this.fluidName); - GameRegistry.registerBlock(this.blockFactory, ItemBlockFluid.class, this.blockFactory.getUnlocalizedName().substring(5)); - this.fluidFactory.setBlock(this.blockFactory); - //IC2_ItemFluidCell emptyCell = new IC2_ItemFluidCell(fluidName); - /*if (aFullContainer != null && aEmptyContainer != null && !FluidContainerRegistry.registerFluidContainer(new FluidStack(rFluid, aFluidAmount), aFullContainer, aEmptyContainer)) { - GT_Values.RA.addFluidCannerRecipe(aFullContainer, container(aFullContainer, false), null, new FluidStack(rFluid, aFluidAmount)); - }*/ - //fluidFactory.setUnlocalizedName(blockFactory.getUnlocalizedName()); - - } - - @Override - public int getColor() { - return (Math.max(0, Math.min(255, this.rgba[0])) << 16) | (Math.max(0, Math.min(255, this.rgba[1])) << 8) | Math.max(0, Math.min(255, this.rgba[2])); - } - -} diff --git a/src/Java/gtPlusPlus/core/fluids/ItemGenericFluidBucket.java b/src/Java/gtPlusPlus/core/fluids/ItemGenericFluidBucket.java new file mode 100644 index 0000000000..ab2fe11d8c --- /dev/null +++ b/src/Java/gtPlusPlus/core/fluids/ItemGenericFluidBucket.java @@ -0,0 +1,250 @@ +package gtPlusPlus.core.fluids; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import cpw.mods.fml.common.eventhandler.Event; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBucket; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.player.FillBucketEvent; + +public class ItemGenericFluidBucket extends ItemBucket { + + public ItemGenericFluidBucket(Block aFluid) { + super(aFluid); + this.setContainerItem(Items.bucket); + this.maxStackSize = 1; + } + + Map<Integer, IIcon> mIconCache = new LinkedHashMap<Integer, IIcon>(); + + /** + * Called whenever this item is equipped and the right mouse button is pressed. + * Args: itemStack, world, entityPlayer + */ + public ItemStack onItemRightClick(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { + + Block isFull = FluidFactory.mBucketToBlockMap.get(aStack); + + boolean flag = isFull == Blocks.air; + MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(aWorld, aPlayer, flag); + + if (movingobjectposition == null || isFull == null) { + return aStack; + } else { + FillBucketEvent event = new FillBucketEvent(aPlayer, aStack, aWorld, movingobjectposition); + if (MinecraftForge.EVENT_BUS.post(event)) { + return aStack; + } + + if (event.getResult() == Event.Result.ALLOW) { + if (aPlayer.capabilities.isCreativeMode) { + return aStack; + } + + if (--aStack.stackSize <= 0) { + return event.result; + } + + if (!aPlayer.inventory.addItemStackToInventory(event.result)) { + aPlayer.dropPlayerItemWithRandomChoice(event.result, false); + } + + return aStack; + } + if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { + int i = movingobjectposition.blockX; + int j = movingobjectposition.blockY; + int k = movingobjectposition.blockZ; + + if (!aWorld.canMineBlock(aPlayer, i, j, k)) { + return aStack; + } + + if (flag) { + if (!aPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, aStack)) { + return aStack; + } + + Material material = aWorld.getBlock(i, j, k).getMaterial(); + int l = aWorld.getBlockMetadata(i, j, k); + + if (material == Material.water && l == 0) { + aWorld.setBlockToAir(i, j, k); + return this.func_150910_a(aStack, aPlayer, Items.water_bucket); + } + + if (material == Material.lava && l == 0) { + aWorld.setBlockToAir(i, j, k); + return this.func_150910_a(aStack, aPlayer, Items.lava_bucket); + } + } else { + if (isFull == Blocks.air) { + return new ItemStack(Items.bucket); + } + + if (movingobjectposition.sideHit == 0) { + --j; + } + + if (movingobjectposition.sideHit == 1) { + ++j; + } + + if (movingobjectposition.sideHit == 2) { + --k; + } + + if (movingobjectposition.sideHit == 3) { + ++k; + } + + if (movingobjectposition.sideHit == 4) { + --i; + } + + if (movingobjectposition.sideHit == 5) { + ++i; + } + + if (!aPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, aStack)) { + return aStack; + } + + if (this.tryPlaceContainedLiquid(isFull, aWorld, i, j, k) && !aPlayer.capabilities.isCreativeMode) { + return new ItemStack(Items.bucket); + } + } + } + + return aStack; + } + } + + private ItemStack func_150910_a(ItemStack p_150910_1_, EntityPlayer p_150910_2_, Item p_150910_3_) { + if (p_150910_2_.capabilities.isCreativeMode) { + return p_150910_1_; + } else if (--p_150910_1_.stackSize <= 0) { + return new ItemStack(p_150910_3_); + } else { + if (!p_150910_2_.inventory.addItemStackToInventory(new ItemStack(p_150910_3_))) { + p_150910_2_.dropPlayerItemWithRandomChoice(new ItemStack(p_150910_3_, 1, 0), false); + } + + return p_150910_1_; + } + } + + /** + * Attempts to place the liquid contained inside the bucket. + */ + public boolean tryPlaceContainedLiquid(Block isFull, World aWorld, int aX, int aY, int aZ) { + if (isFull == Blocks.air) { + return false; + } else { + Material material = aWorld.getBlock(aX, aY, aZ).getMaterial(); + boolean flag = !material.isSolid(); + + if (!aWorld.isAirBlock(aX, aY, aZ) && !flag) { + return false; + } else { + + if (!aWorld.isRemote && flag && !material.isLiquid()) { + aWorld.func_147480_a(aX, aY, aZ, true); + } + + aWorld.setBlock(aX, aY, aZ, isFull, 0, 3); + + return true; + } + } + } + + @Override + public IIcon getIconFromDamage(int aMeta) { + IIcon aTemp = mIconCache.get(aMeta); + return aTemp != null ? aTemp : super.getIconFromDamage(aMeta); + } + + @Override + public int getMetadata(int p_77647_1_) { + // TODO Auto-generated method stub + return super.getMetadata(p_77647_1_); + } + + @Override + public boolean getHasSubtypes() { + return super.getHasSubtypes(); + } + + @Override + public int getMaxDamage() { + return super.getMaxDamage(); + } + + @Override + public boolean isDamageable() { + return false; + } + + @Override + public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) { + // TODO Auto-generated method stub + super.addInformation(p_77624_1_, p_77624_2_, p_77624_3_, p_77624_4_); + } + + @Override + public int getItemEnchantability() { + return 0; + } + + @Override + public void getSubItems(Item p_150895_1_, CreativeTabs p_150895_2_, List p_150895_3_) { + // TODO Auto-generated method stub + super.getSubItems(p_150895_1_, p_150895_2_, p_150895_3_); + } + + @Override + public boolean isRepairable() { + return false; + } + + @Override + public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) { + IIcon aTemp = mIconCache.get(stack.getItemDamage()); + return aTemp != null ? aTemp : super.getIcon(stack, renderPass, player, usingItem, useRemaining); + } + + @Override + public boolean isBookEnchantable(ItemStack stack, ItemStack book) { + return false; + } + + @Override + public int getMaxDamage(ItemStack stack) { + return 0; + } + + @Override + public boolean isDamaged(ItemStack stack) { + return false; + } + + @Override + public int getItemEnchantability(ItemStack stack) { + return 0; + } + +} diff --git a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java index d8d43ebbd3..a5b876efb6 100644 --- a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java +++ b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java @@ -204,7 +204,8 @@ public class COMPAT_HANDLER { } } } - RecipeGen_Recycling.executeGenerators(); + RecipeGen_Recycling.executeGenerators(); + runQueuedMisc(); } public static final AutoMap<RunnableWithInfo<String>> mRecipesToGenerate = new AutoMap<RunnableWithInfo<String>>(); diff --git a/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java b/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java index 789371c9e4..ddac7f1d88 100644 --- a/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java +++ b/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java @@ -1,8 +1,5 @@ package gtPlusPlus.core.item.chemistry; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - import java.util.HashMap; import java.util.HashSet; @@ -11,13 +8,14 @@ import gregtech.api.enums.Materials; import gregtech.api.util.Recipe_GT; import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.api.objects.minecraft.ItemPackage; -import gtPlusPlus.core.item.ModItems; import gtPlusPlus.core.item.base.BaseItemComponent; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; |