Progress to Next Update #65
@@ -58,16 +58,15 @@ public class EventHookContainer
|
|||||||
{
|
{
|
||||||
for (LinkData link:dimHelper.instance.getDimData(world.provider.dimensionId).getLinksInDim())
|
for (LinkData link:dimHelper.instance.getDimData(world.provider.dimensionId).getLinksInDim())
|
||||||
{
|
{
|
||||||
if(linkCount>100) //TODO: Wtf? wouldn't this cause some links to not load on servers with several links? Not sure what's going on here. ~SenseiKiwi
|
if (!mod_pocketDim.blockRift.isBlockImmune(world, link.locXCoord, link.locYCoord, link.locZCoord))
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
linkCount++;
|
|
||||||
int blocktoReplace = world.getBlockId(link.locXCoord, link.locYCoord, link.locZCoord);
|
|
||||||
if (!mod_pocketDim.blocksImmuneToRift.contains(blocktoReplace))
|
|
||||||
{
|
{
|
||||||
dimHelper.getWorld(link.locDimID).setBlock(link.locXCoord, link.locYCoord, link.locZCoord, properties.RiftBlockID);
|
dimHelper.getWorld(link.locDimID).setBlock(link.locXCoord, link.locYCoord, link.locZCoord, properties.RiftBlockID);
|
||||||
}
|
}
|
||||||
|
linkCount++;
|
||||||
|
if (linkCount >= 100)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
catch(Exception e)
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package StevenDimDoors.mod_pocketDim.blocks;
|
package StevenDimDoors.mod_pocketDim.blocks;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.BlockContainer;
|
import net.minecraft.block.BlockContainer;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.client.renderer.texture.IconRegister;
|
import net.minecraft.client.renderer.texture.IconRegister;
|
||||||
@@ -11,7 +13,6 @@ import net.minecraft.util.MathHelper;
|
|||||||
import net.minecraft.world.IBlockAccess;
|
import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import StevenDimDoors.mod_pocketDim.DDProperties;
|
import StevenDimDoors.mod_pocketDim.DDProperties;
|
||||||
import StevenDimDoors.mod_pocketDim.PacketHandler;
|
|
||||||
import StevenDimDoors.mod_pocketDim.TileEntityRift;
|
import StevenDimDoors.mod_pocketDim.TileEntityRift;
|
||||||
import StevenDimDoors.mod_pocketDim.mod_pocketDim;
|
import StevenDimDoors.mod_pocketDim.mod_pocketDim;
|
||||||
import StevenDimDoors.mod_pocketDim.helpers.dimHelper;
|
import StevenDimDoors.mod_pocketDim.helpers.dimHelper;
|
||||||
@@ -24,24 +25,41 @@ import cpw.mods.fml.relauncher.SideOnly;
|
|||||||
|
|
||||||
public class BlockRift extends BlockContainer
|
public class BlockRift extends BlockContainer
|
||||||
{
|
{
|
||||||
private static DDProperties properties = null;
|
private static final float MIN_IMMUNE_HARDNESS = 200.0F;
|
||||||
|
|
||||||
public BlockRift(int i, int j, Material par2Material)
|
private final DDProperties properties;
|
||||||
|
private final ArrayList<Integer> blocksImmuneToRift;
|
||||||
|
|
||||||
|
public BlockRift(int i, int j, Material par2Material, DDProperties properties)
|
||||||
{
|
{
|
||||||
super(i, Material.air);
|
super(i, Material.air);
|
||||||
setTickRandomly(true);
|
this.setTickRandomly(true);
|
||||||
// this.setCreativeTab(CreativeTabs.tabBlock);
|
|
||||||
this.setLightOpacity(14);
|
this.setLightOpacity(14);
|
||||||
if (properties == null)
|
this.properties = properties;
|
||||||
properties = DDProperties.instance();
|
this.blocksImmuneToRift = new ArrayList<Integer>();
|
||||||
|
this.blocksImmuneToRift.add(properties.FabricBlockID);
|
||||||
|
this.blocksImmuneToRift.add(properties.PermaFabricBlockID);
|
||||||
|
this.blocksImmuneToRift.add(properties.DimensionalDoorID);
|
||||||
|
this.blocksImmuneToRift.add(properties.WarpDoorID);
|
||||||
|
this.blocksImmuneToRift.add(properties.TransTrapdoorID);
|
||||||
|
this.blocksImmuneToRift.add(properties.UnstableDoorID);
|
||||||
|
this.blocksImmuneToRift.add(properties.RiftBlockID);
|
||||||
|
this.blocksImmuneToRift.add(properties.TransientDoorID);
|
||||||
|
this.blocksImmuneToRift.add(Block.blockIron.blockID);
|
||||||
|
this.blocksImmuneToRift.add(Block.blockDiamond.blockID);
|
||||||
|
this.blocksImmuneToRift.add(Block.blockEmerald.blockID);
|
||||||
|
this.blocksImmuneToRift.add(Block.blockGold.blockID);
|
||||||
|
this.blocksImmuneToRift.add(Block.blockLapis.blockID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void registerIcons(IconRegister par1IconRegister)
|
public void registerIcons(IconRegister par1IconRegister)
|
||||||
{
|
{
|
||||||
this.blockIcon = par1IconRegister.registerIcon(mod_pocketDim.modid + ":" + this.getUnlocalizedName2());
|
this.blockIcon = par1IconRegister.registerIcon(mod_pocketDim.modid + ":" + this.getUnlocalizedName2());
|
||||||
}
|
}
|
||||||
|
|
||||||
//sends a packet informing the client that there is a link present so it renders properly. (when placed)
|
//sends a packet informing the client that there is a link present so it renders properly. (when placed)
|
||||||
|
@Override
|
||||||
public void onBlockAdded(World par1World, int par2, int par3, int par4)
|
public void onBlockAdded(World par1World, int par2, int par3, int par4)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -53,16 +71,18 @@ public class BlockRift extends BlockContainer
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
// this.updateTick(par1World, par2, par3, par4, new Random());
|
// this.updateTick(par1World, par2, par3, par4, new Random());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public boolean isCollidable()
|
public boolean isCollidable()
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void onBlockDestroyedByPlayer(World par1World, int par2, int par3, int par4, int par5) {}
|
public void onBlockDestroyedByPlayer(World par1World, int par2, int par3, int par4, int par5) {}
|
||||||
|
|
||||||
|
@Override
|
||||||
public boolean isOpaqueCube()
|
public boolean isOpaqueCube()
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@@ -71,6 +91,7 @@ public class BlockRift extends BlockContainer
|
|||||||
/**
|
/**
|
||||||
* Returns whether this block is collideable based on the arguments passed in Args: blockMetaData, unknownFlag
|
* Returns whether this block is collideable based on the arguments passed in Args: blockMetaData, unknownFlag
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public boolean canCollideCheck(int par1, boolean par2)
|
public boolean canCollideCheck(int par1, boolean par2)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -81,11 +102,14 @@ public class BlockRift extends BlockContainer
|
|||||||
* Returns Returns true if the given side of this block type should be rendered (if it's solid or not), if the
|
* Returns Returns true if the given side of this block type should be rendered (if it's solid or not), if the
|
||||||
* adjacent block is at the given coordinates. Args: blockAccess, x, y, z, side
|
* adjacent block is at the given coordinates. Args: blockAccess, x, y, z, side
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public boolean isBlockSolid(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)
|
public boolean isBlockSolid(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//this doesnt do anything yet.
|
//this doesnt do anything yet.
|
||||||
|
@Override
|
||||||
public int getRenderType()
|
public int getRenderType()
|
||||||
{
|
{
|
||||||
if(mod_pocketDim.isPlayerWearingGoogles)
|
if(mod_pocketDim.isPlayerWearingGoogles)
|
||||||
@@ -96,12 +120,12 @@ public class BlockRift extends BlockContainer
|
|||||||
return 8;
|
return 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if the given side of this block type should be rendered, if the adjacent block is at the given
|
* Returns true if the given side of this block type should be rendered, if the adjacent block is at the given
|
||||||
* coordinates. Args: blockAccess, x, y, z, side
|
* coordinates. Args: blockAccess, x, y, z, side
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)
|
public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
@@ -111,21 +135,23 @@ public class BlockRift extends BlockContainer
|
|||||||
* Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been
|
* Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been
|
||||||
* cleared to be reused)
|
* cleared to be reused)
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4)
|
public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
//function that regulates how many blocks it eats/ how fast it eates them.
|
//function that regulates how many blocks it eats/ how fast it eates them.
|
||||||
|
@Override
|
||||||
public void updateTick(World world, int x, int y, int z, Random random)
|
public void updateTick(World world, int x, int y, int z, Random random)
|
||||||
{
|
{
|
||||||
if(!world.isRemote&&dimHelper.instance.getLinkDataFromCoords(x, y, z, world.provider.dimensionId)!=null && properties.RiftGriefingEnabled)
|
if(!world.isRemote&&dimHelper.instance.getLinkDataFromCoords(x, y, z, world.provider.dimensionId)!=null && properties.RiftGriefingEnabled)
|
||||||
{
|
{
|
||||||
TileEntityRift rift = (TileEntityRift) world.getBlockTileEntity(x, y, z);
|
TileEntityRift rift = (TileEntityRift) world.getBlockTileEntity(x, y, z);
|
||||||
if(rift.isNearRift)
|
if (rift.isNearRift)
|
||||||
{
|
{
|
||||||
|
//TODO: Fix this. Make it pretty. <20>_<EFBFBD> ~SenseiKiwi
|
||||||
int range=4;
|
int range=4;
|
||||||
|
|
||||||
float distance=range+range/4;
|
float distance=range+range/4;
|
||||||
int i=-range;
|
int i=-range;
|
||||||
int j=-range;
|
int j=-range;
|
||||||
@@ -137,7 +163,8 @@ public class BlockRift extends BlockContainer
|
|||||||
{
|
{
|
||||||
while (k<range&&flag)
|
while (k<range&&flag)
|
||||||
{
|
{
|
||||||
if(!mod_pocketDim.blocksImmuneToRift.contains(world.getBlockId(x+i, y+j, z+k))&&MathHelper.abs(i)+MathHelper.abs(j)+MathHelper.abs(k)<distance&&!world.isAirBlock(x+i, y+j, z+k))
|
if (!isBlockImmune(world, x+i, y+j, z+k) &&
|
||||||
|
MathHelper.abs(i)+MathHelper.abs(j)+MathHelper.abs(k)<distance&&!world.isAirBlock(x+i, y+j, z+k))
|
||||||
{
|
{
|
||||||
if(MathHelper.abs(i)+MathHelper.abs(j)+MathHelper.abs(k)!=0&&random.nextInt(2)==0)
|
if(MathHelper.abs(i)+MathHelper.abs(j)+MathHelper.abs(k)!=0&&random.nextInt(2)==0)
|
||||||
{
|
{
|
||||||
@@ -154,18 +181,15 @@ public class BlockRift extends BlockContainer
|
|||||||
}
|
}
|
||||||
j=-range;
|
j=-range;
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* regulates the render effect, especially when multiple rifts start to link up. Has 3 main parts- Grows toward and away from nearest rft, bends toward it, and a randomization function
|
* regulates the render effect, especially when multiple rifts start to link up. Has 3 main parts- Grows toward and away from nearest rft, bends toward it, and a randomization function
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random rand)
|
public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random rand)
|
||||||
{
|
{
|
||||||
@@ -186,8 +210,6 @@ public class BlockRift extends BlockContainer
|
|||||||
|
|
||||||
TileEntityRift tile = (TileEntityRift)par1World.getBlockTileEntity(par2, par3, par4);
|
TileEntityRift tile = (TileEntityRift)par1World.getBlockTileEntity(par2, par3, par4);
|
||||||
|
|
||||||
//the noise, ie, how far the rift particles are away from the intended location.
|
|
||||||
float offset=0;
|
|
||||||
float Xoffset=0;
|
float Xoffset=0;
|
||||||
float Yoffset=0;
|
float Yoffset=0;
|
||||||
float Zoffset=0;
|
float Zoffset=0;
|
||||||
@@ -250,7 +272,6 @@ public class BlockRift extends BlockContainer
|
|||||||
yChange=(float) ((yGrowth+yGrowthn)+rand.nextGaussian()*.05F);
|
yChange=(float) ((yGrowth+yGrowthn)+rand.nextGaussian()*.05F);
|
||||||
zChange=(float) ((zGrowth+zGrowthn)+rand.nextGaussian()*.05F);
|
zChange=(float) ((zGrowth+zGrowthn)+rand.nextGaussian()*.05F);
|
||||||
|
|
||||||
offset= (float) ((0.2F/(1+Math.abs(xChange)+Math.abs(yChange)+Math.abs(zChange))));
|
|
||||||
Xoffset= (float) ((0.25F/(1+Math.abs(xChange))));
|
Xoffset= (float) ((0.25F/(1+Math.abs(xChange))));
|
||||||
|
|
||||||
Yoffset= (float) ((0.25F/(1+Math.abs(yChange))));
|
Yoffset= (float) ((0.25F/(1+Math.abs(yChange))));
|
||||||
@@ -274,15 +295,27 @@ public class BlockRift extends BlockContainer
|
|||||||
FMLClientHandler.instance().getClient().effectRenderer.addEffect(new ClosingRiftFX(par1World,par2+.5, par3+.5, par4+.5, rand.nextGaussian() * 0.01D, rand.nextGaussian() * 0.01D, rand.nextGaussian() * 0.01D, FMLClientHandler.instance().getClient().effectRenderer));
|
FMLClientHandler.instance().getClient().effectRenderer.addEffect(new ClosingRiftFX(par1World,par2+.5, par3+.5, par4+.5, rand.nextGaussian() * 0.01D, rand.nextGaussian() * 0.01D, rand.nextGaussian() * 0.01D, FMLClientHandler.instance().getClient().effectRenderer));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isBlockImmune(World world, int x, int y, int z)
|
||||||
|
{
|
||||||
|
Block block = Block.blocksList[world.getBlockId(x, y, z)];
|
||||||
|
if (block != null)
|
||||||
|
{
|
||||||
|
float hardness = block.getBlockHardness(world, x, y, z);
|
||||||
|
return (hardness < 0 || hardness >= MIN_IMMUNE_HARDNESS || blocksImmuneToRift.contains(block.blockID));
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int idPicked(World par1World, int par2, int par3, int par4)
|
public int idPicked(World par1World, int par2, int par3, int par4)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int idDropped(int par1, Random par2Random, int par3)
|
public int idDropped(int par1, Random par2Random, int par3)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
@@ -290,12 +323,7 @@ public class BlockRift extends BlockContainer
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TileEntity createNewTileEntity(World var1)
|
public TileEntity createNewTileEntity(World var1)
|
||||||
|
|
||||||
{
|
{
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return new TileEntityRift();
|
return new TileEntityRift();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -42,7 +42,6 @@ import StevenDimDoors.mod_pocketDim.Point3D;
|
|||||||
import StevenDimDoors.mod_pocketDim.SchematicLoader;
|
import StevenDimDoors.mod_pocketDim.SchematicLoader;
|
||||||
import StevenDimDoors.mod_pocketDim.TileEntityRift;
|
import StevenDimDoors.mod_pocketDim.TileEntityRift;
|
||||||
import StevenDimDoors.mod_pocketDim.mod_pocketDim;
|
import StevenDimDoors.mod_pocketDim.mod_pocketDim;
|
||||||
import StevenDimDoors.mod_pocketDim.dungeon.DungeonSchematic;
|
|
||||||
import StevenDimDoors.mod_pocketDim.schematic.BlockRotator;
|
import StevenDimDoors.mod_pocketDim.schematic.BlockRotator;
|
||||||
import StevenDimDoors.mod_pocketDim.world.LimboProvider;
|
import StevenDimDoors.mod_pocketDim.world.LimboProvider;
|
||||||
import StevenDimDoors.mod_pocketDim.world.PocketProvider;
|
import StevenDimDoors.mod_pocketDim.world.PocketProvider;
|
||||||
@@ -272,16 +271,20 @@ public class dimHelper extends DimensionManager
|
|||||||
}
|
}
|
||||||
this.generateDoor(world,linkData);
|
this.generateDoor(world,linkData);
|
||||||
|
|
||||||
|
//FIXME: Why are we checking blockList.length? Not necessary. getBlockId() can't return an ID past the end of the block list.
|
||||||
|
//Plus even if the check is necessary, it's still wrong since it should be less than, not less than or equal to.
|
||||||
if(Block.blocksList.length>=entity.worldObj.getBlockId(playerXCoord,playerYCoord+1,playerZCoord)&&!entity.worldObj.isAirBlock(playerXCoord,playerYCoord+1,playerZCoord))
|
if(Block.blocksList.length>=entity.worldObj.getBlockId(playerXCoord,playerYCoord+1,playerZCoord)&&!entity.worldObj.isAirBlock(playerXCoord,playerYCoord+1,playerZCoord))
|
||||||
{
|
{
|
||||||
if(Block.blocksList[entity.worldObj.getBlockId(playerXCoord,playerYCoord+1,playerZCoord)].isOpaqueCube()&&!mod_pocketDim.blocksImmuneToRift.contains(entity.worldObj.getBlockId(playerXCoord,playerYCoord+1,playerZCoord)))
|
if(Block.blocksList[entity.worldObj.getBlockId(playerXCoord,playerYCoord+1,playerZCoord)].isOpaqueCube() &&
|
||||||
|
!mod_pocketDim.blockRift.isBlockImmune(entity.worldObj, playerXCoord+1,playerYCoord,playerZCoord))
|
||||||
{
|
{
|
||||||
entity.worldObj.setBlock(playerXCoord,playerYCoord+1,playerZCoord,0);
|
entity.worldObj.setBlock(playerXCoord,playerYCoord+1,playerZCoord,0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(Block.blocksList.length>=entity.worldObj.getBlockId(playerXCoord,playerYCoord,playerZCoord)&&!entity.worldObj.isAirBlock(playerXCoord,playerYCoord,playerZCoord))
|
if (Block.blocksList.length >= entity.worldObj.getBlockId(playerXCoord,playerYCoord,playerZCoord)&&!entity.worldObj.isAirBlock(playerXCoord,playerYCoord,playerZCoord))
|
||||||
{
|
{
|
||||||
if(Block.blocksList[entity.worldObj.getBlockId(playerXCoord,playerYCoord,playerZCoord)].isOpaqueCube()&&!mod_pocketDim.blocksImmuneToRift.contains(entity.worldObj.getBlockId(playerXCoord,playerYCoord,playerZCoord)))
|
if(Block.blocksList[entity.worldObj.getBlockId(playerXCoord,playerYCoord,playerZCoord)].isOpaqueCube() &&
|
||||||
|
!mod_pocketDim.blockRift.isBlockImmune(entity.worldObj, playerXCoord,playerYCoord,playerZCoord))
|
||||||
{
|
{
|
||||||
entity.worldObj.setBlock(playerXCoord,playerYCoord,playerZCoord,0);
|
entity.worldObj.setBlock(playerXCoord,playerYCoord,playerZCoord,0);
|
||||||
}
|
}
|
||||||
@@ -362,12 +365,12 @@ public class dimHelper extends DimensionManager
|
|||||||
link.isLocPocket=locationDimData.isPocket;
|
link.isLocPocket=locationDimData.isPocket;
|
||||||
locationDimData.addLinkToDim(link);
|
locationDimData.addLinkToDim(link);
|
||||||
|
|
||||||
if(dimHelper.getWorld(link.locDimID)!=null)
|
World world = dimHelper.getWorld(link.locDimID);
|
||||||
|
if (world != null)
|
||||||
{
|
{
|
||||||
int blocktoReplace = dimHelper.getWorld(link.locDimID).getBlockId(link.locXCoord, link.locYCoord, link.locZCoord);
|
if (!mod_pocketDim.blockRift.isBlockImmune(world, link.locXCoord, link.locYCoord, link.locZCoord))
|
||||||
if(!mod_pocketDim.blocksImmuneToRift.contains(blocktoReplace))
|
|
||||||
{
|
{
|
||||||
dimHelper.getWorld(link.locDimID).setBlock(link.locXCoord, link.locYCoord, link.locZCoord, properties.RiftBlockID);
|
world.setBlock(link.locXCoord, link.locYCoord, link.locZCoord, properties.RiftBlockID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Notifies other players that a link has been created.
|
//Notifies other players that a link has been created.
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ import StevenDimDoors.mod_pocketDim.commands.CommandPrintDimensionData;
|
|||||||
import StevenDimDoors.mod_pocketDim.commands.CommandPruneDimensions;
|
import StevenDimDoors.mod_pocketDim.commands.CommandPruneDimensions;
|
||||||
import StevenDimDoors.mod_pocketDim.commands.CommandResetDungeons;
|
import StevenDimDoors.mod_pocketDim.commands.CommandResetDungeons;
|
||||||
import StevenDimDoors.mod_pocketDim.commands.CommandTeleportPlayer;
|
import StevenDimDoors.mod_pocketDim.commands.CommandTeleportPlayer;
|
||||||
import StevenDimDoors.mod_pocketDim.helpers.BlockRotationHelper;
|
|
||||||
import StevenDimDoors.mod_pocketDim.helpers.DungeonHelper;
|
import StevenDimDoors.mod_pocketDim.helpers.DungeonHelper;
|
||||||
import StevenDimDoors.mod_pocketDim.helpers.dimHelper;
|
import StevenDimDoors.mod_pocketDim.helpers.dimHelper;
|
||||||
import StevenDimDoors.mod_pocketDim.items.ItemBlockDimWall;
|
import StevenDimDoors.mod_pocketDim.items.ItemBlockDimWall;
|
||||||
@@ -104,12 +103,12 @@ public class mod_pocketDim
|
|||||||
public static Block transientDoor;
|
public static Block transientDoor;
|
||||||
public static Block ExitDoor;
|
public static Block ExitDoor;
|
||||||
public static Block chaosDoor;
|
public static Block chaosDoor;
|
||||||
public static Block blockRift;
|
|
||||||
public static Block blockLimbo;
|
public static Block blockLimbo;
|
||||||
public static Block dimDoor;
|
public static Block dimDoor;
|
||||||
public static Block blockDimWall;
|
public static Block blockDimWall;
|
||||||
public static Block dimHatch;
|
public static Block dimHatch;
|
||||||
public static Block blockDimWallPerm;
|
public static Block blockDimWallPerm;
|
||||||
|
public static BlockRift blockRift;
|
||||||
|
|
||||||
public static Item itemRiftBlade;
|
public static Item itemRiftBlade;
|
||||||
public static Item itemDimDoor;
|
public static Item itemDimDoor;
|
||||||
@@ -127,8 +126,6 @@ public class mod_pocketDim
|
|||||||
|
|
||||||
public static HashMap<String,ArrayList<EntityItem>> limboSpawnInventory = new HashMap<String,ArrayList<EntityItem>>();
|
public static HashMap<String,ArrayList<EntityItem>> limboSpawnInventory = new HashMap<String,ArrayList<EntityItem>>();
|
||||||
|
|
||||||
public static ArrayList<Integer> blocksImmuneToRift = new ArrayList<Integer>();
|
|
||||||
|
|
||||||
public static boolean hasInitDims = false;
|
public static boolean hasInitDims = false;
|
||||||
public static boolean isPlayerWearingGoogles = false;
|
public static boolean isPlayerWearingGoogles = false;
|
||||||
|
|
||||||
@@ -191,7 +188,7 @@ public class mod_pocketDim
|
|||||||
blockDimWall = (new BlockDimWall(properties.FabricBlockID, 0, Material.iron)).setLightValue(1.0F).setHardness(0.1F).setUnlocalizedName("blockDimWall");
|
blockDimWall = (new BlockDimWall(properties.FabricBlockID, 0, Material.iron)).setLightValue(1.0F).setHardness(0.1F).setUnlocalizedName("blockDimWall");
|
||||||
blockDimWallPerm = (new BlockDimWallPerm(properties.PermaFabricBlockID, 0, Material.iron)).setLightValue(1.0F).setBlockUnbreakable().setResistance(6000000.0F).setUnlocalizedName("blockDimWallPerm");
|
blockDimWallPerm = (new BlockDimWallPerm(properties.PermaFabricBlockID, 0, Material.iron)).setLightValue(1.0F).setBlockUnbreakable().setResistance(6000000.0F).setUnlocalizedName("blockDimWallPerm");
|
||||||
ExitDoor = (new ExitDoor(properties.WarpDoorID, Material.wood)).setHardness(1.0F) .setUnlocalizedName("dimDoorWarp");
|
ExitDoor = (new ExitDoor(properties.WarpDoorID, Material.wood)).setHardness(1.0F) .setUnlocalizedName("dimDoorWarp");
|
||||||
blockRift = (new BlockRift(properties.RiftBlockID, 0, Material.air).setHardness(1.0F) .setUnlocalizedName("rift"));
|
blockRift = (BlockRift) (new BlockRift(properties.RiftBlockID, 0, Material.air, properties).setHardness(1.0F) .setUnlocalizedName("rift"));
|
||||||
blockLimbo = (new BlockLimbo(properties.LimboBlockID, 15, Material.iron, properties.LimboDimensionID, decay).setHardness(.2F).setUnlocalizedName("BlockLimbo").setLightValue(.0F));
|
blockLimbo = (new BlockLimbo(properties.LimboBlockID, 15, Material.iron, properties.LimboDimensionID, decay).setHardness(.2F).setUnlocalizedName("BlockLimbo").setLightValue(.0F));
|
||||||
chaosDoor = (new ChaosDoor(properties.UnstableDoorID, Material.iron).setHardness(.2F).setUnlocalizedName("chaosDoor").setLightValue(.0F) );
|
chaosDoor = (new ChaosDoor(properties.UnstableDoorID, Material.iron).setHardness(.2F).setUnlocalizedName("chaosDoor").setLightValue(.0F) );
|
||||||
dimDoor = (new dimDoor(properties.DimensionalDoorID, Material.iron)).setHardness(1.0F).setResistance(2000.0F) .setUnlocalizedName("dimDoor");
|
dimDoor = (new dimDoor(properties.DimensionalDoorID, Material.iron)).setHardness(1.0F).setResistance(2000.0F) .setUnlocalizedName("dimDoor");
|
||||||
@@ -379,21 +376,6 @@ public class mod_pocketDim
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
mod_pocketDim.blocksImmuneToRift.add(properties.FabricBlockID);
|
|
||||||
mod_pocketDim.blocksImmuneToRift.add(properties.PermaFabricBlockID);
|
|
||||||
mod_pocketDim.blocksImmuneToRift.add(properties.DimensionalDoorID);
|
|
||||||
mod_pocketDim.blocksImmuneToRift.add(properties.WarpDoorID);
|
|
||||||
mod_pocketDim.blocksImmuneToRift.add(properties.TransTrapdoorID);
|
|
||||||
mod_pocketDim.blocksImmuneToRift.add(properties.UnstableDoorID);
|
|
||||||
mod_pocketDim.blocksImmuneToRift.add(properties.RiftBlockID);
|
|
||||||
mod_pocketDim.blocksImmuneToRift.add(properties.TransientDoorID);
|
|
||||||
mod_pocketDim.blocksImmuneToRift.add(Block.blockIron.blockID);
|
|
||||||
mod_pocketDim.blocksImmuneToRift.add(Block.blockDiamond.blockID);
|
|
||||||
mod_pocketDim.blocksImmuneToRift.add(Block.blockEmerald.blockID);
|
|
||||||
mod_pocketDim.blocksImmuneToRift.add(Block.blockGold.blockID);
|
|
||||||
mod_pocketDim.blocksImmuneToRift.add(Block.blockLapis.blockID);
|
|
||||||
mod_pocketDim.blocksImmuneToRift.add(Block.bedrock.blockID);
|
|
||||||
|
|
||||||
DungeonHelper.initialize();
|
DungeonHelper.initialize();
|
||||||
|
|
||||||
proxy.loadTextures();
|
proxy.loadTextures();
|
||||||
|
|||||||
@@ -43,27 +43,21 @@ public class RiftRegenerator implements IRegularTickReceiver {
|
|||||||
//actually gets the random rift based on the size of the list
|
//actually gets the random rift based on the size of the list
|
||||||
link = (LinkData) dimHelper.instance.getRandomLinkData(true);
|
link = (LinkData) dimHelper.instance.getRandomLinkData(true);
|
||||||
|
|
||||||
if(link!=null)
|
if (link != null)
|
||||||
{
|
|
||||||
|
|
||||||
if (dimHelper.getWorld(link.locDimID)!=null)
|
|
||||||
{
|
{
|
||||||
World world = dimHelper.getWorld(link.locDimID);
|
World world = dimHelper.getWorld(link.locDimID);
|
||||||
|
|
||||||
int blocktoReplace = world.getBlockId(link.locXCoord, link.locYCoord, link.locZCoord);
|
if (world != null && !mod_pocketDim.blockRift.isBlockImmune(world, link.locXCoord, link.locYCoord, link.locZCoord))
|
||||||
|
|
||||||
if(!mod_pocketDim.blocksImmuneToRift.contains(blocktoReplace))//makes sure the rift doesn't replace a door or something
|
|
||||||
{
|
{
|
||||||
if(dimHelper.instance.getLinkDataFromCoords(link.locXCoord, link.locYCoord, link.locZCoord, link.locDimID) != null)
|
if (dimHelper.instance.getLinkDataFromCoords(link.locXCoord, link.locYCoord, link.locZCoord, link.locDimID) != null)
|
||||||
{
|
{
|
||||||
dimHelper.getWorld(link.locDimID).setBlock(link.locXCoord, link.locYCoord, link.locZCoord, properties.RiftBlockID);
|
world.setBlock(link.locXCoord, link.locYCoord, link.locZCoord, properties.RiftBlockID);
|
||||||
TileEntityRift rift = TileEntityRift.class.cast(dimHelper.getWorld(link.locDimID).getBlockTileEntity(link.locXCoord, link.locYCoord, link.locZCoord));
|
TileEntityRift rift = (TileEntityRift) world.getBlockTileEntity(link.locXCoord, link.locYCoord, link.locZCoord);
|
||||||
if(rift == null)
|
if (rift == null)
|
||||||
{
|
{
|
||||||
dimHelper.getWorld(link.locDimID).setBlockTileEntity(link.locXCoord, link.locYCoord, link.locZCoord, new TileEntityRift());
|
dimHelper.getWorld(link.locDimID).setBlockTileEntity(link.locXCoord, link.locYCoord, link.locZCoord, new TileEntityRift());
|
||||||
}
|
}
|
||||||
rift.hasGrownRifts=true;
|
rift.hasGrownRifts = true;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -71,7 +65,7 @@ public class RiftRegenerator implements IRegularTickReceiver {
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
System.out.println("An exception occurred in RiftRegenerator.regenerate():");
|
System.err.println("An exception occurred in RiftRegenerator.regenerate():");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user