generated from tilera/1710mod
161 lines
5.5 KiB
Java
161 lines
5.5 KiB
Java
package net.anvilcraft.thaummach.items;
|
|
|
|
import java.util.List;
|
|
import java.util.stream.IntStream;
|
|
|
|
import dev.tilera.auracore.api.HelperLocation;
|
|
import dev.tilera.auracore.api.machine.IConnection;
|
|
import net.anvilcraft.thaummach.TMTab;
|
|
import net.minecraft.client.renderer.texture.IIconRegister;
|
|
import net.minecraft.creativetab.CreativeTabs;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.item.EnumRarity;
|
|
import net.minecraft.item.Item;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.tileentity.TileEntity;
|
|
import net.minecraft.util.ChatComponentText;
|
|
import net.minecraft.util.IIcon;
|
|
import net.minecraft.world.World;
|
|
|
|
public class ItemDetector extends Item {
|
|
public IIcon[] icons;
|
|
|
|
public ItemDetector() {
|
|
super();
|
|
super.maxStackSize = 1;
|
|
this.setHasSubtypes(true);
|
|
this.setMaxDamage(0);
|
|
this.setCreativeTab(TMTab.INSTANCE);
|
|
}
|
|
|
|
@Override
|
|
public EnumRarity getRarity(ItemStack itemstack) {
|
|
return EnumRarity.uncommon;
|
|
}
|
|
|
|
@Override
|
|
public void registerIcons(IIconRegister reg) {
|
|
this.icons = IntStream.rangeClosed(0, 2)
|
|
.mapToObj((i) -> "thaummach:detector_" + i)
|
|
.map(reg::registerIcon)
|
|
.toArray(IIcon[] ::new);
|
|
}
|
|
|
|
@Override
|
|
@SuppressWarnings({ "unchecked", "rawtypes" })
|
|
public void getSubItems(Item alec1, CreativeTabs tab, List list) {
|
|
IntStream.rangeClosed(0, 2)
|
|
.mapToObj((i) -> new ItemStack(this, 1, i))
|
|
.forEach(list::add);
|
|
}
|
|
|
|
@Override
|
|
public IIcon getIconFromDamage(int meta) {
|
|
return this.icons[meta];
|
|
}
|
|
|
|
@Override
|
|
public String getUnlocalizedName(ItemStack stack) {
|
|
return "item.thaummach:detector_" + stack.getItemDamage();
|
|
}
|
|
|
|
@Override
|
|
public boolean onItemUseFirst(
|
|
ItemStack itemstack,
|
|
EntityPlayer entityplayer,
|
|
World world,
|
|
int x,
|
|
int y,
|
|
int z,
|
|
int l,
|
|
// useless parameters
|
|
float alec1,
|
|
float alec2,
|
|
float alec3
|
|
) {
|
|
TileEntity ent = world.getTileEntity(x, y, z);
|
|
if (ent instanceof IConnection) {
|
|
IConnection tet = (IConnection) ent;
|
|
if (itemstack.getItemDamage() == 0) {
|
|
if (world.isRemote)
|
|
return false;
|
|
entityplayer.addChatMessage(new ChatComponentText(
|
|
"Detected " + Math.round(tet.getPureVis()) + " Vis."
|
|
));
|
|
world.playSoundEffect(
|
|
(double) x, (double) y, (double) z, "note.harp", 0.8F, 1.0F
|
|
);
|
|
if (tet.getVisSuction((HelperLocation) null) > 0) {
|
|
entityplayer.addChatMessage(new ChatComponentText(
|
|
tet.getVisSuction((HelperLocation) null) + " Vis TCB"
|
|
));
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
if (itemstack.getItemDamage() == 1) {
|
|
if (world.isRemote)
|
|
return false;
|
|
entityplayer.addChatMessage(new ChatComponentText(
|
|
"Detected " + Math.round(tet.getTaintedVis()) + " Taint."
|
|
));
|
|
world.playSoundEffect(
|
|
(double) x, (double) y, (double) z, "note.harp", 0.8F, 1.0F
|
|
);
|
|
if (tet.getTaintSuction((HelperLocation) null) > 0) {
|
|
entityplayer.addChatMessage(new ChatComponentText(
|
|
tet.getTaintSuction((HelperLocation) null) + " Taint TCB"
|
|
));
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
if (itemstack.getItemDamage() == 2) {
|
|
if (world.isRemote)
|
|
return false;
|
|
int cap = Math.round(
|
|
(float) Math.round(tet.getPureVis() + tet.getTaintedVis())
|
|
/ tet.getMaxVis() * 100.0F
|
|
);
|
|
int capp = Math.round(
|
|
(float) Math.round(tet.getPureVis()) / tet.getMaxVis() * 100.0F
|
|
);
|
|
int capt = Math.round(
|
|
(float) Math.round(tet.getTaintedVis()) / tet.getMaxVis() * 100.0F
|
|
);
|
|
entityplayer.addChatMessage(new ChatComponentText(
|
|
"Detected " + Math.round(tet.getPureVis()) + " Vis (" + capp
|
|
+ "%) and " + Math.round(tet.getTaintedVis()) + " Taint (" + capt
|
|
+ "%)."
|
|
));
|
|
entityplayer.addChatMessage(
|
|
new ChatComponentText("The object is at " + cap + "% capacity.")
|
|
);
|
|
world.playSoundEffect(
|
|
(double) x,
|
|
(double) y,
|
|
(double) z,
|
|
"note.harp",
|
|
0.8F,
|
|
1.0F + 1.0F * (float) cap / 100.0F
|
|
);
|
|
if (tet.getTaintSuction((HelperLocation) null) > 0
|
|
|| tet.getVisSuction((HelperLocation) null) > 0) {
|
|
entityplayer.addChatMessage(new ChatComponentText(
|
|
"" + tet.getVisSuction((HelperLocation) null) + " Vis TCB, "
|
|
+ tet.getTaintSuction((HelperLocation) null) + " Taint TCB"
|
|
));
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return super.onItemUseFirst(
|
|
itemstack, entityplayer, world, x, y, z, l, alec1, alec2, alec3
|
|
);
|
|
}
|
|
}
|