Hi, I am working on a part of a mod that sets a small structure in a world. I could get most of the blocks to be set in a world just fine but the water in the middle will not spawn in. Does anyone know why? Thanks for the help in advance!
Random rand = new Random();
switch(rand.nextInt(4)){
case 0: //drops a lot of lava buckets
for(int a = 0; a < 32; a = a + 1){
BlockPos pos;
Random randx = new Random(); double x = randx.nextInt(2); x = x - 0.5;
Random randz = new Random(); double z = randz.nextInt(2); z = z - 0.5;
double posX = event.getPos().getX() + x;
double posY = event.getPos().getY() + 0.5;
double posZ = event.getPos().getZ() + z;
EntityItem bucket = new EntityItem(event.getWorld(), posX, posY, posZ, new ItemStack(Items.LAVA_BUCKET));
bucket.setLocationAndAngles(posX, posY, posZ, 0, 0);
event.getWorld().spawnEntity(bucket);
}
break;
case 1: //drops a lot of cacti
for(int a = 0; a < 32; a = a + 1){
BlockPos pos;
Random randx = new Random(); double x = randx.nextInt(2); x = x - 0.5;
Random randz = new Random(); double z = randz.nextInt(2); z = z - 0.5;
double posX = event.getPos().getX() + x;
double posY = event.getPos().getY() + 0.5;
double posZ = event.getPos().getZ() + z;
EntityItem bucket = new EntityItem(event.getWorld(), posX, posY, posZ, new ItemStack(Item.getItemFromBlock(Blocks.CACTUS), 64));
bucket.setLocationAndAngles(posX, posY, posZ, 0, 0);
event.getWorld().spawnEntity(bucket);
}
break;
case 2: //summons 5 blazes
for(int a = 0; a < 5; a = a + 1){
Random randx = new Random(); double x = randx.nextInt(5); x = x - 2;
Random randz = new Random(); double z = randz.nextInt(5); z = z - 2;
double posX = event.getPos().getX() + x;
double posY = event.getPos().getY() + 1;
double posZ = event.getPos().getZ() + z;
EntityBlaze blaze = new EntityBlaze(event.getWorld());
blaze.setLocationAndAngles(posX, posY, posZ, 0, 0);
event.getWorld().spawnEntity(blaze);
}
break;
case 3: //spawns desert well
int posX = event.getPos().getX();
int posY = event.getPos().getY();
int posZ = event.getPos().getZ();
event.getWorld().setBlockState(new BlockPos(posX + 1,posY,posZ), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX - 1,posY,posZ), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX,posY,posZ + 1), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX,posY,posZ - 1), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX + 1,posY,posZ + 1), Blocks.STONE_SLAB.getStateFromMeta(1));
event.getWorld().setBlockState(new BlockPos(posX + 1,posY,posZ - 1), Blocks.STONE_SLAB.getStateFromMeta(1));
event.getWorld().setBlockState(new BlockPos(posX - 1,posY,posZ + 1), Blocks.STONE_SLAB.getStateFromMeta(1));
event.getWorld().setBlockState(new BlockPos(posX - 1,posY,posZ - 1), Blocks.STONE_SLAB.getStateFromMeta(1));
event.getWorld().setBlockState(new BlockPos(posX,posY - 1,posZ), Blocks.WATER.getDefaultState());
//THIS IS THE BLOCK THAT WILL NOT SPAWN IN
event.getWorld().setBlockState(new BlockPos(posX,posY,posZ), Blocks.STONE.getDefaultState());
//THIS IS THE BLOCK THAT WILL NOT SPAWN IN
Hi, I am working on a part of a mod that sets a small structure in a world. I could get most of the blocks to be set in a world just fine but the water in the middle will not spawn in. Does anyone know why? Thanks for the help in advance!
My code:
http://pastebin.com/ezRFz8kG
double posX = event.getPos().getX();
double posY = event.getPos().getY();
double posZ = event.getPos().getZ();
event.getWorld().setBlockState(new BlockPos(posX,posY,posZ), Blocks.FLOWING_WATER.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX + 1,posY,posZ), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX - 1,posY,posZ), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX,posY,posZ + 1), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX,posY,posZ - 1), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX + 1,posY,posZ + 1), Blocks.STONE_SLAB.getStateFromMeta(1));
event.getWorld().setBlockState(new BlockPos(posX + 1,posY,posZ - 1), Blocks.STONE_SLAB.getStateFromMeta(1));
event.getWorld().setBlockState(new BlockPos(posX - 1,posY,posZ + 1), Blocks.STONE_SLAB.getStateFromMeta(1));
event.getWorld().setBlockState(new BlockPos(posX - 1,posY,posZ - 1), Blocks.STONE_SLAB.getStateFromMeta(1));
You're using flowing water! This is not a source block of water, and so will just disappear after a short time. You should instead use Blocks.WATER
Changing this doesn't seem to help. Even if I try to set a block such as stone in this location it will not set in. Here is my whole class:
http://pastebin.com/7pfSCmX5
package luckyBlocks.event;
import java.util.Random;
import luckyBlocks.blocks._blocks;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.monster.EntityBlaze;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.Explosion;
import net.minecraftforge.event.entity.living.ZombieEvent.SummonAidEvent;
import net.minecraftforge.event.world.BlockEvent.BreakEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
public class LuckyBlockBreakEvent {
@SubscribeEvent
public void main(BreakEvent event) {
if(event.getState().getBlock() != _blocks.blockLucky) {
return;
}
Random rand = new Random();
switch(rand.nextInt(4)){
case 0: //drops a lot of lava buckets
for(int a = 0; a < 32; a = a + 1){
BlockPos pos;
Random randx = new Random(); double x = randx.nextInt(2); x = x - 0.5;
Random randz = new Random(); double z = randz.nextInt(2); z = z - 0.5;
double posX = event.getPos().getX() + x;
double posY = event.getPos().getY() + 0.5;
double posZ = event.getPos().getZ() + z;
EntityItem bucket = new EntityItem(event.getWorld(), posX, posY, posZ, new ItemStack(Items.LAVA_BUCKET));
bucket.setLocationAndAngles(posX, posY, posZ, 0, 0);
event.getWorld().spawnEntity(bucket);
}
break;
case 1: //drops a lot of cacti
for(int a = 0; a < 32; a = a + 1){
BlockPos pos;
Random randx = new Random(); double x = randx.nextInt(2); x = x - 0.5;
Random randz = new Random(); double z = randz.nextInt(2); z = z - 0.5;
double posX = event.getPos().getX() + x;
double posY = event.getPos().getY() + 0.5;
double posZ = event.getPos().getZ() + z;
EntityItem bucket = new EntityItem(event.getWorld(), posX, posY, posZ, new ItemStack(Item.getItemFromBlock(Blocks.CACTUS), 64));
bucket.setLocationAndAngles(posX, posY, posZ, 0, 0);
event.getWorld().spawnEntity(bucket);
}
break;
case 2: //summons 5 blazes
for(int a = 0; a < 5; a = a + 1){
Random randx = new Random(); double x = randx.nextInt(5); x = x - 2;
Random randz = new Random(); double z = randz.nextInt(5); z = z - 2;
double posX = event.getPos().getX() + x;
double posY = event.getPos().getY() + 1;
double posZ = event.getPos().getZ() + z;
EntityBlaze blaze = new EntityBlaze(event.getWorld());
blaze.setLocationAndAngles(posX, posY, posZ, 0, 0);
event.getWorld().spawnEntity(blaze);
}
break;
case 3: //spawns desert well
int posX = event.getPos().getX();
int posY = event.getPos().getY();
int posZ = event.getPos().getZ();
event.getWorld().setBlockState(new BlockPos(posX + 1,posY,posZ), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX - 1,posY,posZ), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX,posY,posZ + 1), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX,posY,posZ - 1), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX + 1,posY,posZ + 1), Blocks.STONE_SLAB.getStateFromMeta(1));
event.getWorld().setBlockState(new BlockPos(posX + 1,posY,posZ - 1), Blocks.STONE_SLAB.getStateFromMeta(1));
event.getWorld().setBlockState(new BlockPos(posX - 1,posY,posZ + 1), Blocks.STONE_SLAB.getStateFromMeta(1));
event.getWorld().setBlockState(new BlockPos(posX - 1,posY,posZ - 1), Blocks.STONE_SLAB.getStateFromMeta(1));
event.getWorld().setBlockState(new BlockPos(posX,posY - 1,posZ), Blocks.WATER.getDefaultState());
//THIS IS THE BLOCK THAT WILL NOT SPAWN IN
event.getWorld().setBlockState(new BlockPos(posX,posY,posZ), Blocks.STONE.getDefaultState());
//THIS IS THE BLOCK THAT WILL NOT SPAWN IN
event.getWorld().setBlockState(new BlockPos(posX + 1,posY - 1,posZ + 1), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX + 1,posY - 1,posZ), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX + 1,posY - 1,posZ - 1), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX - 1,posY - 1,posZ + 1), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX - 1,posY - 1,posZ), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX - 1,posY - 1,posZ - 1), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX,posY - 1,posZ + 1), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX,posY - 1,posZ - 1), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX,posY - 2,posZ), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX + 1,posY - 2,posZ + 1), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX + 1,posY - 2,posZ), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX + 1,posY - 2,posZ - 1), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX - 1,posY - 2,posZ + 1), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX - 1,posY - 2,posZ), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX - 1,posY - 2,posZ - 1), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX,posY - 2,posZ + 1), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX,posY - 2,posZ +- 1), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX + 1,posY + 1,posZ), Blocks.OAK_FENCE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX - 1,posY + 1,posZ), Blocks.OAK_FENCE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX,posY + 1,posZ + 1), Blocks.OAK_FENCE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX,posY + 1,posZ - 1), Blocks.OAK_FENCE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX + 1,posY + 2,posZ), Blocks.OAK_FENCE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX - 1,posY + 2,posZ), Blocks.OAK_FENCE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX,posY + 2,posZ + 1), Blocks.OAK_FENCE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX,posY + 2,posZ - 1), Blocks.OAK_FENCE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX,posY + 3,posZ), Blocks.SANDSTONE.getDefaultState());
event.getWorld().setBlockState(new BlockPos(posX + 1,posY + 3,posZ + 1), Blocks.STONE_SLAB.getStateFromMeta(1));
event.getWorld().setBlockState(new BlockPos(posX + 1,posY + 3,posZ), Blocks.STONE_SLAB.getStateFromMeta(1));
event.getWorld().setBlockState(new BlockPos(posX + 1,posY + 3,posZ - 1), Blocks.STONE_SLAB.getStateFromMeta(1));
event.getWorld().setBlockState(new BlockPos(posX - 1,posY + 3,posZ + 1), Blocks.STONE_SLAB.getStateFromMeta(1));
event.getWorld().setBlockState(new BlockPos(posX - 1,posY + 3,posZ), Blocks.STONE_SLAB.getStateFromMeta(1));
event.getWorld().setBlockState(new BlockPos(posX - 1,posY + 3,posZ - 1), Blocks.STONE_SLAB.getStateFromMeta(1));
event.getWorld().setBlockState(new BlockPos(posX,posY + 3,posZ + 1), Blocks.STONE_SLAB.getStateFromMeta(1));
event.getWorld().setBlockState(new BlockPos(posX,posY + 3,posZ +- 1), Blocks.STONE_SLAB.getStateFromMeta(1));
EntityItem diamonds = new EntityItem(event.getWorld(), posX, posY, posZ, new ItemStack(Items.DIAMOND, 16));
diamonds.setLocationAndAngles(posX + 0.5, posY - 1, posZ + 0.5, 0, 0);
diamonds.setVelocity(0, 0.1, 0);
event.getWorld().spawnEntity(diamonds);
break;
case 5:
event.getWorld().createExplosion(null, event.getPos().getX(), event.getPos().getY(), event.getPos().getZ(), 10, true);
}
}
}