本文整理汇总了Java中net.minecraft.world.WorldServer.getTileEntity方法的典型用法代码示例。如果您正苦于以下问题:Java WorldServer.getTileEntity方法的具体用法?Java WorldServer.getTileEntity怎么用?Java WorldServer.getTileEntity使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类net.minecraft.world.WorldServer
的用法示例。
在下文中一共展示了WorldServer.getTileEntity方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: isAllowedToEdit
import net.minecraft.world.WorldServer; //导入方法依赖的package包/类
private boolean isAllowedToEdit(EntityPlayer player, ItemStack remote) {
NBTTagCompound tag = remote.getTagCompound();
if (tag != null) {
if (tag.hasKey("securityX")) {
int x = tag.getInteger("securityX");
int y = tag.getInteger("securityY");
int z = tag.getInteger("securityZ");
int dimensionId = tag.getInteger("securityDimension");
WorldServer world = DimensionManager.getWorld(dimensionId);
if (world != null) {
TileEntity te = world.getTileEntity(new BlockPos(x, y, z));
if (te instanceof TileEntitySecurityStation) {
boolean canAccess = ((TileEntitySecurityStation) te).doesAllowPlayer(player);
if (!canAccess) {
player.sendStatusMessage(new TextComponentTranslation("gui.remote.noEditRights", x, y, z), false);
}
return canAccess;
}
}
}
}
return true;
}
示例2: onUpdate
import net.minecraft.world.WorldServer; //导入方法依赖的package包/类
@Override
public void onUpdate(ItemStack remote, World worl, Entity entity, int slot, boolean holdingItem) {
if (!worl.isRemote) {
NBTTagCompound tag = remote.getTagCompound();
if (tag != null) {
if (tag.hasKey("securityX")) {
int x = tag.getInteger("securityX");
int y = tag.getInteger("securityY");
int z = tag.getInteger("securityZ");
int dimensionId = tag.getInteger("securityDimension");
WorldServer world = DimensionManager.getWorld(dimensionId);
if (world != null) {
TileEntity te = world.getTileEntity(new BlockPos(x, y, z));
if (!(te instanceof TileEntitySecurityStation)) {
tag.removeTag("securityX");
tag.removeTag("securityY");
tag.removeTag("securityZ");
tag.removeTag("securityDimension");
}
}
}
}
}
}
示例3: processUpdateSign
import net.minecraft.world.WorldServer; //导入方法依赖的package包/类
public void processUpdateSign(C12PacketUpdateSign packetIn)
{
PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.playerEntity.getServerForPlayer());
this.playerEntity.markPlayerActive();
WorldServer worldserver = this.serverController.worldServerForDimension(this.playerEntity.dimension);
BlockPos blockpos = packetIn.getPosition();
if (worldserver.isBlockLoaded(blockpos))
{
TileEntity tileentity = worldserver.getTileEntity(blockpos);
if (!(tileentity instanceof TileEntitySign))
{
return;
}
TileEntitySign tileentitysign = (TileEntitySign)tileentity;
if (!tileentitysign.getIsEditable() || tileentitysign.getPlayer() != this.playerEntity)
{
this.serverController.logWarning("Player " + this.playerEntity.getName() + " just tried to change non-editable sign");
return;
}
IChatComponent[] aichatcomponent = packetIn.getLines();
for (int i = 0; i < aichatcomponent.length; ++i)
{
tileentitysign.signText[i] = new ChatComponentText(EnumChatFormatting.getTextWithoutFormattingCodes(aichatcomponent[i].getUnformattedText()));
}
tileentitysign.markDirty();
worldserver.markBlockForUpdate(blockpos);
}
}
示例4: process
import net.minecraft.world.WorldServer; //导入方法依赖的package包/类
@Override
public void process(StructureProcessorData data, WorldServer world, Random rand)
{
Data d = (Data) data;
PMConfig cfg = PurMag.INSTANCE.config;
IExpression.ExpressionData expr = PurMag.INSTANCE.getExpressionRegistry().getRegistry().getValue(cfg.enabledExpressions.get(rand.nextInt(cfg.enabledExpressions.size()))).generateExpression(rand);
TileEntity te = world.getTileEntity(d.getAbsolutePos());
if(te != null && te instanceof TileCodeStorage)
{
TileCodeStorage storage = (TileCodeStorage) te;
storage.tryLock(true, expr.getText(), expr.getResult());
PXLMC.fillBlockWithLoot(world, rand, d.getAbsolutePos(), EnumFacing.NORTH, d.table, expr.getLuck());
}
}
示例5: processUpdateSign
import net.minecraft.world.WorldServer; //导入方法依赖的package包/类
public void processUpdateSign(CPacketUpdateSign packetIn)
{
PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.playerEntity.getServerWorld());
this.playerEntity.markPlayerActive();
WorldServer worldserver = this.serverController.worldServerForDimension(this.playerEntity.dimension);
BlockPos blockpos = packetIn.getPosition();
if (worldserver.isBlockLoaded(blockpos))
{
IBlockState iblockstate = worldserver.getBlockState(blockpos);
TileEntity tileentity = worldserver.getTileEntity(blockpos);
if (!(tileentity instanceof TileEntitySign))
{
return;
}
TileEntitySign tileentitysign = (TileEntitySign)tileentity;
if (!tileentitysign.getIsEditable() || tileentitysign.getPlayer() != this.playerEntity)
{
this.serverController.logWarning("Player " + this.playerEntity.getName() + " just tried to change non-editable sign");
return;
}
String[] astring = packetIn.getLines();
for (int i = 0; i < astring.length; ++i)
{
tileentitysign.signText[i] = new TextComponentString(TextFormatting.getTextWithoutFormattingCodes(astring[i]));
}
tileentitysign.markDirty();
worldserver.notifyBlockUpdate(blockpos, iblockstate, iblockstate, 3);
}
}
示例6: generateTower
import net.minecraft.world.WorldServer; //导入方法依赖的package包/类
public void generateTower(WorldServer world, BlockPos pos, Random rand) {
MinecraftServer server = world.getMinecraftServer();
Template template = world.getStructureTemplateManager().getTemplate(server, TOWER_STRUCTURE);
PlacementSettings settings = new PlacementSettings();
settings.setRotation(Rotation.values()[rand.nextInt(Rotation.values().length)]);
BlockPos size = template.getSize();
int airBlocks = 0;
for(int x = 0; x < size.getX(); x++) {
for (int z = 0; z < size.getZ(); z++) {
if (world.isAirBlock(pos.add(template.transformedBlockPos(settings, new BlockPos(x, 0, z))))) {
airBlocks++;
if (airBlocks > 0.33 * (size.getX() * size.getZ())) {
return;
}
}
}
}
for (int x = 0; x < size.getX(); x++) {
for (int z = 0; z < size.getZ(); z++) {
if (x == 0 || x == size.getX() - 1 || z == 0 || z == size.getZ() - 1) {
for (int y = 0; y < size.getY(); y++) {
BlockPos checkPos = pos.add(template.transformedBlockPos(settings, new BlockPos(x, y, z)));
IBlockState checkState = world.getBlockState(checkPos);
if (!checkState.getBlock().isAir(checkState, world, checkPos)) {
if (!(y <= 3 && (checkState.getBlock() == Blocks.NETHERRACK || checkState.getBlock() == Blocks.QUARTZ_ORE || checkState.getBlock() == Blocks.MAGMA))) {
return;
}
}
}
}
}
}
template.addBlocksToWorld(world, pos, settings);
Map<BlockPos, String> dataBlocks = template.getDataBlocks(pos, settings);
for (Entry<BlockPos, String> entry : dataBlocks.entrySet()) {
String[] tokens = entry.getValue().split(" ");
if (tokens.length == 0)
return;
BlockPos dataPos = entry.getKey();
EntityPigMage pigMage;
switch (tokens[0]) {
case "pigman_mage":
pigMage = new EntityPigMage(world);
pigMage.setPosition(dataPos.getX() + 0.5, dataPos.getY(), dataPos.getZ() + 0.5);
pigMage.onInitialSpawn(world.getDifficultyForLocation(dataPos), null);
world.spawnEntity(pigMage);
break;
case "fortress_chest":
IBlockState chestState = Blocks.CHEST.getDefaultState().withRotation(settings.getRotation());
chestState = chestState.withMirror(Mirror.FRONT_BACK);
world.setBlockState(dataPos, chestState);
TileEntity tile = world.getTileEntity(dataPos);
if (tile != null && tile instanceof TileEntityLockableLoot)
((TileEntityLockableLoot) tile).setLootTable(NETHER_BRIDGE_LOOT_TABLE, rand.nextLong());
break;
}
}
}
示例7: generateMonument
import net.minecraft.world.WorldServer; //导入方法依赖的package包/类
public void generateMonument(WorldServer world, BlockPos pos, Random rand) {
MinecraftServer server = world.getMinecraftServer();
Template template = world.getStructureTemplateManager().getTemplate(server, MONUMENT_STRUCTURE);
PlacementSettings settings = new PlacementSettings();
settings.setRotation(Rotation.values()[rand.nextInt(Rotation.values().length)]);
BlockPos size = template.getSize();
int airBlocks = 0;
for(int x = 0; x < size.getX(); x++) {
for (int z = 0; z < size.getZ(); z++) {
if (world.isAirBlock(pos.add(template.transformedBlockPos(settings, new BlockPos(x, -1, z))))) {
airBlocks++;
if (airBlocks > 0.33 * (size.getX() * size.getZ())) {
return;
}
}
}
}
for (int x = 0; x < size.getX(); x++) {
for (int z = 0; z < size.getZ(); z++) {
if (x == 0 || x == size.getX() - 1 || z == 0 || z == size.getZ() - 1) {
for (int y = 0; y < size.getY(); y++) {
BlockPos checkPos = pos.add(template.transformedBlockPos(settings, new BlockPos(x, y, z)));
IBlockState checkState = world.getBlockState(checkPos);
if (!checkState.getBlock().isAir(checkState, world, checkPos)) {
if (!(y <= 0 && (checkState.getBlock() == Blocks.NETHERRACK || checkState.getBlock() == Blocks.QUARTZ_ORE || checkState.getBlock() == Blocks.MAGMA))) {
return;
}
}
}
}
}
}
template.addBlocksToWorld(world, pos, settings);
Map<BlockPos, String> dataBlocks = template.getDataBlocks(pos, settings);
for (Entry<BlockPos, String> entry : dataBlocks.entrySet()) {
String[] tokens = entry.getValue().split(" ");
if (tokens.length == 0)
return;
BlockPos dataPos = entry.getKey();
if (tokens[0].equals("pedestal")) {
IBlockState chestState = InfernumBlocks.PEDESTAL.getDefaultState();
world.setBlockState(dataPos, chestState);
TileEntity tile = world.getTileEntity(dataPos);
if (tile instanceof TilePedestal) {
((TilePedestal) tile).setStack(new ItemStack(InfernumItems.KNOWLEDGE_BOOK));
}
}
}
}
示例8: PrepareForRemoteActivation
import net.minecraft.world.WorldServer; //导入方法依赖的package包/类
public void PrepareForRemoteActivation(WorldServer world, EntityPlayerMP player, BlockPos blockPosition, Vec3d playerPos)
{
IBlockState state = world.getBlockState(blockPosition);
int id = Block.getStateId(state);
TileEntity tile = world.getTileEntity(blockPosition);
NBTTagCompound tileUpdateTag = null;
NBTTagCompound tileReadTag = null;
if (tile != null)
{
tileUpdateTag = tile.getUpdateTag();
tile.writeToNBT(tileReadTag = new NBTTagCompound());
}
String modId = Util.getBlockModId(state.getBlock());
// make sure any old entries are properly cleaned up
CancelRemoteActivation(player);
m_playerData.put(player,
new RemoteGuiPlayerData(id, tileUpdateTag, tileReadTag, blockPosition, modId, world.provider.getDimension(), playerPos));
}