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); }
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); }
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); } }
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); } } }
private void GetTileEntityInfo(net.minecraft.src.TileEntity tileentity) { if (tileentity != null) { net.minecraft.src.Packet packet = tileentity.GetDescriptionPacket(); if (packet != null) { netServerHandler.SendPacket(packet); } } }
private void UpdateTileEntity(net.minecraft.src.TileEntity tileentity) { if (tileentity != null) { net.minecraft.src.Packet packet = tileentity.GetDescriptionPacket(); if (packet != null) { SendPacketToPlayersInInstance(packet); } } }
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); } }
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); } }
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(); } } }
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); } }
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); }
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); }
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; } }
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) { }
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; }
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); }
public override void AddTileEntity(net.minecraft.src.TileEntity tileentity) { }
public override void SetChunkBlockTileEntity(int i, int j, int k, net.minecraft.src.TileEntity tileentity) { }