From 7a36e787698ac6013c217dfd2db248e3a4d49ea4 Mon Sep 17 00:00:00 2001 From: StevenRS11 Date: Tue, 15 Oct 2013 15:40:37 -0400 Subject: [PATCH] small fixes Fixed chunkloader bug Fixed doors not tping non player entites because of orientation --- .../mod_pocketDim/IChunkLoader.java | 8 ++++++ .../mod_pocketDim/blocks/BaseDimDoor.java | 4 +-- .../mod_pocketDim/core/DDTeleporter.java | 3 --- .../helpers/ChunkLoaderHelper.java | 27 ++++--------------- .../tileentities/TileEntityDimDoorGold.java | 13 ++++----- 5 files changed, 22 insertions(+), 33 deletions(-) create mode 100644 StevenDimDoors/mod_pocketDim/IChunkLoader.java diff --git a/StevenDimDoors/mod_pocketDim/IChunkLoader.java b/StevenDimDoors/mod_pocketDim/IChunkLoader.java new file mode 100644 index 00000000..bbe989ee --- /dev/null +++ b/StevenDimDoors/mod_pocketDim/IChunkLoader.java @@ -0,0 +1,8 @@ +package StevenDimDoors.mod_pocketDim; + +import net.minecraftforge.common.ForgeChunkManager.Ticket; + +public interface IChunkLoader +{ + public void forceChunkLoading(Ticket ticket,int x, int z); +} diff --git a/StevenDimDoors/mod_pocketDim/blocks/BaseDimDoor.java b/StevenDimDoors/mod_pocketDim/blocks/BaseDimDoor.java index c27bd1d5..d0ee1a2f 100644 --- a/StevenDimDoors/mod_pocketDim/blocks/BaseDimDoor.java +++ b/StevenDimDoors/mod_pocketDim/blocks/BaseDimDoor.java @@ -383,9 +383,9 @@ public abstract class BaseDimDoor extends BlockDoor implements IDimDoor, ITileEn { int metadata = world.getBlockMetadata(x, y - 1, z); boolean canUse = isDoorOpen(metadata); - if (canUse && entity instanceof EntityLiving) + if (canUse && entity instanceof EntityPlayer) { - // Don't check for non-living entities since it might not work right + // Dont check for non-player entites canUse = isEntityFacingDoor(metadata, (EntityLiving) entity); } if (canUse) diff --git a/StevenDimDoors/mod_pocketDim/core/DDTeleporter.java b/StevenDimDoors/mod_pocketDim/core/DDTeleporter.java index a8db4140..c9e9c66a 100644 --- a/StevenDimDoors/mod_pocketDim/core/DDTeleporter.java +++ b/StevenDimDoors/mod_pocketDim/core/DDTeleporter.java @@ -127,8 +127,6 @@ public class DDTeleporter if(!CheckDestination(entity, world, destination, properties)) { - - //TODO Give entity backwards acceleration if(entity instanceof EntityPlayerMP) { EntityPlayer player = (EntityPlayer) entity; @@ -183,7 +181,6 @@ public class DDTeleporter entity.motionX = 0; entity.motionZ = 0; entity.motionY = 0; - switch (orientation) { case 0: diff --git a/StevenDimDoors/mod_pocketDim/helpers/ChunkLoaderHelper.java b/StevenDimDoors/mod_pocketDim/helpers/ChunkLoaderHelper.java index f7341929..825f13ef 100644 --- a/StevenDimDoors/mod_pocketDim/helpers/ChunkLoaderHelper.java +++ b/StevenDimDoors/mod_pocketDim/helpers/ChunkLoaderHelper.java @@ -4,14 +4,16 @@ import java.util.List; import net.minecraft.world.World; import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.LoadingCallback; import net.minecraftforge.common.ForgeChunkManager.Ticket; +import StevenDimDoors.mod_pocketDim.IChunkLoader; import StevenDimDoors.mod_pocketDim.mod_pocketDim; import StevenDimDoors.mod_pocketDim.tileentities.TileEntityDimDoorGold; import com.google.common.collect.Lists; -public class ChunkLoaderHelper implements ForgeChunkManager.OrderedLoadingCallback +public class ChunkLoaderHelper implements LoadingCallback { @Override @@ -22,28 +24,9 @@ public class ChunkLoaderHelper implements ForgeChunkManager.OrderedLoadingCallba int goldDimDoorX = ticket.getModData().getInteger("goldDimDoorX"); int goldDimDoorY = ticket.getModData().getInteger("goldDimDoorY"); int goldDimDoorZ = ticket.getModData().getInteger("goldDimDoorZ"); - TileEntityDimDoorGold tile = (TileEntityDimDoorGold) world.getBlockTileEntity(goldDimDoorX, goldDimDoorY, goldDimDoorZ); - tile.forceChunkLoading(ticket); + IChunkLoader tile = (IChunkLoader) world.getBlockTileEntity(goldDimDoorX, goldDimDoorY, goldDimDoorZ); + tile.forceChunkLoading(ticket,goldDimDoorX,goldDimDoorZ); } } - - @Override - public List ticketsLoaded(List tickets, World world, int maxTicketCount) - { - List validTickets = Lists.newArrayList(); - for (Ticket ticket : tickets) - { - int goldDimDoorX = ticket.getModData().getInteger("goldDimDoorX"); - int goldDimDoorY = ticket.getModData().getInteger("goldDimDoorY"); - int goldDimDoorZ = ticket.getModData().getInteger("goldDimDoorZ"); - - int blId = world.getBlockId(goldDimDoorX, goldDimDoorY, goldDimDoorZ); - if (blId == mod_pocketDim.properties.GoldDimDoorID) - { - validTickets.add(ticket); - } - } - return validTickets; - } } \ No newline at end of file diff --git a/StevenDimDoors/mod_pocketDim/tileentities/TileEntityDimDoorGold.java b/StevenDimDoors/mod_pocketDim/tileentities/TileEntityDimDoorGold.java index 2de45285..6091aedb 100644 --- a/StevenDimDoors/mod_pocketDim/tileentities/TileEntityDimDoorGold.java +++ b/StevenDimDoors/mod_pocketDim/tileentities/TileEntityDimDoorGold.java @@ -1,5 +1,6 @@ package StevenDimDoors.mod_pocketDim.tileentities; +import StevenDimDoors.mod_pocketDim.IChunkLoader; import StevenDimDoors.mod_pocketDim.mod_pocketDim; import StevenDimDoors.mod_pocketDim.core.PocketManager; import StevenDimDoors.mod_pocketDim.world.PocketBuilder; @@ -9,7 +10,7 @@ import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.ForgeChunkManager.Ticket; import net.minecraftforge.common.ForgeChunkManager.Type; -public class TileEntityDimDoorGold extends TileEntityDimDoor +public class TileEntityDimDoorGold extends TileEntityDimDoor implements IChunkLoader { private Ticket chunkTicket; @@ -32,22 +33,22 @@ public class TileEntityDimDoorGold extends TileEntityDimDoor chunkTicket.getModData().setInteger("goldDimDoorY", yCoord); chunkTicket.getModData().setInteger("goldDimDoorZ", zCoord); ForgeChunkManager.forceChunk(chunkTicket, new ChunkCoordIntPair(xCoord >> 4, zCoord >> 4)); - forceChunkLoading(chunkTicket); + forceChunkLoading(chunkTicket,this.xCoord,this.zCoord); } } - public void forceChunkLoading(Ticket chunkTicket) + public void forceChunkLoading(Ticket chunkTicket,int x,int z) { - if(PocketManager.getDimensionData(this.worldObj)==null) + if(PocketManager.getDimensionData(chunkTicket.world)==null) { return; } - if(!PocketManager.getDimensionData(this.worldObj).isPocketDimension()) + if(!PocketManager.getDimensionData(chunkTicket.world).isPocketDimension()) { return; } - for(int chunks = (PocketBuilder.DEFAULT_POCKET_SIZE%16)+1;chunks>0;chunks--) + for(int chunks = (PocketBuilder.DEFAULT_POCKET_SIZE/16)+1;chunks>0;chunks--) { ForgeChunkManager.forceChunk(chunkTicket, new ChunkCoordIntPair((xCoord >> 4)+chunks, (zCoord >> 4)+chunks));