Example #1
0
        public static void UpdateFurnaceBlockState(bool flag, net.minecraft.src.World world
                                                   , int i, int j, int k)
        {
            int l = world.GetBlockMetadata(i, j, k);

            net.minecraft.src.TileEntity tileentity = world.GetBlockTileEntity(i, j, k);
            if (tileentity == null)
            {
                return;                                 // CRAFTBUKKIT
            }
            field_28034_c = true;
            if (flag)
            {
                world.SetBlockWithNotify(i, j, k, net.minecraft.src.Block.BURNING_FURNACE.ID
                                         );
            }
            else
            {
                world.SetBlockWithNotify(i, j, k, net.minecraft.src.Block.FURNACE.ID);
            }
            field_28034_c = false;
            world.SetBlockMetadataWithNotify(i, j, k, l);
            tileentity.Validate();
            world.SetBlockTileEntity(i, j, k, tileentity);
        }
 private static bool CanPushBlock(int i, net.minecraft.src.World world, int j, int
                                  k, int l, bool flag)
 {
     if (i == net.minecraft.src.Block.OBSIDIAN.ID)
     {
         return(false);
     }
     if (i == net.minecraft.src.Block.PISTON.ID || i == net.minecraft.src.Block
         .PISTON_STICKY.ID)
     {
         if (IsExtended(world.GetBlockMetadata(j, k, l)))
         {
             return(false);
         }
     }
     else
     {
         if (net.minecraft.src.Block.blocksList[i].GetHardness() == -1F)
         {
             return(false);
         }
         if (net.minecraft.src.Block.blocksList[i].GetMobilityFlag() == 2)
         {
             return(false);
         }
         if (!flag && net.minecraft.src.Block.blocksList[i].GetMobilityFlag() == 1)
         {
             return(false);
         }
     }
     net.minecraft.src.TileEntity tileentity = world.GetBlockTileEntity(j, k, l);
     return(tileentity == null);
 }
Example #3
0
 public static net.minecraft.src.TileEntity CreateAndLoadEntity(net.minecraft.src.NBTTagCompound
                                                                nbttagcompound)
 {
     net.minecraft.src.TileEntity tileentity = null;
     try
     {
         System.Type class1 = (System.Type)nameToClassMap[nbttagcompound.GetString
                                                              ("id")];
         if (class1 != null)
         {
             tileentity = (net.minecraft.src.TileEntity)Activator.CreateInstance(class1);
         }
     }
     catch (System.Exception exception)
     {
         Sharpen.Runtime.PrintStackTrace(exception);
     }
     if (tileentity != null)
     {
         tileentity.ReadFromNBT(nbttagcompound);
     }
     else
     {
         System.Console.Out.WriteLine((new java.lang.StringBuilder()).Append("Skipping TileEntity with id "
                                                                             ).Append(nbttagcompound.GetString("id")).ToString());
     }
     return(tileentity);
 }
Example #4
0
 public virtual net.minecraft.src.TileEntity GetChunkBlockTileEntity(int i, int j,
                                                                     int k)
 {
     net.minecraft.src.ChunkPosition chunkposition = new net.minecraft.src.ChunkPosition
                                                         (i, j, k);
     net.minecraft.src.TileEntity tileentity = (net.minecraft.src.TileEntity)chunkTileEntityMap[chunkposition];
     if (tileentity == null)
     {
         int l = GetBlockID(i, j, k);
         if (!net.minecraft.src.Block.isBlockContainer[l])
         {
             return(null);
         }
         net.minecraft.src.BlockContainer blockcontainer = (net.minecraft.src.BlockContainer
                                                            )net.minecraft.src.Block.blocksList[l];
         blockcontainer.OnBlockAdded(worldObj, xPosition * 16 + i, j, zPosition * 16 + k);
         tileentity = (net.minecraft.src.TileEntity)chunkTileEntityMap[chunkposition];
     }
     if (tileentity != null && tileentity.IsInvalid())
     {
         chunkTileEntityMap.Remove(chunkposition);
         //Sharpen.Collections.Remove(chunkTileEntityMap, chunkposition);
         return(null);
     }
     else
     {
         return(tileentity);
     }
 }
Example #5
0
 public override void HandleUpdateSign(net.minecraft.src.Packet130UpdateSign packet130updatesign)
 {
     if (this.playerEntity.isDead)
     {
         return;                           // CRAFTBUKKIT
     }
     net.minecraft.src.WorldServer worldserver = mcServer.GetWorldServer(playerEntity.dimension);
     if (worldserver.BlockExists(packet130updatesign.xPosition, packet130updatesign.yPosition, packet130updatesign.zPosition))
     {
         net.minecraft.src.TileEntity tileentity = worldserver.GetBlockTileEntity(packet130updatesign.xPosition, packet130updatesign.yPosition, packet130updatesign.zPosition);
         if (tileentity is net.minecraft.src.TileEntitySign)
         {
             net.minecraft.src.TileEntitySign tileentitysign = (net.minecraft.src.TileEntitySign)tileentity;
             if (!tileentitysign.GetEditable())
             {
                 mcServer.LogWarning((new java.lang.StringBuilder()).Append("Player ").Append(playerEntity.username).Append(" just tried to change non-editable sign").ToString());
                 this.SendPacket(new Packet130UpdateSign(packet130updatesign.xPosition, packet130updatesign.yPosition, packet130updatesign.zPosition, tileentitysign.Lines)); // CRAFTBUKKIT
                 return;
             }
         }
         for (int i = 0; i < 4; i++)
         {
             bool lineValid = true;
             if (packet130updatesign.signLines[i].Length > 15)
             {
                 lineValid = false;
             }
             else
             {
                 for (int l = 0; l < packet130updatesign.signLines[i].Length; l++)
                 {
                     if (net.minecraft.src.ChatAllowedCharacters.allowedCharacters.IndexOf(packet130updatesign.signLines[i][l]) < 0)
                     {
                         lineValid = false;
                     }
                 }
             }
             if (!lineValid)
             {
                 packet130updatesign.signLines[i] = "!?";
             }
         }
         if (tileentity is net.minecraft.src.TileEntitySign)
         {
             int x = packet130updatesign.xPosition;
             int y = packet130updatesign.yPosition;
             int z = packet130updatesign.zPosition;
             net.minecraft.src.TileEntitySign tileentitysign1 = (net.minecraft.src.TileEntitySign)tileentity;
             for (int j1 = 0; j1 < 4; j1++)
             {
                 tileentitysign1.Lines[j1] = packet130updatesign.signLines[j1];
             }
             tileentitysign1.SetEditable(false);
             tileentitysign1.OnInventoryChanged();
             worldserver.MarkBlockNeedsUpdate(x, y, z);
         }
     }
 }
Example #6
0
 private void GetTileEntityInfo(net.minecraft.src.TileEntity tileentity)
 {
     if (tileentity != null)
     {
         net.minecraft.src.Packet packet = tileentity.GetDescriptionPacket();
         if (packet != null)
         {
             netServerHandler.SendPacket(packet);
         }
     }
 }
Example #7
0
 private void UpdateTileEntity(net.minecraft.src.TileEntity tileentity)
 {
     if (tileentity != null)
     {
         net.minecraft.src.Packet packet = tileentity.GetDescriptionPacket();
         if (packet != null)
         {
             SendPacketToPlayersInInstance(packet);
         }
     }
 }
Example #8
0
        public virtual void AddTileEntity(net.minecraft.src.TileEntity tileentity)
        {
            int i = tileentity.xCoord - xPosition * 16;
            int j = tileentity.yCoord;
            int k = tileentity.zCoord - zPosition * 16;

            SetChunkBlockTileEntity(i, j, k, tileentity);
            if (isChunkLoaded)
            {
                worldObj.loadedTileEntityList.Add(tileentity);
            }
        }
Example #9
0
 public override void OnBlockRemoval(net.minecraft.src.World world, int i, int j,
                                     int k)
 {
     net.minecraft.src.TileEntity tileentity = world.GetBlockTileEntity(i, j, k);
     if (tileentity != null && (tileentity is net.minecraft.src.TileEntityPiston))
     {
         ((net.minecraft.src.TileEntityPiston)tileentity).ClearPistonTileEntity();
     }
     else
     {
         base.OnBlockRemoval(world, i, j, k);
     }
 }
Example #10
0
 public virtual void RemoveChunkBlockTileEntity(int i, int j, int k)
 {
     net.minecraft.src.ChunkPosition chunkposition = new net.minecraft.src.ChunkPosition
                                                         (i, j, k);
     if (isChunkLoaded)
     {
         net.minecraft.src.TileEntity tileentity = (TileEntity)chunkTileEntityMap[chunkposition];// (net.minecraft.src.TileEntity)Sharpen.Collections.Remove(chunkTileEntityMap, chunkposition);
         if (tileentity != null)
         {
             chunkTileEntityMap.Remove(chunkposition);
             tileentity.Invalidate();
         }
     }
 }
Example #11
0
 private net.minecraft.src.TileEntityPiston GetTileEntityAtLocation(net.minecraft.src.IBlockAccess
                                                                    iblockaccess, int i, int j, int k)
 {
     net.minecraft.src.TileEntity tileentity = iblockaccess.GetBlockTileEntity(i, j, k
                                                                               );
     if (tileentity != null && (tileentity is net.minecraft.src.TileEntityPiston))
     {
         return((net.minecraft.src.TileEntityPiston)tileentity);
     }
     else
     {
         return(null);
     }
 }
Example #12
0
 public static void StoreChunkInCompound(net.minecraft.src.Chunk chunk, net.minecraft.src.World
                                         world, net.minecraft.src.NBTTagCompound nbttagcompound)
 {
     world.CheckSessionLock();
     nbttagcompound.SetInteger("xPos", chunk.xPosition);
     nbttagcompound.SetInteger("zPos", chunk.zPosition);
     nbttagcompound.SetLong("LastUpdate", world.GetWorldTime());
     nbttagcompound.SetByteArray("Blocks", chunk.blocks);
     nbttagcompound.SetByteArray("Data", chunk.data.data);
     nbttagcompound.SetByteArray("SkyLight", chunk.skylightMap.data);
     nbttagcompound.SetByteArray("BlockLight", chunk.blocklightMap.data);
     nbttagcompound.SetByteArray("HeightMap", chunk.heightMap);
     nbttagcompound.SetBoolean("TerrainPopulated", chunk.isTerrainPopulated);
     chunk.hasEntities = false;
     net.minecraft.src.NBTTagList nbttaglist = new net.minecraft.src.NBTTagList();
     for (int i = 0; i < chunk.entities.Length; i++)
     {
         System.Collections.IEnumerator iterator = chunk.entities[i].GetEnumerator();
         do
         {
             if (!iterator.MoveNext())
             {
                 goto label0_continue;
             }
             net.minecraft.src.Entity entity = (net.minecraft.src.Entity)iterator.Current;
             chunk.hasEntities = true;
             net.minecraft.src.NBTTagCompound nbttagcompound1 = new net.minecraft.src.NBTTagCompound
                                                                    ();
             if (entity.AddEntityID(nbttagcompound1))
             {
                 nbttaglist.SetTag(nbttagcompound1);
             }
         }while (true);
         label0_continue :;
     }
     label0_break :;
     nbttagcompound.SetTag("Entities", nbttaglist);
     net.minecraft.src.NBTTagList     nbttaglist1 = new net.minecraft.src.NBTTagList();
     net.minecraft.src.NBTTagCompound nbttagcompound2;
     for (System.Collections.IEnumerator iterator1 = chunk.chunkTileEntityMap.Values.GetEnumerator
                                                         (); iterator1.MoveNext(); nbttaglist1.SetTag(nbttagcompound2))
     {
         net.minecraft.src.TileEntity tileentity = (net.minecraft.src.TileEntity)iterator1
                                                   .Current;
         nbttagcompound2 = new net.minecraft.src.NBTTagCompound();
         tileentity.WriteToNBT(nbttagcompound2);
     }
     nbttagcompound.SetTag("TileEntities", nbttaglist1);
 }
Example #13
0
        public virtual List <TileEntity> GetTileEntityList(int i, int j, int k, int
                                                           l, int i1, int j1)
        {
            List <TileEntity> arraylist = new List <TileEntity>();

            for (int k1 = 0; k1 < loadedTileEntityList.Count; k1++)
            {
                net.minecraft.src.TileEntity tileentity = (net.minecraft.src.TileEntity)loadedTileEntityList
                                                          [k1];
                if (tileentity.xCoord >= i && tileentity.yCoord >= j && tileentity.zCoord >= k &&
                    tileentity.xCoord < l && tileentity.yCoord < i1 && tileentity.zCoord < j1)
                {
                    arraylist.Add(tileentity);
                }
            }
            return(arraylist);
        }
Example #14
0
 public virtual void SetChunkBlockTileEntity(int i, int j, int k, net.minecraft.src.TileEntity
                                             tileentity)
 {
     net.minecraft.src.ChunkPosition chunkposition = new net.minecraft.src.ChunkPosition
                                                         (i, j, k);
     tileentity.worldObj = worldObj;
     tileentity.xCoord   = xPosition * 16 + i;
     tileentity.yCoord   = j;
     tileentity.zCoord   = zPosition * 16 + k;
     if (GetBlockID(i, j, k) == 0 || !(net.minecraft.src.Block.blocksList[GetBlockID(i
                                                                                     , j, k)] is net.minecraft.src.BlockContainer))
     {
         System.Console.Out.WriteLine("Attempted to place a tile entity where there was no entity tile!"
                                      );
         return;
     }
     else
     {
         tileentity.Validate();
         chunkTileEntityMap[chunkposition] = tileentity;
         return;
     }
 }
Example #15
0
 public virtual void DoNothingWithTileEntity(int i, int j, int k, net.minecraft.src.TileEntity tileentity)
 {
     mcServer.serverConfigurationManager.SentTileEntityToPlayer(i, j, k, tileentity);
 }
 public virtual void SentTileEntityToPlayer(int i, int j, int k, net.minecraft.src.TileEntity tileentity)
 {
 }
Example #17
0
        public override void PlayBlock(net.minecraft.src.World world, int i, int j, int k
                                       , int l, int i1)
        {
            ignoreUpdates = true;
            int j1 = i1;

            if (l == 0)
            {
                if (TryExtend(world, i, j, k, j1))
                {
                    world.SetBlockMetadataWithNotify(i, j, k, j1 | 8);
                    world.PlaySoundEffect((double)i + 0.5D, (double)j + 0.5D, (double)k + 0.5D, "tile.piston.out"
                                          , 0.5F, world.rand.NextFloat() * 0.25F + 0.6F);
                }
            }
            else
            {
                if (l == 1)
                {
                    net.minecraft.src.TileEntity tileentity = world.GetBlockTileEntity(i + net.minecraft.src.PistonBlockTextures
                                                                                       .field_31051_b[j1], j + net.minecraft.src.PistonBlockTextures.field_31054_c[j1],
                                                                                       k + net.minecraft.src.PistonBlockTextures.field_31053_d[j1]);
                    if (tileentity != null && (tileentity is net.minecraft.src.TileEntityPiston))
                    {
                        ((net.minecraft.src.TileEntityPiston)tileentity).ClearPistonTileEntity();
                    }
                    world.SetBlockAndMetadata(i, j, k, net.minecraft.src.Block.PISTON_MOVING.ID,
                                              j1);
                    world.SetBlockTileEntity(i, j, k, net.minecraft.src.BlockPistonMoving.GetTileEntity
                                                 (ID, j1, j1, false, true));
                    if (isSticky)
                    {
                        int  k1   = i + net.minecraft.src.PistonBlockTextures.field_31051_b[j1] * 2;
                        int  l1   = j + net.minecraft.src.PistonBlockTextures.field_31054_c[j1] * 2;
                        int  i2   = k + net.minecraft.src.PistonBlockTextures.field_31053_d[j1] * 2;
                        int  j2   = world.GetBlockId(k1, l1, i2);
                        int  k2   = world.GetBlockMetadata(k1, l1, i2);
                        bool flag = false;
                        if (j2 == net.minecraft.src.Block.PISTON_MOVING.ID)
                        {
                            net.minecraft.src.TileEntity tileentity1 = world.GetBlockTileEntity(k1, l1, i2);
                            if (tileentity1 != null && (tileentity1 is net.minecraft.src.TileEntityPiston))
                            {
                                net.minecraft.src.TileEntityPiston tileentitypiston = (net.minecraft.src.TileEntityPiston
                                                                                       )tileentity1;
                                if (tileentitypiston.Func_31008_d() == j1 && tileentitypiston.Func_31010_c())
                                {
                                    tileentitypiston.ClearPistonTileEntity();
                                    j2   = tileentitypiston.GetStoredBlockID();
                                    k2   = tileentitypiston.Func_31005_e();
                                    flag = true;
                                }
                            }
                        }
                        if (!flag && j2 > 0 && CanPushBlock(j2, world, k1, l1, i2, false) && (net.minecraft.src.Block
                                                                                              .blocksList[j2].GetMobilityFlag() == 0 || j2 == net.minecraft.src.Block.PISTON
                                                                                              .ID || j2 == net.minecraft.src.Block.PISTON_STICKY.ID))
                        {
                            ignoreUpdates = false;
                            world.SetBlockWithNotify(k1, l1, i2, 0);
                            ignoreUpdates = true;
                            i            += net.minecraft.src.PistonBlockTextures.field_31051_b[j1];
                            j            += net.minecraft.src.PistonBlockTextures.field_31054_c[j1];
                            k            += net.minecraft.src.PistonBlockTextures.field_31053_d[j1];
                            world.SetBlockAndMetadata(i, j, k, net.minecraft.src.Block.PISTON_MOVING.ID,
                                                      k2);
                            world.SetBlockTileEntity(i, j, k, net.minecraft.src.BlockPistonMoving.GetTileEntity
                                                         (j2, k2, j1, false, false));
                        }
                        else
                        {
                            if (!flag)
                            {
                                ignoreUpdates = false;
                                world.SetBlockWithNotify(i + net.minecraft.src.PistonBlockTextures.field_31051_b[
                                                             j1], j + net.minecraft.src.PistonBlockTextures.field_31054_c[j1], k + net.minecraft.src.PistonBlockTextures
                                                         .field_31053_d[j1], 0);
                                ignoreUpdates = true;
                            }
                        }
                    }
                    else
                    {
                        ignoreUpdates = false;
                        world.SetBlockWithNotify(i + net.minecraft.src.PistonBlockTextures.field_31051_b[
                                                     j1], j + net.minecraft.src.PistonBlockTextures.field_31054_c[j1], k + net.minecraft.src.PistonBlockTextures
                                                 .field_31053_d[j1], 0);
                        ignoreUpdates = true;
                    }
                    world.PlaySoundEffect((double)i + 0.5D, (double)j + 0.5D, (double)k + 0.5D, "tile.piston.in"
                                          , 0.5F, world.rand.NextFloat() * 0.15F + 0.6F);
                }
            }
            ignoreUpdates = false;
        }
Example #18
0
        public static net.minecraft.src.Chunk LoadChunkIntoWorldFromCompound(net.minecraft.src.World
                                                                             world, net.minecraft.src.NBTTagCompound nbttagcompound)
        {
            int i = nbttagcompound.GetInteger("xPos");
            int j = nbttagcompound.GetInteger("zPos");

            net.minecraft.src.Chunk chunk = new net.minecraft.src.Chunk(world, i, j);
            chunk.blocks = nbttagcompound.GetByteArray("Blocks");
            chunk.data   = new net.minecraft.src.NibbleArray(nbttagcompound.GetByteArray("Data"
                                                                                         ));
            chunk.skylightMap = new net.minecraft.src.NibbleArray(nbttagcompound.GetByteArray
                                                                      ("SkyLight"));
            chunk.blocklightMap = new net.minecraft.src.NibbleArray(nbttagcompound.GetByteArray
                                                                        ("BlockLight"));
            chunk.heightMap          = nbttagcompound.GetByteArray("HeightMap");
            chunk.isTerrainPopulated = nbttagcompound.GetBoolean("TerrainPopulated");
            if (!chunk.data.IsValid())
            {
                chunk.data = new net.minecraft.src.NibbleArray(chunk.blocks.Length);
            }
            if (chunk.heightMap == null || !chunk.skylightMap.IsValid())
            {
                chunk.heightMap   = new byte[256];
                chunk.skylightMap = new net.minecraft.src.NibbleArray(chunk.blocks.Length);
                chunk.Func_353_b();
            }
            if (!chunk.blocklightMap.IsValid())
            {
                chunk.blocklightMap = new net.minecraft.src.NibbleArray(chunk.blocks.Length);
                chunk.Func_348_a();
            }
            net.minecraft.src.NBTTagList nbttaglist = nbttagcompound.GetTagList("Entities");
            if (nbttaglist != null)
            {
                for (int k = 0; k < nbttaglist.TagCount(); k++)
                {
                    net.minecraft.src.NBTTagCompound nbttagcompound1 = (net.minecraft.src.NBTTagCompound
                                                                        )nbttaglist.TagAt(k);
                    net.minecraft.src.Entity entity = net.minecraft.src.EntityList.CreateEntityFromNBT
                                                          (nbttagcompound1, world);
                    chunk.hasEntities = true;
                    if (entity != null)
                    {
                        chunk.AddEntity(entity);
                    }
                }
            }
            net.minecraft.src.NBTTagList nbttaglist1 = nbttagcompound.GetTagList("TileEntities"
                                                                                 );
            if (nbttaglist1 != null)
            {
                for (int l = 0; l < nbttaglist1.TagCount(); l++)
                {
                    net.minecraft.src.NBTTagCompound nbttagcompound2 = (net.minecraft.src.NBTTagCompound
                                                                        )nbttaglist1.TagAt(l);
                    net.minecraft.src.TileEntity tileentity = net.minecraft.src.TileEntity.CreateAndLoadEntity
                                                                  (nbttagcompound2);
                    if (tileentity != null)
                    {
                        chunk.AddTileEntity(tileentity);
                    }
                }
            }
            return(chunk);
        }
Example #19
0
 public override void AddTileEntity(net.minecraft.src.TileEntity tileentity)
 {
 }
Example #20
0
 public override void SetChunkBlockTileEntity(int i, int j, int k, net.minecraft.src.TileEntity tileentity)
 {
 }