mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
109 lines
4.1 KiB
Java
109 lines
4.1 KiB
Java
package com.hbm.items.tool;
|
|
|
|
import java.util.List;
|
|
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.item.Item;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
import net.minecraft.util.ChatComponentText;
|
|
import net.minecraft.world.World;
|
|
|
|
public class ItemWand extends Item {
|
|
|
|
@Override
|
|
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool)
|
|
{
|
|
list.add("Creative-only item");
|
|
list.add("\"Destruction brings creation\"");
|
|
list.add("(Set positions with right click,");
|
|
list.add("set block with shift-right click!)");
|
|
|
|
if(itemstack.stackTagCompound != null &&
|
|
!(itemstack.stackTagCompound.getInteger("x") == 0 &&
|
|
itemstack.stackTagCompound.getInteger("y") == 0 &&
|
|
itemstack.stackTagCompound.getInteger("z") == 0))
|
|
{
|
|
list.add("Pos: " + itemstack.stackTagCompound.getInteger("x") + ", " + itemstack.stackTagCompound.getInteger("y") + ", " + itemstack.stackTagCompound.getInteger("z"));
|
|
} else {
|
|
list.add("Positions not set!");
|
|
}
|
|
if(itemstack.stackTagCompound != null)
|
|
list.add("Block saved: " + Block.getBlockById(itemstack.stackTagCompound.getInteger("block")).getUnlocalizedName());
|
|
}
|
|
|
|
@Override
|
|
public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World p_77648_3_, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_)
|
|
{
|
|
if(p_77648_1_.stackTagCompound == null)
|
|
{
|
|
p_77648_1_.stackTagCompound = new NBTTagCompound();
|
|
}
|
|
|
|
if(p_77648_2_.isSneaking())
|
|
{
|
|
p_77648_1_.stackTagCompound.setInteger("block", Block.getIdFromBlock(p_77648_3_.getBlock(p_77648_4_, p_77648_5_, p_77648_6_)));
|
|
p_77648_1_.stackTagCompound.setInteger("meta", p_77648_3_.getBlockMetadata(p_77648_4_, p_77648_5_, p_77648_6_));
|
|
if(p_77648_3_.isRemote)
|
|
p_77648_2_.addChatMessage(new ChatComponentText("Set block " + Block.getBlockById(p_77648_1_.stackTagCompound.getInteger("block")).getUnlocalizedName()));
|
|
} else {
|
|
if(p_77648_1_.stackTagCompound.getInteger("x") == 0 &&
|
|
p_77648_1_.stackTagCompound.getInteger("y") == 0 &&
|
|
p_77648_1_.stackTagCompound.getInteger("z") == 0)
|
|
{
|
|
p_77648_1_.stackTagCompound.setInteger("x", p_77648_4_);
|
|
p_77648_1_.stackTagCompound.setInteger("y", p_77648_5_);
|
|
p_77648_1_.stackTagCompound.setInteger("z", p_77648_6_);
|
|
if(p_77648_3_.isRemote)
|
|
p_77648_2_.addChatMessage(new ChatComponentText("Position set!"));
|
|
} else {
|
|
|
|
int x = p_77648_1_.stackTagCompound.getInteger("x");
|
|
int y = p_77648_1_.stackTagCompound.getInteger("y");
|
|
int z = p_77648_1_.stackTagCompound.getInteger("z");
|
|
|
|
p_77648_1_.stackTagCompound.setInteger("x", 0);
|
|
p_77648_1_.stackTagCompound.setInteger("y", 0);
|
|
p_77648_1_.stackTagCompound.setInteger("z", 0);
|
|
|
|
if(!p_77648_3_.isRemote)
|
|
{
|
|
for(int i = Math.min(x, p_77648_4_); i <= Math.max(x, p_77648_4_); i++)
|
|
{
|
|
for(int j = Math.min(y, p_77648_5_); j <= Math.max(y, p_77648_5_); j++)
|
|
{
|
|
for(int k = Math.min(z, p_77648_6_); k <= Math.max(z, p_77648_6_); k++)
|
|
{
|
|
p_77648_3_.setBlock(i, j, k, Block.getBlockById(p_77648_1_.stackTagCompound.getInteger("block")), p_77648_1_.stackTagCompound.getInteger("meta"), 3);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(p_77648_3_.isRemote)
|
|
p_77648_2_.addChatMessage(new ChatComponentText("Selection filled!"));
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
|
|
if(stack.stackTagCompound == null)
|
|
{
|
|
stack.stackTagCompound = new NBTTagCompound();
|
|
}
|
|
if(player.isSneaking())
|
|
{
|
|
stack.stackTagCompound.setInteger("block", 0);
|
|
stack.stackTagCompound.setInteger("meta", 0);
|
|
if(world.isRemote)
|
|
player.addChatMessage(new ChatComponentText("Set block " + Block.getBlockById(stack.stackTagCompound.getInteger("block")).getUnlocalizedName()));
|
|
}
|
|
|
|
return stack;
|
|
}
|
|
|
|
}
|