aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java52
-rw-r--r--src/Java/gtPlusPlus/core/fluids/FactoryFluid.java52
-rw-r--r--src/Java/gtPlusPlus/core/fluids/FluidFactory.java40
-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.java78
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.flowing.pngbin0 -> 9232 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.flowing.png.mcmeta3
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.still.pngbin0 -> 9586 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.still.png.mcmeta5
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
new file mode 100644
index 0000000000..003d1597a6
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.flowing.png
Binary files differ
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
new file mode 100644
index 0000000000..ef08c75bc8
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.still.png
Binary files differ
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
+ }
+}