Wir müssen folgende Datein Kopieren
BlockFlowing
BlockStationary
ich habe sie
BLockWaterFluid
BlockStill
Genannt.
Wir müssen jetzt ein bischen tricksen und das Bereits bestehende Wasser einfärben dazu fügen wir folgenden Text hinzu bei
BlockFlowing und BlockStationary
Code:
public int colorMultiplier(IBlockAccess iblockaccess, int i, int j, int k)
{
return 0xFF0000;
}
Der FF0000 Code ist ein hex Color Code den ihr
[Only registered and activated users can see links. Click Here To Register...] ablesen könnt. Wichtig ist das das Wasser nicht eure gewünschte Farbe annimmt sonder eure eingestellte Farbe wird multipliziert mit der Wasser Farbe
So sieht Dan der code aus für das Wasser wichtig ist das es ein Block sein muss.
Code:
WaterNewFlow = new BLockWaterFluid(225, Material.water).setHardness(100F).setLightOpacity(3).setBlockName("fluidflow").disableStats().setRequiresSelfNotify();
WaterStill = new BlockStill(226, Material.water).setHardness(100F).setLightOpacity(3).setBlockName("fluidflow").disableStats().setRequiresSelfNotify();
Um jetzt einen Eimer zu erstellen der das Wasser aufnimmt bzw. Wieder abgibt erstellt ihr 2 neue items bei denen Der Code So ausschaut.
Code:
DirtBucket = new DirtBucket(227, 0).setIconCoord(10, 4).setItemName("bucket");
DirtBucketFull = new DirtBucket(228, WaterNewFlow.blockID).setIconCoord(11, 4).setItemName("bucketWater").setContainerItem(DirtBucket);
Nun müsst ihr nur noch die Datei DirtBucket erstellen ihn der folgendes steht.
Code:
package net.minecraft.src;
import java.util.Random;
public class DirtBucket extends Item {
/** field for checking if the bucket has been filled. */
private int isFull;
public DirtBucket(int par1, int par2)
{
super(par1);
maxStackSize = 1;
isFull = par2;
}
/**
* Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
*/
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
{
float f = 1.0F;
double d = par3EntityPlayer.prevPosX + (par3EntityPlayer.posX - par3EntityPlayer.prevPosX) * (double)f;
double d1 = (par3EntityPlayer.prevPosY + (par3EntityPlayer.posY - par3EntityPlayer.prevPosY) * (double)f + 1.6200000000000001D) - (double)par3EntityPlayer.yOffset;
double d2 = par3EntityPlayer.prevPosZ + (par3EntityPlayer.posZ - par3EntityPlayer.prevPosZ) * (double)f;
boolean flag = isFull == 0;
MovingObjectPosition movingobjectposition = getMovingObjectPositionFromPlayer(par2World, par3EntityPlayer, flag);
if (movingobjectposition == null)
{
return par1ItemStack;
}
if (movingobjectposition.typeOfHit == EnumMovingObjectType.TILE)
{
int i = movingobjectposition.blockX;
int j = movingobjectposition.blockY;
int k = movingobjectposition.blockZ;
if (!par2World.canMineBlock(par3EntityPlayer, i, j, k))
{
return par1ItemStack;
}
if (isFull == 0)
{
if (!par3EntityPlayer.canPlayerEdit(i, j, k))
{
return par1ItemStack;
}
if (par2World.getBlockMaterial(i, j, k) == Material.water && par2World.getBlockMetadata(i, j, k) == 0)
{
par2World.setBlockWithNotify(i, j, k, 0);
if (par3EntityPlayer.capabilities.isCreativeMode)
{
return par1ItemStack;
}
else
{
return new ItemStack(mod_name.DirtBucketFull);
}
}
if (par2World.getBlockMaterial(i, j, k) == Material.water && par2World.getBlockMetadata(i, j, k) == 0)
{
par2World.setBlockWithNotify(i, j, k, 0);
if (par3EntityPlayer.capabilities.isCreativeMode)
{
return par1ItemStack;
}
else
{
return new ItemStack(Item.bucketLava);
}
}
}
else
{
if (isFull < 0)
{
return new ItemStack(mod_name.DirtBucket);
}
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 (!par3EntityPlayer.canPlayerEdit(i, j, k))
{
return par1ItemStack;
}
if (par2World.isAirBlock(i, j, k) || !par2World.getBlockMaterial(i, j, k).isSolid())
{
if (par2World.worldProvider.isHellWorld && isFull == mod_name.WaterNewFlow.blockID)
{
par2World.playSoundEffect(d + 0.5D, d1 + 0.5D, d2 + 0.5D, "random.fizz", 0.5F, 2.6F + (par2World.rand.nextFloat() - par2World.rand.nextFloat()) * 0.8F);
for (int l = 0; l < 8; l++)
{
par2World.spawnParticle("largesmoke", (double)i + Math.random(), (double)j + Math.random(), (double)k + Math.random(), 0.0D, 0.0D, 0.0D);
}
}
else
{
par2World.setBlockAndMetadataWithNotify(i, j, k, isFull, 0);
}
if (par3EntityPlayer.capabilities.isCreativeMode)
{
return par1ItemStack;
}
else
{
return new ItemStack(mod_name.DirtBucket);
}
}
}
}
else if (isFull == 0 && (movingobjectposition.entityHit instanceof EntityCow))
{
return new ItemStack(Item.bucketMilk);
}
return par1ItemStack;
}
}
Folgende Codes müssen angepasst werden:
Zeile
61 = return new ItemStack(mod_name.DirtBucketFull);
Hier muss euer volle Eimer Rein
83 = return new ItemStack(mod_name.DirtBucket);
Hier muss euer leerer Eimer Rein
123 = if (par2World.worldProvider.isHellWorld && isFull == mod_name.WaterNewFlow.blockID)
Hier muss euer neuer Fließender Block rein
143 = return new ItemStack(mod_name.DirtBucket);
Hier muss euer leerer Eimer Rein
Ergebnis
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]