diff options
-rw-r--r-- | src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java | 52 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/fluids/FactoryFluid.java | 52 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/fluids/FluidFactory.java | 40 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/item/base/itemblock/FluidItemBlock.java (renamed from src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockFluid.java) | 29 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java | 78 | ||||
-rw-r--r-- | src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.flowing.png | bin | 0 -> 9232 bytes | |||
-rw-r--r-- | src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.flowing.png.mcmeta | 3 | ||||
-rw-r--r-- | src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.still.png | bin | 0 -> 9586 bytes | |||
-rw-r--r-- | src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.still.png.mcmeta | 5 |
9 files changed, 103 insertions, 156 deletions
diff --git a/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java b/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java index 24ebf0ecca..2aa598fc96 100644 --- a/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java +++ b/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java @@ -2,26 +2,30 @@ package gtPlusPlus.core.fluids; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.Utils; 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 net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.BlockFluidClassic; import net.minecraftforge.fluids.Fluid; public class BlockFluidBase extends BlockFluidClassic { @SideOnly(Side.CLIENT) - protected IIcon stillIcon; + protected static IIcon stillIcon; @SideOnly(Side.CLIENT) - protected IIcon flowingIcon; + protected static IIcon flowingIcon; + + protected final short[] mRGB; - public BlockFluidBase(Fluid fluid, Material material) { + public BlockFluidBase(Fluid fluid, Material material, short[] aRGB) { super(fluid, material); + mRGB = aRGB; } @Override @@ -29,9 +33,9 @@ public class BlockFluidBase extends BlockFluidClassic { if (!(ent instanceof EntityLivingBase)) { return; } - EntityLivingBase player = (EntityLivingBase) ent; + /*EntityLivingBase player = (EntityLivingBase) ent; int pot = world.rand.nextInt(Potion.potionTypes.length); - Potion.potionTypes[pot].performEffect(player, 40); + Potion.potionTypes[pot].performEffect(player, 40);*/ } @Override @@ -42,24 +46,34 @@ public class BlockFluidBase extends BlockFluidClassic { @SideOnly(Side.CLIENT) @Override public void registerBlockIcons(IIconRegister register) { - stillIcon = register.registerIcon("chaotica:pureChaosStill"); - flowingIcon = register.registerIcon("chaotica:pureChaosFlowing"); + if (stillIcon == null) { + stillIcon = register.registerIcon(CORE.MODID+ ":" + "fluids/fluid.fluid.autogenerated.still"); + } + if (flowingIcon == null) { + flowingIcon = register.registerIcon(CORE.MODID+ ":" + "fluids/fluid.fluid.autogenerated.flowing"); + } } @Override - 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); + public int getBlockColor() { + if (mRGB != null && mRGB.length >= 3) { + return Utils.rgbtoHexValue(mRGB[0], mRGB[1], mRGB[2]); + } + return super.getBlockColor(); } @Override - 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); + public int getRenderColor(int aMeta) { + if (mRGB != null && mRGB.length >= 3) { + return Utils.rgbtoHexValue(mRGB[0], mRGB[1], mRGB[2]); + } + return super.getRenderColor(aMeta); + } + + @Override + public boolean recolourBlock(World world, int x, int y, int z, ForgeDirection side, int colour) { + // TODO Auto-generated method stub + return super.recolourBlock(world, x, y, z, side, colour); } } diff --git a/src/Java/gtPlusPlus/core/fluids/FactoryFluid.java b/src/Java/gtPlusPlus/core/fluids/FactoryFluid.java index 9755dd42b2..befdf87c27 100644 --- a/src/Java/gtPlusPlus/core/fluids/FactoryFluid.java +++ b/src/Java/gtPlusPlus/core/fluids/FactoryFluid.java @@ -1,25 +1,41 @@ package gtPlusPlus.core.fluids; +import gregtech.api.GregTech_API; +import gtPlusPlus.core.lib.CORE; import net.minecraft.block.Block; import net.minecraft.item.EnumRarity; import net.minecraftforge.fluids.Fluid; -public class FactoryFluid extends Fluid { +public class FactoryFluid extends Fluid implements Runnable { + private final String mTextureName; + private final short[] mRGBa; - 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 + public FactoryFluid(String fluidName, int luminosity, int density, int temp, int viscosity, final short[] aRGBa) { + this(fluidName, null, luminosity, density, temp, viscosity, false, EnumRarity.common, aRGBa); + } + + public FactoryFluid(String fluidName, Block aBlock, int luminosity, int density, int temp, int viscosity, boolean gas, EnumRarity aRarity, final short[] aRGBa) { + super(fluidName); + this.mRGBa = aRGBa; + this.setBlock(aBlock); + this.setLuminosity(luminosity); + this.setDensity(density); + this.setTemperature(temp); + this.setViscosity(viscosity); + this.setGaseous(gas); + this.setRarity(aRarity); + this.mTextureName = CORE.MODID+":fluids/fluid.fluid.autogenerated"; + GregTech_API.sGTBlockIconload.add(this); + } + + @Override + public int getColor() { + return (Math.max(0, Math.min(255, this.mRGBa[0])) << 16) | (Math.max(0, Math.min(255, this.mRGBa[1])) << 8) | Math.max(0, Math.min(255, this.mRGBa[2])); + } + + @Override + public void run() { + this.setIcons(GregTech_API.sBlockIcons.registerIcon(CORE.MODID+ ":" + "fluids/fluid." + this.mTextureName)); + } + +}
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/fluids/FluidFactory.java b/src/Java/gtPlusPlus/core/fluids/FluidFactory.java index fec008ecff..fad545ce68 100644 --- a/src/Java/gtPlusPlus/core/fluids/FluidFactory.java +++ b/src/Java/gtPlusPlus/core/fluids/FluidFactory.java @@ -10,9 +10,12 @@ import gtPlusPlus.GTplusplus; import gtPlusPlus.GTplusplus.INIT_PHASE; import gtPlusPlus.api.objects.GregtechException; import gtPlusPlus.api.objects.data.AutoMap; +import gtPlusPlus.core.item.base.itemblock.FluidItemBlock; import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; import net.minecraft.block.Block; +import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -51,7 +54,7 @@ public class FluidFactory { public static final Map<Integer, Block> mMetaToBlockMap = new LinkedHashMap<Integer, Block>(); - private static Fluid mErrorFluid; + private static FluidPackage mErrorFluid; private static AutoMap<FluidPackage> mGeneratedFluids = new AutoMap<FluidPackage>(); public static void preInit() { @@ -62,7 +65,7 @@ public class FluidFactory { GameRegistry.registerItem(new ItemGenericFluidBucket(Blocks.air), "gtpp.bucket.generic"); for (FluidPackage y : mGeneratedFluids) { FluidRegistry.registerFluid(y.get()); - GameRegistry.registerBlock(y.mBlock, "gtpp_" + y.mName); + GameRegistry.registerBlock(y.mBlock, FluidItemBlock.class, "gtpp_" + y.mName); FluidContainerRegistry.registerFluidContainer(y.get(), y.mBucket, new ItemStack(Items.bucket)); } Utils.registerEvent(BucketHandler.INSTANCE); @@ -73,7 +76,7 @@ public class FluidFactory { } public static FluidPackage generate(int aID, String aUnlocalName, int luminosity, int density, int temp, - int viscosity) { + int viscosity, short[] aRGB) { FluidPackage aFluidToGenerate = null; @@ -86,40 +89,41 @@ public class FluidFactory { } } - Fluid aGenFluid = fluid(aUnlocalName, 0, 0, 0, 0); - Block aGenBlock = block(); + Fluid aGenFluid = fluid(aUnlocalName, luminosity, density, temp, viscosity, aRGB); + Block aGenBlock = block(aGenFluid, aRGB); ItemStack aGenBucket = bucket(); aFluidToGenerate = new FluidPackage(aID, aUnlocalName, aGenFluid, aGenBucket, aGenBlock); - if (aFluidToGenerate.valid()) { - FluidRegistry.registerFluid(aFluidToGenerate.get()); + if (aFluidToGenerate != null && aFluidToGenerate.valid()) { + FluidRegistry.registerFluid(aFluidToGenerate.get()); + mGeneratedFluids.put(aFluidToGenerate); + } + else { + // Handle Bad generation + if (mErrorFluid == null) { + mErrorFluid = new FluidPackage(0, "", FluidUtils.getWater(1).getFluid(), ItemUtils.getSimpleStack(Items.water_bucket), Blocks.water); + } + return mErrorFluid; } - // 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); + int viscosity, short[] aRGB) { + return new FactoryFluid(aUnlocalName, luminosity, density, temp, viscosity, aRGB); } private static ItemStack bucket() { return null; } - private static Block block() { - return null; + private static Block block(Fluid aFluidForBlock, short[] aRGB) { + return new BlockFluidBase(aFluidForBlock, Material.water, aRGB); } /** diff --git a/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockFluid.java b/src/Java/gtPlusPlus/core/item/base/itemblock/FluidItemBlock.java index 84fae41bb0..96b5425437 100644 --- a/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockFluid.java +++ b/src/Java/gtPlusPlus/core/item/base/itemblock/FluidItemBlock.java @@ -13,38 +13,30 @@ import gtPlusPlus.core.material.Material; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; -public class ItemBlockFluid extends ItemBlock{ +public class FluidItemBlock extends ItemBlock{ protected final int blockColour; - protected final int sRadiation; - protected Material thisFluid; final BlockFluidBase baseBlock; String name; - public ItemBlockFluid(final Block block) { + public FluidItemBlock(final Block block) { super(block); this.baseBlock = (BlockFluidBase) block; this.blockColour = this.baseBlock.getRenderColor(1); - this.thisFluid = this.baseBlock.getFluidMaterial(); - this.sRadiation=ItemUtils.getRadioactivityLevel(this.baseBlock.getUnlocalizedName()); this.name = this.baseBlock.getLocalizedName().replace("tile", "").replace("fluid", "").replace("name", "").replace("block", "").replace(".", ""); //GT_OreDictUnificator.registerOre("frameGt"+block.getUnlocalizedName().replace("tile.", "").replace("tile.BlockGtFrame", "").replace("-", "").replace("_", "").replace(" ", "").replace("FrameBox", ""), UtilsItems.getSimpleStack(this)); } - public final Material setFluidMaterial(final Material M){ - return this.thisFluid=M; - } - public int getRenderColor(final int aMeta) { return this.blockColour; } @Override public String getItemStackDisplayName(final ItemStack iStack) { - if (this.thisFluid != null){ + /*if (this.thisFluid != null){ this.name = "Molten "+this.thisFluid.getLocalizedName(); return this.name; - } + }*/ this.name = "Molten "+this.baseBlock.getLocalizedName().replace("tile", "").replace("fluid", "").replace("name", "").replace("block", "").replace(".", ""); return this.name; } @@ -55,24 +47,15 @@ public class ItemBlockFluid extends ItemBlock{ return MathUtils.generateSingularRandomHexValue(); } return this.blockColour; - } @Override public void addInformation(final ItemStack stack, final EntityPlayer aPlayer, final List list, final boolean bool) { - list.add("Temperature: "+MathUtils.celsiusToKelvin(this.thisFluid.getMeltingPointC())+"K"); + /*list.add("Temperature: "+MathUtils.celsiusToKelvin(this.thisFluid.getMeltingPointC())+"K"); if (this.sRadiation > 0){ list.add(CORE.GT_Tooltip_Radioactive); - } + }*/ super.addInformation(stack, aPlayer, list, bool); } - public String GetProperName() { - String tempIngot; - - tempIngot = "Molten "+this.baseBlock.getLocalizedName(); - - return tempIngot; - } - } diff --git a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java index ed1cbe0c64..0ae751a20b 100644 --- a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java @@ -10,9 +10,7 @@ import gregtech.api.util.GT_LanguageManager; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.minecraft.FluidGT6; -import gtPlusPlus.core.fluids.GenericFluid; import gtPlusPlus.core.item.base.BaseItemComponent; -import gtPlusPlus.core.item.base.cell.BaseItemCell; import gtPlusPlus.core.item.base.cell.BaseItemPlasmaCell; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.MaterialGenerator; @@ -93,82 +91,6 @@ public class FluidUtils { } - - /** - * @param String displayName - * @param String fluidName - * @param int meltingPointC Temp - * @param short[] rgba - * @param byte state - * States: 0 (Solid), 1 (Fluid), 2(Gas), 3(Plasma) 4(Fuel I think? Don't use.) - * - * @return short[] - */ - public static Fluid generateFluid(final String displayName, final String fluidName, final int tempK, final short[] rgba ,final int aState){ - Fluid generatedFluid = null; - switch (aState) { - case 0: { - generatedFluid = new GenericFluid(displayName, fluidName, 0, 100, tempK, 10000, false, rgba); - break; - } - default: - case 1: - case 4: { - generatedFluid = new GenericFluid(displayName, fluidName, 0, 100, tempK, 1000, false, rgba); - break; - } - case 2: { - generatedFluid = new GenericFluid(displayName, fluidName, 0, -100, tempK, 200, true, rgba); - break; - } - case 3: { - generatedFluid = new GenericFluid(displayName, fluidName, 15, -10000, tempK, 10, true, rgba); - break; - } - } - return generatedFluid; - } - /** - * - * @param String fluidName - * @param int meltingPointC Temp - * @param short[] rgba - * @param byte state - * States: 0 (Solid), 1 (Fluid), 2(Gas), 3(Plasma) 4(Fuel I think? Don't use.) - * - * @return short[] - */ - public static Fluid generateFluid(final Material material ,final int aState){ - final int tempK = material.getMeltingPointC(); - Fluid generatedFluid = null; - switch (aState) { - case 0: { - generatedFluid = new GenericFluid(material, 0, 100, tempK, 10000, false); - break; - } - default: - case 1: - case 4: { - generatedFluid = new GenericFluid(material, 0, 100, tempK, 1000, false); - break; - } - case 2: { - generatedFluid = new GenericFluid(material, 0, -100, tempK, 200, true); - break; - } - case 3: { - generatedFluid = new GenericFluid(material, 15, -10000, tempK, 10, true); - break; - } - } - return generatedFluid; - } - - - - - - public static Fluid addGtFluid(final String aName, final String aLocalized, final GT_Materials aMaterial, final int aState, final long aTemperatureK, final ItemStack aFullContainer, final ItemStack aEmptyContainer, final int aFluidAmount) { return addGtFluid(aName, aLocalized, aMaterial, aState, aTemperatureK, aFullContainer, aEmptyContainer, aFluidAmount, true); } diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.flowing.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.flowing.png Binary files differnew file mode 100644 index 0000000000..003d1597a6 --- /dev/null +++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.flowing.png diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.flowing.png.mcmeta b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.flowing.png.mcmeta new file mode 100644 index 0000000000..4f0718ac96 --- /dev/null +++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.flowing.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": {} +}
\ No newline at end of file diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.still.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.still.png Binary files differnew file mode 100644 index 0000000000..ef08c75bc8 --- /dev/null +++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.still.png diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.still.png.mcmeta b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.still.png.mcmeta new file mode 100644 index 0000000000..0645f48c62 --- /dev/null +++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.still.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} |